New Humanoid Physics Controller - Beta

That would be a combination of Gravity and JumpPower.

Nope. Even when BalanceMaxTorque is set to 0, it has some insane infinitely-strong gyro behavior that makes it impossible to rotate the craft.

So it’s impossible to use a GroundController to solely create a hovering force.

Model: Hovercraft.rbxm (10.1 KB)

When is this planned to come out? It’s almost been a year

1 Like

One troubling problem is the NetworkOwnership handling of the JumpController properties, it’s extremely difficult to not just use Humanoid exclusively, when the client is basically unable to jump with a character that’s :Cloned() on the client.

My main purpose of entirely using the ControllerManager on client would be to benefit from the better physics handling, especially for a tutorial stage where all the players will be invisible from one another, sharing the same space. This also benefits the game experience by not having to teleport players to different locations, or solo experiences.

Placed within a default StarterCharacter, I copied and pasted both the GettingUpController, and RunningController, from an instantiated Character. Both of these are only spawned during runtime. With the StarterCharacter having all of the ControllerManager dependencies set as the children, the “TutorialCharacter” is locally instantiated.

Using the PlayerScriptsLoader, I instantiated our local player without using the server’s :LoadCharacter() command.

	PlayerScriptsLoader - This script requires and instantiates the PlayerModule singleton

	2018 PlayerScripts Update - AllYourBlox


local tutorialCharacter = game:GetService("StarterPlayer"):WaitForChild("StarterCharacter"):Clone()
tutorialCharacter.Parent = game:WaitForChild("Workspace") tutorialCharacter.Name =  "TutorialCharacter"
local tutorialPlayer = game:GetService("Players").LocalPlayer
tutorialPlayer.Character = tutorialCharacter
local tutorialAnimate = game:GetService("StarterPlayer"):WaitForChild("StarterCharacterScripts"):WaitForChild("Animate"):Clone()
tutorialAnimate.Parent = game:WaitForChild("Workspace"):WaitForChild(tutorialCharacter.Name)
tutorialPlayer.ReplicationFocus = tutorialCharacter:WaitForChild("Humanoid")

The result is a character that can’t jump, oddly. Almost everything else works as intended. Everything’s properties are default!


I’m having a similar issue with characters that aren’t loaded via LoadCharacter (custom rig), or loaded via StarterCharacter. This is the only thing preventing me from using the (otherwise amazing) new character controllers in a playtest :frowning:

1 Like


The ControllerManager and Controller instances are scheduled to release in two weeks.

As mentioned before, we are doing some revisions on how the ControllerManager and Controller instances are used. These are to further remove any dependency on the Humanoid in order to prepare for the more advanced and customizable movement systems coming over the next year.

This means the ControllerManager-Humanoid override will stop working. we are instead going with an option where the Humanoid physics can be disabled independently, and the Controller instances can be used independently.

These changes will become active in this Studio beta next week, Tuesday Sept 5. The steps to opt-in to the Controller instances outlined in the post will not work.
Instead, you’ll need to manually disable Humanoid physics and state machine (property coming for this) and hook up the ControllerManager yourself.

This is still a temporary step, over time more tools and implementations will be available which will require less work to set up. There will be more info in a separate announcement with the full release of these instances happening mid-September - looking forward to seeing you try stuff out then!


What’s the point of this reply? This behavior isn’t live yet.

On another note, this update is totally unusable. You cannot jump with R15, and R6 is stuck in the ground on almost every launch.

1 Like

Why can’t you read what I posted. If you enable the beta feature, then the new humanoid controller is used by default. Do not manually add a ControllerManager. Because that no longer works. It’s not that it “isn’t live yet” - that method no longer works.

Being stuck in the ground is a symptom of not reading, it means you put a ControllerManager in the StarterHumanoid despite being told that no longer works.

1 Like

So what is the intended method for setting up the controller manager atm?

Or is it just basically a finnicky workaround currently and I should just wait till the new properties relating to disabling humanoid physics are implemented?

This is a really great feature, please go online as soon as possible,


This has a lot of potential, I’d love to see any updates :+1:

1 Like

this is sadly the only reason I can’t use this is in my game :frowning: otherwise it feels so smooth

When I load a character via LoadCharacterFromHumanoidDescription, the character becomes unable to jump at all, no matter how I tune the values,

1 Like

It’s mid-September now, any ETA?

1 Like

it’s only been 4 days shy of 2 weeks

1 Like

Hope with this coming out this month, there will be some re touches to the PlayerModule and the player controllers in the far feature