Trying to make a see-saw with constraints

Hi there!

I’m trying to create a see-saw, but it doesn’t seem to be responding to weight shifts properly. Now sometimes it does, but never as quickly as I’d think a real see-saw would.

Currently it’s setup with a simple hinge constraint at the middle of the platform.

example.rbxl (23.6 KB)

Sometimes things like this happen:

Any help or suggestions that would make this more responsive would be much appreciated.

Thanks!

4 Likes

I opened the place file you provided and ran it as-is; it’s not behaving the same as yours with the latency…

Out of curiosity who’s the network owner for the seesaw in that example? I doubt it would make much difference - I’ve had problems with passive constraints like this falling asleep a lot and never found a consistent non-hacky solution yet.

The map is cloned from the replicated storage by a client script. So the client “owns” everything.

Even if I got it like so I’d ideally want it to be even more responsive. Is there any way I can have it tilt down faster?

I’m guessing by adjusting the mass of the see-saw it will be less resistant to tilting. Just by looking at it, it seems like in the extreme case, the mass at the bottom is just too heavy for the torque above to have any effect. I’ll try that out

Edit: works as I thought. I haven’t played around with density (nor can I find it in properties, is it somewhere else?) but @TheCarbyneUniverse’s idea is a lot better without having to deal with resizing until it works.

Yeah if Roblox respects the laws of physics reducing the amount of mass at an arm from the pivot will make it faster. Reduce density, reduce length, reduce width, anything to reduce the moment of inertia.

Or fake it by actuation and solve the sleeping and speed problems in one go, albeit less cleanly.

1 Like

Yes, reducing density of the board would make it more responsive I’ve noticed. Something like 0.1 would be good. (Oh yeah, make sure CustomPhysicalProperties is set to true to access it.) It’d reduce the mass also since density factors into the mass equation.

2 Likes

That delay looks a lot like a sleeping part problem, you could try adding a constraint that wiggles the part slightly to prevent it sleeping.

As mentioned earlier, simply lowering the mass will make it fall faster once it stops sleeping. If the low mass is a problem for some reason, you could make the seesaw massless and weld a mass in the center of the saw, preserving the overall mass but lowering inertia.

2 Likes

Ended up finding a solution.

Had to use a Rotate. Not sure why this works and constraints don’t but I guess I’ll take it.

9 Likes

Wondering if you could show how you did this, I’m not sure what you mean by you had to use rotate! A tutorial would be appreciated! Thanks

I think what we actually need is some better documentation on the Rotate | Documentation - Roblox Creator Hub page… I didnt even know this existed and its super useful. Really helpful not having to set up attachments + its way more responsive for some reason?

This is the code btw…
local Rotate = Instance.new(“Rotate”)
Rotate.Parent = script.Parent
Rotate.Part0 = script.Parent.Parent.Anchor
Rotate.Part1 = script.Parent.Parent.Plank
Rotate.Enabled = true

Gotta be honest after more testing the rotate element solution really doesn’t work, the physics go absolutely mad as the are calculated locally and not properly integrated with the player collision, so it cannot be used on low end machines or by multiple players without serious chance of going mental!!! The best solution I can possibly suggest is using a hinge-constraint, and applying vector force based on the players position on it. Further improvements can be made by adjusting the force based on Part:getmass… Although this still uses the physics system it integrates better with the collision system and has a far lower chance of total existence failure.


An example of Total Existance Failure XD

2 Likes