Skip to content

Suggestion: Optional mod provided metadata #416

@MattMills

Description

@MattMills

Is your feature request related to a problem? Please describe.

Stellaris (and other games I assume) needs a better mod metadata format to improve mod compatibility and reduce "support cost" for known issues that can relatively easily be solved. Ideally it'd be up to the game developer to implement such a format, but since they aren't I figured I'd come discuss it here and hopefully could demonstrate the usefulness and "reverse engineer" better functionality into the games.

Describe the solution you'd like

It would be ideal if someone defined an optional metadata file format that mods could include to define:

  1. Other mods that should be loaded before this mod
  2. Other mods that should be loaded after this mod
  3. Other mods that should not be loaded with this mod (known conflicts)
  4. Other mods that resolve conflicts between this mod and a second mod (patch mods for known conflicts)
  5. Other mods this mod is dependent on (required)
  6. Other mods this mod suggests
  7. More complex version compatibility language (IE minimum 3.0.1, maximum 3.5.3, or alternatively just being able to specify multiple entries for compatible versions rather than a single entry, personally I'd also like >= minimum with no maximum).
  8. A mod unique identifier that can authoritatively "resolve" multiple different platform IDs into a single mod.
  9. A mod version identifier (not sure if this is a good idea TBH, might be better to use a hash of all files or a hash of hashes).

I think for first pass completely ignoring mod versioning might be the best strategy...

Describe alternatives you've considered
RimPy implements this for rimworld as a "community rule list"... which might also be a useful functionality for mods that chose not to / refuse to provide their own metadata...

Additional context
Similar implementations:

https://wiki.factorio.com/Tutorial:Mod_structure#Dependency

https://rimworldwiki.com/wiki/About.xml

https://github.com/rimpy-custom/communityRules/releases

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions