I think that the approach you’re taking is not a good one, and I feel that you should mark a solution to the thread and move on. This thread is attracting a lot of replies which, in the end, get you either nowhere or backwards. Here’s why:
Number 1: You cannot stop stealers
In any online game, certain information has to be sent to the client in order for it to construct something useful for the player to view. You can’t stop them taking this! They literally have a copy of it, in memory, on the client. They can do what they want on their machine, so they will. There is no foolproof way to stop them.
Number 2: The client is restrictive
From a stealer’s point of view, all they can see is what is delivered to them. They don’t have some magic connection to the server to get all instances there, so there stuck with everything client sided.
It just so also happens that, for security, the client is locked down in what it can do.
You are limited in what APIs you can use, wether you can use HTTP service to remotely connect etc. You are severely limited in what you can do. Along with this, even if you insert a script, it will only run on the client, making it possible for the actual game to still exist, even if the client crashes. Localscripts do not affect the server, nor anything on it (without severe security compromises).
So, the exploiter can only clone the client, your “virus” will only control the client, leaving it pathetically limited,
Number 3: Reliance on obscurity
Security by obscurity is always frowned upon, and this is a classic example.
When a stealer clones the place, they obtain a place file, that the can then use to access everything their client could see.
So much as a tiny investigation into your scripts will reveal what you tried to do, and allow them to remove it. Deleting one script is all it takes for them to bypass your entire system.
A few of the solutions have tried to hide the code using loadstring
or script obfuscators. This is another classic example of security by obscurity. Apart from the fact that loadstring
doesn’t even work on the client (refer back to point 2), a few seconds of investigation into what it does will render you fully “busted”, and get the code removed by the stealer.
I hope this summed up why this thread is not going to help, and as to why it should be closed now. I stated in another post that patchy or “band-aid” solutions, like this, rarely to never work. You’re trying to plug a river with toilet paper, and it’s just going to lead to wasted time and effort.
I suggest you move on now, and forget about trying to make this virus.