Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
3

[FE] How do I detect if a script is deleted on the client?

Asked by 7 years ago
Edited by OldPalHappy 7 years ago

I'm making an anti-exploit that supports FE games(yes, players can still exploit their walkspeed, etc) and I'm trying to find a way to detect a deleted script on the client.

It won't allowed to do this:

-- Server script

player.PlayerGui.OliviaMain.ChildRemoved:connect(function(Change)
    if Change.Name == "Olivia Client Control" then
        warn("Nice try")
        ModeratorAction(player,"Exploit","Tampering with Olivia Client Control")
    end
end)

Which I'm assuming because the server is interacting with the client. Is there any way around this? Any script detecting deleted scripts on the client can just be deleted.

0
I don't think you can detect if the client deletes something on the server because the changes don't replicated to the server. You can only check on the client, but then those scripts could be deleted. I guess you could make a script that fires "OK"s to the server so the server knows the script still exists. But really good question! OldPalHappy 1477 — 7y
0
You can have a script on the client, or fire a remote event from the client every time an instance is removed and check from the server NewVoids 97 — 7y
0
Maybe have two client scripts watch each other, so the only way to get past the system would be to delete both the scripts at the exact same time :P OldPalHappy 1477 — 7y
1
I'll try making a script constantly fire OK. Thanks! CherryLeaves 32 — 7y
View all comments (3 more)
0
I don't really know about filtering enabled but I think this might work if FindFirstChil("script") then shabbs15 67 — 7y
0
What if you made each script on the client depend on each other? This way if a client's script cant find a dependency you can either try to fix it or kick the player. AZDev 590 — 7y
0
RIP just saw old happy said the same thing in different words. AZDev 590 — 7y

1 answer

Log in to vote
0
Answered by 7 years ago
Edited 7 years ago

Actually if I am correct a script can set it's own parent to nil and continue to run. I don't know if this works for localscripts but you could try:

script.Parent=nil;
...

Now if this doesn't work or isn't enough you may want to (in addition?) try making the script not archiveable.

If that doesn't help then hopefully this will:

Make the script send pings to the server every second or faster. The way you could do this is with FireServer events and such, as well as having another local script that has an event bound to the main script being modified, same thing for the other script, Just keep them in separate parents so you can't delete both at the same time.

If you want to go even bigger, you could obfustacate your scripts, and variable names to make it harder to inject code and know what scripts to attack.

Hope this helps, sorry for any errors I'm on mobile and haven't tested local scripts using the nil parent method.

Ad

Answer this question