Line 66: |
Line 66: |
| | | |
| Note that edits to <tt>smapi-internal/config.json</tt> will be lost when you update SMAPI. See the instructions at the top of that file to create a permanent config file. | | Note that edits to <tt>smapi-internal/config.json</tt> will be lost when you update SMAPI. See the instructions at the top of that file to create a permanent config file. |
| + | |
| + | ===Update check algorithm=== |
| + | Here's how SMAPI decides which update alerts to show in the SMAPI console for a mod: |
| + | |
| + | # Collect update keys: |
| + | ## Get the initial [[#Introduction|update keys]] from the mod's [[Modding:Modder Guide/APIs/Manifest|manifest]]. |
| + | ## Match the mod ID with the [[Modding:Mod compatibility|mod compatibility list]] and <tt>smapi-internal/metadata.json</tt> to add any other update keys that aren't in the manifest. |
| + | ## Apply update key overrides from the mod compatibility list. |
| + | # Get the possible updates: |
| + | ## Collect versions from every matched update key (see [[#Valid sites|''valid sites'']] for which versions are used). |
| + | ## Filter the list of versions to... |
| + | ##* the main mod version; |
| + | ##* the optional prerelease version if the player has a beta version of SMAPI, ''or'' they have an older prerelease mod version installed, ''or'' the installed version failed to load; |
| + | ##* the unofficial version from the mod compatibility list; |
| + | ##* and the unofficial version for the beta, if using a prerelease version of SMAPI. |
| + | # Recommend the highest version from the filtered list. |
| + | |
| + | If multiple mod pages have the recommended update, SMAPI links to the first match in this order: |
| + | # pages listed in the mod manifest's update keys (in the order listed); |
| + | # the default update key from SMAPI's <tt>smapi-internal/metadata.json</tt>; |
| + | # update keys from the mod compatibility list (in the order Nexus, ModDrop, CurseForge, and Chucklefish); |
| + | # update key overrides from the mod compatibility list. |