(Q) Is there a way to bypass humanoid.WalkSpeed limit?

I am currently developing a game that involves increasing a player’s speed by +1 each second. However, I have encountered an issue where the player walks at the same speed regardless of whether their WalkSpeed is set to 2048(info that i found) or 20M. Is there a way to bypass the WalkSpeed limit in order to achieve the desired effect? I would greatly appreciate any advice or suggestions on this matter.

Thank you for your time and expertise.

The first thing that came to my mind would be writing your own walking code, maybe see LinearVelocity? (There might be a better way to go about writing walking code) Regardless, there is probably some limit to the physics engine so watch out for that.

1 Like

I think the real issue is that you link the in-game speed value with the WalkSpeed directly. Instead, you should have a different value for the in-game walk speed(for example an integer value) and increase that, and every time it changes throw the value into a function that calculates the actual walk speed and set that as the humanoid walk speed.

1 Like

Sorry I not really understand the idea. Would it be possible for you to provide me more info or leave some links? Here is my script and if I got you right that should work well:

function module.AddWalkSpeed(player, amount)
	
	local profile = module.Profiles[player]
	if not profile then return end
	
	local character = player.Character or player.CharacterAdded:Wait()
	local humanoid = character:WaitForChild("Humanoid")
	
	local BONUS_AMOUNT = 0 
	local WINS_BONUS = .1
	local PREMIUM_BONUS = 1
	local FINAL_AMOUNT = 0
	
	FINAL_AMOUNT = amount + (WINS_BONUS * profile.Data.Wins)
	
	if player.MembershipType == Enum.MembershipType.Premium then
		FINAL_AMOUNT += PREMIUM_BONUS
	end
	
	profile.Data.Speed += FINAL_AMOUNT
	player.leaderstats.Speed.Value = profile.Data.Speed 
	humanoid.WalkSpeed = profile.Data.Speed
		
end

I’m using profile data saving so when I’m using “profile.Data.Speed” I mean saved value of speed that player is holding right now.

1 Like

If we assume the WalkSpeed equation is speed/20:

player.leaderstats.Speed.Value = profile.Data.Speed
humanoid.WalkSpeed = profile.Data.Speed/20

Also ensure to try many equations for calculating walkspeed like linear, logarithmic, etc. and test them with multiple values to see if they have the behavior you’re looking for.

The reason I think that’s the issue is that setting the actual WalkSpeed to 20M would just teleport the player almost infinitely studs away from the map when they pressed a button which doesn’t look ideal to me(basically I’m recommending you to lie to the player and tell them they have speed 20M when in reality it’s for example 120).

3 Likes

Ohhh that’s makes sense! Thanks a lot. But I still have one question more: so there is no way to bypass Roblox walkspeed limit?

What’s the point of doing so? I assume as others mentioned you could use hacky ways like adding huge velocities to the player that “pull” them with huge force towards the direction they’re running to, but solutions like this would probably just create a bunch of new issues.

1 Like

I was interested to increase limit to like 10k but anyways really thanks to you! Gonna rewrite my script now

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.