Can exploiters delete Scripts (not LocalScripts) from the workspace?

I know they can’t read it, but I’ve read that they can delete scripts from their character (I’m presuming that is because it’s in their client) but if the character in the workspace is in their client and when they delete it or the scripts it replicates then does the same happens with things/scripts in the workspace?

4 Likes

They can delete the script in workspace but because scripts run on the server (as a “Server script”) it would not harm the function of the script at all.

ie Yes they can delete the script object but the code will not be hindered.

3 Likes

You mean it would not be replicated?

If you mean scripts as in standard server scripts, the code is only run on the server. So even if they destroy the script instance, it won’t affect anything since the code is being run on the server. So if you had a server script moving a part every second and the exploiter deletes it, the part would still move.

The part would still move for others but not for the exploiter though right?

No the part would still move even for the exploiter because the code itself is not ran on the exploiter’s client

Why didn’t you test this out on your own?

You could’ve run a server-sided script, delete it from the client and check the result. Please avoid doing this again.

Uhh I just didn’t want to download any exploits…

You don’t need to. Roblox Studio is an thing.

Also, you do realize that this is the section where you ask for help and ask stupid things right? “Please avoid doing this again” is basically saying please avoid asking a question an go figure it out yourself, which I obviously tried, I only created this post because I was confused.

4 Likes

In the about page of the #help-and-feedback:scripting-support category, it clearly states that it (The post) should rather mention if you tried something. It was very clear you could’ve done something to get the solution to this.

You don’t need to. When you run test you have the client and server at your disposal.

It cannot be used to replicate every exploit, but it can tackle a lot of simple client manipulation to determine how much control the client has over your game.

To clarify my answer to your initial question:
Think of the code running on a server script as code inside of a separate game.

The client has its own version of the game to work with. The local scripts are what are used to communicate with the server (the other “game”) and that “game” sends that information to every other client.

The client can delete the moving part or make scripts against the moving part, but the script that moves the part will be unhindered, meaning the brick will still move the same way on every other client because no information is being sent from the exploiter to the server.

The script object can be removed locally, but scripts that are not local, typically run on the server, meaning that exploits cannot manipulate the code in any way. They can only – on their own screen – manipulate the objects that the script may manipulate.

ie If you are trying to make a part spin, an exploiter can make it spin the other direction, delete it, or make an entirely new one but it will only happen on their screen (their “version of the game”).

8 Likes

If this makes you feel better: I haven’t tried any solutions yet as I didn’t know the options without an exploit.

2 Likes

Oh so SSSpencer413 was actually not right in the sense that he said the code would still be the same for the exploiter on their end if they deleted the script which yeah I thought was a little bit off too.

In studio, you will find a section called “Test”. This creates a server and a client (or multiple clients) which you can use to test if the client has too much power.

https://gyazo.com/6ea54c5d1a93e7a3104d7fe0fa3bafc8

This is how ^
Don’t mistake “Play” for that, it works differently.
You can delete objects in the client’s workspace or scripts or test whatever and it would have a similar result for exploiters.

1 Like

The code would still be the same. I’m just saying the exploiters can manipulate the object that the code targets on their own screen.

While the code would be the same, nothing stops the exploiter from simply deleting the part in their version of the “game” (the client).

If for example, an exploiter deletes a script that is meant to kick someone from the server for doing a or b, then if they do a or b they will still be kicked because the code in the server is unaffected by the client.

However, if a code specifically targets an object that can be manipulated by the server (ie a spinning brick) then the exploiter can simply delete the part.

Actually it would still happen the same way. The code would still be the same for the exploiter because the exploiter never gets the code. As @Lametta said, you can make scripts against the moving part or delete the moving part, but the code will still run the same to the exploiter as it would for any other player (do note, however, that deleting the part that moves would obviously cause the exploiter to not see the part while everyone else does see it - but you are talking about deleting the script not the part)

Basically - deleting a Server Script does nothing for the exploiter. Nothing will change. you can test this by testing in Roblox studio as the client and deleting a server script - there will be no difference in functionality

1 Like

Ok got it thanks, but what if he deletes the script that is spinning the part, my hypothesis is that the it stops spinning only for the exploiter, is that correct?

Ah, ok got it, so actually it wouldn’t change even for him.

what about the exploiter deleting a Script inside its character (notice, not a localscript)