Hi Roblox, I am trying to make a module that is requirable via ID example: require(11111111111).function(args)
m
But I recently found out you can’t require Closed-Source modules, but the issue is I don’t want people stealing/getting the source code as it has a whitelist system for only certain users to use.
But they can just put it in their studio and edit it then re-upload it.
Do you know any way I could bypass this without them getting the code? It’s things they can use in their games I just don’t want exploiters accessing the module (It has to be in game.Workspace and stuff that is accessable by the client) and grabbing the code.
If you want to prevent your ModuleScripts from being taken, put them inside ServerStorage or ServerScriptService, That will prevent them from being taken as the game automatically hides everything in there when starting, However the only issue is that it cant be accessed by the Client, for Access by Both Scripts, its better to put them inside ReplicatedStorage, or Somewhere nobody will look
I can’t put them in the Server because of how they’re purposefully programmed. And yes I put it in ReplicatedStorage lol, my biggest worry is how to require a Closed-Source Module Script.
Put the Important ModuleScripts to only be accessed by the Server, and other non Important Stuff should be somewhere accessable by either the Client or Both
I know, but as I said, how they’re programmed they’re MEANT to only run via client, not server. So they have to be accessible via the client.
I just wanna know a way to bypass the not being able to require closed-source modules.
Not really going to be possible. Anything the client needs to run can be seen by exploiters and hence stolen. The most you can do is try to obfuscate the code so that it is harder to read, however that makes it harder for you as well as the exploiters
Even photoshop’s source code gets stolen and reuploaded. There’s nothing you can do.
Except if you were to rewrite the module and move as much of it’s code to server-side (maybe store the module in ServerScriptStorage and only send it to players that are on the whitelist (if that’s possible)).
Then you just need to accept that your code can and will be stolen. Everyone has to accept that. Just make it so the client is in charge of as little as possible, and have the server deal with things instead.
If you have Important Data, like a System for a game, DataStore Code, and Item Modules, Store them inside ServerScriptService or ServerStorage, It makes it a lot harder for Hackers / Exploiters to steal that code
For Player Gui, and other things that are Client Related, Store them inside ReplicatedStorage, or hide them where nobody will expect them to be.
Even so, Its better to think about others rather than yourself, and your game here:
There is no way to make a hide Scripts, or require Closed-Source ModuleScripts, there never was, and most likely never will be.
If your Scripts are completely hidden, Malicious Developers will have a easier time implementing Viruses into your games and potentially steal your data outside of ROBLOX, Since they are hidden, you wont be able to Access them, nor Remove them.
If Code is stolen, there is Virtually nothing you can do about it, It now belongs to the Hackers. There may be ways to help prevent this (or at least slow them down), but the Hackers will find a Backdoor. @NoraaApple Even if there was a way, people would not help you here, due to the danger it will cause to other People, and other Games.
It Isn’t (and Shouldn’t be) that hard to comprehend, this is what a lot of games do to help protect their own code from being stolen, and Defend against Viruses, and their community.
This is should be a Good enough explanation, PM me if you would like to express your concerns
As everyone’s been suggesting, put your server modules in ServerScriptService. Their source code does not get sent to the players, so it should be safe given that exploits only give access to what’s available to the client.
If exploiters have the ability to mess with your server-sided stuff, then you have a bigger problem as it would mean your game has some kind of backdoor.