Those are done by different teams. That’s like asking your plumber why they aren’t fixing your light switch
Oh great Roblox developers, Thank you for this update and saving me from eternal misery
Awesome to hear we’re finally moving away from the previous hard-coded character controller!
Why does this update feel more like a wrapper of ControllerManagers except for humanoids? Idk, good update for others I guess
I still think this is comparing apples to oranges.
When a critical asset doesn’t load, at least you can write code that detects something failed (GetAssetFetchStatus), and then do something to prevent anything else from breaking. I’ve worked on projects that had a requirement to kick the client out if they couldn’t load some critical animations in time, because otherwise the game would literally be unplayable.
If your code can’t load, there’s not even a fighting chance to know if anything went wrong. The game would continue in a zombie state, and players would be none the wiser, thinking it’s either intentional or a bug from the developers. We don’t want that possibility.
Knowing only the server needs to load the library is a little relieving, but I want an atomic guarantee that the server won’t even let people join if it can’t grab it in time, because having to rejoin is much better than joining a broken server.
yeah, this only works if you can rebind it back to shift and remove sprinting altogether, or else it is going to RUIN obbying/tower games like Eternal Towers of Hell (just an example, this only affects new places but theres no new obbying games that use this new character controller)
although, im curious whether this new controller will be the default for the classic baseplate as well? or if its just for templates and the modern baseplate.
just one keybind change can make or break whether somebody has to relearn an entire skillset to accommodate for the new key position
How interesting.
I am curious though, with the shift away from humanoids, how will you handle clothing and accessories? As far as I’m aware, they only work on rigs with humanoids in them.
Honestly, I’m actually beginning to like this! This saves me loads of time for adding hiding under tables to my game, since I planned to allow the player to crouch under them, but there’s currently one problem. How do I remove sprinting? It’s not something I want in my game.
Edit: You can just use this script:
local Abilities = script.Parent:WaitForChild("Abilities")
local ToggledKeynames = {"Sprint",}
for _, toggle in pairs(Abilities:GetChildren()) do
for _, word in pairs(ToggledKeynames) do
if toggle.Name:find(word) then
toggle:SetAttribute("Enabled", false)
end
end
end
![]()
Anyway, how do I check if I’m crouching or not? I need my camera to move when I’m crouching since it’s a first person game
I think that a code block would be welcome here
This, my friends, is what light mode does to people.
Somebody has also stated that it appeared in light mode for them, who uses dark mode. I recommend you check their comment as it proves that Roblox is attempting to enforce updates from this point forward.
Just to be clear, is this basically exposing the humanoid code for us to modify? So that we don’t have to fight it when creating custom character systems? If so, that if so huge for me, for the longest time, ive created multiple character controllers with limited success because i would have to constantly fight against the humanoid behavior even when its state machine was turned off.
How can I add disclusion for this?
![]()
I pressed C while crouched.
Why do the arms move like this where they come from the back of the spine? ![]()
I had to drag the rbx folder out and replace all the "@rbx/AvatarAbilities" just because I wanted to turn a boolean to true
Oh this is not annotated to return the AbilityManager and because there’s idk what returns, the Type Inference doesn’t recognise it.
![]()
![]()
I got mislead by the example script, there is no AbilityManager being returned.

![]()
Why does it not find the declaration?
![]()
Oh, it doesn’t know what "@self" is.
Please, fix!
Oh, wait it’s worser, because it leads to a type… it has no reference to the imlementation ![]()
Can we just use type inference. Association the type with the implementation is important. Else it sucks.
The user documentation doesn’t work yet unless you typeof it as a function
![]()
The example experience disabled the new type solver ![]()
Interesting Roblox Lore.
![]()
I don’t like this icon
![]()
This is better, but now there’s no autocomplete for :Connect and I am sad. ![]()
Roblox, please fix, thanks.
Though now without the ability manager being returned, how do you add an anything without forking… ![]()
Okay, I only read like 5 seconds, so I am just going to do this to fix the issue.
Alright, now it is returning the abilities
I also realize this is not the Lua Character Controller. This is just Abilities, that the Lua Character Controller is using. That’s why DebugAdorns is there without context.
![]()
Today, we will be renaming the label "canFallDown" to "canFallDown2". Unfortunately, the string is not at an unified location. ![]()
I think like this:
abilityManager:IsAbilityActive("Crouching")
You maybe don’t want to add the way the crouching works from this though. There’s no hitbox, it’s using the limbs. Which is an unreliable hitbox.
And hitboxes for the avatar with all the controllers on Roblox can still not touch the floor. ![]()
YESS PLEASE
I will nuke all humanoid logic from my game once it becomes a thing
Its just so sad that you cant display humanoid shirt and pants without humanoid’s upscaling due to filtering
can you like stop talking lol hating on anything and everything, just let it happen lmao
Where is Humanoid::autoTurnSpeed ![]()
Where is the visual functional parity? Not “parity”, even closer to that.
What’s shown in that video has definitely not already existed. You have to use hacky workarounds, for something that should be built into the platform. This is by far best change so far for 2026 very exited to use ![]()
The argument of “Roblox should put more time into (x) instead of this” never makes sense. Typically two separate teams. People working on moderation are certainly not the people working on physics based systems such as avatar controller objects.
People working on moderation do not need advanced backgrounds in physics. Avatar controller people do.
Two entirely different teams with two entirely different mindsets with two entirely different goals.
Working on this does NOT effect another team who is in parallel working on moderation things.
Roblox should stop putting time into Luanoids and removing the usage of Humanoids and R6 in normal gameplay. This project continues the Avatar Evolution project with the same State Controllers from years ago. On top of having the same bugs from the 2021 beta with a janky, unmatched, broken controller, they seemingly cannot improve by providing incorrect documentation in the code as forementioned, promising 5 year old bugs will be fixed, and having a history of deception on this project.
Their time is spent better elsewhere.
They should be providing the same security updates R15 receives with R6 against exploits, providing optionality in expression instead of forcing systems over and seemingly being incompetent to replicate a 20 year old system, and should embrace the community instead of pushing it into a Fortnite My Sims mash where we’re to become as real as our avatar is by making it look like us in real life.




