BallSocketConstraints forcing character movement

I have a set of “charms” attached to my weapon models sporting BallSocketConstraints, but they seem to slightly spazz out and slightly move my character. I have tried putting MaxFrictionTorque to .001 to stop the spazzing, but that ends up anchoring my character and causing slight pushes once the charms go back into an “active” state. Is there any way to fix this moving?

Things I have tried: making all parts massless, cancollide false, adding twist limits, changing MaxFrictionTorque.

1 Like

Sorry for the necro but where you able to fix this?

kind of, make sure everything welded to ur character is massless = true

necroing this again but this does not work, any constraint welded to your body will influence your movement unless you use manual cframe manipulation to move the part to where it should be, freeing your character from the influence of the constraint

Necroing one last time!

I believe I found a bug in our implementation of BallSocketConstraint when MaxFrictionTorque is non-zero. Do you still have a repro for this issue?

Thanks!

2 Likes

lanterns.rbxm (43.7 KB)
Putting this into replicatedstorage will highlight the issue pretty well. Absolvement uses a ballsocket system for lanterns which makes the physics interactions very inconsistent. in the main client script, you can see that all of the parts have massless set to true, but i’m pretty sure the constraint inherits customphysicalproperties so i had to set those really low to tone down the sliding issue. I know this is slightly unrelated, but the lanterns will also sometimes cause server-sided pivots to not work because the client will “move” the player back to the position they were at prior to the teleport. We fixed this by just having the client force pivot whenever they get a cframe update, but ballsockets have overall had many persistent physics issues that required “hacks” to somewhat negate. the game link for absolvement is Here. let me know if you have any other questions and i can provide you with other examples

1 Like

Seems like the TwistLimits are the problem. If you set TwistLimitsEnabled to false, I don’t see the character jittering and the lantern loses energy over time, rather than flying around.

I suspect there may be a bug with our twist constraint implementation, going to investigate some more.

Thanks

this seems interesting, though twistlimits are pretty important to “believability” in the constraint. if this is an intended engine feature that would suck as the lantern would constantly clip into the character but any possible fix would be great as it still causes major problems in any constraint that may need some type of limits

Looking at the twist constraint implementation, nothing seems obviously incorrect. I think the root cause may be how our default character locomotion works. The character is moved by applying forces/torques to achieve the desired motion without considering other constraint forces. This can give physically incorrect behavior when even simple constraints are attached to the character, as you’ve seen.

A more robust approach is to use the new character controllers, which take into account all of the constraints acting on a character when it moves. This should fix the issues you’re seeing.

1 Like

that is unfortunate but i understand. the game will just have to cope with the physics issues until the time comes for a rewrite. thanks for the help

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.