Hi! I made a script that checks for the presence of an unknown item that was added only on the client side.
The client script that is located in StarterPlayerScripts:
local Event = game.ReplicatedStorage.CheckAdd
local Player = game.Players.LocalPlayer
Player.CharacterAdded:Connect(function()
wait(5)
Player.Character.DescendantAdded:Connect(function(child)
Event:FireServer(child)
end)
end)
- CheckAdd is RemoteEvent
The server script that is located in the ServerScriptService:
local Event = game.ReplicatedStorage.CheckAdd
Event.OnServerEvent:Connect(function(plr,child)
local tool = false
for i,v in pairs(plr.Character:GetDescendants()) do
if v==child then
tool=true
end
end
if tool then
warn("tool was added from server side")
else
plr.Character.Humanoid.Health=0
warn("tool was added from client side")
end
end)
- Video how does it work:
If the item was added and the local script saw it, it will send the instance of the added item to the server side for checking and if the server script does not see the added item, then it will kill the player. But there is one problem that the exploiter can disable or remove the local script. Can i somehow make it so that the exploiter could not disable or remove the local script, or find out in some other way on the client side the item was added and send the instance of the added item to the server side for checking and so that the exploiter does not know this?