Looking through Wizards of the Coast Open Game License 1.0a, and reading around it, it seems it is a weak copyleft license, where anyone can distribute content that derives from OGL content, provided the original OGL content used is included and clearly marked. Decision to further license the derivative works is up to the author/distributer. I suspect is probably not considered a proper "Free" license, although it clearly tries hard to be like one.

I am hoping to build and publish a small software library which would use the D&D 5E rule system and data/content. In my case, this won't be a game, or even a utility to help gamers, but instead a machine learning tutorial/demo using role playing game content. However, I think similar issues will apply as if I were writing a D&D "Rogue-like", because some of my content will implement the written rules in software. It appears that writing such a game is considered OK by the publishers, according to this FAQ, and provided no "product identity" is used - that's some monsters, famous NPCs and of course branding material. No problem there for me.

My reason for choosing D&D is that it can be used to quickly construct an interesting range of reinforcement learning challenges, which will save time and effort - in theory. If it turns out this causes a big headache in licensing I may need to look elsewhere.

I want to host my project on GitHub and publish it under a free, open-source license. I am considering Apache 2.0 license for my own work, but I'm not strongly committed to it, and am willing to be driven by whatever makes things simplest when combined with using the OGL license in places.

My understanding of compliance with OGL is:

  • OGL content is intended to be accessible to game players (not software engineers), so software derivations of rules need to be distributed with a written version of the rules.

    • I am intending to simply include the whole SRD and refer to pages in that for code that implements specific game rules.
  • Anything derived from or extending OGL content can be licensed as I wish, although all I can license is the work that has gone into the adaptation - in effect two licenses might apply where code builds over SRD rules.

    • I am wondering whether it will be cleaner to apply OGL to a utility library that implements D&D rules, separately to the rest of my code, in order to avoid possible clashes between licenses if both might apply to the same file.
  • When distributing using OGL, I am free to describe content that is covered and not covered by the OGL, provided I don't mis-represent the true OGL content. I.e. I cannot re-license or alter the copyright of the D&D 5E SRD, but I can have a file in the same folder that I authored licensed under Apache 2.0, or even have a file with sections licensed differently depending on provenance, provided everything is clearly marked.

  • Anyone using my work and further distributing will have to decide whether to comply with the OGL parts, and if necessary remove anything derived from OGL content. This is a realistic prospect, since the D&D specific code will be less generally applicable than the machine learning parts.

    • This is another reason to separate code that simulates D&D rules from code that implements machine learning algorithms.

Plenty of hobby programmers write stuff for D&D without care for licensing, and I could too, because I have no intent for this work to become popular. However, I want to do this as correctly as possible for my own peace of mind. So my main question is: Have I interpreted this correctly, or are there additional rules/restrictions I need to account for?


The OGL 1.0a isn't the easiest licence in the world to read, and one might be forgiven for thinking WotC's lawyers drafted it on an off-day. Also, IANAL/IANYL, so my analysis may be no better. Nevertheless, as I read it, it does address what you're doing. In s1, it says



"Open Game Content" means [...] any work covered by this License, including translations and derivative works under copyright law



and then goes on in s2 to say

This License applies to any Open Game Content that contains a notice indicating that the Open Game Content may only be Used under and in terms of this License. You must affix such a notice to any Open Game Content that you Use. [...] No other terms or conditions may be applied to any Open Game Content distributed using this License.

So it seems to me that you can only use the Open Game Content to create a computer translation if at least the parts that embody OGL content are distributed under OGL 1.0a.

I note your idea of putting the OGL content off into its own library, and calling it via that abstraction. That's a good idea, except that some people (though by no means everyone) think that linking to a library creates a derivative work under copyright law, which by the second quote above would mean your entire program had to be distributed under OGL. As the linked questions make clear, there is no definite answer yet on whether linking a library has this effect, so we can only say this may be an issue.


  1. It seems to me that the simplest path is to distribute the whole program under OGL.

  2. If you use a library to separate out OGL content, and license most of your code under (eg) Apache2, you may find that at some future time a court case you didn't know about and weren't party to has the effect of yanking your distribution rights out from under you.

  3. WotC's FAQ suggests that you separate the OGL content out even further, by putting it into a separate text file which functions as input for the program, but I suspect this will involve building a natural-language parser for RPG rules. Speaking as a GM these past 35 years (and a GM is essentially a natural-language parser for RPG rules that eats pizza) that may be more pain than you want; nevertheless, it would likely sidestep the whole issue.

  4. There may be a reason why free software licences are either copyleft or permissive: the OGL's attempt to be neither fully one nor the other whilst failing to precisely define the extent of its non-permissiveness doesn't work well with software.

  • Thanks for this answer. I still have this project ready to go, still playing D&D and interested in writing code for it, so I am happy to see an answer with this level of detail – Neil Slater May 2 at 17:19

Your Answer

