Three clarifying questions about the PyMateria License Agreement for a tool I’m making that I might possibly like to publicly release if allowed to.
What I am building
A desktop application that batch-renders GTA V clothing and prop assets into catalog images, so a FiveM server’s clothing UI can show a preview of every item instead of a numbered list. It runs locally on the user’s own machine against their own legal GTA V installation.
Two modes:
- Custom content. Point it at a folder of add-on clothing assets and render them. This is the ordinary UGC case.
- Base game. Read the base-game clothing assets from the installed archives and render an id-keyed catalog, so the filename id matches the in-game drawable id and the server’s UI needs no translation table.
What it does not do:
- It ships no game data, no extracted assets, and no key material. Everything is read from the user’s own installation at run time.
- It does not redistribute renders. The README will state plainly that a legal GTA V copy is required and that output is not redistributable.
- It does not decompile, modify, or reverse engineer PyMateria. It calls the published Python API.
- It does not bundle the PyMateria wheel. The user installs it themselves from your index, the same way Sollumz does it.
The questions
1. Is the external-dependency pattern available to an unaffiliated third party?
Section 2.2 prohibits distributing the Software or “making its functionality available to any third party”, including “combining, bundling, or distributing the Software as part of any other software, product, or service”.
My intent is that the application never ships PyMateria. It imports it dynamically, and if it is absent the app tells the user to install it from https://static.cfx.re/whl/ and accept your terms directly. Each user holds their own license and installs their own copy.
I am aware that Sollumz ships this pattern publicly, and I am also aware that Sollumz did so as a collaborator on Materia rather than as an outside consumer, so I am not claiming that as a precedent I am entitled to. That is the question: is the install-it-yourself pattern something an unaffiliated third-party application may use, or is it specific to the collaboration?
If the answer is that it is not available to me on the current terms, I would also be glad to hear whether there is a route to becoming a collaborator, or a separate license tier for tools of this kind.
2. Does section 1.1’s purpose cover reading base-game assets?
Section 1.1 grants a license to parse file formats “to enable conversion of User Generated Content or Custom Content … to enable use of such User Generated Content or Custom Content with the Creator Services”.
Mode 1 above is clearly within that. Mode 2 reads base-game assets rather than user content, though the purpose is the same: making those assets usable through a FiveM server’s interface, on the user’s own machine, with nothing redistributed.
Reading base-game assets is plainly contemplated by the Software, since that is the ordinary Sollumz workflow. What I am unsure about is the output: Sollumz produces custom content, whereas mode 2 produces a catalog of previews of base-game items.
Is mode 2 within the grant, outside it, or something you would permit with conditions?
3. Does section 2.5 constrain the dependent project’s own license?
Section 2.5 prohibits using the Software in a manner that would cause it to become subject to an open source software license.
I read that as protecting PyMateria itself from being relicensed, rather than as preventing an OSI-licensed project from depending on it. I would like to release under Apache-2.0.
Can you confirm that reading is correct? If question 1 resolves in favour of the install-it-yourself pattern, this one probably follows, but I would rather have it stated than inferred.
Why I am asking rather than assuming
The alternative is writing my own RPF7 and RSC7 reader, which is months of work and which I would rather not do if PyMateria is available to me. I would rather have a clear answer from you than build on an assumption.
Happy to share the repository, adjust the wording of any user-facing notice, or add attribution wherever you would like it.