Module:SMAPI compatibility overrides/doc

From Stardew Valley Wiki
Jump to navigation Jump to search

This is the documentation page for Module:SMAPI compatibility overrides

This module provides the table structure and data for the Modding:Mod compatibility#Mod data overrides list, which SMAPI uses to override data specified in mods' manifests or mod pages.

Usage

Change descriptor

A change descriptor describes a specific change to make for a field. There are three supported changes:

operation format effect
remove -value Delete that distinct value from the field.
add +value Add that distinct value to the field.
replace old value → new value Replace the old value (if found) with the new one.

Each field can list multiple change descriptors delimited with commas. For example, -Nexus:541, +Nexus:905 would delete Nexus:541 from the update keys and add Nexus:905. These operate on distinct values, so -Nexus: won't match anything (unless there's actually an update key without a number).

Fields

There are two required static fields:

field effect
name The mod's name as it appears in the Modding:Mod compatibility list. If the mod has multiple names, specify the first one.
id The manifest UniqueID field of the mod to change. This can be comma-delimited.

And these optional change descriptor fields:

field effect
update keys Override the update keys SMAPI uses to perform update checks.
local version
remote version
Override the version number specified in the mod manifest (local) or mod page (remote). You should generally only use replace in this field, since only the first value will be used.

SMAPI will compare using semantic versioning if they're parseable (e.g., 1.0 and 1.0.0 are equivalent), else it'll fallback to case-insensitive string comparison (e.g., 1.01 and 1.01.0 are not equivalent). If an invalid format is specified or the new version can't be parsed, the mapping will be ignored.

reason A human-readable reason the values need to be overridden, so it's easier to check whether it still needs to be overridden later.

Example

{{#invoke:SMAPI compatibility overrides|entry
  |name           = Lookup Anything
  |id             = Pathoschild.LookupAnything
  |update keys    = -Nexus:541, +Nexus:905
  |local version  = 1.05-beta → 1.0.5-beta
  |remote version = 1.06 → 1.0.6
  |reason         = test values
}}