New Humanoid Physics Controller - Beta

Found a bug, just enable shift lock and walk backward


hey @kleptonaut could you please reply to my previous post?

Also iam glad to tell you guys that it fixed knockback issues

Without new Controller

With the new Controller

Same VectorForce for both


Another bug, Humanoid.Died doenst trigger the first time you die


This should become doable, but not as an option on the GroundController, since that’s part of its core functionality.
As we expose more of the Humanoid state machine and floor sensors, there should be a few ways to achieve this. I think it will always be somewhat hacky as the behavior you’re looking for sounds fundamentally hacky (unless I’m misunderstanding?)

Why is the current way that the GroundController interacts with other floor parts not satisfactory?


can you elaborate here? What is the expected results for those two videos? What and where is the VectorForce you’re applying?

To check this feature out, do I have to do more then

When I play it in Studio, half the time the player is falling in the air, stuck in the spawn part. Other times, if a ball rolls on me, I get stuck lying on the ground and cannot move.

Also clicking on Play seems to take longer for the game to start where you can move.



You need to rename the Humanoid to “StarterHumanoid”, so the issues you are seeing are more likely to be an issue with the game you are in.


Current humanoid have problems with knockback, cause friction and it alsos active running state, that new Humanoid Physics Controller fix that issues, on both videos i use the same Vector force:


The new Humanoid Physics Controller have a better performance, nice job you guys made :slight_smile:

1 Like

It is not my game place, I again just created a new place with nothing in it, raised the spawn a few studs and it still gets stuck in the air…

I also renamed it as you mentioned, and it names it back to Humanoid

If I remove it, it works fine.

1 Like

Hello, Kleptonaut, do you have any thoughts on my post?

Thanks, I would like to check this feature out.

1 Like

Currently I cframe a clone of the object to the current CFrame of the object the player is standing on, disable collisions on the real object, and make the fake object invisible and anchored. I then use code to move the player along the platform.

Without the cloned object following the real object, the code to move the player along the platform WITH the current ground controller ends up moving the player forward since theres essentially 2 forces acting.

Not only that but Im looking to achieve a 99% reliable option for standing on moving platforms, which the custom code based solution ACHIEVES unlike the ground and air controller. (i could give you the code for the system if you would like)

What I would like added is an option for the ground controller to apply no movement/ inertia to the character while STANDING on moving physics parts.

anyways, ty for the reply!

The issue with not getting up after falling over is a known bug, fix coming soon.
Otherwise you have everything set up correctly, but I can’t reproduce the issue where you’re getting stuck. When this happens, what does the ControllerManager have the ActiveController property set to?

If you are already using a custom script to move the player (and floor), why do you want to use the GroundController?
The GroundController achieves it’s behavior by treating it’s contact with the floor part just like any other part contact collision. Trying to have the character not physically move with the floor is not straight forward.

"a 99% reliable option for standing on moving platforms, which the custom code based solution ACHIEVES unlike the ground and air controller. "
This sounds like the main issue here. Did you attempt this before and run into an issue where the character was not reliably standing on the moving platform, thus leading you to write a script?

1 Like

It is whatever it would default to I assume:

Also this is the size and position of the spawn part, if that matters:

As mentioned it is in the air

I noticed if I make the spawn part thicker, out of 10 plays have not seen my player get stuck falling in the air, but this then increases the amount of times my player falls down or get flung and stuck


If I turn cancollide off on the spawn, sometimes I get stuck in the baseplate falling…

(I also made the spawn scale thinner )

I a new game with nothing in it, if I set the spawn to these setting, I get stuck a lot of times in the baseplate.

This is amazing and my game needs it. Will it be taken out of beta before its added as defualt? Once performance/stability issues are dealt with please release it as an option so we can use it in our games as soon as possible.

Is there anyway we could define our own acceleration/deceleration graphs, is this what acceleration lean is for?

With any acceleration >0 theres a kick after you jump or stop moving if your deceleration is within instant

There are also random kicks whilst walking with 0 acceleration and 0 deceleration

With rigidity enabled on the running controller you jitter back and forth and slide along the ground

Don’t know if it’s a new issue, but the animations now all seem to try to blend with the idle all the time making the player look like they just experienced the horror of sitting on a school chair:

It’s strange how at first, I was looking forward to the new physics-based character controller, even using PhysicsCharacterController so characters had momentum, but now I just wish the legacy character controller wasn’t going to be replaced with this.

My experience uses (or rather abuses) the inaccurate way that the old character controller treats density (lighter objects take time/more force to accelerate, which is backwards physics-wise) to give characters acceleration without any physics-based controller moving them. I even added my own “fake momentum”, applying velocity to the player every frame they’re in the air to counter the built-in crazy amounts of air control that the player’s given.

The video below shows how smooth and nice the movement feels as it is. (I expected the rolling to break, but that’s actually the one thing that didn’t get messed up by this new character controller.

I just tried using the new character controller with it and some things messed up.

  • There’s no “running”, only walking – I use WalkSpeed to change how fast the player can move when they tap SHIFT, but the new controller completely ignores this. (I know from previous posts in this topic that it instead only reads values from the GroundController instance and maybe that’ll change before this replaces the controller many experiences depend on.)
  • The max slope angle isn’t well-respected with the new controller. In the legacy controller, you start sliding down slopes above that value, but the new controller only barely slides then stops within a split-second.
  • Obviously, this is probably because of my density hack making characters very light + my custom jump code + the new controller all affecting the player at once, but jumps are very high and can actually clip me through the floor if I jump under a low ceiling.

It’s probably been said many times across topics on the DevForums, but the way that Roblox’s developers can just introduce new stuff meant to replace old counterparts, then force everyone to adapt (and if they can’t, their game is ruined) is almost terrible. I really like how well that my “experience” feels and controls at the moment, and to know that any environment that I build for it could become incompatible when this controller replaces the old one… It’s pretty discouraging.

If a major change that risks messing up my gameplay would be forced on me way later in development, when I could have a following or community, they could assume I broke the gameplay myself instead of being aware that Roblox’s developers caused it. This is one of the downsides of developing on the continually evolving platform Roblox instead of using another engine with less frequent updates, though, I suppose…

EDIT: I just thought about it, and remembered that PhysicsCharacterController used the PlatformStanding state to take control of humanoids, similar to how my rolling puts the player in the Physics state. This means that might not break when Roblox forces this on all developers, so I could just transition back to using that module if it’s needed. :cool: