Jump to content

Mod Metadata - Questions for mod authors


bmwinger

Recommended Posts

I have some questions which are particularly directed at mod authors.

About a year ago I wrote up a proposed new metadata specification for mods as part of a discussion in the OpenMW forums, but never really did anything with it. I've returned to it more recently, but I would like to know more about mod developer needs from such a system.

It can be found here: https://gitlab.com/bmwinger/modar
The WIP specification is here.

My main goals are to help standardize mod installation and metadata, and to make it easier for complex tools like portmod to integrate with mods, as packaging complex mods for portmod is currently fairly time-intensive, and there isn't yet any way for mod authors to include information with the mods to help with automation. But this system would make it possible for portmod packages to be generated from the mod's source archive automatically (in ideal circumstances, there are a few potential problems which could require manual intervention).

My main questions are:

  • What would mod developers want from such a system?
  • Would you find such a thing useful, or is it just too much information which you wouldn't be bothered to fill out?
  • What would make such a system useful to you?

Any feedback would be helpful.

Other systems
Comparisons could be made to fomod, however fomod does not define a spec for metadata, and its installation information is structured to work as a manual wizard in a GUI and is not easily adaptable to other installation systems.

Simple structured systems like BAIN are easily supported alongside this format, you just have to specify each of the BAIN install directories as the required/optional install directories (not that this part is formalized yet, but see below).

There's also no reason an fomod installer couldn't be included alongside this, and it would be relatively easy to generate one from the metadata file (I would be happy to include this as part of the modar tool if there's an interest).

Installation
In addition to the metadata included in the WIP spec, my plan was to also include installation details, and a reference installer in the modar tool. You would point the installer at a mod archive, it would prompt you for any optional features it is unable to auto-detect, make sure that any dependencies are satisfied where possible, and then install the relevant files.

Notably, the installation information would include well-defined named features, with the idea being that the names of the features remain consistent from one version to the next, so that a clear relationship is established between them. This lets tools like portmod consistently identify the features (e.g a user might have requested to install a feature on the previous version, which can be remembered (portmod does this, but manual mod managers could also benefit from it)).

E.g. keys are feature names, values are feature descriptions.

[features]
smooth = "Includes smoothed meshes"

texture-512 = "Vanilla resolution textures"
texture-2048 = "High resolution textures"

Relationships could also be provided between keys, such as `exactly-one-of ( texture-512 texture-2048 )` (this is a portmod thing, I wouldn't mind tomlifying the syntax).

Features can then be referenced as requirements for data to be installed, and there could be things such as file requirements on features, for example: a requirement that an esp is present in the destination filesystem (either morrowind "Data Files" or OpenMW's VFS) so that the feature could effectively depend on another mod (simplest way I can think of to auto-detect features for patches, it would also be possible to install the metadata files so that other mods using the system could be detected).

E.g.

[install]
# Installs directly into the root
"00 Core Files" = {}
"optional/high-res-textures" = {rename="Textures", features="texture-2048"}

Dependencies

Dependencies are the main complication. No dependency specification provided by a mod is ever going to perfectly represent the relationships with other mods since the mod ecosystem is continually evolving. Mods disappear, move, are replaced by continuation projects, etc. Live systems like portmod are really the best way to handle this sort of thing, but we can still include the information that was accurate at the time the mod was created.

By referring to existing identification schemes (nexusmods, portmod, gitlab, github, moddinghall, modhistory) as well as mod names and version numbers, it should be possible to fairly unambiguously refer to mods in a way that tools can use to automatically find the mod being referred to.
See the dependencies section of the WIP modmeta spec for details.
If a mod or website is taken down, the provided name can still be used to manually search for the mod on other hosting locations.

Link to comment
Share on other sites

Not a bad idea. I'd also posted on reddit. I'm not sure that discord is an ideal place for what could turn into a complex discussion, but I may as well try there.

just venting, so just ignore me =)

i get that discord is convenient, but so much information hidden from search engines... makes me a sad panda : \

IT'S A TARP!

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...