Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Could I have some help with a script that automatically kicks someone if their speed changes?

So here is the portion of my anti-cheat that has walkspeed

local Player = game:GetService("Players").LocalPlayer -- gets the player
local Char = Player.Character or Player.CharacterAdded:Wait() -- gets their character
local Hum = Char:WaitForChild("Humanoid") -- gets the character's humanoid

Hum:GetPropertyChangedSignal("WalkSpeed"):Connect(function(Speed) -- If the walkspeed changed the function fires
    if (Hum.WalkSpeed >= 51) then -- if it's greater than gamepasses can buy it
	    local ban = game.ServerScriptService.AntiSpeed.Ban -- sound for added effect
	    ban.Play()
	    wait(0.584) -- length of the sound
        Player.kick(Player.." your speed is too high! As a result, you were kicked.") -- kick script
    end
end)

I have also tried putting it in a while true do

while true do
	Hum:GetPropertyChangedSignal("WalkSpeed"):Connect(function(Speed)
    if (Hum.WalkSpeed >= 51) then
	    local ban = game.ServerScriptService.AntiSpeed.Ban
	    ban.Play()
	    wait(0.584)
        Player.kick(Player.." your speed is too high! As a result you were kicked.")
     end
 end)
end

If anyone could help that would be highly appreciated. This is in a normal script put in ServerScriptStorage. FE is off.

6 comments

0

Player.kick has to be Player:Kick(Player.." your speed is too high! As a result, you were kicked.")

0

Thanks! I just realised I did the kick wrong! Post it as an answer and I can get you the reputation!

0

Player.kick has to be Player:Kick(Player.." your speed is too high! As a result, you were kicked.")

0

I'll just test it in game and then if it works then I will accept the answer!

0

Wait, I see the problem. You cant get local player from a server side script.

0

oh could you fix it then?

1 answer

You have to use:

Player:Kick()
--instead of
Player.Kick()

This is because Kick is not something of the player, but an action. And you cannot get local player from server script. Use this:

game.Players.PlayerAdded:Connect(function(plr)
-- your things
end)

6 comments

0

u mean function, right?

0

Well kinda something.

0

"Kick is not something of the player"

0

Why does this have one down vote? I'm going to upvote it because it shouldn't have a downvote at all, what he's explaining clearly makes sense.

0

Upvoted.

0

Thank you :).

This discussion is preserved as it was. New answers, comments, and votes are closed.