To sum it up, starting script checks if player is exploiting, fires event, event kicks player with reason, and what exploit was used.
Starting Script:
local player = game.Players.LocalPlayer
local humanoid = script.Parent.Humanoid
local event = game.ReplicatedStorage.Events.exploitpossible
local exploitType
local check = 0
local tf = false
while wait(1) do
if humanoid.WalkSpeed ~= 16 then
if tf == false then
exploitType = "speed"
exploitType2 = "speed"
event:FireServer(exploitType, player)
check = check +1
print(exploitType, check)
wait(5)
tf = false
end
end
if humanoid.JumpPower ~= 50 then
if tf == false then
tf = true
exploitType = "jump"
exploitType2 = "jump power"
event:FireServer(exploitType, player)
check = check +1
print(exploitType, check)
wait(5)
tf = false
end
end
if humanoid.parent.HumanoidRootPart.CanCollide == false then
if tf == false then
tf = true
exploitType = "noclip"
exploitType2 = "noclip"
event:FireServer(exploitType, player)
check = check +1
print(exploitType, check)
wait(5)
tf = false
end
end
if check == 3 then
game.ReplicatedStorage.Events.Kick:FireServer(exploitType, player)
break
end
end
Kicking Script:
game.Players.PlayerAdded:Connect(function(player)
game.ReplicatedStorage.Events.Kick.OnServerEvent:Connect(function(exploitType)
player.Info.kicks.Value = player.Info.kicks.Value +1
player:Kick("You have reached 3 exploit warnings. If you continue to exploit, you will be banned. Reason for exploiting:"..exploitType..".")
end)
end)
