I read a topic on the forum discussing about how to prevent people from stealing games, and someone mentioned to make a script that kicks a player for high memory usage.
I am needing a script like this because recently i’ve been being targetted with threats of my game being stolen and leaked “all over the roblox black market”, and i don’t want my ai rig to be leaked.
I have no knowledge how to replicate that, so hopefully i can get some assistance with this one.
Thank you for any assistance you may provide to me.
I think this thread should help you understand this subject, as the question is very similar to what you’re asking.
To summarize from the thread linked above: there is no concrete way to prevent place stealing. If the hacking community has proven anything, it would be that any form of prevention measure can be bypassed. What I suggest you to do is submit a DMCA claim for anyone trying to upload your place instead. It’s much more effective than creating a script to potentially mitigate place stealing.
I will add that I have not seen any exploit that managed to gain access to server side scripts and the like, so if your game depends on server scripts, there shouldn’t be much worry. The only possible way for someone to gain access to server scripts (as of writing and my knowledge) is to either backdoor or gain access to your place.
1 Like
DMCA is a reasonable SOLUTION, but there could be a case of someone spreading it to others who then leak it to others, and the cycle repeats. I’ve seen other games kick players for high memory usage, so it’s definitely possible to create that script somehow
I’m not saying it’s impossible. I’m saying it’s impractical because as soon as that check is implemented people will bypass it eventually. There are potential mitigation efforts such as checking memory usage (which can be spoofed by the client), blacklisting known exploiters, and the likes. But the core issue always remains: there is always a way to bypass it.
I don’t think any uncontrollable method of stealing somebody’s place exists, else it would be a serious security flaw on Roblox’s behalf. I wouldn’t have any idea where to start in order to script that either; I can only suggest you just be careful with who you share your work with. If you’re working on your own and you don’t use any shady free models, I highly doubt anybody can leak your game.
Exploits do allow for client replicated objects such as models, local scripts, and anything the client sees to be taken. There’s no real way to prevent stealing what has been sent to the client. Anything on the server should be impossible to take unless given access to through some means AFAIK.
Each time ANY player enters your place, they are stealing the place. ROBLOX sends the place to the player. The player downloads the place. If they didn’t, then they would be unable to play the place, because they would have no place to play.
The difference between a player playing the game and a hacker downloading the game is that the hacker can save the place to disk after receiving it.
You cannot detect the hacker saving the place after receiving it, other than with deep clues like memory usage.
This is similar to watching/streaming a video from YouTube. There is no native option to save the video. The video is streamed to you and then discarded. However, specialized tools will download the video - just as you do when you are watching normally - and then capture the video and save it.
It stops them for a bit, and that’s atleast good enough. Some skids probably wouldn’t know how to bypass it. Is there some way for me to learn how to check memory usage?
I’d imagine that if you really wanted to, you could go look here at the Stats class and use something like Stats:GetTotalMemoryUsageMb().
Also be sure to get the client values, not the server ones. Don’t want to trigger false positives like that.
What’s a reasonable memory usage to be kicked at?
Depends on how much content is being streamed to the client. I would go into your game, get into a resource intensive area, go into the F9 menu, and then note the current memory usage you’re at. If it were me, I’d increment by around 500 to see where the sweet spot is. There is no perfect amount for every game, so you’re gonna have to figure that value out yourself.
Note that a hacker can still stop the script that checks the memory usage, which makes the script unable to kick the player (or tell the server to kick it). But 50% of place thieves will be stopped by this… which isn’t 100%, so the place will be stolen anyway.
If you make the script ping a remote every now and then to verify that it’s still running and hasn’t been stopped, then the thief can just stop the script and ping the remote himself, so it’s not possible to tell that the script is gone. But it will still stop another 50% of thieves (a total of 75%)
A really determined and angry thief will bypass anything you throw at them. There’s three kinds of super determined thieves, the ones that will keep it unreleased and brag about having it and show screenshots proving it; the ones that will hold it for ransom; and the ones that will release it immediately to spite you. So that’s another 33% reduction in the chance that the place’s builds will end up public (83% of thieves stopped?)
But worrying about making that 100% will kill you and stop you from just making a good game.
So don’t worry about it.
This is what I was arguing in my other posts. OP wanted to attempt to mitigate the potential efforts given by people who were not as experienced, and I provided a way to do that. That being said, I agree with the fact that someone will eventually bypass anything.
1 Like