Awesome !
Thanks to your help, I manage to make it work :)
I tried to adapt it so moving slider_a changes slider_b and slider_b. But I want the Slider_c only to change Slider_b but couldn't get it.
https://www.dropbox.com/scl/fi/q53hxwmxo44fw9iz7vmb0/Potion-Craft.c3p?dl=0&rlkey=6bjdylw3h2rzp9fytr4aujypi
| Global number Delta = 0
| Global number k = 0
+ Slider_a: On changing
-> System: Set Delta to Slider_a.Value+Slider_b.Value+Slider_c.Value-100
-> Slider_b: Set value to Self.Value+Delta÷2
-> Slider_c: Set value to Self.Value+Delta÷2
-> System: Set Delta to min(0,Slider_b.Value,Slider_c.Value)
-> Slider_b: Set value to Self.Value-Delta
-> Slider_c: Set value to Self.Value-Delta
+ Slider_a: On changing
-> System: Set k to (100-Slider_a.Value)÷(Slider_b.Value+Slider_c.Value)
-> Slider_b: Set value to k×Slider_b.Value
-> Slider_c: Set value to k×Slider_c.Value
[Slider_b]
----+ Slider_b: On changing
-----> System: Set Delta to Slider_b.Value+Slider_a.Value+Slider_c.Value-100
-----> Slider_a: Set value to Self.Value+Delta÷2
-----> Slider_c: Set value to Self.Value+Delta÷2
-----> System: Set Delta to min(Slider_a.Value,0,Slider_c.Value)
-----> Slider_a: Set value to Self.Value-Delta
-----> Slider_c: Set value to Self.Value-Delta
----+ Slider_b: On changing
-----> System: Set k to (100-Slider_b.Value)÷(Slider_a.Value+Slider_c.Value)
-----> Slider_a: Set value to k×Slider_a.Value
-----> Slider_c: Set value to k×Slider_c.Value
[Slider_c]
----+ Slider_c: On changing
-----> System: Set Delta to Slider_c.Value+Slider_a.Value+Slider_b.Value-100
-----> Slider_a: Set value to Self.Value+Delta÷2
-----> Slider_b: Set value to Self.Value+Delta÷2
-----> System: Set Delta to min(Slider_a.Value,Slider_b.Value,0)
-----> Slider_a: Set value to Self.Value-Delta
-----> Slider_b: Set value to Self.Value-Delta
----+ Slider_c: On changing
-----> System: Set k to (100-Slider_c.Value)÷(Slider_a.Value+Slider_b.Value)
-----> Slider_a: Set value to k×Slider_a.Value
-----> Slider_b: Set value to k×Slider_b.Value
+ System: Pick Text where Text.name = "a"
-> Text: Set text to roundToDp(Slider_a.Value,1)
+ System: Pick Text where Text.name = "b"
-> Text: Set text to roundToDp(Slider_b.Value,1)
+ System: Pick Text where Text.name = "c"
-> Text: Set text to roundToDp(Slider_c.Value,1)