Hip Height anti-exploits

Hi, I was made aware of the Hip Height property of the Humanoid being vulnerable to exploits not too long ago. I was wondering what the best is way to detect and kick the exploiter.

This type of exploit can really give exploiters an advantage over the game as they can simply walk across the map to the win part:

What would be the best way of detecting Hip Height changes? Detecting suspicious physics in the server-side or firing a remote from the client that directly detects changes in the property? Any advice or tips is appreciated!

This might not be efficient but connect a remoteevent, every 5 seconds clone a localscript to the player and make the localscript quickly send the hipheight, if it’s higher than zero kick the exploiter.

I’m bad at making anti exploits

Value = 5 -- value to be kicked

game.Players.PlayerAdded:Connect(function(plr)
	plr.CharacterAdded:Connect(function()
		plr.Character:FindFirstChild("Humanoid"):GetPropertyChangedSignal("HipHeight"):Connect(function()
			if plr.Character.Humanoid.HipHeight > Value then -- if hipheight is higher than value then kick
				plr:Kick()
			end
		end)
	end)
end)

you can do that, just make sure to put it in serverscriptservice

1 Like

Exploiters change the property on the client which doesn’t replicate to server so this would be useless

1 Like

@legs_v That’s right, anything like a property on which changed in client won’t get replicated to the server

That’s why my idea popped up.

1 Like

A good way would be to raycast down from the humanoidrootpart and if the floor is more than a certain distance over the floor for an extended bit of time kick the player

this would also patch most fly anti cheats

also if the player completes the stage in less than like 3 seconds thats a dead giveaway that they were hacking just kick them

1 Like

What if the player has jumped? (kicked for jumping)

Jumping only lasts for around 2 seconds so if they were in the air for over 5 seconds thats a giveaway

1 Like
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")

humanoid:GetPropertyChangedSignal("HipHeight"):Connect(function()
	if humanoid.HipHeight < 0 or humanoid.HipHeight >= 5 then
		player:Kick("HipHeight not in possible range.")
	end
end)

Local script, although it can be deleted from the client’s perspective.

2 Likes

Ahh, I see, my bad… 30 krzzzzs

made a typo at line 1 → game.Player[s]

Appreciate it, promptly corrected.

2 Likes

Put the anti exploit in a critical clientsided script, like movement. Not much people think about this, nor do exploiters really, because their hidden well + the exploiter won’t be able to even play if they remove it using dex!

Yeah but they can replace it with the normal walking system. ez pz

Or even remove that line of code

Put it in a critical function then >:)

not remove it unless they make a new script
they can and will more likely just hook it so that it always returns an ok value

No difference . Replace scripts (yawn)

Bruh

ok serversided it is i guess

You’d have to make sure every single building can’t make the player fall for over that amount of time then.

Just use @legs_v 's solution. It will most likely work