What would be the best way to do DRM code?

Hello all, I was wondering what would be the “best”/“most efficient” way to do DRM code. Before I get hate for DRM, let me explain, I co-run a community and we allow people to run servers under our banner if they use our Teamspeak and forums, with that, they get access to our addons, and recently we have had a few bad apples. Since that has happened, we ( the owner and I ) were wondering, what would be the best way to check if all the custom mods, jobs and such are installed and running? Should I have a [code=lua] table.insert(DRM.Data, “addonName”)


 and then a catch if that value is in the table or should I do something else?

No matter what length you go to, if people want it, your code is gonna be cracked. If people have access to your server, they can simply remove any protection you add with notepad. If the code is stored off-site, they can inject into RunString or whatever else from init.lua. If the code is obfuscated, it’s not hard to deobfuscate. I know it isn’t really a solution, but I think you need to approach this with a different philosophy.

If you absolutely positively need DRM, the best way is to look for third party experts.

You’ll be a joke if you try doing it yourself.

If you’re seriously just going to modify some lua which you give to people then they’re just going to undo it themselves.

As others have said there is no point doing it yourself unless you absolutely know what your doing, which by what you’ve said, shows you dont.

The harder you challenge children to steal your stuff by implementing DRM, the more they will try to get at your stuff just to show they’re cool. Then it will be leaked. Don’t underestimate the ego of a 14 year old.

Where can I buy some of your addons?

How does third parties bypass the issues OP would face? Assuming all things equal.

Don’t use DRM, restrict the people you are allowing to host/manage a server so they are not able to steal your addons.

I can say from experience. DRM won’t help you in the long run. I’ve developed my own automatic update system which doubled as DRM. Long story short, I poured way too much time into developing DRM rather than what really matters. Making cool stuff for people to enjoy. If you show the effort you put into your creations, provide support, and updates, it makes the redistributed copies less likable.