Characters on Moving Platforms | Undue rotation Inheritance

Ever since Characters on Moving Platforms came out, we’ve had a deleterious side-effect of undue rotation inheritance (from platform) on the client:



Source Game: Tower of Hell

Sporadic parts just above the size requirement most exaggerate this phenomenon.


With user-vehicles it can be game breaking:

Source Game: Sinking Ship

Here passengers of a player-tugboat swing around to it like clingy bees, and accelerate its journey into space. I can attest this did not happen before the Moving Platforms update.


The fix the Developer must currently take is to first manually imbue the translation to the character and second override the character angular component with the actual characters angular component:

Source Game: Sinking of Greyrock

This way getting the platform translation but keeping the honest rotation. The (Developer) solution at the surface is about discarding the inheritance of rotation. But this is complex and a wholly fixative implement to what Roblox should be automatically doing in the first place.

13 Likes

Thanks for the report! We’ve filed a ticket to our internal database and we’ll follow up when we have an update for you.

5 Likes

Stepping on server owned props in Traitor Town:

3 Likes

Thanks for the videos! This fell through the cracks a few months ago, but I do have a ticket for this and will take a look.

Edit:
So this is a problem we’re aware of, and it is basically a fundamental issue with Humanoids on Platforms as it is now. When the server is simulating the platform and it doesn’t receive a position update for the humanoid (due to latency or packet loss) the humanoid will move with the platform because the position of the humanoid is being tracked with respect to the position of the platform.

There are other issues here too, the humanoid tries to remain upright so it exerts a force on the platform to try and go back upright, which causes things to behave strangely when the platform’s mass is similar to the mass of the humanoid.

One thing you can do to try and minimize this issue is make sure the mass of these small objects is less than the mass of a humanoid, since the special Humanoid on Platform case is only exercised when the mass of the platform is larger than the mass of the humanoid.

There is no easy short term fix for these issues but it’s something we’re thinking about.

5 Likes

One thing you can do to try and minimize this issue is make sure the mass of these small objects is less than the mass of a humanoid

This fixes the rotation issue, however it seems to fling props worse than before:

Perhaps a way to toggle this feature on and off would be better? (Whether that be per-game or per BaePart) That way developers can chose whether this behavior is enabled per instance.

Seems like it wouldn’t be too difficult to make; Roblox obviously has a whitelist in place for this behavior.

It’s something we’re considering!

Edit: Also w.r.t the video you posted, humanoids exert forces to try and keep themselves upright, it looks like those forces are having a pretty big effect on the barrel. I’d try making it heavier, just not heavier than the humanoid.

4 Likes

What’s the timeframe? I ended up having to remove the character mass change due to the flinging bug.
Unrelated, new video on original issue (VOLUME:)

Thanks for the video. Unfortunately there isn’t a timeline, it’s not something that’s actively being worked on, just something we’re aware of and have discussed. I’ll post any updates I have on the issue here.

1 Like

This is also heavily affecting my vehicles as well. But, it’s due to the fact that players who don’t have network ownership of vehicles cause them to go crazy when they’re standing on them or just moving around on them. However, once they’re seated or welded, the behavior can no longer be seen. Note that this behavior can sometimes be seen with the player who has network ownership of the vehicle.

Here’s a video below showing this behavior. FYI, in the video, I don’t have network ownership of the vehicle and it is set to the server.


1 Like