Hello! I’ve recently made a User Interface system and I plan on selling it to many users. I have seen many groups that don’t have a proper whitelist system get their products distributed or leaked by some people who have purchased it.
Let’s say someone bought my UI system, he/she makes an alt account and uploads it as a free model or something like that.
I need help in creating a whitelist system so only people who have access(i.e. bought it from me) to it can use it. However, I do not want to obfuscate the script.
What if they make an alt account and release it as a free model.
Customers won’t buy my products anymore because it would made free by someone who stole it. So I want stop this from happening rather than checking who did it.
This is one of the reasons product selling is kind of bad, but here is a simple explanation of what would be some measures. (by any means I am not a professional in this kind of field nor have a popular product myself)
One-use Key System
Basically the name speaks for itself but a idea would be having keys that can be used once per person, basically you can set-up a server that would have all the keys and their properties and when a player buys your product they get a key or they message you for a key with proof of the ownership of the product that they bought and you give them a one use key.
Licensing
By any means you should have a license that specifies the fact that you can not redistribute the product once bought and you can use it only for yourself, in this way if your product gets big you can basically take legal action against people who steal or open-source your product/systems.
Moderating and Hunting
Having moderators or staff who work on cracking down on the plugins/models that offer your product and reporting them can be quite useful, and if you used my advice and have a key system for the product you can just blacklist the specific key the free model/plugin uses and make the product itself broken.
If you don’t wan’t to obfuscate your code then you will need to require a private module in which you can generate random keys and make only those keys work.
I didn’t understand that. I didn’t understand on what a private module is. So basically, what I want is:
None of the scripts to work if the creator doesn’t own it.
None of the UIs load if the creator doesn’t own it.
@DaffyDavinko is saying that you would need to run require() to import a privately-owned module into the game, along with a licensing script that only allows certain people who own the product to use it (such as scripts and UI not loading).
Many asset-selling companies use these methods to make sure their products don’t get leaked. If you don’t want to go through the trouble of obfuscation or a privately-owned module, you can just have the code available in the script (along with a licensing script) and just pray no one simply removes the licensing from the code. I’m afraid the licensing system would be your job to make, unless anyone cares to open-source theirs.
Sorry for such a late response! I just happened to come across your post.
What you could do is add a script which has settings and use require() to import a Module Script. The module script will then be obfuscated code requiring another module script. In the second module script, you main code will be kept here.
Example:
MAIN SCRIPT:
local GameOwnerUsername = game:GetService("Players"):GetNameFromUserIdAsync(game.CreatorId)
local settings = {"Owner" = GameOwnerUsername}
require(8789234) -- Module Script ID
MODULE SCRIPT:
[OBFUSCATED SCRIPT HERE USING require()]
LAST MODULE SCRIPT:
print("Roblox is epic")
A Lua obfuscator I recommend is PSU but it’s overran by exploiters and it’s a Discord Bot in the PSU Discord server. Be careful. Also, AztupObfuscator was discontinued as Aztup accidentally deleted the source. Goodluck!