Beta Character Controller long jump, wall hop and ladder flick fix

Recently, Roblox released a new beta feature called the New Character Controller. This has broken long jumps, wall hops and ladder flicks, however, which will negatively impact the Obbyist community. I have created a fix for this, however. It doesn’t completely revert the physics, but it does make long jumps, wall hops and ladder flicks possible again. You may copy and paste the code into a local script in StarterCharacterScripts, or you can keep reading to learn how it works (which I recommend). It would be nice if you could credit me if you use this, but you don’t have to.

-- written by Plasmacticus


local maximumDif = 0.05 -- change this to time in seconds for whatever you want

local rs = game:GetService("RunService")
local uis = game:GetService("UserInputService")

local lastTimeOnGround = 0

local humanoid = script.Parent:FindFirstChildWhichIsA("Humanoid")

rs.Stepped:Connect(function()
    if humanoid:GetState() == Enum.HumanoidStateType.Running or humanoid:GetState() == Enum.HumanoidStateType.Landed then
        lastTimeOnGround = os.clock()
    end
end)

uis.JumpRequest:Connect(function() -- you can enable and disable that if you want to make it so you can toggle between with and without the patch
    if os.clock() - lastTimeOnGround <= maximumDif and humanoid:GetState() ~= Enum.HumanoidStateType.Jumping and (humanoid:GetState() == Enum.HumanoidStateType.Running or humanoid:GetState() == Enum.HumanoidStateType.Landed) then
        humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
    end
end)

So my original concept was to create a solid platform underneath that disappears a set amount of time after leaving the ground. It didn’t work, but then I thought of making you jump in midair instead of making a platform underneath you.

Every frame (I don’t know if .Stepped would make a difference to anything else in this script but I chose it because it was right before the physics simulation), it will check if the humanoid’s state is running or landed. These mean the player is on the ground. It will set the lastTimeOnGround variable to the current time, so then when you jump it can get the difference between now and the last time you were on the ground.

Next, whenever you press the jump button, it will check if the current time subtract the lastTimeOnGround variable is less than or equal to the maximumDif variable, which is how long you want to be able to jump for after leaving the ground. It will then make you jump. However, there is a slight problem with this. It will make you jump twice as high when on the ground. This is because it will make you jump twice. So we need to check if you are on the ground or not. If you are, it won’t make you jump. If you aren’t it will. But you also need to make sure it doesn’t run when you’re mid-jump. So you also check if the humanoid state is jumping.

Video showcasing the script: - YouTube

16 Likes

Were you experiencing these techniques were broken by only enabling the beta and not using the ControllerManager? There should only be differences when using the ControllerManager instance, the beta alone should change nothing.

Considering that, does that mean that you don’t intend to fully patch obby glitches like wall hops and ladder flicks?

Also, to allow those, what changes would you need to make? i.e. how would you go about managing the ControllerManager as that was not really touched on the announcement

I don’t know if I have enough context to answer that question. Our goal with the beta is to identify what’s broken, if we can address it, and how.

We can only do this if people actually report and explain the issues.

The annoucement explains how to get yourself set up with using a ControlleManager, and has links to API references. Is there a step you were stuck at?

Broken meaning, undesirable behaviour, correct? Most of the proportionally limited amount of games that use r6 wouldn’t want these glitches have little to none areas to do them on - so there would really be no reason to such things.

Since nearly the beginning of Roblox, obbies have existed. People such as me have spent years bettering themselves in platforming on Roblox. Obbying really started to take off in 2018 when Kiddie_cannon released Kiddie’s Tower of Hell (KToH), and a game co-owned by him called Tower of Hell, which is now one of the most popular games on Roblox (albeit much easier). Tower of Hell, while extremely easy to most obbyists, has acted as a gateway to the obbyist community, with a technique known as “ladder flicking” and “wall hopping” becoming a vital technique for speedrunning this game. How they work is when between two parts vertically stacked on each other, you flick and hold jump right when your feet are between them. This also works on ladders. Unfortunately, the new Character Controller has now made this impossible (although you are still able to flick between them and land).

Juke’s Towers of Hell (JToH), a continuation of KToH after it got shut down, was made by KToH’s co-owner. Its old place under the account Jukereise had 59.8 million visits, and the new place has 8.9 million. This was done in 2022 to move the game under a group. 10467429 people have won the badge you obtain for playing the game, and 909467 have obtained the badge for the migrated place. This shows how many people still play the game to this day. As of writing this post (20:34 GMT+1 on 6/10/2022), it has 397 concurrent players. Looking at this game’s Rolimons page, it has peaked at over 900 players on October 1st this year. This is just one game. There are countless others, which utilise this technique we have practiced for several years. And that’s not to mention “long jumping” is now impossible too.

Before, we could jump over a 13 stud gap. Now, we can’t even jump over 12. Each “tower” in JToH has been carefully crafted by its community, some taking months, or even years to make each tower, and put through a harsh review system. Modern JToH towers aren’t your standard “hard” obby. Each jump is interconnected with the next, and you can’t just make the jumps shorter. That would ruin the structure, firstly. Secondly, this would be an extremely difficult process, considering there are hundreds of towers in the game so far.

It is in the best interests of thousands of Roblox players to keep these techniques in Roblox. Without them, years of progress will be lost in both skill and building, and will also make some obbies impossible if the owner does not update them. The entire obbying community is in your hands.

8 Likes