You can’t prevent it from being stolen. It’s basically impossible, there are things you can do to protect certain assets though. I’m not really the person to ask on asset protection though. I know wiki has some good articles.
What was stolen exactly? Was it all the local stuff? Or did it include server scripts and server side assets?
This has been brought up many many many times already please search before posting next time
https://devforum.roblox.com/t/v3rmillion-and-place-stealing/29079
https://devforum.roblox.com/t/protecting-game-from-place-steal-exploits/89434
https://devforum.roblox.com/t/when-roblox-doesnt-care-about-stolen-games/22285
https://devforum.roblox.com/t/ways-to-protect-your-game-from-exploiters/140369/16
https://devforum.roblox.com/t/current-place-steal-exploit-issues-on-roblox/74130
https://devforum.roblox.com/t/place-stealing-is-a-problem/60401
What part of the game was stolen? Just the maps or everything?
Everything was stolen from the game, including LocalScripts.
It included server scripts, local scripts, server side assets
It sounds impossible for someone to steal your place including server scripts with exploits. Unless the server scripts were in replicated storage for some reason. Did you have team create open on this where someone you let in stole it? Maybe a bad plugin could possibly do this though I’m not too sure.
Yikes, hopefully its not this if your server scripts are being stolen
The best way is just to report the user and get him/her banned. As @SpawnScripts said,
which is very true. There are lots of exploits which can easily steal users game. Such as like Jailbreak, the whole map has been leaked many times! But not there scripts, Ima assume the scripts are kept in a safe place such as in Replicated Storage, (correct me if I’m wrong on this).
Straight forward, users game can easily be copied BUT your scripts CANNOT IF you secure the script in a safe place.
Small correction local scripts and some modules can be stollen however server scripts cannot. There are things you can do but most local scripts are accessible to all exploiters that have synaps or protosmasher or some other lvl 5 exploit.
LocalScripts and ModuleScripts that aren’t in a server-only service are always available to the client regardless of if they’re exploiting or not, because that code has to be executed by their machine for the game to run in the first place. Server script instances can still be taken if they’re in a container that replicates to the client but the bytecode of them isn’t given to the client so it appears blank.
The “level” of an exploit simply determines the security context level it’s running on, it doesn’t mean much in the way of things. Easy answer to this question which has already been posted many times is that you don’t prevent your game from being stolen, the possibility is inherently possible the same way it is with non-Roblox games. Just report or issue takedown requests on reuploads of stolen games.
what if I took some pictures and make them? There’s no copywrite in the game, so it’s basically impossible to prevent game’s been stolen i think.
As of present there is no way to prevent exploiters copying your game, anything the client has access too, an exploiter is able to create a copy of if they desire. This does however mean that they are unable to copy any server scripts or scripts stored in ServerScriptStorage
(Obligatory IANAL, obligatory “may have no idea what I’m talking about”.)
Works that you create or upload to the Roblox website, except where otherwise proven, are regarded or assumed to be your own Intellectual Property (IP). There are laws regulating both IP and copyright, so while you may not have a copyright you still have protection on your IP.
Whether you hold a copyright on a work or not is irrelevant to the topic of “how can I stop my game being stolen” as well as “can my game be stolen”, those are separate conversations. Copyright is legally-related regarding rights over your work and how others may interact with it.
Game theft, on its own separate topic, is inherent to any game be it on Roblox or not. The client requires access to assets to be able to run the game and as such, it’s possible to rip assets from a game. On Roblox this is just called “decompiling the game” or whatever.
It’s impossible to prevent your game’s assets from being stolen because assets are sent to the client to be able to run the game at all. On the other hand, there are laws out there that you can use in order to protect your work by, most common example, use of the Digital Millennium Copyright Act (DMCA).
My tactic is to only load the part of the game that is needed. For example, if you enter a cave the game deletes unseen parts. When these parts are needed again then you can just copy them from ServerStorage again. I chose ServerStorage because only the server can see ServerStorage. (NOTE: The map parts that can be unloaded must be in ServerStorage) You can achieve this with invisible parts which when touched, unload/load parts of the map.
I do not know if StreamingEnabled helps but it would be worth a try.
I don’t know about you but I don’t fancy or recommend sacrificing performance like that on the basis of trying to combat an inherent problem with games. Chunk load for the sake of chunk loading, not for battling exploits. The client is responsible for rendering as well so it can have a much better time loading and replicating assets it can actually access, so pieces are better placed in ReplicatedStorage.
Can you link the game so that I can see how this was done?
The silver lining in all of this is that they got an older/broken version, so they wont have anything up to date. As you update your game more their stolen assets will become more and more out of date, rendering them useless. For the future, I would recommend avoiding putting things in areas that the client has access to - e.g. player, replicated storage, ect.
Some overkill steps you could take:
If you wanted to take some extra precaution, you could update your scripts to include a check for what place they are in - if they don’t match the place id of your game, make them destroy themselves or not work. You might need to hide this somehow, like making it a part of some of your modules, and it runs under cover of multiple functions (e.g. you call Module.Method() and in this method, it performs the check - if the check fails, the script is destroyed - include this check in multiple methods in each module). The effectiveness of this all depends on how dedicated the attackers are to reading through your scripts and getting rid of these checks.
I wouldn’t recommend this method since they could search for the place ID in your scripts to remove the checks unless you took more steps to hide that as well, and all of this might not be worth the effort to implement if you can just update your game to make their stolen assets outdated.
You can convert the models in your game into packages, and set them so that nobody except the developers and yourself can use them. Here’s how you can do so:
- Left-click on a model and select “Convert to Package.”
- Edit or edit any asset information when prompted to and hit “Submit.”.
- Left-click on the newly converted package in Explorer and open Package Details.
- Go to Permissions and share it with the developers.
And you’re done! Once others try to steal your game, they’ll come across this error:
But can’t they just click Select All in Explorer and delete them?