The default Roblox jump is extremely inconsistent especially when dealing with lower fps.
I am currently programming a football game and timing and jump height is very important to be consistent so that the game can be fair.
In every Roblox game by default if you swerve your character properly you can increase your jump height. Depending on how well you time the swerve, you can jump up to almost 2 and a half the normal jump height.
This applies not only to jump height but jump power too.
The lower ur fps the higher the difference is. On 15 fps the game is still playable and you’re jumping twice the normal height of done properly.
It’s not only extremely easy to do this by accident but once you learn how to do it you can do smaller increases consistently.
I’ve tried maxing the y velocity to 50 on a humanoid.jump but this is isn’t a solution because your velocity can be messed up at any point in your jump and loops are not good bc they’re with detention too.
Your velocity does change in accordance to the glitched height too. A normal jump using my system got 50 velocity roughly and a basic glitched jump was 53 which is a noticable difference. The highest I’ve seen was 61.
My game is similar to a game called football fusion and the glitch exists in that too (as does every game) but this is a really widely known glitch in that game and mine.
(Clip below) - I am not using any exploits or anything and this can be replicated in other games as well as my own.
TLDD: Roblox jump height velcoity is inconsistent with body movements especially with fps. Any fix?
Football fusion clip: (these are some examples on 15 fps)
thats just how the roblox character controller was made
there is no way around that you will have to make your own character controller if you are really worried about it
actually just caught at a good time. yeah I ended up re doing the jump it just was seeing if there was a better way bc now its quite difficult like if u wanted to change the jump power/height u have to use values or modules.
im having a bit of weird movement but its 99% good for what im doing.
if you’re interested in the code (i didnt add sound but u can if need) this was my third try doing this.
quick note: the jump height of 7.2 is roughly 52-54ish I know it says 50.145 but thats just wrong.
cooldown = 0.75
local h=script.Parent:WaitForChild("Humanoid")
local lastjump=time()
local canjump = false
local deb
local Jumpanim = nil
UIS.JumpRequest:connect(function()
if not deb then deb = true
local currenttime=time()
if lastjump+cooldown>currenttime then
canjump = false
else
lastjump=currenttime
canjump = true
local char = game.Players.LocalPlayer.Character or game.Players.LocalPlayer.CharacterAdded:Wait()
local hrp = char:WaitForChild("HumanoidRootPart")
if h:GetState() == Enum.HumanoidStateType.FallingDown then deb = false return end
if h.FloorMaterial == Enum.Material.Air then deb = false return end
if h.Sit == true then
h.Sit = false
end
hrp.Velocity = Vector3.new(hrp.Velocity.X,54,hrp.Velocity.Z)
for _, track in pairs(h:GetPlayingAnimationTracks()) do
track:Stop()
end
local animator = h:FindFirstChildWhichIsA("Animator")
if not animator then return end
local con
con = animator.AnimationPlayed:Connect(function(track)
track:Stop()
end)
con:Disconnect()
local animation = Instance.new("Animation")
animation.AnimationId = "http://www.roblox.com/asset/?id=125750702" -- Roblox dance emote
Jumpanim = h:LoadAnimation(animation)
Jumpanim:Play()
end
deb = false
end
end)
h.StateChanged:Connect(function(old,new)
if new == Enum.HumanoidStateType.FallingDown then
Jumpanim:Stop()
elseif new == Enum.HumanoidStateType.Landed then
Jumpanim:Stop()
elseif new == Enum.HumanoidStateType.GettingUp then
Jumpanim:Stop()
elseif new == Enum.HumanoidStateType.Dead then
Jumpanim:Stop()
end
end)``