I’m trying to make weighted platforms similar to the ones in Fireboy and Watergirl (see here) where when one goes down the other comes up depending on which one has the most weight on it.
Normally I would just script this myself, however as I am painfully inexperienced with Roblox physics I am unsure on how to do this.
The reason it needs to use Roblox physics, at least to my knowledge, is that it needs to both interact with players and physics objects like boxes and balls.
I was wondering if there was a way to do this, either with built in Roblox physics objects, or somehow doing it with scripting.
You could possibly try using ropes, and adjusting the length (using winch) to shorten/lengthen based on the provided weight, essentially creating a rope elevator. Then, implement some ancient aztec elevator system using a brick or some sort of other weighted system to pull down the source of the rope, raising the elevator up.
However, ROBLOX physics can be painfully inefficient when it comes to precision. This is because Roblox is unlike other simple physics engines in that almost any efficient physics reactions require some sort of preliminary code or systems to work at their best. Surely you could make this ENTIRELY physics based, but it has the ability to work improperly and opens up pathways for physics bugs and issues that are more difficult to fix.
I would highly recommend detecting when a player or object is within the bounds of an elevator, perhaps using a pressure plate as in the game you provided. Then, calculate the total weight of every object within bounds of the elevator (touching or within it’s hitbox) either using the mass property or assign every object a weight that you use to calculate.
using this calculation, simply adjust the speed of a tween based on the weight, and if the weight changes, cancel or speed up/slow down the tween.