Skip to content

The mod data used to populate the SMAPI mod compatibility list: https://smapi.io/mods.

License

Notifications You must be signed in to change notification settings

Pathoschild/SmapiCompatibilityList

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This repository has the compatibility metadata for every Stardew Valley C# mod for SMAPI. The mod compatibility list is automatically generated from this data.

Contents

For players

See the mod compatibility list instead!

For mod authors

Update your own mod

See migration guides on the wiki.

You can also...

Unofficial updates

An unofficial update is an update for a broken open-source mod which is available from somewhere other than the official mod page. (This is separate from a continuation or redux mod.)

SMAPI has special support for unofficial updates. If the player has the official mod installed and it's incompatible, SMAPI will automatically show an update alert so they can get the unofficial update.

To prepare an unofficial update:

  1. Fork the mod's code.

  2. Make your changes to that fork.

  3. Change the version in manifest.json to an unofficial version.

    ⚠ Important: An unofficial version must match the official mod's version, incremented by 0.0.1, with -unofficial.1-yourName appended. For example, if the official mod version is 1.2.3, then the unofficial versions would be 1.2.4-unofficial.1-yourName, 1.2.4-unofficial.2-yourName, etc. This avoids breaking update alerts for the official mod versions.

  4. Push your changes to GitHub.

  5. Post a release zip in the unofficial updates forum thread with a link to your fork on GitHub.
    (If the mod uses the NuGet build package, there should be a release package named <mod name> <version>.zip in your bin folder.)

  6. Submit a pull request to the original author (if applicable).

Edit the compatibility list

Contributions are welcome!

Guidelines

Before proposing changes, please be aware of these guidelines:

  • Don't add XNB mods.
    See Modding:Using XNB mods on the wiki instead.
  • Don't add compatible content packs.
    This primarily lists C# SMAPI mods. However, broken content packs can still be listed in the brokenContentPacks field.
  • Don't mark most mods 'abandoned' or 'obsolete'.
    A mod is only considered 'abandoned' or 'obsolete' if (a) the mod author has explicitly abandoned the mod, or (b) they've hidden or deleted the mod page, or (c) it's been superseded by an equivalent game feature. A mod is not considered abandoned just because it hasn't been updated for a while.
  • Don't mark a mod 'broken' due to regular bugs.
    Only mark a mod 'broken' if it's incompatible. This isn't the place to track general mod bugs, unless they impact compatibility. In rare cases where a non-compatibility bug is severe enough to note here (e.g. game crashes on some platforms), you can use the warnings field.
  • All contributions are released under this repo's open-source MIT license.

Propose changes

To update this list:

  1. Navigate to data/data.jsonc in the GitHub web UI.

  2. Click the "Edit this file" icon in the top-right corner.

  3. Copy the text into a text editor like Visual Studio Code that understands JSON schemas.

  4. Make any changes needed.

    You can point at a field for an explanation of that field. For example:

  5. Copy your changes back into the GitHub web UI, and click the big green button to propose the changes.

Publish changes

The public mod compatibility list will be updated automatically within 10 minutes once the proposed change is merged.

Validate changes locally

Note

You usually don't need to do this. The data is validated automatically when you commit or post a pull request.

Here's how to validate the data locally if needed.

  1. First-time setup:
    1. Install Docker and Node.js.
    2. On Windows, check the PowerShell version and update to PowerShell 7 or later if needed.
      (This fixes encoding errors due to older versions writing UTF-16 files.)
  2. From a terminal in the repo folder, run these commands:
    # strip comments
    echo "setting up..."
    echo "-------------"
    npm install strip-json-comments-cli
    npx strip-json-comments-cli data/data.jsonc > data/data.json
    echo ""
    
    # validate JSON schema
    echo "validating JSON schema..."
    echo "-------------------------"
    docker run --rm -v "$(pwd):/github/workspace" -e GITHUB_WORKSPACE=/github/workspace -e INPUT_SCHEMA=/data/schema.json -e INPUT_JSONS=/data/data.json orrosenblatt/validate-json-action:latest
    echo ""
    
    # validate mod data
    echo "validating mod data..."
    echo "----------------------"
    node .github/workflows/validate-mod-data.js data/data.json

About

The mod data used to populate the SMAPI mod compatibility list: https://smapi.io/mods.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published