This repository has the compatibility metadata for every Stardew Valley C# mod for SMAPI. The mod compatibility list is automatically generated from this data.
See the mod compatibility list instead!
See migration guides on the wiki.
You can also...
- Update this compatibility list.
- Chat or ask questions in #making-mods-general on Discord.
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:
-
Make your changes to that fork.
-
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 is1.2.3
, then the unofficial versions would be1.2.4-unofficial.1-yourName
,1.2.4-unofficial.2-yourName
, etc. This avoids breaking update alerts for the official mod versions. -
Push your changes to GitHub.
-
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.) -
Submit a pull request to the original author (if applicable).
Contributions are welcome!
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 thebrokenContentPacks
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 thewarnings
field. - All contributions are released under this repo's open-source MIT license.
To update this list:
-
Navigate to
data/data.jsonc
in the GitHub web UI. -
Click the "Edit this file" icon in the top-right corner.
-
Copy the text into a text editor like Visual Studio Code that understands JSON schemas.
-
Make any changes needed.
You can point at a field for an explanation of that field. For example:
-
Copy your changes back into the GitHub web UI, and click the big green button to propose the changes.
The public mod compatibility list will be updated automatically within 10 minutes once the proposed change is merged.
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.
- First-time setup:
- Install Docker and Node.js.
- 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.)
- 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