13

I want to prevent mod developers from stealing code from other mod developers in my game. The best way that I know how is to only ever support mods that are open-source. I know about the SteamWorkshop but I can't seem to find anything about it that lets me do that.

For context:

I have a friend that is a mod developer for Minecraft. Recently his open-source work got privatized by another mod developer team without proper attribution. All through out the experience, he has suffered hate from the public. His mod was called a "cheap knock" off of the other mod.

He got even more hate when he tried raising the issue getting called out as a liar even though he has proof which he cant share to the public. The other mod devs accidentally set their Github repo to "public", giving him enough time to read thru the code and download a copy. He can't share any of it since they set their repo back to "private".

Refusing to escalate it to court (because nobody goes to court over Minecraft), he, his team, and people that used their mod publicly have been harassed. This has been going on for a few months now since the last time I checked.

I admit I also felt the effects over a few of my social platform accounts but I am more concerned about seeing my friends in this state.

Is there a way to stop this from happening in my game?

EDIT:

TBH, I just want to provide a way for my community to know the truth first before they try chewing out the wrong people(if I can't stop them from chewing out anyone, at least). From what I saw, most of the hate thrown at my friends came from the same people they try to impress (yes, they're still working on the mod despite all of this). Most of the community believes that they're in the wrong without fully understanding the whole issue and mostly because they couldn't present any solid proof to the crowd without breaking the law.

As I see it it's all because of privatization. My friends can't properly speak about it to the public and neither the other side (without escalating it to court(and if this happens to my game I think it would ruin its experience)).

I don't have any problems with mods getting monetized. As I understand it, privatization is a viable choice for people planning to monetize their code but I do understand that people can still monetize open-source code.

It would make it easier if I could offset mod management to some other platform. Is there a mod-sharing platform out there that I can set to only allow mods for my game to be posted with links to their open-source repo or something?

15
  • 9
    This reads like the other mod developer team broke the law but your friend isn't willing to fight them about it. This isn't about proper licensing or presenting yourself to the public, this is something between the developers. Your friend needs to decide either he does care and then complain to the other company in writing and escalate to court if need be or decide that he doesn't care and just let go.
    – quarague
    Mar 1 at 12:42
  • 1
    It sounds like he might have a valid lawsuit against the other mod developer. But don't trust me for legal advice. He can totally take them to court. Depending where you live, inciting harassment could mean be a lawsuit. Nobody goes to court over Minecraft, but you might be the first and you might win.
    – user253751
    Mar 1 at 12:43
  • 9
    As a reminder, copyright is completely powerless unless you go to court. Laws don't mean anything unless you go to court. Or you get arrested. But you don't get arrested for civil cases, like this one. Only courts can do anything about them. No court = no law.
    – user253751
    Mar 1 at 12:44
  • 1
    I think this question might be confusing "open source" with "source available". A true open source project comes with a license that says that the code is meant to be reused by other people to build their own products based on it
    – Philipp
    Mar 1 at 16:21
  • 2

4 Answers 4

13

Provide a legitimate route for mods to run on the game, and have it pull from public git repos

Assuming your game uses unity, or similar, there is little you can do to stop people modding it. There's all kinds of fun patchers that exist purely to get mods working.

What you can do is build an easy, in built way of installing mods, and have that install only from public git repos. You can even go so far as to have your code check for a standard OS licence, and refuse to install it otherwise. Obviously, document all this in however you display the docs for modding the game.

You could also add in stipulations to your game's licence about not creating mods that are not open source. This is only as powerful as your ability or will to enforce it. You can issue takedown requests for mods that breach it, have a law firm send cease and desist letters to people who create the mods, etc, etc.

Ultimately, though, I think you want to combine all these approaches with a public relations approach.

  1. Make a super easy way of pulling in mods from github repos
  2. Add legal clauses into your game's licencing about installing mods not via this method. Decide on the level of enforcement you are willing to take- i.e, is court an option? Is a cease and desist? is paying someone to comb mod forums and issue takedown requests? Enforcement can also be selective - i.e, if you have bad actors, or a mod that grows too big, then you can hit them at this point. Expect to alienate people.
  3. Explain, clearly and positively to the community why you have taken this approach. You're trying to make sure modders can be fairly recognised for their efforts, trying to make sure there's a community building mods that can learn from each other, etc, etc.
  4. Expect this to work imperfectly. I don't know what your game is, but if it gets popular, people will not necessarily take the route you provide all the time.

Ultimately, this is going to be an extremely hard balance to strike. Too much enforcement and restrictions, and your game simply won't have a modding community, or at least veer more towards the "Aimbots and cheat mods" types of mods. Get the install mechanism wrong, and people will just build their own, without these restrictions. Get the community messaging wrong, and people will decide you're just a terrible person, and go build a different mechanism out of spite. Fail to respect the 4th point, and you'll burn out from playing whack a mole against mod authors.

