Humanoids - Updated forces character uses to stay above floor

Hey All,

So about a month ago I introduced a regression in Roblox when the new Solver is enabled that caused characters to apply much weaker forces/accelerations to get themselves out of being through the floor. This caused numerous problems when walking up stairs or navigating multi-part terrain.

Last night I fixed this regression, but I wanted to inform everyone of the effects of the change:

  1. For a month now, characters were pushing themselves OUT of floors with floors 10x weaker than intended.
  2. This has been fixed, but that means character forces up (out of the floor) are about 10x stronger than they were for the duration of this month!

Please let me know if characters seem to be experiencing issues with being pushed out of terrain or applying vertical forces in a way you think is incorrect!

17 Likes

Does this effect seats as well? The avatar seems to be floating in the air when sitting. 18d8eb2761adf248e09e8142e1203ba9

Unanchoring changes the position as well.

2 Likes

Negative. This is a separate issue and I remember reviewing code a few days ago that addresses this. @CodeWriter has this fixed, I believe, we’re just waiting for this to roll out.

7 Likes

Yes, there should be an improvement in sitting coming soon that will address some of the floating issues with normal seats. If the developer has coded custom seats, welds and animations, though, this change won’t affect those implementations…

3 Likes

I have a custom character that is now floating above the seat (which did not happen a few days ago). When you are addressing the fix, please be sure it works for custom characters with a custom hip height. Thanks.

Since this was enabled, I’ve been having issues in my game where players are jumping on other player’s heads and being launched up like a trampoline. Apparently it isn’t just happening in my game as I got some other people to verify if its happening in other games. The behavior only started today.

6 Likes

I’ve noticed recently (about a month or so) that characters dying in boats on terrain water seem to launch themselves or other players.
Just today I went to my Boat Obby and got launched about 1 1/2 times farther from a catapult I have there.

The catapult uses a HingeConstraint and a seat. The player would climb on the catapult and sit in the seat. The HingeConstraint would rotate the catapult to the ‘armed’ angle, pause, then rotate to the ‘firing’ angle and the Seat is set temporarily to Disabled to release the player. It used to launch characters pretty consistently about 800 studs which would keep them on the map. Now it only seems to work half the time. The player gets released and falls to the floor under the catapult, or gets tossed and when they do get tossed they go about 1200 studs which tosses them off the map.

I could change the parameters, but it seems to be linked to the changes you were mentioning.

I actually haven’t noticed any issues, which is interesting since my game is fairy intensive for multiple characters with many moving parts / unions which can be stood on.

Attached is a video showing how severe the issue is

2 Likes

Are you doing any sort custom logic for how characters jump and move? Or are you mostly using default Humanoids?

Also any chance you could message me a place that has your implementation of characters? Something I can try in Start Server + Player?

1 Like

How do you make crouching work? I think the issue is that when another player comes close to the crouching player, they start simulating the Humanoid. The Humanoid that is crouching is having the logic that tries to push you off the floor to stand up fight with the interpolation, so the character always has a ton of perpetual forces applied to it.

There is a simple hack you can do to bypass this. If you put a BodyPosition or BodyGyro on your characters, it should prevent local simulation from happening, which will hopefully prevent this.

How do your characters crouch, by the way?

1 Like

Sorry I missed these posts.

For crouching I set the HipHeight of the humanoid to 0.1.

I’m not sure if the directional looking that I have for my characters would have anything to do with this too where the characters look up / down depending on where they’re looking on their camera.

How are you accomplishing the directional looking? CFrames? If so, that might be the case. It might be fighting Humanoid’s Gyro, creating large forces.

The directional looking uses manipulation of the C1 value of Waist and Neck joints found in characters.

Yeah, this seems to be effectively the same thing as CFraming the objects since the properties don’t replicate. This means Physics Simulating is fighting.

Try putting a 0-force BodyGyro or BodyPosition on a character to see if the problem goes away. Doing this disqualifies the characters from “Local Simulation”, which is actually fine for your game.

I actually applied this fix to my game, adding a 0 force body gyro into the characters. Still getting reports of this happening however. Do I need to add the force into each part of the character’s body?

To also add onto this, I have a similar flinging issue that occurs at random when players jump out of terrain water.

1 Like