Edit: If the goal is to prove creator priority, after some research, git might not be the best tool. Turns out you can modify git dates, and it works rather well, although a timestamp may be preserved on the server somewhere. I still think requiring pulling from git repos is a decent solution, however, I think at this point it's reasonable to include a clause insisting on unobsfucated source code in your licence agreement. I'd advise against trying to detect obsfucated code programatically, as a quick google got me into machine learning territory very quickly.

13
  • 2
    I will add, that if you're worried about "attracting hate" - as the game author you will end up with a huge amount from this approach. Because you've claimed some control over the modding process, you'll get people wanting you to exercise that control to censor or not censor mods, people who are mad they can't make money off this, random internet people with a poor understanding of contract law, the list goes on. It's not a bad path, just, y'know, be prepared
    – lupe
    Mar 1 at 14:08
  • It's worth noting that pulling from a public GitHub repository does not necessarily mean that GitHub repository contains readable source code. Mar 1 at 14:17
  • 2
    @MichaelMior - I'd agree, it's not a perfect method. But it's reasonably simple to implement, and reliable. I'd argue in practice more complex methods are likely to increase the odds of a method outside your control emerging
    – lupe
    Mar 1 at 14:22
  • 2
    Perhaps. I'm not saying it's a bad solution. But it would be pretty trivial to put obfuscated code up in a GitHub repository. Mar 1 at 14:35
  • 3
    again, agree completely, but at least everyone can see you did it - there's some more transparency added to the process. You can also step back in commits and work out when features were added by running that code, if there's an issue of priority.
    – lupe
    Mar 1 at 14:55
8

I find myself thinking about the development of the calculus. Newton invented it first but didn't publish, merely sharing his unpublished notes with a few hand-picked members of the Royal Society. Leibnitz, meanwhile, invented it on his own; later than Newton, but he published promptly. Newton accused him of plagiarism, and the issue developed into a full-court bunfight which ran for decades, if not centuries, to the benefit of nobody.

So for well over three hundred years we have known that the best way to establish primacy of discovery is to do your work in the public eye, and that if you choose not to, you may end up having a nasty fight about primacy later on. Your first paragraph indicates that you know this, so I urge you to go with your gut: doing your development in public, particularly if it's on someone else's servers, makes any argument about exact dates of this-and-that completely pointless.

So how do you, as the developer of the main system, assist in this (though I note in passing that it's not actually your job to do so)? The easiest way is to publish your code under GPL, and make it clear that your plugin interface is not available for use by proprietary code.

6

It sounds like you are looking for a technical solution to a social problem. That usually doesn't work.

Yes, most open source licenses have a clause that requires attribution. But if someone refuses to follow that clause, then the only way to get recourse is by going through the legal system.

Even if you require mods to be distributed in sourcecode form only, there are tools that can be used to obfuscate sourcecode in a way that makes it hard to prove beyond doubt where it originally came from.

However, requiring mods to be distributed as sourcecode also has other advantages. It makes it easier for players to confirm what the mods actually do and that they don't contain anything malicious. A good way to do that is by adding a scripting language to your game with a powerful API that allows anything modders would probably want, and then add a mechanism for loading mods in scriptcode form at runtime. Together with your own system for managing mods that is built into the game and easy to use.

Assuming your scripting API is powerful enough and your interface convenient enough, there is no reason for the modding community to come up with launchers that use nasty binary code injection tricks like they have to use in games like Minecraft. Mods in form of script files will be the preferred way to mod your game, and there won't be a reason for anyone to build the technology that would be required for mods based on code injection.

2

Thanks to @Philipp, @MadHatter and @Lupe.

From what I can gather from their answers, completely forcing Modders to be open-source would either risk alienating my community or be very tedious to implement thru physical code.

That got me thinking, I should tackle this in a more social approach instead of only using technical and bureaucratic force (though, I will be using them in some degree).

I will make it possible to raise my communities awareness of the risk of using privatized mods along with the implications of possible code theft.

To do so I plan on implementing user notifications and prompts on installing mods with obfuscated code in-game.

I will also try to raise awareness thru the mod-sharing-platforms that I'm going to be supporting. Like on the SteamWorkshop's community header or something similar to other platforms.

Similar to what @Lupe suggests, I will make sure to include it in my game's user licensing that mods should make their source available to the public without obfuscation from wherever they decide to host their mod download and where people can read it easily (I'll try and consult with a lawyer to put it in proper clause).

It wouldn't stop people from creating privately owned code for mods (even though it would break contract) but it would let my community easily gain the facts enough to think on their own.

EDIT:

As @Lupe pointed out, detecting obfuscation would be too complex of a task for its purpose of activating a notification. Instead, I think it would be best to just implement it as a reminder each time a user loads in the mods UI.

The users should be cognitive enough to know where the mod they downloaded came from and whether or not it had privatized code.

Manual flagging a privatized mod would be great on a supported mod-sharing platform but I can't guarantee that privatized modders would host their mods somewhere else.

1
  • 1
    Just one thing to flag: Detecting obfuscated code is a non trivial task, and, by that I mean the best options used machine learning in their approach, which suggest this is a nightmare. This would probably mean you'll need people doing the flagging.
    – lupe
    Mar 2 at 15:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.