summaryrefslogtreecommitdiff
path: root/src/SMAPI
diff options
context:
space:
mode:
Diffstat (limited to 'src/SMAPI')
-rw-r--r--src/SMAPI/Constants.cs3
-rw-r--r--src/SMAPI/Framework/Models/SConfig.cs6
-rw-r--r--src/SMAPI/Framework/Models/SMetadata.cs15
-rw-r--r--src/SMAPI/Program.cs23
-rw-r--r--src/SMAPI/StardewModdingAPI.config.json1837
-rw-r--r--src/SMAPI/StardewModdingAPI.csproj4
-rw-r--r--src/SMAPI/StardewModdingAPI.metadata.json1836
7 files changed, 1871 insertions, 1853 deletions
diff --git a/src/SMAPI/Constants.cs b/src/SMAPI/Constants.cs
index e547dfa6..a098194b 100644
--- a/src/SMAPI/Constants.cs
+++ b/src/SMAPI/Constants.cs
@@ -72,6 +72,9 @@ namespace StardewModdingAPI
/// <summary>The file path for the SMAPI configuration file.</summary>
internal static string ApiConfigPath => Path.Combine(Constants.ExecutionPath, $"{typeof(Program).Assembly.GetName().Name}.config.json");
+ /// <summary>The file path for the SMAPI metadata file.</summary>
+ internal static string ApiMetadataPath => Path.Combine(Constants.ExecutionPath, $"{typeof(Program).Assembly.GetName().Name}.metadata.json");
+
/// <summary>The file path to the log where the latest output should be saved.</summary>
internal static string DefaultLogPath => Path.Combine(Constants.LogDir, "SMAPI-latest.txt");
diff --git a/src/SMAPI/Framework/Models/SConfig.cs b/src/SMAPI/Framework/Models/SConfig.cs
index 17169714..2d6da0fa 100644
--- a/src/SMAPI/Framework/Models/SConfig.cs
+++ b/src/SMAPI/Framework/Models/SConfig.cs
@@ -1,6 +1,3 @@
-using System.Collections.Generic;
-using StardewModdingAPI.Framework.ModData;
-
namespace StardewModdingAPI.Framework.Models
{
/// <summary>The SMAPI configuration settings.</summary>
@@ -23,8 +20,5 @@ namespace StardewModdingAPI.Framework.Models
/// <summary>Whether SMAPI should log more information about the game context.</summary>
public bool VerboseLogging { get; set; }
-
- /// <summary>Extra metadata about mods.</summary>
- public IDictionary<string, ModDataRecord> ModData { get; set; }
}
}
diff --git a/src/SMAPI/Framework/Models/SMetadata.cs b/src/SMAPI/Framework/Models/SMetadata.cs
new file mode 100644
index 00000000..9ff495e9
--- /dev/null
+++ b/src/SMAPI/Framework/Models/SMetadata.cs
@@ -0,0 +1,15 @@
+using System.Collections.Generic;
+using StardewModdingAPI.Framework.ModData;
+
+namespace StardewModdingAPI.Framework.Models
+{
+ /// <summary>The SMAPI predefined metadata.</summary>
+ internal class SMetadata
+ {
+ /********
+ ** Accessors
+ ********/
+ /// <summary>Extra metadata about mods.</summary>
+ public IDictionary<string, ModDataRecord> ModData { get; set; }
+ }
+}
diff --git a/src/SMAPI/Program.cs b/src/SMAPI/Program.cs
index ff4e9a50..da2c0e8e 100644
--- a/src/SMAPI/Program.cs
+++ b/src/SMAPI/Program.cs
@@ -54,16 +54,15 @@ namespace StardewModdingAPI
/// <summary>Simplifies access to private game code.</summary>
private readonly Reflector Reflection = new Reflector();
+ /// <summary>The SMAPI configuration settings.</summary>
+ private readonly SConfig Settings;
+
/// <summary>The underlying game instance.</summary>
private SGame GameInstance;
/// <summary>The underlying content manager.</summary>
private ContentCore ContentCore => this.GameInstance.ContentCore;
- /// <summary>The SMAPI configuration settings.</summary>
- /// <remarks>This is initialised after the game starts.</remarks>
- private SConfig Settings;
-
/// <summary>Tracks the installed mods.</summary>
/// <remarks>This is initialised after the game starts.</remarks>
private readonly ModRegistry ModRegistry = new ModRegistry();
@@ -133,8 +132,14 @@ namespace StardewModdingAPI
public Program(bool writeToConsole, string logPath)
{
// init basics
+ this.Settings = JsonConvert.DeserializeObject<SConfig>(File.ReadAllText(Constants.ApiConfigPath));
this.LogFile = new LogFileManager(logPath);
- this.Monitor = new Monitor("SMAPI", this.ConsoleManager, this.LogFile, this.CancellationTokenSource) { WriteToConsole = writeToConsole };
+ this.Monitor = new Monitor("SMAPI", this.ConsoleManager, this.LogFile, this.CancellationTokenSource)
+ {
+ WriteToConsole = writeToConsole,
+ ShowTraceInConsole = this.Settings.DeveloperMode,
+ ShowFullStampInConsole = this.Settings.DeveloperMode
+ };
this.EventManager = new EventManager(this.Monitor, this.ModRegistry);
// hook up events
@@ -345,7 +350,6 @@ namespace StardewModdingAPI
private void InitialiseAfterGameStart()
{
// load settings
- this.Settings = JsonConvert.DeserializeObject<SConfig>(File.ReadAllText(Constants.ApiConfigPath));
this.GameInstance.VerboseLogging = this.Settings.VerboseLogging;
// load core components
@@ -361,11 +365,7 @@ namespace StardewModdingAPI
// add headers
if (this.Settings.DeveloperMode)
- {
- this.Monitor.ShowTraceInConsole = true;
- this.Monitor.ShowFullStampInConsole = true;
this.Monitor.Log($"You configured SMAPI to run in developer mode. The console may be much more verbose. You can disable developer mode by installing the non-developer version of SMAPI, or by editing {Constants.ApiConfigPath}.", LogLevel.Info);
- }
if (!this.Settings.CheckForUpdates)
this.Monitor.Log($"You configured SMAPI to not check for updates. Running an old version of SMAPI is not recommended. You can enable update checks by reinstalling SMAPI or editing {Constants.ApiConfigPath}.", LogLevel.Warn);
if (!this.Monitor.WriteToConsole)
@@ -377,7 +377,8 @@ namespace StardewModdingAPI
this.Monitor.Log("SMAPI found problems in your game's content files which are likely to cause errors or crashes. Consider uninstalling XNB mods or reinstalling the game.", LogLevel.Error);
// load mod data
- ModDatabase modDatabase = new ModDatabase(this.Settings.ModData, Constants.GetUpdateUrl);
+ SMetadata metadata = JsonConvert.DeserializeObject<SMetadata>(File.ReadAllText(Constants.ApiMetadataPath));
+ ModDatabase modDatabase = new ModDatabase(metadata.ModData, Constants.GetUpdateUrl);
// load mods
{
diff --git a/src/SMAPI/StardewModdingAPI.config.json b/src/SMAPI/StardewModdingAPI.config.json
index f7082e96..9743894a 100644
--- a/src/SMAPI/StardewModdingAPI.config.json
+++ b/src/SMAPI/StardewModdingAPI.config.json
@@ -36,1840 +36,5 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
/**
* Whether SMAPI should log more information about the game context.
*/
- "VerboseLogging": false,
-
- /**
- * Metadata about some SMAPI mods used in compatibility, update, and dependency checks. This
- * field shouldn't be edited by players in most cases.
- *
- * Standard fields
- * ===============
- * The predefined fields are documented below (only 'ID' is required). Each entry's key is the
- * default display name for the mod if one isn't available (e.g. in dependency checks).
- *
- * - ID: the mod's latest unique ID (if any).
- *
- * - FormerIDs: uniquely identifies the mod across multiple versions, and supports matching
- * other fields if no ID was specified. This doesn't include the latest ID, if any.
- * Format rules:
- * 1. If the mod's ID changed over time, multiple variants can be separated by the '|'
- * character.
- * 2. Each variant can take one of two forms:
- * - A simple string matching the mod's UniqueID value.
- * - A JSON structure containing any of four manifest fields (ID, Name, Author, and
- * EntryDll) to match.
- *
- * - MapLocalVersions and MapRemoteVersions correct local manifest versions and remote versions
- * during update checks. For example, if the API returns version '1.1-1078' where '1078' is
- * intended to be a build number, MapRemoteVersions can map it to '1.1' when comparing to the
- * mod's current version. This is only meant to support legacy mods with injected update keys.
- *
- * Versioned metadata
- * ==================
- * Each record can also specify extra metadata using the field keys below.
- *
- * Each key consists of a field name prefixed with any combination of version range and 'Default',
- * separated by pipes (whitespace trimmed). For example, 'UpdateKey' will always override,
- * 'Default | UpdateKey' will only override if the mod has no update keys, and
- * '~1.1 | Default | Name' will do the same up to version 1.1.
- *
- * The version format is 'min~max' (where either side can be blank for unbounded), or a single
- * version number.
- *
- * These are the valid field names:
- *
- * - UpdateKey: the update key to set in the mod's manifest. This is used to enable update
- * checks for older mods that haven't been updated to use it yet.
- *
- * - Status: overrides compatibility checks. The possible values are Obsolete (SMAPI won't load
- * it because the mod should no longer be used), AssumeBroken (SMAPI won't load it because
- * the specified version isn't compatible), or AssumeCompatible (SMAPI will try to load it
- * even if it detects incompatible code).
- *
- * - StatusReasonPhrase: a message to show to the player explaining why the mod can't be loaded
- * (if applicable). If blank, will default to a generic not-compatible message.
- *
- * - AlternativeUrl: a URL where the player can find an unofficial update or alternative if the
- * mod is no longer compatible.
- */
- "ModData": {
- "AccessChestAnywhere": {
- "ID": "AccessChestAnywhere",
- "MapLocalVersions": { "1.1-1078": "1.1" },
- "Default | UpdateKey": "Nexus:257",
- "~1.1 | Status": "AssumeBroken"
- },
-
- "AdjustArtisanPrices": {
- "ID": "ThatNorthernMonkey.AdjustArtisanPrices",
- "FormerIDs": "1e36d4ca-c7ef-4dfb-9927-d27a6c3c8bdc", // changed in 0.0.2-pathoschild-update
- "MapRemoteVersions": { "0.01": "0.0.1" },
- "Default | UpdateKey": "Chucklefish:3532",
- "~0.0.1 | Status": "AssumeBroken"
- },
-
- "Adjust Monster": {
- "ID": "mmanlapat.AdjustMonster",
- "Default | UpdateKey": "Nexus:1161"
- },
-
- "Advanced Location Loader": {
- "ID": "Entoarox.AdvancedLocationLoader",
- "~1.3.7 | UpdateKey": "Chucklefish:3619", // only enable update checks up to 1.3.7 by request (has its own update-check feature)
- "~1.2.10 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Adventure Shop Inventory": {
- "ID": "HammurabiAdventureShopInventory",
- "Default | UpdateKey": "Chucklefish:4608"
- },
-
- "AgingMod": {
- "ID": "skn.AgingMod",
- "Default | UpdateKey": "Nexus:1129",
- "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "All Crops All Seasons": {
- "ID": "cantorsdust.AllCropsAllSeasons",
- "FormerIDs": "29ee8246-d67b-4242-a340-35a9ae0d5dd7 | community.AllCropsAllSeasons", // changed in 1.3 and 1.5
- "Default | UpdateKey": "Nexus:170"
- },
-
- "All Professions": {
- "ID": "cantorsdust.AllProfessions",
- "FormerIDs": "8c37b1a7-4bfb-4916-9d8a-9533e6363ea3 | community.AllProfessions", // changed in 1.2 and 1.3.1
- "Default | UpdateKey": "Nexus:174"
- },
-
- "Almighty Tool": {
- "ID": "439",
- "FormerIDs": "{EntryDll: 'AlmightyTool.dll'}", // changed in 1.2.1
- "MapRemoteVersions": { "1.21": "1.2.1" },
- "Default | UpdateKey": "Nexus:439",
- "~1.1.1 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Animal Husbandry": {
- "ID": "DIGUS.ANIMALHUSBANDRYMOD",
- "FormerIDs": "DIGUS.BUTCHER", // changed in 2.0.1
- "Default | UpdateKey": "Nexus:1538"
- },
-
- "Animal Mood Fix": {
- "ID": "GPeters-AnimalMoodFix",
- "~ | Status": "Obsolete",
- "~ | StatusReasonPhrase": "the animal mood bugs were fixed in Stardew Valley 1.2."
- },
-
- "Animal Sitter": {
- "ID": "jwdred.AnimalSitter",
- "FormerIDs": "{EntryDll: 'AnimalSitter.dll'}", // changed in 1.0.9
- "Default | UpdateKey": "Nexus:581",
- "~1.0.8 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Ashley Mod": {
- "FormerIDs": "{EntryDll: 'AshleyMod.dll'}",
- "~1.0.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "A Tapper's Dream": {
- "ID": "ddde5195-8f85-4061-90cc-0d4fd5459358",
- "Default | UpdateKey": "Nexus:260",
- "~1.4 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Auto Animal Doors": {
- "ID": "AaronTaggart.AutoAnimalDoors",
- "Default | UpdateKey": "Nexus:1019"
- },
-
- "Auto-Eat": {
- "ID": "Permamiss.AutoEat",
- "FormerIDs": "BALANCEMOD_AutoEat", // changed in 1.1.1
- "Default | UpdateKey": "Nexus:643"
- },
-
- "AutoFish": {
- "ID": "WhiteMind.AF",
- "Default | UpdateKey": "Nexus:1895"
- },
-
- "AutoGate": {
- "ID": "AutoGate",
- "Default | UpdateKey": "Nexus:820"
- },
-
- "Automate": {
- "ID": "Pathoschild.Automate",
- "Default | UpdateKey": "Nexus:1063"
- },
-
- "Automated Doors": {
- "ID": "azah.automated-doors",
- "FormerIDs": "1abcfa07-2cf4-4dc3-a6e9-6068b642112b", // changed in 1.4.1
- "Default | UpdateKey": "GitHub:azah/AutomatedDoors" // added in 1.4.2
- },
-
- "AutoSpeed": {
- "ID": "Omegasis.AutoSpeed",
- "FormerIDs": "{ID:'4be88c18-b6f3-49b0-ba96-f94b1a5be890', Name:'AutoSpeed'}", // changed in 1.4; disambiguate from other Alpha_Omegasis mods
- "Default | UpdateKey": "Nexus:443" // added in 1.4.1
- },
-
- "Basic Sprinklers Improved": {
- "ID": "lrsk_sdvm_bsi.0117171308",
- "MapRemoteVersions": { "1.0.2": "1.0.1-release" }, // manifest not updated
- "Default | UpdateKey": "Nexus:833"
- },
-
- "Better Hay": {
- "ID": "cat.betterhay",
- "Default | UpdateKey": "Nexus:1430"
- },
-
- "Better Quality More Seasons": {
- "ID": "SB_BQMS",
- "Default | UpdateKey": "Nexus:935"
- },
-
- "Better Quarry": {
- "ID": "BetterQuarry",
- "Default | UpdateKey": "Nexus:771"
- },
-
- "Better Ranching": {
- "ID": "BetterRanching",
- "Default | UpdateKey": "Nexus:859"
- },
-
- "Better Shipping Box": {
- "ID": "Kithio:BetterShippingBox",
- "MapLocalVersions": { "1.0.1": "1.0.2" },
- "Default | UpdateKey": "Chucklefish:4302",
- "~1.0.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Better Sprinklers": {
- "ID": "Speeder.BetterSprinklers",
- "FormerIDs": "SPDSprinklersMod", // changed in 2.3
- "Default | UpdateKey": "Nexus:41",
- "~2.3.1-pathoschild-update | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Billboard Anywhere": {
- "ID": "Omegasis.BillboardAnywhere",
- "FormerIDs": "{ID:'7ad4f6f7-c3de-4729-a40f-7a11d2b2a358', Name:'Billboard Anywhere'}", // changed in 1.4; disambiguate from other mods by Alpha_Omegasis
- "Default | UpdateKey": "Nexus:492" // added in 1.4.1
- },
-
- "Birthday Mail": {
- "ID": "KathrynHazuka.BirthdayMail",
- "FormerIDs": "005e02dc-d900-425c-9c68-1ff55c5a295d", // changed in 1.2.3-pathoschild-update
- "Default | UpdateKey": "Nexus:276",
- "~1.2.2 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Breed Like Rabbits": {
- "ID": "dycedarger.breedlikerabbits",
- "Default | UpdateKey": "Nexus:948"
- },
-
- "Build Endurance": {
- "ID": "Omegasis.BuildEndurance",
- "FormerIDs": "{ID:'4be88c18-b6f3-49b0-ba96-f94b1a5be890', Name:'BuildEndurance'}", // changed in 1.4; disambiguate from other Alpha_Omegasis mods
- "Default | UpdateKey": "Nexus:445", // added in 1.4.1
- "~1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Build Health": {
- "ID": "Omegasis.BuildHealth",
- "FormerIDs": "{ID:'4be88c18-b6f3-49b0-ba96-f94b1a5be890', Name:'BuildHealth'}", // changed in 1.4; disambiguate from other Alpha_Omegasis mods
- "Default | UpdateKey": "Nexus:446", // added in 1.4.1
- "~1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Buy Cooking Recipes": {
- "ID": "Denifia.BuyRecipes",
- "Default | UpdateKey": "Nexus:1126", // added in 1.0.1 (2017-10-04)
- "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Buy Back Collectables": {
- "ID": "Omegasis.BuyBackCollectables",
- "FormerIDs": "BuyBackCollectables", // changed in 1.4
- "Default | UpdateKey": "Nexus:507", // added in 1.4.1
- "~1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Carry Chest": {
- "ID": "spacechase0.CarryChest",
- "Default | UpdateKey": "Nexus:1333"
- },
-
- "Casks Anywhere": {
- "ID": "CasksAnywhere",
- "MapLocalVersions": { "1.1-alpha": "1.1" },
- "Default | UpdateKey": "Nexus:878"
- },
-
- "Categorize Chests": {
- "ID": "CategorizeChests",
- "Default | UpdateKey": "Nexus:1300"
- },
-
- "Chefs Closet": {
- "ID": "Duder.ChefsCloset",
- "MapLocalVersions": { "1.3-1": "1.3" },
- "Default | UpdateKey": "Nexus:1030"
- },
-
- "Chest Label System": {
- "ID": "Speeder.ChestLabel",
- "FormerIDs": "SPDChestLabel", // changed in 1.5.1-pathoschild-update
- "Default | UpdateKey": "Nexus:242",
- "~1.6 | Status": "AssumeBroken" // broke in SDV 1.1
- },
-
- "Chest Pooling": {
- "ID": "mralbobo.ChestPooling",
- "FormerIDs": "{EntryDll: 'ChestPooling.dll'}", // changed in 1.3
- "Default | UpdateKey": "GitHub:mralbobo/stardew-chest-pooling",
- "~1.2 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Chests Anywhere": {
- "ID": "Pathoschild.ChestsAnywhere",
- "FormerIDs": "ChestsAnywhere", // changed in 1.9
- "Default | UpdateKey": "Nexus:518",
- "~1.9-beta | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Choose Baby Gender": {
- "FormerIDs": "{EntryDll: 'ChooseBabyGender.dll'}",
- "Default | UpdateKey": "Nexus:590",
- "~1.0.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "CJB Automation": {
- "ID": "CJBAutomation",
- "Default | UpdateKey": "Nexus:211",
- "~1.4 | Status": "AssumeBroken", // broke in SDV 1.2
- "~1.4 | AlternativeUrl": "http://www.nexusmods.com/stardewvalley/mods/1063"
- },
-
- "CJB Cheats Menu": {
- "ID": "CJBok.CheatsMenu",
- "FormerIDs": "CJBCheatsMenu", // changed in 1.14
- "Default | UpdateKey": "Nexus:4",
- "~1.12 | Status": "AssumeBroken" // broke in SDV 1.1
- },
-
- "CJB Item Spawner": {
- "ID": "CJBok.ItemSpawner",
- "FormerIDs": "CJBItemSpawner", // changed in 1.7
- "Default | UpdateKey": "Nexus:93",
- "~1.5 | Status": "AssumeBroken" // broke in SDV 1.1
- },
-
- "CJB Show Item Sell Price": {
- "ID": "CJBok.ShowItemSellPrice",
- "FormerIDs": "CJBShowItemSellPrice", // changed in 1.7
- "Default | UpdateKey": "Nexus:5",
- "~1.6 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Clean Farm": {
- "ID": "tstaples.CleanFarm",
- "Default | UpdateKey": "Nexus:794"
- },
-
- "Climates of Ferngill": {
- "ID": "KoihimeNakamura.ClimatesOfFerngill",
- "Default | UpdateKey": "Nexus:604",
- "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Coal Regen": {
- "ID": "Blucifer.CoalRegen",
- "Default | UpdateKey": "Nexus:1664"
- },
-
- "Cold Weather Haley": {
- "ID": "LordXamon.ColdWeatherHaleyPRO",
- "Default | UpdateKey": "Nexus:1169",
- "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Colored Chests": {
- "ID": "4befde5c-731c-4853-8e4b-c5cdf946805f",
- "~ | Status": "Obsolete",
- "~ | StatusReasonPhrase": "colored chests were added in Stardew Valley 1.1."
- },
-
- "Combat with Farm Implements": {
- "ID": "SPDFarmingImplementsInCombat",
- "Default | UpdateKey": "Nexus:313",
- "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Community Bundle Item Tooltip": {
- "ID": "musbah.bundleTooltip",
- "Default | UpdateKey": "Nexus:1329"
- },
-
- "Concentration on Farming": {
- "ID": "punyo.ConcentrationOnFarming",
- "Default | UpdateKey": "Nexus:1445"
- },
-
- "Configurable Machines": {
- "ID": "21da6619-dc03-4660-9794-8e5b498f5b97",
- "MapLocalVersions": { "1.2-beta": "1.2" },
- "Default | UpdateKey": "Nexus:280"
- },
-
- "Configurable Shipping Dates": {
- "ID": "ConfigurableShippingDates",
- "Default | UpdateKey": "Nexus:675",
- "~1.1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Cooking Skill": {
- "ID": "spacechase0.CookingSkill",
- "FormerIDs": "CookingSkill", // changed in 1.0.4–6
- "Default | UpdateKey": "Nexus:522",
- "~1.0.6 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "CrabNet": {
- "ID": "jwdred.CrabNet",
- "FormerIDs": "{EntryDll: 'CrabNet.dll'}", // changed in 1.0.5
- "Default | UpdateKey": "Nexus:584",
- "~1.0.4 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Crafting Counter": {
- "ID": "lolpcgaming.CraftingCounter",
- "Default | UpdateKey": "Nexus:1585"
- },
-
- "Current Location": {
- "ID": "CurrentLocation102120161203",
- "Default | UpdateKey": "Nexus:638"
- },
-
- "Custom Asset Modifier": {
- "ID": "Omegasis.CustomAssetModifier",
- "Default | UpdateKey": "1836"
- },
-
- "Custom Critters": {
- "ID": "spacechase0.CustomCritters",
- "Default | UpdateKey": "Nexus:1255"
- },
-
- "Custom Crops": {
- "ID": "spacechase0.CustomCrops",
- "Default | UpdateKey": "Nexus:1592"
- },
-
- "Custom Element Handler": {
- "ID": "Platonymous.CustomElementHandler",
- "Default | UpdateKey": "Nexus:1068" // added in 1.3.1
- },
-
- "Custom Farming Redux": {
- "ID": "Platonymous.CustomFarming",
- "Default | UpdateKey": "Nexus:991" // added in 0.6.1
- },
-
- "Custom Farming Automate Bridge": {
- "ID": "Platonymous.CFAutomate",
- "~1.0.1 | Status": "AssumeBroken", // no longer compatible with Automate
- "~1.0.1 | AlternativeUrl": "https://www.nexusmods.com/stardewvalley/mods/991"
- },
-
- "Custom Farm Types": {
- "ID": "spacechase0.CustomFarmTypes",
- "Default | UpdateKey": "Nexus:1140"
- },
-
- "Custom Furniture": {
- "ID": "Platonymous.CustomFurniture",
- "Default | UpdateKey": "Nexus:1254" // added in 0.4.1
- },
-
- "Customize Exterior": {
- "ID": "spacechase0.CustomizeExterior",
- "FormerIDs": "CustomizeExterior", // changed in 1.0.3
- "Default | UpdateKey": "Nexus:1099",
- "~1.0.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Customizable Cart Redux": {
- "ID": "KoihimeNakamura.CCR",
- "MapLocalVersions": { "1.1-20170917": "1.1" },
- "Default | UpdateKey": "Nexus:1402"
- },
-
- "Customizable Traveling Cart Days": {
- "ID": "TravelingCartYyeahdude",
- "Default | UpdateKey": "Nexus:567",
- "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Custom Linens": {
- "ID": "Mevima.CustomLinens",
- "MapRemoteVersions": { "1.1": "1.0" }, // manifest not updated
- "Default | UpdateKey": "Nexus:1027"
- },
-
- "Custom NPC": {
- "ID": "Platonymous.CustomNPC",
- "Default | UpdateKey": "Nexus:1607"
- },
-
- "Custom Shops Redux": {
- "ID": "Omegasis.CustomShopReduxGui",
- "Default | UpdateKey": "Nexus:1378" // added in 1.4.1
- },
-
- "Custom TV": {
- "ID": "Platonymous.CustomTV",
- "Default | UpdateKey": "Nexus:1139" // added in 1.0.6
- },
-
- "Daily Luck Message": {
- "ID": "Schematix.DailyLuckMessage",
- "Default | UpdateKey": "Nexus:1327"
- },
-
- "Daily News": {
- "ID": "bashNinja.DailyNews",
- "Default | UpdateKey": "Nexus:1141",
- "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Daily Quest Anywhere": {
- "ID": "Omegasis.DailyQuestAnywhere",
- "FormerIDs": "DailyQuest", // changed in 1.4
- "Default | UpdateKey": "Nexus:513" // added in 1.4.1
- },
-
- "Debug Mode": {
- "ID": "Pathoschild.DebugMode",
- "FormerIDs": "Pathoschild.Stardew.DebugMode", // changed in 1.4
- "Default | UpdateKey": "Nexus:679"
- },
-
- "Did You Water Your Crops?": {
- "ID": "Nishtra.DidYouWaterYourCrops",
- "Default | UpdateKey": "Nexus:1583"
- },
-
- "Dynamic Checklist": {
- "ID": "gunnargolf.DynamicChecklist",
- "Default | UpdateKey": "Nexus:1145", // added in 1.0.1-pathoschild-update
- "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Dynamic Horses": {
- "ID": "Bpendragon-DynamicHorses",
- "MapRemoteVersions": { "1.2": "1.1-release" }, // manifest not updated
- "Default | UpdateKey": "Nexus:874"
- },
-
- "Dynamic Machines": {
- "ID": "DynamicMachines",
- "MapLocalVersions": { "1.1": "1.1.1" },
- "Default | UpdateKey": "Nexus:374",
- "~1.1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Dynamic NPC Sprites": {
- "ID": "BashNinja.DynamicNPCSprites",
- "Default | UpdateKey": "Nexus:1183"
- },
-
- "Easier Farming": {
- "ID": "cautiouswafffle.EasierFarming",
- "Default | UpdateKey": "Nexus:1426"
- },
-
- "Empty Hands": {
- "ID": "QuicksilverFox.EmptyHands",
- "Default | UpdateKey": "Nexus:1176", // added in 1.0.1-pathoschild-update
- "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Enemy Health Bars": {
- "ID": "Speeder.HealthBars",
- "FormerIDs": "SPDHealthBar", // changed in 1.7.1-pathoschild-update
- "Default | UpdateKey": "Nexus:193",
- "~1.7 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Entoarox Framework": {
- "ID": "Entoarox.EntoaroxFramework",
- "FormerIDs": "eacdb74b-4080-4452-b16b-93773cda5cf9", // changed in ???
- "~2.0.6 | UpdateKey": "Chucklefish:4228", // only enable update checks up to 2.0.6 by request (has its own update-check feature)
- "~2.0.6 | Status": "AssumeBroken" // broke in SMAPI 2.5 (error reflecting into SMAPI internals)
- },
-
- "Expanded Fridge": {
- "ID": "Uwazouri.ExpandedFridge",
- "Default | UpdateKey": "Nexus:1191"
- },
-
- "Experience Bars": {
- "ID": "spacechase0.ExperienceBars",
- "FormerIDs": "ExperienceBars", // changed in 1.0.2
- "Default | UpdateKey": "Nexus:509"
- },
-
- "Extended Bus System": {
- "ID": "ExtendedBusSystem",
- "Default | UpdateKey": "Chucklefish:4373"
- },
-
- "Extended Fridge": {
- "ID": "Crystalmir.ExtendedFridge",
- "FormerIDs": "Mystra007ExtendedFridge", // changed in 1.0.1
- "Default | UpdateKey": "Nexus:485",
- "~1.0 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Extended Greenhouse": {
- "ID": "ExtendedGreenhouse",
- "Default | UpdateKey": "Chucklefish:4303",
- "~1.0.2 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Extended Minecart": {
- "ID": "Entoarox.ExtendedMinecart",
- "FormerIDs": "{ID:'EntoaroxFurnitureAnywhere', Name:'Extended Minecart'}", // changed in 1.6.1
- "~1.7.1 | UpdateKey": "Chucklefish:4359" // only enable update checks up to 1.7.1 by request (has its own update-check feature)
- },
-
- "Extended Reach": {
- "ID": "spacechase0.ExtendedReach",
- "Default | UpdateKey": "Nexus:1493"
- },
-
- "Fall 28 Snow Day": {
- "ID": "Omegasis.Fall28SnowDay",
- "FormerIDs": "{ID:'7ad4f6f7-c3de-4729-a40f-7a11d2b2a358', Name:'Fall28 Snow Day'}", // changed in 1.4; disambiguate from other mods by Alpha_Omegasis
- "Default | UpdateKey": "Nexus:486", // added in 1.4.1
- "~1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Farm Automation: Barn Door Automation": {
- "FormerIDs": "{EntryDll: 'FarmAutomation.BarnDoorAutomation.dll'}",
- "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Farm Automation: Item Collector": {
- "FormerIDs": "{EntryDll: 'FarmAutomation.ItemCollector.dll'}",
- "~1.0 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Farm Automation Unofficial: Item Collector": {
- "ID": "Maddy99.FarmAutomation.ItemCollector",
- "~0.5 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Farm Expansion": {
- "ID": "Advize.FarmExpansion",
- "FormerIDs": "3888bdfd-73f6-4776-8bb7-8ad45aea1915 | AdvizeFarmExpansionMod-2-0 | AdvizeFarmExpansionMod-2-0-5", // changed in 2.0, 2.0.5, and 3.0
- "Default | UpdateKey": "Nexus:130",
- "~2.0.5 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Farm Resource Generator": {
- "FormerIDs": "{EntryDll: 'FarmResourceGenerator.dll'}",
- "Default | UpdateKey": "Nexus:647",
- "~1.0.4 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Fast Animations": {
- "ID": "Pathoschild.FastAnimations",
- "Default | UpdateKey": "Nexus:1089"
- },
-
- "Faster Grass": {
- "ID": "IceGladiador.FasterGrass",
- "Default | UpdateKey": "Nexus:1772"
- },
-
- "Faster Paths": {
- "ID": "Entoarox.FasterPaths",
- "FormerIDs": "{ID:'821ce8f6-e629-41ad-9fde-03b54f68b0b6', Name:'Faster Paths'} | 615f85f8-5c89-44ee-aecc-c328f172e413", // changed in 1.2 and 1.3; disambiguate from Shop Expander
- "~1.3.3 | UpdateKey": "Chucklefish:3641" // only enable update checks up to 1.3.3 by request (has its own update-check feature)
- },
-
- "Faster Run": {
- "ID": "KathrynHazuka.FasterRun",
- "FormerIDs": "{EntryDll: 'FasterRun.dll'}", // changed in 1.1.1-pathoschild-update
- "Default | UpdateKey": "Nexus:733", // added in 1.1.1-pathoschild-update
- "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Fishing Adjust": {
- "ID": "shuaiz.FishingAdjustMod",
- "Default | UpdateKey": "Nexus:1350"
- },
-
- "Fishing Tuner Redux": {
- "ID": "HammurabiFishingTunerRedux",
- "Default | UpdateKey": "Chucklefish:4578"
- },
-
- "Fixed Secret Woods Debris": {
- "ID": "f4iTh.WoodsDebrisFix",
- "Default | UpdateKey": "Nexus:1941"
- },
-
- "FlorenceMod": {
- "FormerIDs": "{EntryDll: 'FlorenceMod.dll'}",
- "MapLocalVersions": { "1.0.1": "1.1" },
- "Default | UpdateKey": "Nexus:591",
- "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Flower Color Picker": {
- "ID": "spacechase0.FlowerColorPicker",
- "Default | UpdateKey": "Nexus:1229"
- },
-
- "Forage at the Farm": {
- "ID": "Nishtra.ForageAtTheFarm",
- "FormerIDs": "ForageAtTheFarm", // changed in <=1.6
- "Default | UpdateKey": "Nexus:673",
- "~1.5.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Furniture Anywhere": {
- "ID": "Entoarox.FurnitureAnywhere",
- "FormerIDs": "{ID:'EntoaroxFurnitureAnywhere', Name:'Furniture Anywhere'}", // changed in 1.1; disambiguate from Extended Minecart
- "~1.1.5 | UpdateKey": "Chucklefish:4324" // only enable update checks up to 1.1.5 by request (has its own update-check feature)
- },
-
- "Game Reminder": {
- "ID": "mmanlapat.GameReminder",
- "Default | UpdateKey": "Nexus:1153"
- },
-
- "Gate Opener": {
- "ID": "mralbobo.GateOpener",
- "FormerIDs": "{EntryDll: 'GateOpener.dll'}", // changed in 1.1
- "Default | UpdateKey": "GitHub:mralbobo/stardew-gate-opener",
- "~1.0.1 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "GenericShopExtender": {
- "ID": "GenericShopExtender",
- "Default | UpdateKey": "Nexus:814", // added in 0.1.3
- "~0.1.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Geode Info Menu": {
- "ID": "cat.geodeinfomenu",
- "Default | UpdateKey": "Nexus:1448"
- },
-
- "Get Dressed": {
- "ID": "Advize.GetDressed",
- "FormerIDs": "{EntryDll: 'GetDressed.dll'}", // changed in 3.3
- "Default | UpdateKey": "Nexus:331",
- "~3.3 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Giant Crop Ring": {
- "ID": "cat.giantcropring",
- "Default | UpdateKey": "Nexus:1182"
- },
-
- "Gift Taste Helper": {
- "ID": "tstaples.GiftTasteHelper",
- "FormerIDs": "8008db57-fa67-4730-978e-34b37ef191d6", // changed in 2.5
- "Default | UpdateKey": "Nexus:229",
- "~2.3.1 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Grandfather's Gift": {
- "ID": "ShadowDragon.GrandfathersGift",
- "Default | UpdateKey": "Nexus:985"
- },
-
- "Happy Animals": {
- "ID": "HappyAnimals",
- "~1.0.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Happy Birthday (Omegasis)": {
- "ID": "Omegasis.HappyBirthday",
- "FormerIDs": "{ID:'HappyBirthday', Author:'Alpha_Omegasis'}", // changed in 1.4; disambiguate from Oxyligen's fork
- "Default | UpdateKey": "Nexus:520", // added in 1.4.1
- "~1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Happy Birthday (Oxyligen fork)": {
- "FormerIDs": "{ID:'HappyBirthday', Author:'Alpha_Omegasis/Oxyligen'}", // disambiguate from Oxyligen's fork
- "Default | UpdateKey": "Nexus:1064" // missing key reported: https://www.nexusmods.com/stardewvalley/mods/1064?tab=bugs
- },
-
- "Hardcore Mines": {
- "ID": "kibbe.hardcore_mines",
- "Default | UpdateKey": "Nexus:1674"
- },
-
- "Harp of Yoba Redux": {
- "ID": "Platonymous.HarpOfYobaRedux",
- "Default | UpdateKey": "Nexus:914" // added in 2.0.3
- },
-
- "Harvest Moon Witch Princess": {
- "ID": "Sasara.WitchPrincess",
- "Default | UpdateKey": "Nexus:1157"
- },
-
- "Harvest With Scythe": {
- "ID": "965169fd-e1ed-47d0-9f12-b104535fb4bc",
- "Default | UpdateKey": "Nexus:236",
- "~1.0.6 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Horse Whistle (icepuente)": {
- "ID": "icepuente.HorseWhistle",
- "Default | UpdateKey": "Nexus:1131"
- },
-
- "Hunger (Yyeadude)": {
- "ID": "HungerYyeadude",
- "Default | UpdateKey": "Nexus:613"
- },
-
- "Hunger for Food (Tigerle)": {
- "ID": "HungerForFoodByTigerle",
- "Default | UpdateKey": "Nexus:810",
- "~0.1.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Hunger Mod (skn)": {
- "ID": "skn.HungerMod",
- "MapRemoteVersions": { "1.2.1": "1.0" }, // manifest not updated
- "Default | UpdateKey": "Nexus:1127"
- },
-
- "Idle Pause": {
- "ID": "Veleek.IdlePause",
- "MapRemoteVersions": { "1.2": "1.1" }, // manifest not updated
- "Default | UpdateKey": "Nexus:1092"
- },
-
- "Improved Quality of Life": {
- "ID": "Demiacle.ImprovedQualityOfLife",
- "Default | UpdateKey": "Nexus:1025",
- "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Instant Geode": {
- "ID": "InstantGeode",
- "~1.12 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Instant Grow Trees": {
- "ID": "cantorsdust.InstantGrowTrees",
- "FormerIDs": "dc50c58b-c7d8-4e60-86cc-e27b5d95ee59 | community.InstantGrowTrees", // changed in 1.2 and 1.3.1
- "Default | UpdateKey": "Nexus:173"
- },
-
- "Interaction Helper": {
- "ID": "HammurabiInteractionHelper",
- "Default | UpdateKey": "Chucklefish:4640", // added in 1.0.4-pathoschild-update
- "~1.0.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Item Auto Stacker": {
- "ID": "cat.autostacker",
- "MapRemoteVersions": { "1.0.1": "1.0" }, // manifest not updated
- "Default | UpdateKey": "Nexus:1184"
- },
-
- "Jiggly Junimo Bundles": {
- "ID": "Greger.JigglyJunimoBundles",
- "FormerIDs": "{EntryDll: 'JJB.dll'}", // changed in 1.1.2-pathoschild-update
- "Default | UpdateKey": "GitHub:gr3ger/Stardew_JJB" // added in 1.0.4-pathoschild-update
- },
-
- "Json Assets": {
- "ID": "spacechase0.JsonAssets",
- "Default | UpdateKey": "Nexus:1720"
- },
-
- "Junimo Farm": {
- "ID": "Platonymous.JunimoFarm",
- "MapRemoteVersions": { "1.1.2": "1.1.1" }, // manifest not updated
- "Default | UpdateKey": "Nexus:984" // added in 1.1.3
- },
-
- "Less Strict Over-Exertion (AntiExhaustion)": {
- "ID": "BALANCEMOD_AntiExhaustion",
- "MapLocalVersions": { "0.0": "1.1" },
- "Default | UpdateKey": "Nexus:637",
- "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Level Extender": {
- "ID": "Devin Lematty.Level Extender",
- "MapRemoteVersions": { "1.1": "1.0" }, // manifest not updated
- "Default | UpdateKey": "Nexus:1471"
- },
-
- "Level Up Notifications": {
- "ID": "Level Up Notifications",
- "MapRemoteVersions": { "0.0.1a": "0.0.1" },
- "Default | UpdateKey": "Nexus:855"
- },
-
- "Location and Music Logging": {
- "ID": "Brandy Lover.LMlog",
- "Default | UpdateKey": "Nexus:1366"
- },
-
- "Longevity": {
- "ID": "RTGOAT.Longevity",
- "MapRemoteVersions": { "1.6.8h": "1.6.8" },
- "Default | UpdateKey": "Nexus:649"
- },
-
- "Lookup Anything": {
- "ID": "Pathoschild.LookupAnything",
- "FormerIDs": "LookupAnything", // changed in 1.10.1
- "Default | UpdateKey": "Nexus:541",
- "~1.10.1 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Love Bubbles": {
- "ID": "LoveBubbles",
- "Default | UpdateKey": "Nexus:1318"
- },
-
- "Loved Labels": {
- "ID": "Advize.LovedLabels",
- "FormerIDs": "{EntryDll: 'LovedLabels.dll'}", // changed in 2.1
- "Default | UpdateKey": "Nexus:279",
- "~2.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Luck Skill": {
- "ID": "spacechase0.LuckSkill",
- "FormerIDs": "LuckSkill", // changed in 0.1.4
- "Default | UpdateKey": "Nexus:521",
- "~0.1.4 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Mail Framework": {
- "ID": "DIGUS.MailFrameworkMod",
- "Default | UpdateKey": "Nexus:1536"
- },
-
- "MailOrderPigs": {
- "ID": "jwdred.MailOrderPigs",
- "FormerIDs": "{EntryDll: 'MailOrderPigs.dll'}", // changed in 1.0.2
- "Default | UpdateKey": "Nexus:632",
- "~1.0.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Makeshift Multiplayer": {
- "ID": "spacechase0.StardewValleyMP",
- "FormerIDs": "StardewValleyMP", // changed in 0.3
- "Default | UpdateKey": "Nexus:501",
- "~0.3.6 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Map Image Exporter": {
- "ID": "spacechase0.MapImageExporter",
- "FormerIDs": "MapImageExporter", // changed in 1.0.2
- "Default | UpdateKey": "Nexus:1073"
- },
-
- "Message Box [API]? (ChatMod)": {
- "ID": "Kithio:ChatMod",
- "Default | UpdateKey": "Chucklefish:4296",
- "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Mining at the Farm": {
- "ID": "Nishtra.MiningAtTheFarm",
- "FormerIDs": "MiningAtTheFarm", // changed in <=1.7
- "Default | UpdateKey": "Nexus:674"
- },
-
- "Mining With Explosives": {
- "ID": "Nishtra.MiningWithExplosives",
- "FormerIDs": "MiningWithExplosives", // changed in 1.1
- "Default | UpdateKey": "Nexus:770"
- },
-
- "Modder Serialization Utility": {
- "ID": "SerializerUtils-0-1",
- "~ | Status": "Obsolete",
- "~ | StatusReasonPhrase": "it's no longer maintained or used."
- },
-
- "Monster Level Tip": {
- "ID": "WhiteMind.MonsterLT",
- "Default | UpdateKey": "Nexus:1896"
- },
-
- "More Animals": {
- "ID": "Entoarox.MoreAnimals",
- "FormerIDs": "821ce8f6-e629-41ad-9fde-03b54f68b0b6MOREPETS | Entoarox.MorePets", // changed in 1.3 and 2.0
- "~2.0.2 | UpdateKey": "Chucklefish:4288", // only enable update checks up to 2.0.2 by request (has its own update-check feature)
- "~1.3.2 | Status": "AssumeBroken" // overhauled for SMAPI 1.11+ compatibility
- },
-
- "More Artifact Spots": {
- "ID": "451",
- "Default | UpdateKey": "Nexus:451",
- "~1.0.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "More Map Layers": {
- "ID": "Platonymous.MoreMapLayers",
- "Default | UpdateKey": "Nexus:1134" // added in 1.1.1
- },
-
- "More Rain": {
- "ID": "Omegasis.MoreRain",
- "FormerIDs": "{ID:'4108e859-333c-4fec-a1a7-d2e18c1019fe', Name:'More_Rain'}", // changed in 1.5; disambiguate from other mods by Alpha_Omegasis
- "Default | UpdateKey": "Nexus:441", // added in 1.5.1
- "~1.4 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "More Weapons": {
- "ID": "Joco80.MoreWeapons",
- "Default | UpdateKey": "Nexus:1168"
- },
-
- "Move Faster": {
- "ID": "shuaiz.MoveFasterMod",
- "Default | UpdateKey": "Nexus:1351"
- },
-
- "Multiple Sprites and Portraits On Rotation (File Loading)": {
- "ID": "FileLoading",
- "MapLocalVersions": { "1.1": "1.12" },
- "Default | UpdateKey": "Nexus:1094",
- "~1.12 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Museum Rearranger": {
- "ID": "Omegasis.MuseumRearranger",
- "FormerIDs": "{ID:'7ad4f6f7-c3de-4729-a40f-7a11d2b2a358', Name:'Museum Rearranger'}", // changed in 1.4; disambiguate from other mods by Alpha_Omegasis
- "Default | UpdateKey": "Nexus:428", // added in 1.4.1
- "~1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Mushroom Level Tip": {
- "ID": "WhiteMind.MLT",
- "Default | UpdateKey": "Nexus:1894"
- },
-
- "New Machines": {
- "ID": "F70D4FAB-0AB2-4B78-9F1B-AF2CA2236A59",
- "Default | UpdateKey": "Chucklefish:3683",
- "~4.2.1343 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Night Owl": {
- "ID": "Omegasis.NightOwl",
- "FormerIDs": "{ID:'SaveAnywhere', Name:'Stardew_NightOwl'}", // changed in 1.4; disambiguate from Save Anywhere
- "MapLocalVersions": { "2.1": "1.3" }, // 1.3 had wrong version in manifest
- "Default | UpdateKey": "Nexus:433", // added in 1.4.1
- "~1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "No Crows": {
- "ID": "cat.nocrows",
- "Default | UpdateKey": "Nexus:1682"
- },
-
- "No Kids Ever": {
- "ID": "Hangy.NoKidsEver",
- "Default | UpdateKey": "Nexus:1464"
- },
-
- "No Debug Mode": {
- "ID": "NoDebugMode",
- "~ | Status": "Obsolete",
- "~ | StatusReasonPhrase": "debug mode was removed in SMAPI 1.0."
- },
-
- "No Fence Decay": {
- "ID": "cat.nofencedecay",
- "Default | UpdateKey": "Nexus:1180"
- },
-
- "No More Pets": {
- "ID": "Omegasis.NoMorePets",
- "FormerIDs": "NoMorePets", // changed in 1.4
- "Default | UpdateKey": "Nexus:506" // added in 1.4.1
- },
-
- "No Rumble Horse": {
- "ID": "Xangria.NoRumbleHorse",
- "Default | UpdateKey": "Nexus:1779"
- },
-
- "No Soil Decay": {
- "ID": "289dee03-5f38-4d8e-8ffc-e440198e8610",
- "Default | UpdateKey": "Nexus:237",
- "~0.5 | Status": "AssumeBroken" // broke in SDV 1.2 and uses Assembly.GetExecutingAssembly().Location
- },
-
- "No Soil Decay Redux": {
- "ID": "Platonymous.NoSoilDecayRedux",
- "Default | UpdateKey": "Nexus:1084" // added in 1.1.9
- },
-
- "NPC Map Locations": {
- "ID": "NPCMapLocationsMod",
- "Default | UpdateKey": "Nexus:239",
- "1.42~1.43 | Status": "AssumeBroken",
- "1.42~1.43 | StatusReasonPhrase": "this version has an update check error which crashes the game."
- },
-
- "NPC Speak": {
- "FormerIDs": "{EntryDll: 'NpcEcho.dll'}",
- "Default | UpdateKey": "Nexus:694",
- "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Object Time Left": {
- "ID": "spacechase0.ObjectTimeLeft",
- "Default | UpdateKey": "Nexus:1315"
- },
-
- "OmniFarm": {
- "ID": "PhthaloBlue.OmniFarm",
- "FormerIDs": "BlueMod_OmniFarm", // changed in 2.0.2-pathoschild-update
- "Default | UpdateKey": "GitHub:lambui/StardewValleyMod_OmniFarm",
- "~2.0.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Out of Season Bonuses (Seasonal Items)": {
- "ID": "midoriarmstrong.seasonalitems",
- "Default | UpdateKey": "Nexus:1452"
- },
-
- "Part of the Community": {
- "ID": "SB_PotC",
- "Default | UpdateKey": "Nexus:923",
- "~1.0.8 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "PelicanFiber": {
- "ID": "jwdred.PelicanFiber",
- "FormerIDs": "{EntryDll: 'PelicanFiber.dll'}", // changed in 3.0.1
- "MapRemoteVersions": { "3.0.2": "3.0.1" }, // didn't change manifest version
- "Default | UpdateKey": "Nexus:631",
- "~3.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "PelicanTTS": {
- "ID": "Platonymous.PelicanTTS",
- "Default | UpdateKey": "Nexus:1079", // added in 1.6.1
- "~1.6 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Persia the Mermaid - Standalone Custom NPC": {
- "ID": "63b9f419-7449-42db-ab2e-440b4d05c073",
- "Default | UpdateKey": "Nexus:1419"
- },
-
- "Persistent Game Options": {
- "ID": "Xangria.PersistentGameOptions",
- "Default | UpdateKey": "Nexus:1778"
- },
-
- "Persival's BundleMod": {
- "FormerIDs": "{EntryDll: 'BundleMod.dll'}",
- "Default | UpdateKey": "Nexus:438",
- "~1.0 | Status": "AssumeBroken" // broke in SDV 1.1
- },
-
- "Plant on Grass": {
- "ID": "Demiacle.PlantOnGrass",
- "Default | UpdateKey": "Nexus:1026"
- },
-
- "PyTK - Platonymous Toolkit": {
- "ID": "Platonymous.Toolkit",
- "Default | UpdateKey": "Nexus:1726"
- },
-
- "Point-and-Plant": {
- "ID": "jwdred.PointAndPlant",
- "FormerIDs": "{EntryDll: 'PointAndPlant.dll'}", // changed in 1.0.3
- "Default | UpdateKey": "Nexus:572",
- "~1.0.2 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Pony Weight Loss Program": {
- "ID": "BadNetCode.PonyWeightLossProgram",
- "Default | UpdateKey": "Nexus:1232"
- },
-
- "Portraiture": {
- "ID": "Platonymous.Portraiture",
- "Default | UpdateKey": "Nexus:999" // added in 1.3.1
- },
-
- "Prairie King Made Easy": {
- "ID": "Mucchan.PrairieKingMadeEasy",
- "FormerIDs": "{EntryDll: 'PrairieKingMadeEasy.dll'}", // changed in 1.0.1
- "Default | UpdateKey": "Chucklefish:3594",
- "~1.0 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Purchasable Recipes": {
- "ID": "Paracosm.PurchasableRecipes",
- "Default | UpdateKey": "Nexus:1722"
- },
-
- "Quest Delay": {
- "ID": "BadNetCode.QuestDelay",
- "Default | UpdateKey": "Nexus:1239"
- },
-
- "Rain Randomizer": {
- "FormerIDs": "{EntryDll: 'RainRandomizer.dll'}",
- "~1.0.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Recatch Legendary Fish": {
- "ID": "cantorsdust.RecatchLegendaryFish",
- "FormerIDs": "b3af8c31-48f0-43cf-8343-3eb08bcfa1f9 | community.RecatchLegendaryFish", // changed in 1.3 and 1.5.1
- "Default | UpdateKey": "Nexus:172"
- },
-
- "Regeneration": {
- "ID": "HammurabiRegeneration",
- "Default | UpdateKey": "Chucklefish:4584"
- },
-
- "Relationship Bar UI": {
- "ID": "RelationshipBar",
- "Default | UpdateKey": "Nexus:1009"
- },
-
- "RelationshipsEnhanced": {
- "ID": "relationshipsenhanced",
- "Default | UpdateKey": "Chucklefish:4435",
- "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Relationship Status": {
- "ID": "relationshipstatus",
- "MapRemoteVersions": { "1.0.5": "1.0.4" }, // not updated in manifest
- "Default | UpdateKey": "Nexus:751",
- "~1.0.5 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Rented Tools": {
- "ID": "JarvieK.RentedTools",
- "Default | UpdateKey": "Nexus:1307"
- },
-
- "Replanter": {
- "ID": "jwdred.Replanter",
- "FormerIDs": "{EntryDll: 'Replanter.dll'}", // changed in 1.0.5
- "Default | UpdateKey": "Nexus:589",
- "~1.0.4 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "ReRegeneration": {
- "ID": "lrsk_sdvm_rerg.0925160827",
- "MapLocalVersions": { "1.1.2-release": "1.1.2" },
- "Default | UpdateKey": "Chucklefish:4465"
- },
-
- "Reseed": {
- "ID": "Roc.Reseed",
- "Default | UpdateKey": "Nexus:887"
- },
-
- "Reusable Wallpapers and Floors (Wallpaper Retain)": {
- "ID": "dae1b553-2e39-43e7-8400-c7c5c836134b",
- "Default | UpdateKey": "Nexus:356",
- "~1.5 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Ring of Fire": {
- "ID": "Platonymous.RingOfFire",
- "Default | UpdateKey": "Nexus:1166" // added in 1.0.1
- },
-
- "Rise and Shine": {
- "ID": "Yoshify.RiseAndShine",
- "FormerIDs": "{EntryDll: 'RiseAndShine.dll'}", // changed in 1.1.1-whisk-update
- "Default | UpdateKey": "Nexus:3"
- },
-
- "Rope Bridge": {
- "ID": "RopeBridge",
- "Default | UpdateKey": "Nexus:824"
- },
-
- "Rotate Toolbar": {
- "ID": "Pathoschild.RotateToolbar",
- "Default | UpdateKey": "Nexus:1100"
- },
-
- "Rush Orders": {
- "ID": "spacechase0.RushOrders",
- "FormerIDs": "RushOrders", // changed in 1.1
- "Default | UpdateKey": "Nexus:605",
- "~1.1 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Save Anywhere": {
- "ID": "Omegasis.SaveAnywhere",
- "FormerIDs": "{ID:'SaveAnywhere', Name:'Save Anywhere'}", // changed in 2.5; disambiguate from Night Owl
- "Default | UpdateKey": "Nexus:444", // added in 2.6.1
- "~2.4 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Save Backup": {
- "ID": "Omegasis.SaveBackup",
- "FormerIDs": "{ID:'4be88c18-b6f3-49b0-ba96-f94b1a5be890', Name:'Stardew_Save_Backup'}", // changed in 1.3; disambiguate from other Alpha_Omegasis mods
- "Default | UpdateKey": "Nexus:435", // added in 1.3.1
- "~1.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Scroll to Blank": {
- "ID": "caraxian.scroll.to.blank",
- "Default | UpdateKey": "Chucklefish:4405"
- },
-
- "Scythe Harvesting": {
- "ID": "mmanlapat.ScytheHarvesting",
- "FormerIDs": "ScytheHarvesting", // changed in 1.6
- "Default | UpdateKey": "Nexus:1106"
- },
-
- "SDV Twitch": {
- "ID": "MTD.SDVTwitch",
- "Default | UpdateKey": "Nexus:1760"
- },
-
- "Seasonal Immersion": {
- "ID": "Entoarox.SeasonalImmersion",
- "FormerIDs": "EntoaroxSeasonalHouse | EntoaroxSeasonalBuildings | EntoaroxSeasonalImmersion", // changed in 1.1, 1.6 or earlier, and 1.7
- "~1.11 | UpdateKey": "Chucklefish:4262", // only enable update checks up to 1.11 by request (has its own update-check feature)
- "~1.8.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Seed Bag": {
- "ID": "Platonymous.SeedBag",
- "Default | UpdateKey": "Nexus:1133" // added in 1.1.2
- },
-
- "Seed Catalogue": {
- "ID": "spacechase0.SeedCatalogue",
- "Default | UpdateKey": "Nexus:1640"
- },
-
- "Self Service": {
- "ID": "JarvieK.SelfService",
- "MapRemoteVersions": { "0.2.1": "0.2" }, // manifest not updated
- "Default | UpdateKey": "Nexus:1304"
- },
-
- "Send Items": {
- "ID": "Denifia.SendItems",
- "Default | UpdateKey": "Nexus:1087", // added in 1.0.3 (2017-10-04)
- "~1.0.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Shed Notifications (BuildingsNotifications)": {
- "ID": "TheCroak.BuildingsNotifications",
- "Default | UpdateKey": "Nexus:620",
- "~0.4.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Shenandoah Project": {
- "ID": "Nishtra.ShenandoahProject",
- "FormerIDs": "Shenandoah Project", // changed in 1.2
- "MapRemoteVersions": { "1.1.1": "1.1" }, // not updated in manifest
- "Default | UpdateKey": "Nexus:756",
- "~1.1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Ship Anywhere": {
- "ID": "spacechase0.ShipAnywhere",
- "Default | UpdateKey": "Nexus:1379"
- },
-
- "Shipment Tracker": {
- "ID": "7e474181-e1a0-40f9-9c11-d08a3dcefaf3",
- "Default | UpdateKey": "Nexus:321",
- "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Shop Expander": {
- "ID": "Entoarox.ShopExpander",
- "FormerIDs": "{ID:'821ce8f6-e629-41ad-9fde-03b54f68b0b6', Name:'Shop Expander'} | EntoaroxShopExpander", // changed in 1.5 and 1.5.2; disambiguate from Faster Paths
- "MapRemoteVersions": { "1.6.0b": "1.6.0" },
- "~1.6 | UpdateKey": "Chucklefish:4381", // only enable update checks up to 1.6 by request (has its own update-check feature)
- "~1.5.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Showcase Mod": {
- "ID": "Igorious.Showcase",
- "MapLocalVersions": { "0.9-500": "0.9" },
- "Default | UpdateKey": "Chucklefish:4487",
- "~0.9 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Shroom Spotter": {
- "ID": "TehPers.ShroomSpotter",
- "Default | UpdateKey": "Nexus:908"
- },
-
- "Simple Crop Label": {
- "ID": "SimpleCropLabel",
- "Default | UpdateKey": "Nexus:314"
- },
-
- "Simple Sound Manager": {
- "ID": "Omegasis.SimpleSoundManager",
- "Default | UpdateKey": "Nexus:1410", // added in 1.0.1
- "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Simple Sprinklers": {
- "ID": "tZed.SimpleSprinkler",
- "FormerIDs": "{EntryDll: 'SimpleSprinkler.dll'}", // changed in 1.5
- "Default | UpdateKey": "Nexus:76",
- "~1.4 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Siv's Marriage Mod": {
- "ID": "6266959802",
- "MapLocalVersions": { "0.0": "1.4" },
- "Default | UpdateKey": "Nexus:366",
- "~1.2.2 | Status": "AssumeBroken" // broke in SMAPI 1.9 (has multiple Mod instances)
- },
-
- "Skill Prestige": {
- "ID": "alphablackwolf.skillPrestige",
- "FormerIDs": "6b843e60-c8fc-4a25-a67b-4a38ac8dcf9b", // changed circa 1.2.3
- "Default | UpdateKey": "Nexus:569",
- "~1.0.9 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Skill Prestige: Cooking Adapter": {
- "ID": "Alphablackwolf.CookingSkillPrestigeAdapter",
- "FormerIDs": "20d6b8a3-b6e7-460b-a6e4-07c2b0cb6c63", // changed circa 1.1
- "MapRemoteVersions": { "1.2.3": "1.1" }, // manifest not updated
- "Default | UpdateKey": "Nexus:569",
- "~1.0.9 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Skip Intro": {
- "ID": "Pathoschild.SkipIntro",
- "FormerIDs": "SkipIntro", // changed in 1.4
- "Default | UpdateKey": "Nexus:533"
- },
-
- "Skull Cavern Elevator": {
- "ID": "SkullCavernElevator",
- "Default | UpdateKey": "Nexus:963"
- },
-
- "Skull Cave Saver": {
- "ID": "cantorsdust.SkullCaveSaver",
- "FormerIDs": "8ac06349-26f7-4394-806c-95d48fd35774 | community.SkullCaveSaver", // changed in 1.1 and 1.2.2
- "Default | UpdateKey": "Nexus:175"
- },
-
- "Sleepy Eye": {
- "ID": "spacechase0.SleepyEye",
- "Default | UpdateKey": "Nexus:1152"
- },
-
- "Slower Fence Decay": {
- "ID": "Speeder.SlowerFenceDecay",
- "FormerIDs": "SPDSlowFenceDecay", // changed in 0.5.2-pathoschild-update
- "Default | UpdateKey": "Nexus:252",
- "~0.5.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Smart Mod": {
- "ID": "KuroBear.SmartMod",
- "~2.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Solar Eclipse Event": {
- "ID": "KoihimeNakamura.SolarEclipseEvent",
- "Default | UpdateKey": "Nexus:897",
- "MapLocalVersions": { "1.3-20170917": "1.3" },
- "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "SpaceCore": {
- "ID": "spacechase0.SpaceCore",
- "Default | UpdateKey": "Nexus:1348"
- },
-
- "Speedster": {
- "ID": "Platonymous.Speedster",
- "Default | UpdateKey": "Nexus:1102" // added in 1.3.1
- },
-
- "Sprinkler Range": {
- "ID": "cat.sprinklerrange",
- "Default | UpdateKey": "Nexus:1179"
- },
-
- "Sprinkles": {
- "ID": "Platonymous.Sprinkles",
- "Default | UpdateKey": "Chucklefish:4592",
- "~1.1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Sprint and Dash": {
- "ID": "SPDSprintAndDash",
- "Default | UpdateKey": "Chucklefish:3531",
- "~1.0 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Sprint and Dash Redux": {
- "ID": "littleraskol.SprintAndDashRedux",
- "FormerIDs": "lrsk_sdvm_sndr.0921161059", // changed in 1.3
- "Default | UpdateKey": "Chucklefish:4201"
- },
-
- "Sprinting Mod": {
- "FormerIDs": "{EntryDll: 'SprintingMod.dll'}",
- "MapLocalVersions": { "1.0": "2.1" }, // not updated in manifest
- "Default | UpdateKey": "GitHub:oliverpl/SprintingMod",
- "~2.1 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "StackSplitX": {
- "ID": "tstaples.StackSplitX",
- "FormerIDs": "{EntryDll: 'StackSplitX.dll'}", // changed circa 1.3.1
- "Default | UpdateKey": "Nexus:798",
- "~1.2 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "StaminaRegen": {
- "FormerIDs": "{EntryDll: 'StaminaRegen.dll'}",
- "~1.0.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Stardew Config Menu": {
- "ID": "Juice805.StardewConfigMenu",
- "Default | UpdateKey": "Nexus:1312"
- },
-
- "Stardew Content Compatibility Layer (SCCL)": {
- "ID": "SCCL",
- "Default | UpdateKey": "Nexus:889",
- "~0.1 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Stardew Editor Game Integration": {
- "ID": "spacechase0.StardewEditor.GameIntegration",
- "Default | UpdateKey": "Nexus:1298"
- },
-
- "Stardew Notification": {
- "ID": "stardewnotification",
- "Default | UpdateKey": "GitHub:monopandora/StardewNotification",
- "~1.7 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Stardew Symphony": {
- "ID": "Omegasis.StardewSymphony",
- "FormerIDs": "{ID:'4108e859-333c-4fec-a1a7-d2e18c1019fe', Name:'Stardew_Symphony'}", // changed in 1.4; disambiguate other mods by Alpha_Omegasis
- "Default | UpdateKey": "Nexus:425", // added in 1.4.1
- "~1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "StarDustCore": {
- "ID": "StarDustCore",
- "~ | Status": "Obsolete",
- "~ | StatusReasonPhrase": "it was only used by earlier versions of Save Anywhere, and is no longer used or maintained."
- },
-
- "Starting Money": {
- "ID": "mmanlapat.StartingMoney",
- "FormerIDs": "StartingMoney", // changed in 1.1
- "Default | UpdateKey": "Nexus:1138"
- },
-
- "StashItemsToChest": {
- "ID": "BlueMod_StashItemsToChest",
- "Default | UpdateKey": "GitHub:lambui/StardewValleyMod_StashItemsToChest",
- "~1.0.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Stephan's Lots of Crops": {
- "ID": "stephansstardewcrops",
- "MapRemoteVersions": { "1.41": "1.1" }, // manifest not updated
- "Default | UpdateKey": "Chucklefish:4314"
- },
-
- "Stone Bridge Over Pond (PondWithBridge)": {
- "FormerIDs": "{EntryDll: 'PondWithBridge.dll'}",
- "MapLocalVersions": { "0.0": "1.0" },
- "Default | UpdateKey": "Nexus:316",
- "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Stumps to Hardwood Stumps": {
- "ID": "StumpsToHardwoodStumps",
- "Default | UpdateKey": "Nexus:691"
- },
-
- "Super Greenhouse Warp Modifier": {
- "ID": "SuperGreenhouse",
- "Default | UpdateKey": "Chucklefish:4334",
- "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Swim Almost Anywhere / Swim Suit": {
- "ID": "Platonymous.SwimSuit",
- "Default | UpdateKey": "Nexus:1215" // added in 0.5.1
- },
-
- "Tainted Cellar": {
- "ID": "TaintedCellar",
- "FormerIDs": "{EntryDll: 'TaintedCellar.dll'}", // changed in 1.1
- "~1.0 | Status": "AssumeBroken" // broke in SDV 1.1 or 1.11
- },
-
- "Tapper Ready": {
- "ID": "skunkkk.TapperReady",
- "Default | UpdateKey": "Nexus:1219"
- },
-
- "Teh's Fishing Overhaul": {
- "ID": "TehPers.FishingOverhaul",
- "Default | UpdateKey": "Nexus:866"
- },
-
- "Teleporter": {
- "ID": "Teleporter",
- "Default | UpdateKey": "Chucklefish:4374",
- "~1.0.2 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "The Long Night": {
- "ID": "Pathoschild.TheLongNight",
- "Default | UpdateKey": "Nexus:1369"
- },
-
- "Three-heart Dance Partner": {
- "ID": "ThreeHeartDancePartner",
- "Default | UpdateKey": "Nexus:500",
- "~1.0.1 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "TimeFreeze": {
- "ID": "Omegasis.TimeFreeze",
- "FormerIDs": "4108e859-333c-4fec-a1a7-d2e18c1019fe", // changed in 1.2
- "Default | UpdateKey": "Nexus:973" // added in 1.2.1
- },
-
- "Time Reminder": {
- "ID": "KoihimeNakamura.TimeReminder",
- "MapLocalVersions": { "1.0-20170314": "1.0.2" },
- "Default | UpdateKey": "Nexus:1000"
- },
-
- "TimeSpeed": {
- "ID": "cantorsdust.TimeSpeed",
- "FormerIDs": "{EntryDll: 'TimeSpeed.dll'} | {ID:'4108e859-333c-4fec-a1a7-d2e18c1019fe', Name:'TimeSpeed'} | {ID:'4108e859-333c-4fec-a1a7-d2e18c1019fe', Name:'TimeSpeed Mod (unofficial)'} | community.TimeSpeed", // changed in 2.0.3, 2.1, and 2.3.3; disambiguate other mods by Alpha_Omegasis
- "Default | UpdateKey": "Nexus:169",
- "~2.2 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "To Do List": {
- "ID": "eleanor.todolist",
- "Default | UpdateKey": "Nexus:1630"
- },
-
- "Tool Charging": {
- "ID": "mralbobo.ToolCharging",
- "Default | UpdateKey": "GitHub:mralbobo/stardew-tool-charging"
- },
-
- "TractorMod": {
- "ID": "Pathoschild.TractorMod",
- "FormerIDs": "BlueMod_TractorMod | PhthaloBlue.TractorMod | community.TractorMod", // changed in 3.2, 4.0 beta, and 4.0
- "Default | UpdateKey": "Nexus:1401"
- },
-
- "TrainerMod": {
- "ID": "SMAPI.TrainerMod",
- "~ | Status": "Obsolete",
- "~ | StatusReasonPhrase": "replaced by ConsoleCommands, which is added by the SMAPI installer."
- },
-
- "Tree Transplant": {
- "ID": "TreeTransplant",
- "Default | UpdateKey": "Nexus:1342"
- },
-
- "UI Info Suite": {
- "ID": "Cdaragorn.UiInfoSuite",
- "Default | UpdateKey": "Nexus:1150"
- },
-
- "UiModSuite": {
- "ID": "Demiacle.UiModSuite",
- "MapLocalVersions": { "0.5": "1.0" }, // not updated in manifest
- "Default | UpdateKey": "Nexus:1023",
- "~1.0 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Variable Grass": {
- "ID": "dantheman999.VariableGrass",
- "Default | UpdateKey": "GitHub:dantheman999301/StardewMods"
- },
-
- "Vertical Toolbar": {
- "ID": "SB_VerticalToolMenu",
- "Default | UpdateKey": "Nexus:943"
- },
-
- "WakeUp": {
- "FormerIDs": "{EntryDll: 'WakeUp.dll'}",
- "~1.0.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "Wallpaper Fix": {
- "FormerIDs": "{EntryDll: 'WallpaperFix.dll'}",
- "Default | UpdateKey": "Chucklefish:4211",
- "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "WarpAnimals": {
- "ID": "Symen.WarpAnimals",
- "Default | UpdateKey": "Nexus:1400"
- },
-
- "Weather Controller": {
- "FormerIDs": "{EntryDll: 'WeatherController.dll'}",
- "~1.0.2 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "What Farm Cave / WhatAMush": {
- "ID": "WhatAMush",
- "Default | UpdateKey": "Nexus:1097"
- },
-
- "WHats Up": {
- "ID": "wHatsUp",
- "Default | UpdateKey": "Nexus:1082"
- },
-
- "Winter Grass": {
- "ID": "cat.wintergrass",
- "Default | UpdateKey": "Nexus:1601"
- },
-
- "Wonderful Farm Life": {
- "FormerIDs": "{EntryDll: 'WonderfulFarmLife.dll'}",
- "~1.0 | Status": "AssumeBroken" // broke in SDV 1.1 or 1.11
- },
-
- "XmlSerializerRetool": {
- "FormerIDs": "{EntryDll: 'XmlSerializerRetool.dll'}",
- "~ | Status": "Obsolete",
- "~ | StatusReasonPhrase": "it's no longer maintained or used."
- },
-
- "Xnb Loader": {
- "ID": "Entoarox.XnbLoader",
- "~1.1.10 | UpdateKey": "Chucklefish:4506", // only enable update checks up to 1.1.10 by request (has its own update-check feature)
- "~1.0.6 | Status": "AssumeBroken" // broke in SMAPI 2.0
- },
-
- "zDailyIncrease": {
- "ID": "zdailyincrease",
- "MapRemoteVersions": { "1.3.5": "1.3.4" }, // not updated in manifest
- "Default | UpdateKey": "Chucklefish:4247",
- "~1.2 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Zoom Out Extreme": {
- "ID": "RockinMods.ZoomMod",
- "FormerIDs": "ZoomMod", // changed circa 1.2.1
- "Default | UpdateKey": "Nexus:1326",
- "~0.1 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Zoryn's Better RNG": {
- "ID": "Zoryn.BetterRNG",
- "FormerIDs": "76b6d1e1-f7ba-4d72-8c32-5a1e6d2716f6", // changed in 1.6
- "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
- "~1.6 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Zoryn's Calendar Anywhere": {
- "ID": "Zoryn.CalendarAnywhere",
- "FormerIDs": "a41c01cd-0437-43eb-944f-78cb5a53002a", // changed in 1.6
- "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
- "~1.6 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Zoryn's Durable Fences": {
- "ID": "Zoryn.DurableFences",
- "FormerIDs": "56d3439c-7b9b-497e-9496-0c4890e8a00e", // changed in 1.6
- "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods"
- },
-
- "Zoryn's Health Bars": {
- "ID": "Zoryn.HealthBars",
- "FormerIDs": "{EntryDll: 'HealthBars.dll'}", // changed in 1.6
- "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
- "~1.6 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Zoryn's Fishing Mod": {
- "ID": "Zoryn.FishingMod",
- "FormerIDs": "fa277b1f-265e-47c3-a84f-cd320cc74949", // changed in 1.6
- "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods"
- },
-
- "Zoryn's Junimo Deposit Anywhere": {
- "ID": "Zoryn.JunimoDepositAnywhere",
- "FormerIDs": "f93a4fe8-cade-4146-9335-b5f82fbbf7bc", // changed in 1.6
- "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
- "~1.7 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Zoryn's Movement Mod": {
- "ID": "Zoryn.MovementModifier",
- "FormerIDs": "8a632929-8335-484f-87dd-c29d2ba3215d", // changed in 1.6
- "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
- "~1.6 | Status": "AssumeBroken" // broke in SDV 1.2
- },
-
- "Zoryn's Regen Mod": {
- "ID": "Zoryn.RegenMod",
- "FormerIDs": "dfac4383-1b6b-4f33-ae4e-37fc23e5252e", // changed in 1.6
- "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
- "~1.6 | Status": "AssumeBroken" // broke in SDV 1.2
- }
- }
+ "VerboseLogging": false
}
diff --git a/src/SMAPI/StardewModdingAPI.csproj b/src/SMAPI/StardewModdingAPI.csproj
index c0d5386a..9dbca475 100644
--- a/src/SMAPI/StardewModdingAPI.csproj
+++ b/src/SMAPI/StardewModdingAPI.csproj
@@ -100,6 +100,7 @@
<Compile Include="Framework\ModData\ModDataFieldKey.cs" />
<Compile Include="Framework\ModData\ParsedModDataRecord.cs" />
<Compile Include="Framework\Models\ManifestContentPackFor.cs" />
+ <Compile Include="Framework\Models\SMetadata.cs" />
<Compile Include="Framework\ModLoading\Finders\EventFinder.cs" />
<Compile Include="Framework\ModLoading\Finders\FieldFinder.cs" />
<Compile Include="Framework\ModLoading\Finders\MethodFinder.cs" />
@@ -262,6 +263,9 @@
<Content Include="StardewModdingAPI.config.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
+ <Content Include="StardewModdingAPI.metadata.json">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </Content>
</ItemGroup>
<ItemGroup>
<Content Include="icon.ico" />
diff --git a/src/SMAPI/StardewModdingAPI.metadata.json b/src/SMAPI/StardewModdingAPI.metadata.json
new file mode 100644
index 00000000..237c069d
--- /dev/null
+++ b/src/SMAPI/StardewModdingAPI.metadata.json
@@ -0,0 +1,1836 @@
+{
+ /**
+ * Metadata about some SMAPI mods used in compatibility, update, and dependency checks. This
+ * field shouldn't be edited by players in most cases.
+ *
+ * Standard fields
+ * ===============
+ * The predefined fields are documented below (only 'ID' is required). Each entry's key is the
+ * default display name for the mod if one isn't available (e.g. in dependency checks).
+ *
+ * - ID: the mod's latest unique ID (if any).
+ *
+ * - FormerIDs: uniquely identifies the mod across multiple versions, and supports matching
+ * other fields if no ID was specified. This doesn't include the latest ID, if any.
+ * Format rules:
+ * 1. If the mod's ID changed over time, multiple variants can be separated by the '|'
+ * character.
+ * 2. Each variant can take one of two forms:
+ * - A simple string matching the mod's UniqueID value.
+ * - A JSON structure containing any of four manifest fields (ID, Name, Author, and
+ * EntryDll) to match.
+ *
+ * - MapLocalVersions and MapRemoteVersions correct local manifest versions and remote versions
+ * during update checks. For example, if the API returns version '1.1-1078' where '1078' is
+ * intended to be a build number, MapRemoteVersions can map it to '1.1' when comparing to the
+ * mod's current version. This is only meant to support legacy mods with injected update keys.
+ *
+ * Versioned metadata
+ * ==================
+ * Each record can also specify extra metadata using the field keys below.
+ *
+ * Each key consists of a field name prefixed with any combination of version range and 'Default',
+ * separated by pipes (whitespace trimmed). For example, 'UpdateKey' will always override,
+ * 'Default | UpdateKey' will only override if the mod has no update keys, and
+ * '~1.1 | Default | Name' will do the same up to version 1.1.
+ *
+ * The version format is 'min~max' (where either side can be blank for unbounded), or a single
+ * version number.
+ *
+ * These are the valid field names:
+ *
+ * - UpdateKey: the update key to set in the mod's manifest. This is used to enable update
+ * checks for older mods that haven't been updated to use it yet.
+ *
+ * - Status: overrides compatibility checks. The possible values are Obsolete (SMAPI won't load
+ * it because the mod should no longer be used), AssumeBroken (SMAPI won't load it because
+ * the specified version isn't compatible), or AssumeCompatible (SMAPI will try to load it
+ * even if it detects incompatible code).
+ *
+ * - StatusReasonPhrase: a message to show to the player explaining why the mod can't be loaded
+ * (if applicable). If blank, will default to a generic not-compatible message.
+ *
+ * - AlternativeUrl: a URL where the player can find an unofficial update or alternative if the
+ * mod is no longer compatible.
+ */
+ "ModData": {
+ "AccessChestAnywhere": {
+ "ID": "AccessChestAnywhere",
+ "MapLocalVersions": { "1.1-1078": "1.1" },
+ "Default | UpdateKey": "Nexus:257",
+ "~1.1 | Status": "AssumeBroken"
+ },
+
+ "AdjustArtisanPrices": {
+ "ID": "ThatNorthernMonkey.AdjustArtisanPrices",
+ "FormerIDs": "1e36d4ca-c7ef-4dfb-9927-d27a6c3c8bdc", // changed in 0.0.2-pathoschild-update
+ "MapRemoteVersions": { "0.01": "0.0.1" },
+ "Default | UpdateKey": "Chucklefish:3532",
+ "~0.0.1 | Status": "AssumeBroken"
+ },
+
+ "Adjust Monster": {
+ "ID": "mmanlapat.AdjustMonster",
+ "Default | UpdateKey": "Nexus:1161"
+ },
+
+ "Advanced Location Loader": {
+ "ID": "Entoarox.AdvancedLocationLoader",
+ "~1.3.7 | UpdateKey": "Chucklefish:3619", // only enable update checks up to 1.3.7 by request (has its own update-check feature)
+ "~1.2.10 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Adventure Shop Inventory": {
+ "ID": "HammurabiAdventureShopInventory",
+ "Default | UpdateKey": "Chucklefish:4608"
+ },
+
+ "AgingMod": {
+ "ID": "skn.AgingMod",
+ "Default | UpdateKey": "Nexus:1129",
+ "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "All Crops All Seasons": {
+ "ID": "cantorsdust.AllCropsAllSeasons",
+ "FormerIDs": "29ee8246-d67b-4242-a340-35a9ae0d5dd7 | community.AllCropsAllSeasons", // changed in 1.3 and 1.5
+ "Default | UpdateKey": "Nexus:170"
+ },
+
+ "All Professions": {
+ "ID": "cantorsdust.AllProfessions",
+ "FormerIDs": "8c37b1a7-4bfb-4916-9d8a-9533e6363ea3 | community.AllProfessions", // changed in 1.2 and 1.3.1
+ "Default | UpdateKey": "Nexus:174"
+ },
+
+ "Almighty Tool": {
+ "ID": "439",
+ "FormerIDs": "{EntryDll: 'AlmightyTool.dll'}", // changed in 1.2.1
+ "MapRemoteVersions": { "1.21": "1.2.1" },
+ "Default | UpdateKey": "Nexus:439",
+ "~1.1.1 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Animal Husbandry": {
+ "ID": "DIGUS.ANIMALHUSBANDRYMOD",
+ "FormerIDs": "DIGUS.BUTCHER", // changed in 2.0.1
+ "Default | UpdateKey": "Nexus:1538"
+ },
+
+ "Animal Mood Fix": {
+ "ID": "GPeters-AnimalMoodFix",
+ "~ | Status": "Obsolete",
+ "~ | StatusReasonPhrase": "the animal mood bugs were fixed in Stardew Valley 1.2."
+ },
+
+ "Animal Sitter": {
+ "ID": "jwdred.AnimalSitter",
+ "FormerIDs": "{EntryDll: 'AnimalSitter.dll'}", // changed in 1.0.9
+ "Default | UpdateKey": "Nexus:581",
+ "~1.0.8 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Ashley Mod": {
+ "FormerIDs": "{EntryDll: 'AshleyMod.dll'}",
+ "~1.0.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "A Tapper's Dream": {
+ "ID": "ddde5195-8f85-4061-90cc-0d4fd5459358",
+ "Default | UpdateKey": "Nexus:260",
+ "~1.4 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Auto Animal Doors": {
+ "ID": "AaronTaggart.AutoAnimalDoors",
+ "Default | UpdateKey": "Nexus:1019"
+ },
+
+ "Auto-Eat": {
+ "ID": "Permamiss.AutoEat",
+ "FormerIDs": "BALANCEMOD_AutoEat", // changed in 1.1.1
+ "Default | UpdateKey": "Nexus:643"
+ },
+
+ "AutoFish": {
+ "ID": "WhiteMind.AF",
+ "Default | UpdateKey": "Nexus:1895"
+ },
+
+ "AutoGate": {
+ "ID": "AutoGate",
+ "Default | UpdateKey": "Nexus:820"
+ },
+
+ "Automate": {
+ "ID": "Pathoschild.Automate",
+ "Default | UpdateKey": "Nexus:1063"
+ },
+
+ "Automated Doors": {
+ "ID": "azah.automated-doors",
+ "FormerIDs": "1abcfa07-2cf4-4dc3-a6e9-6068b642112b", // changed in 1.4.1
+ "Default | UpdateKey": "GitHub:azah/AutomatedDoors" // added in 1.4.2
+ },
+
+ "AutoSpeed": {
+ "ID": "Omegasis.AutoSpeed",
+ "FormerIDs": "{ID:'4be88c18-b6f3-49b0-ba96-f94b1a5be890', Name:'AutoSpeed'}", // changed in 1.4; disambiguate from other Alpha_Omegasis mods
+ "Default | UpdateKey": "Nexus:443" // added in 1.4.1
+ },
+
+ "Basic Sprinklers Improved": {
+ "ID": "lrsk_sdvm_bsi.0117171308",
+ "MapRemoteVersions": { "1.0.2": "1.0.1-release" }, // manifest not updated
+ "Default | UpdateKey": "Nexus:833"
+ },
+
+ "Better Hay": {
+ "ID": "cat.betterhay",
+ "Default | UpdateKey": "Nexus:1430"
+ },
+
+ "Better Quality More Seasons": {
+ "ID": "SB_BQMS",
+ "Default | UpdateKey": "Nexus:935"
+ },
+
+ "Better Quarry": {
+ "ID": "BetterQuarry",
+ "Default | UpdateKey": "Nexus:771"
+ },
+
+ "Better Ranching": {
+ "ID": "BetterRanching",
+ "Default | UpdateKey": "Nexus:859"
+ },
+
+ "Better Shipping Box": {
+ "ID": "Kithio:BetterShippingBox",
+ "MapLocalVersions": { "1.0.1": "1.0.2" },
+ "Default | UpdateKey": "Chucklefish:4302",
+ "~1.0.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Better Sprinklers": {
+ "ID": "Speeder.BetterSprinklers",
+ "FormerIDs": "SPDSprinklersMod", // changed in 2.3
+ "Default | UpdateKey": "Nexus:41",
+ "~2.3.1-pathoschild-update | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Billboard Anywhere": {
+ "ID": "Omegasis.BillboardAnywhere",
+ "FormerIDs": "{ID:'7ad4f6f7-c3de-4729-a40f-7a11d2b2a358', Name:'Billboard Anywhere'}", // changed in 1.4; disambiguate from other mods by Alpha_Omegasis
+ "Default | UpdateKey": "Nexus:492" // added in 1.4.1
+ },
+
+ "Birthday Mail": {
+ "ID": "KathrynHazuka.BirthdayMail",
+ "FormerIDs": "005e02dc-d900-425c-9c68-1ff55c5a295d", // changed in 1.2.3-pathoschild-update
+ "Default | UpdateKey": "Nexus:276",
+ "~1.2.2 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Breed Like Rabbits": {
+ "ID": "dycedarger.breedlikerabbits",
+ "Default | UpdateKey": "Nexus:948"
+ },
+
+ "Build Endurance": {
+ "ID": "Omegasis.BuildEndurance",
+ "FormerIDs": "{ID:'4be88c18-b6f3-49b0-ba96-f94b1a5be890', Name:'BuildEndurance'}", // changed in 1.4; disambiguate from other Alpha_Omegasis mods
+ "Default | UpdateKey": "Nexus:445", // added in 1.4.1
+ "~1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Build Health": {
+ "ID": "Omegasis.BuildHealth",
+ "FormerIDs": "{ID:'4be88c18-b6f3-49b0-ba96-f94b1a5be890', Name:'BuildHealth'}", // changed in 1.4; disambiguate from other Alpha_Omegasis mods
+ "Default | UpdateKey": "Nexus:446", // added in 1.4.1
+ "~1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Buy Cooking Recipes": {
+ "ID": "Denifia.BuyRecipes",
+ "Default | UpdateKey": "Nexus:1126", // added in 1.0.1 (2017-10-04)
+ "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Buy Back Collectables": {
+ "ID": "Omegasis.BuyBackCollectables",
+ "FormerIDs": "BuyBackCollectables", // changed in 1.4
+ "Default | UpdateKey": "Nexus:507", // added in 1.4.1
+ "~1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Carry Chest": {
+ "ID": "spacechase0.CarryChest",
+ "Default | UpdateKey": "Nexus:1333"
+ },
+
+ "Casks Anywhere": {
+ "ID": "CasksAnywhere",
+ "MapLocalVersions": { "1.1-alpha": "1.1" },
+ "Default | UpdateKey": "Nexus:878"
+ },
+
+ "Categorize Chests": {
+ "ID": "CategorizeChests",
+ "Default | UpdateKey": "Nexus:1300"
+ },
+
+ "Chefs Closet": {
+ "ID": "Duder.ChefsCloset",
+ "MapLocalVersions": { "1.3-1": "1.3" },
+ "Default | UpdateKey": "Nexus:1030"
+ },
+
+ "Chest Label System": {
+ "ID": "Speeder.ChestLabel",
+ "FormerIDs": "SPDChestLabel", // changed in 1.5.1-pathoschild-update
+ "Default | UpdateKey": "Nexus:242",
+ "~1.6 | Status": "AssumeBroken" // broke in SDV 1.1
+ },
+
+ "Chest Pooling": {
+ "ID": "mralbobo.ChestPooling",
+ "FormerIDs": "{EntryDll: 'ChestPooling.dll'}", // changed in 1.3
+ "Default | UpdateKey": "GitHub:mralbobo/stardew-chest-pooling",
+ "~1.2 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Chests Anywhere": {
+ "ID": "Pathoschild.ChestsAnywhere",
+ "FormerIDs": "ChestsAnywhere", // changed in 1.9
+ "Default | UpdateKey": "Nexus:518",
+ "~1.9-beta | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Choose Baby Gender": {
+ "FormerIDs": "{EntryDll: 'ChooseBabyGender.dll'}",
+ "Default | UpdateKey": "Nexus:590",
+ "~1.0.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "CJB Automation": {
+ "ID": "CJBAutomation",
+ "Default | UpdateKey": "Nexus:211",
+ "~1.4 | Status": "AssumeBroken", // broke in SDV 1.2
+ "~1.4 | AlternativeUrl": "http://www.nexusmods.com/stardewvalley/mods/1063"
+ },
+
+ "CJB Cheats Menu": {
+ "ID": "CJBok.CheatsMenu",
+ "FormerIDs": "CJBCheatsMenu", // changed in 1.14
+ "Default | UpdateKey": "Nexus:4",
+ "~1.12 | Status": "AssumeBroken" // broke in SDV 1.1
+ },
+
+ "CJB Item Spawner": {
+ "ID": "CJBok.ItemSpawner",
+ "FormerIDs": "CJBItemSpawner", // changed in 1.7
+ "Default | UpdateKey": "Nexus:93",
+ "~1.5 | Status": "AssumeBroken" // broke in SDV 1.1
+ },
+
+ "CJB Show Item Sell Price": {
+ "ID": "CJBok.ShowItemSellPrice",
+ "FormerIDs": "CJBShowItemSellPrice", // changed in 1.7
+ "Default | UpdateKey": "Nexus:5",
+ "~1.6 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Clean Farm": {
+ "ID": "tstaples.CleanFarm",
+ "Default | UpdateKey": "Nexus:794"
+ },
+
+ "Climates of Ferngill": {
+ "ID": "KoihimeNakamura.ClimatesOfFerngill",
+ "Default | UpdateKey": "Nexus:604",
+ "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Coal Regen": {
+ "ID": "Blucifer.CoalRegen",
+ "Default | UpdateKey": "Nexus:1664"
+ },
+
+ "Cold Weather Haley": {
+ "ID": "LordXamon.ColdWeatherHaleyPRO",
+ "Default | UpdateKey": "Nexus:1169",
+ "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Colored Chests": {
+ "ID": "4befde5c-731c-4853-8e4b-c5cdf946805f",
+ "~ | Status": "Obsolete",
+ "~ | StatusReasonPhrase": "colored chests were added in Stardew Valley 1.1."
+ },
+
+ "Combat with Farm Implements": {
+ "ID": "SPDFarmingImplementsInCombat",
+ "Default | UpdateKey": "Nexus:313",
+ "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Community Bundle Item Tooltip": {
+ "ID": "musbah.bundleTooltip",
+ "Default | UpdateKey": "Nexus:1329"
+ },
+
+ "Concentration on Farming": {
+ "ID": "punyo.ConcentrationOnFarming",
+ "Default | UpdateKey": "Nexus:1445"
+ },
+
+ "Configurable Machines": {
+ "ID": "21da6619-dc03-4660-9794-8e5b498f5b97",
+ "MapLocalVersions": { "1.2-beta": "1.2" },
+ "Default | UpdateKey": "Nexus:280"
+ },
+
+ "Configurable Shipping Dates": {
+ "ID": "ConfigurableShippingDates",
+ "Default | UpdateKey": "Nexus:675",
+ "~1.1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Cooking Skill": {
+ "ID": "spacechase0.CookingSkill",
+ "FormerIDs": "CookingSkill", // changed in 1.0.4–6
+ "Default | UpdateKey": "Nexus:522",
+ "~1.0.6 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "CrabNet": {
+ "ID": "jwdred.CrabNet",
+ "FormerIDs": "{EntryDll: 'CrabNet.dll'}", // changed in 1.0.5
+ "Default | UpdateKey": "Nexus:584",
+ "~1.0.4 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Crafting Counter": {
+ "ID": "lolpcgaming.CraftingCounter",
+ "Default | UpdateKey": "Nexus:1585"
+ },
+
+ "Current Location": {
+ "ID": "CurrentLocation102120161203",
+ "Default | UpdateKey": "Nexus:638"
+ },
+
+ "Custom Asset Modifier": {
+ "ID": "Omegasis.CustomAssetModifier",
+ "Default | UpdateKey": "1836"
+ },
+
+ "Custom Critters": {
+ "ID": "spacechase0.CustomCritters",
+ "Default | UpdateKey": "Nexus:1255"
+ },
+
+ "Custom Crops": {
+ "ID": "spacechase0.CustomCrops",
+ "Default | UpdateKey": "Nexus:1592"
+ },
+
+ "Custom Element Handler": {
+ "ID": "Platonymous.CustomElementHandler",
+ "Default | UpdateKey": "Nexus:1068" // added in 1.3.1
+ },
+
+ "Custom Farming Redux": {
+ "ID": "Platonymous.CustomFarming",
+ "Default | UpdateKey": "Nexus:991" // added in 0.6.1
+ },
+
+ "Custom Farming Automate Bridge": {
+ "ID": "Platonymous.CFAutomate",
+ "~1.0.1 | Status": "AssumeBroken", // no longer compatible with Automate
+ "~1.0.1 | AlternativeUrl": "https://www.nexusmods.com/stardewvalley/mods/991"
+ },
+
+ "Custom Farm Types": {
+ "ID": "spacechase0.CustomFarmTypes",
+ "Default | UpdateKey": "Nexus:1140"
+ },
+
+ "Custom Furniture": {
+ "ID": "Platonymous.CustomFurniture",
+ "Default | UpdateKey": "Nexus:1254" // added in 0.4.1
+ },
+
+ "Customize Exterior": {
+ "ID": "spacechase0.CustomizeExterior",
+ "FormerIDs": "CustomizeExterior", // changed in 1.0.3
+ "Default | UpdateKey": "Nexus:1099",
+ "~1.0.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Customizable Cart Redux": {
+ "ID": "KoihimeNakamura.CCR",
+ "MapLocalVersions": { "1.1-20170917": "1.1" },
+ "Default | UpdateKey": "Nexus:1402"
+ },
+
+ "Customizable Traveling Cart Days": {
+ "ID": "TravelingCartYyeahdude",
+ "Default | UpdateKey": "Nexus:567",
+ "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Custom Linens": {
+ "ID": "Mevima.CustomLinens",
+ "MapRemoteVersions": { "1.1": "1.0" }, // manifest not updated
+ "Default | UpdateKey": "Nexus:1027"
+ },
+
+ "Custom NPC": {
+ "ID": "Platonymous.CustomNPC",
+ "Default | UpdateKey": "Nexus:1607"
+ },
+
+ "Custom Shops Redux": {
+ "ID": "Omegasis.CustomShopReduxGui",
+ "Default | UpdateKey": "Nexus:1378" // added in 1.4.1
+ },
+
+ "Custom TV": {
+ "ID": "Platonymous.CustomTV",
+ "Default | UpdateKey": "Nexus:1139" // added in 1.0.6
+ },
+
+ "Daily Luck Message": {
+ "ID": "Schematix.DailyLuckMessage",
+ "Default | UpdateKey": "Nexus:1327"
+ },
+
+ "Daily News": {
+ "ID": "bashNinja.DailyNews",
+ "Default | UpdateKey": "Nexus:1141",
+ "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Daily Quest Anywhere": {
+ "ID": "Omegasis.DailyQuestAnywhere",
+ "FormerIDs": "DailyQuest", // changed in 1.4
+ "Default | UpdateKey": "Nexus:513" // added in 1.4.1
+ },
+
+ "Debug Mode": {
+ "ID": "Pathoschild.DebugMode",
+ "FormerIDs": "Pathoschild.Stardew.DebugMode", // changed in 1.4
+ "Default | UpdateKey": "Nexus:679"
+ },
+
+ "Did You Water Your Crops?": {
+ "ID": "Nishtra.DidYouWaterYourCrops",
+ "Default | UpdateKey": "Nexus:1583"
+ },
+
+ "Dynamic Checklist": {
+ "ID": "gunnargolf.DynamicChecklist",
+ "Default | UpdateKey": "Nexus:1145", // added in 1.0.1-pathoschild-update
+ "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Dynamic Horses": {
+ "ID": "Bpendragon-DynamicHorses",
+ "MapRemoteVersions": { "1.2": "1.1-release" }, // manifest not updated
+ "Default | UpdateKey": "Nexus:874"
+ },
+
+ "Dynamic Machines": {
+ "ID": "DynamicMachines",
+ "MapLocalVersions": { "1.1": "1.1.1" },
+ "Default | UpdateKey": "Nexus:374",
+ "~1.1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Dynamic NPC Sprites": {
+ "ID": "BashNinja.DynamicNPCSprites",
+ "Default | UpdateKey": "Nexus:1183"
+ },
+
+ "Easier Farming": {
+ "ID": "cautiouswafffle.EasierFarming",
+ "Default | UpdateKey": "Nexus:1426"
+ },
+
+ "Empty Hands": {
+ "ID": "QuicksilverFox.EmptyHands",
+ "Default | UpdateKey": "Nexus:1176", // added in 1.0.1-pathoschild-update
+ "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Enemy Health Bars": {
+ "ID": "Speeder.HealthBars",
+ "FormerIDs": "SPDHealthBar", // changed in 1.7.1-pathoschild-update
+ "Default | UpdateKey": "Nexus:193",
+ "~1.7 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Entoarox Framework": {
+ "ID": "Entoarox.EntoaroxFramework",
+ "FormerIDs": "eacdb74b-4080-4452-b16b-93773cda5cf9", // changed in ???
+ "~2.0.6 | UpdateKey": "Chucklefish:4228", // only enable update checks up to 2.0.6 by request (has its own update-check feature)
+ "~2.0.6 | Status": "AssumeBroken" // broke in SMAPI 2.5 (error reflecting into SMAPI internals)
+ },
+
+ "Expanded Fridge": {
+ "ID": "Uwazouri.ExpandedFridge",
+ "Default | UpdateKey": "Nexus:1191"
+ },
+
+ "Experience Bars": {
+ "ID": "spacechase0.ExperienceBars",
+ "FormerIDs": "ExperienceBars", // changed in 1.0.2
+ "Default | UpdateKey": "Nexus:509"
+ },
+
+ "Extended Bus System": {
+ "ID": "ExtendedBusSystem",
+ "Default | UpdateKey": "Chucklefish:4373"
+ },
+
+ "Extended Fridge": {
+ "ID": "Crystalmir.ExtendedFridge",
+ "FormerIDs": "Mystra007ExtendedFridge", // changed in 1.0.1
+ "Default | UpdateKey": "Nexus:485",
+ "~1.0 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Extended Greenhouse": {
+ "ID": "ExtendedGreenhouse",
+ "Default | UpdateKey": "Chucklefish:4303",
+ "~1.0.2 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Extended Minecart": {
+ "ID": "Entoarox.ExtendedMinecart",
+ "FormerIDs": "{ID:'EntoaroxFurnitureAnywhere', Name:'Extended Minecart'}", // changed in 1.6.1
+ "~1.7.1 | UpdateKey": "Chucklefish:4359" // only enable update checks up to 1.7.1 by request (has its own update-check feature)
+ },
+
+ "Extended Reach": {
+ "ID": "spacechase0.ExtendedReach",
+ "Default | UpdateKey": "Nexus:1493"
+ },
+
+ "Fall 28 Snow Day": {
+ "ID": "Omegasis.Fall28SnowDay",
+ "FormerIDs": "{ID:'7ad4f6f7-c3de-4729-a40f-7a11d2b2a358', Name:'Fall28 Snow Day'}", // changed in 1.4; disambiguate from other mods by Alpha_Omegasis
+ "Default | UpdateKey": "Nexus:486", // added in 1.4.1
+ "~1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Farm Automation: Barn Door Automation": {
+ "FormerIDs": "{EntryDll: 'FarmAutomation.BarnDoorAutomation.dll'}",
+ "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Farm Automation: Item Collector": {
+ "FormerIDs": "{EntryDll: 'FarmAutomation.ItemCollector.dll'}",
+ "~1.0 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Farm Automation Unofficial: Item Collector": {
+ "ID": "Maddy99.FarmAutomation.ItemCollector",
+ "~0.5 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Farm Expansion": {
+ "ID": "Advize.FarmExpansion",
+ "FormerIDs": "3888bdfd-73f6-4776-8bb7-8ad45aea1915 | AdvizeFarmExpansionMod-2-0 | AdvizeFarmExpansionMod-2-0-5", // changed in 2.0, 2.0.5, and 3.0
+ "Default | UpdateKey": "Nexus:130",
+ "~2.0.5 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Farm Resource Generator": {
+ "FormerIDs": "{EntryDll: 'FarmResourceGenerator.dll'}",
+ "Default | UpdateKey": "Nexus:647",
+ "~1.0.4 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Fast Animations": {
+ "ID": "Pathoschild.FastAnimations",
+ "Default | UpdateKey": "Nexus:1089"
+ },
+
+ "Faster Grass": {
+ "ID": "IceGladiador.FasterGrass",
+ "Default | UpdateKey": "Nexus:1772"
+ },
+
+ "Faster Paths": {
+ "ID": "Entoarox.FasterPaths",
+ "FormerIDs": "{ID:'821ce8f6-e629-41ad-9fde-03b54f68b0b6', Name:'Faster Paths'} | 615f85f8-5c89-44ee-aecc-c328f172e413", // changed in 1.2 and 1.3; disambiguate from Shop Expander
+ "~1.3.3 | UpdateKey": "Chucklefish:3641" // only enable update checks up to 1.3.3 by request (has its own update-check feature)
+ },
+
+ "Faster Run": {
+ "ID": "KathrynHazuka.FasterRun",
+ "FormerIDs": "{EntryDll: 'FasterRun.dll'}", // changed in 1.1.1-pathoschild-update
+ "Default | UpdateKey": "Nexus:733", // added in 1.1.1-pathoschild-update
+ "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Fishing Adjust": {
+ "ID": "shuaiz.FishingAdjustMod",
+ "Default | UpdateKey": "Nexus:1350"
+ },
+
+ "Fishing Tuner Redux": {
+ "ID": "HammurabiFishingTunerRedux",
+ "Default | UpdateKey": "Chucklefish:4578"
+ },
+
+ "Fixed Secret Woods Debris": {
+ "ID": "f4iTh.WoodsDebrisFix",
+ "Default | UpdateKey": "Nexus:1941"
+ },
+
+ "FlorenceMod": {
+ "FormerIDs": "{EntryDll: 'FlorenceMod.dll'}",
+ "MapLocalVersions": { "1.0.1": "1.1" },
+ "Default | UpdateKey": "Nexus:591",
+ "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Flower Color Picker": {
+ "ID": "spacechase0.FlowerColorPicker",
+ "Default | UpdateKey": "Nexus:1229"
+ },
+
+ "Forage at the Farm": {
+ "ID": "Nishtra.ForageAtTheFarm",
+ "FormerIDs": "ForageAtTheFarm", // changed in <=1.6
+ "Default | UpdateKey": "Nexus:673",
+ "~1.5.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Furniture Anywhere": {
+ "ID": "Entoarox.FurnitureAnywhere",
+ "FormerIDs": "{ID:'EntoaroxFurnitureAnywhere', Name:'Furniture Anywhere'}", // changed in 1.1; disambiguate from Extended Minecart
+ "~1.1.5 | UpdateKey": "Chucklefish:4324" // only enable update checks up to 1.1.5 by request (has its own update-check feature)
+ },
+
+ "Game Reminder": {
+ "ID": "mmanlapat.GameReminder",
+ "Default | UpdateKey": "Nexus:1153"
+ },
+
+ "Gate Opener": {
+ "ID": "mralbobo.GateOpener",
+ "FormerIDs": "{EntryDll: 'GateOpener.dll'}", // changed in 1.1
+ "Default | UpdateKey": "GitHub:mralbobo/stardew-gate-opener",
+ "~1.0.1 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "GenericShopExtender": {
+ "ID": "GenericShopExtender",
+ "Default | UpdateKey": "Nexus:814", // added in 0.1.3
+ "~0.1.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Geode Info Menu": {
+ "ID": "cat.geodeinfomenu",
+ "Default | UpdateKey": "Nexus:1448"
+ },
+
+ "Get Dressed": {
+ "ID": "Advize.GetDressed",
+ "FormerIDs": "{EntryDll: 'GetDressed.dll'}", // changed in 3.3
+ "Default | UpdateKey": "Nexus:331",
+ "~3.3 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Giant Crop Ring": {
+ "ID": "cat.giantcropring",
+ "Default | UpdateKey": "Nexus:1182"
+ },
+
+ "Gift Taste Helper": {
+ "ID": "tstaples.GiftTasteHelper",
+ "FormerIDs": "8008db57-fa67-4730-978e-34b37ef191d6", // changed in 2.5
+ "Default | UpdateKey": "Nexus:229",
+ "~2.3.1 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Grandfather's Gift": {
+ "ID": "ShadowDragon.GrandfathersGift",
+ "Default | UpdateKey": "Nexus:985"
+ },
+
+ "Happy Animals": {
+ "ID": "HappyAnimals",
+ "~1.0.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Happy Birthday (Omegasis)": {
+ "ID": "Omegasis.HappyBirthday",
+ "FormerIDs": "{ID:'HappyBirthday', Author:'Alpha_Omegasis'}", // changed in 1.4; disambiguate from Oxyligen's fork
+ "Default | UpdateKey": "Nexus:520", // added in 1.4.1
+ "~1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Happy Birthday (Oxyligen fork)": {
+ "FormerIDs": "{ID:'HappyBirthday', Author:'Alpha_Omegasis/Oxyligen'}", // disambiguate from Oxyligen's fork
+ "Default | UpdateKey": "Nexus:1064" // missing key reported: https://www.nexusmods.com/stardewvalley/mods/1064?tab=bugs
+ },
+
+ "Hardcore Mines": {
+ "ID": "kibbe.hardcore_mines",
+ "Default | UpdateKey": "Nexus:1674"
+ },
+
+ "Harp of Yoba Redux": {
+ "ID": "Platonymous.HarpOfYobaRedux",
+ "Default | UpdateKey": "Nexus:914" // added in 2.0.3
+ },
+
+ "Harvest Moon Witch Princess": {
+ "ID": "Sasara.WitchPrincess",
+ "Default | UpdateKey": "Nexus:1157"
+ },
+
+ "Harvest With Scythe": {
+ "ID": "965169fd-e1ed-47d0-9f12-b104535fb4bc",
+ "Default | UpdateKey": "Nexus:236",
+ "~1.0.6 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Horse Whistle (icepuente)": {
+ "ID": "icepuente.HorseWhistle",
+ "Default | UpdateKey": "Nexus:1131"
+ },
+
+ "Hunger (Yyeadude)": {
+ "ID": "HungerYyeadude",
+ "Default | UpdateKey": "Nexus:613"
+ },
+
+ "Hunger for Food (Tigerle)": {
+ "ID": "HungerForFoodByTigerle",
+ "Default | UpdateKey": "Nexus:810",
+ "~0.1.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Hunger Mod (skn)": {
+ "ID": "skn.HungerMod",
+ "MapRemoteVersions": { "1.2.1": "1.0" }, // manifest not updated
+ "Default | UpdateKey": "Nexus:1127"
+ },
+
+ "Idle Pause": {
+ "ID": "Veleek.IdlePause",
+ "MapRemoteVersions": { "1.2": "1.1" }, // manifest not updated
+ "Default | UpdateKey": "Nexus:1092"
+ },
+
+ "Improved Quality of Life": {
+ "ID": "Demiacle.ImprovedQualityOfLife",
+ "Default | UpdateKey": "Nexus:1025",
+ "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Instant Geode": {
+ "ID": "InstantGeode",
+ "~1.12 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Instant Grow Trees": {
+ "ID": "cantorsdust.InstantGrowTrees",
+ "FormerIDs": "dc50c58b-c7d8-4e60-86cc-e27b5d95ee59 | community.InstantGrowTrees", // changed in 1.2 and 1.3.1
+ "Default | UpdateKey": "Nexus:173"
+ },
+
+ "Interaction Helper": {
+ "ID": "HammurabiInteractionHelper",
+ "Default | UpdateKey": "Chucklefish:4640", // added in 1.0.4-pathoschild-update
+ "~1.0.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Item Auto Stacker": {
+ "ID": "cat.autostacker",
+ "MapRemoteVersions": { "1.0.1": "1.0" }, // manifest not updated
+ "Default | UpdateKey": "Nexus:1184"
+ },
+
+ "Jiggly Junimo Bundles": {
+ "ID": "Greger.JigglyJunimoBundles",
+ "FormerIDs": "{EntryDll: 'JJB.dll'}", // changed in 1.1.2-pathoschild-update
+ "Default | UpdateKey": "GitHub:gr3ger/Stardew_JJB" // added in 1.0.4-pathoschild-update
+ },
+
+ "Json Assets": {
+ "ID": "spacechase0.JsonAssets",
+ "Default | UpdateKey": "Nexus:1720"
+ },
+
+ "Junimo Farm": {
+ "ID": "Platonymous.JunimoFarm",
+ "MapRemoteVersions": { "1.1.2": "1.1.1" }, // manifest not updated
+ "Default | UpdateKey": "Nexus:984" // added in 1.1.3
+ },
+
+ "Less Strict Over-Exertion (AntiExhaustion)": {
+ "ID": "BALANCEMOD_AntiExhaustion",
+ "MapLocalVersions": { "0.0": "1.1" },
+ "Default | UpdateKey": "Nexus:637",
+ "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Level Extender": {
+ "ID": "Devin Lematty.Level Extender",
+ "MapRemoteVersions": { "1.1": "1.0" }, // manifest not updated
+ "Default | UpdateKey": "Nexus:1471"
+ },
+
+ "Level Up Notifications": {
+ "ID": "Level Up Notifications",
+ "MapRemoteVersions": { "0.0.1a": "0.0.1" },
+ "Default | UpdateKey": "Nexus:855"
+ },
+
+ "Location and Music Logging": {
+ "ID": "Brandy Lover.LMlog",
+ "Default | UpdateKey": "Nexus:1366"
+ },
+
+ "Longevity": {
+ "ID": "RTGOAT.Longevity",
+ "MapRemoteVersions": { "1.6.8h": "1.6.8" },
+ "Default | UpdateKey": "Nexus:649"
+ },
+
+ "Lookup Anything": {
+ "ID": "Pathoschild.LookupAnything",
+ "FormerIDs": "LookupAnything", // changed in 1.10.1
+ "Default | UpdateKey": "Nexus:541",
+ "~1.10.1 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Love Bubbles": {
+ "ID": "LoveBubbles",
+ "Default | UpdateKey": "Nexus:1318"
+ },
+
+ "Loved Labels": {
+ "ID": "Advize.LovedLabels",
+ "FormerIDs": "{EntryDll: 'LovedLabels.dll'}", // changed in 2.1
+ "Default | UpdateKey": "Nexus:279",
+ "~2.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Luck Skill": {
+ "ID": "spacechase0.LuckSkill",
+ "FormerIDs": "LuckSkill", // changed in 0.1.4
+ "Default | UpdateKey": "Nexus:521",
+ "~0.1.4 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Mail Framework": {
+ "ID": "DIGUS.MailFrameworkMod",
+ "Default | UpdateKey": "Nexus:1536"
+ },
+
+ "MailOrderPigs": {
+ "ID": "jwdred.MailOrderPigs",
+ "FormerIDs": "{EntryDll: 'MailOrderPigs.dll'}", // changed in 1.0.2
+ "Default | UpdateKey": "Nexus:632",
+ "~1.0.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Makeshift Multiplayer": {
+ "ID": "spacechase0.StardewValleyMP",
+ "FormerIDs": "StardewValleyMP", // changed in 0.3
+ "Default | UpdateKey": "Nexus:501",
+ "~0.3.6 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Map Image Exporter": {
+ "ID": "spacechase0.MapImageExporter",
+ "FormerIDs": "MapImageExporter", // changed in 1.0.2
+ "Default | UpdateKey": "Nexus:1073"
+ },
+
+ "Message Box [API]? (ChatMod)": {
+ "ID": "Kithio:ChatMod",
+ "Default | UpdateKey": "Chucklefish:4296",
+ "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Mining at the Farm": {
+ "ID": "Nishtra.MiningAtTheFarm",
+ "FormerIDs": "MiningAtTheFarm", // changed in <=1.7
+ "Default | UpdateKey": "Nexus:674"
+ },
+
+ "Mining With Explosives": {
+ "ID": "Nishtra.MiningWithExplosives",
+ "FormerIDs": "MiningWithExplosives", // changed in 1.1
+ "Default | UpdateKey": "Nexus:770"
+ },
+
+ "Modder Serialization Utility": {
+ "ID": "SerializerUtils-0-1",
+ "~ | Status": "Obsolete",
+ "~ | StatusReasonPhrase": "it's no longer maintained or used."
+ },
+
+ "Monster Level Tip": {
+ "ID": "WhiteMind.MonsterLT",
+ "Default | UpdateKey": "Nexus:1896"
+ },
+
+ "More Animals": {
+ "ID": "Entoarox.MoreAnimals",
+ "FormerIDs": "821ce8f6-e629-41ad-9fde-03b54f68b0b6MOREPETS | Entoarox.MorePets", // changed in 1.3 and 2.0
+ "~2.0.2 | UpdateKey": "Chucklefish:4288", // only enable update checks up to 2.0.2 by request (has its own update-check feature)
+ "~1.3.2 | Status": "AssumeBroken" // overhauled for SMAPI 1.11+ compatibility
+ },
+
+ "More Artifact Spots": {
+ "ID": "451",
+ "Default | UpdateKey": "Nexus:451",
+ "~1.0.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "More Map Layers": {
+ "ID": "Platonymous.MoreMapLayers",
+ "Default | UpdateKey": "Nexus:1134" // added in 1.1.1
+ },
+
+ "More Rain": {
+ "ID": "Omegasis.MoreRain",
+ "FormerIDs": "{ID:'4108e859-333c-4fec-a1a7-d2e18c1019fe', Name:'More_Rain'}", // changed in 1.5; disambiguate from other mods by Alpha_Omegasis
+ "Default | UpdateKey": "Nexus:441", // added in 1.5.1
+ "~1.4 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "More Weapons": {
+ "ID": "Joco80.MoreWeapons",
+ "Default | UpdateKey": "Nexus:1168"
+ },
+
+ "Move Faster": {
+ "ID": "shuaiz.MoveFasterMod",
+ "Default | UpdateKey": "Nexus:1351"
+ },
+
+ "Multiple Sprites and Portraits On Rotation (File Loading)": {
+ "ID": "FileLoading",
+ "MapLocalVersions": { "1.1": "1.12" },
+ "Default | UpdateKey": "Nexus:1094",
+ "~1.12 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Museum Rearranger": {
+ "ID": "Omegasis.MuseumRearranger",
+ "FormerIDs": "{ID:'7ad4f6f7-c3de-4729-a40f-7a11d2b2a358', Name:'Museum Rearranger'}", // changed in 1.4; disambiguate from other mods by Alpha_Omegasis
+ "Default | UpdateKey": "Nexus:428", // added in 1.4.1
+ "~1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Mushroom Level Tip": {
+ "ID": "WhiteMind.MLT",
+ "Default | UpdateKey": "Nexus:1894"
+ },
+
+ "New Machines": {
+ "ID": "F70D4FAB-0AB2-4B78-9F1B-AF2CA2236A59",
+ "Default | UpdateKey": "Chucklefish:3683",
+ "~4.2.1343 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Night Owl": {
+ "ID": "Omegasis.NightOwl",
+ "FormerIDs": "{ID:'SaveAnywhere', Name:'Stardew_NightOwl'}", // changed in 1.4; disambiguate from Save Anywhere
+ "MapLocalVersions": { "2.1": "1.3" }, // 1.3 had wrong version in manifest
+ "Default | UpdateKey": "Nexus:433", // added in 1.4.1
+ "~1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "No Crows": {
+ "ID": "cat.nocrows",
+ "Default | UpdateKey": "Nexus:1682"
+ },
+
+ "No Kids Ever": {
+ "ID": "Hangy.NoKidsEver",
+ "Default | UpdateKey": "Nexus:1464"
+ },
+
+ "No Debug Mode": {
+ "ID": "NoDebugMode",
+ "~ | Status": "Obsolete",
+ "~ | StatusReasonPhrase": "debug mode was removed in SMAPI 1.0."
+ },
+
+ "No Fence Decay": {
+ "ID": "cat.nofencedecay",
+ "Default | UpdateKey": "Nexus:1180"
+ },
+
+ "No More Pets": {
+ "ID": "Omegasis.NoMorePets",
+ "FormerIDs": "NoMorePets", // changed in 1.4
+ "Default | UpdateKey": "Nexus:506" // added in 1.4.1
+ },
+
+ "No Rumble Horse": {
+ "ID": "Xangria.NoRumbleHorse",
+ "Default | UpdateKey": "Nexus:1779"
+ },
+
+ "No Soil Decay": {
+ "ID": "289dee03-5f38-4d8e-8ffc-e440198e8610",
+ "Default | UpdateKey": "Nexus:237",
+ "~0.5 | Status": "AssumeBroken" // broke in SDV 1.2 and uses Assembly.GetExecutingAssembly().Location
+ },
+
+ "No Soil Decay Redux": {
+ "ID": "Platonymous.NoSoilDecayRedux",
+ "Default | UpdateKey": "Nexus:1084" // added in 1.1.9
+ },
+
+ "NPC Map Locations": {
+ "ID": "NPCMapLocationsMod",
+ "Default | UpdateKey": "Nexus:239",
+ "1.42~1.43 | Status": "AssumeBroken",
+ "1.42~1.43 | StatusReasonPhrase": "this version has an update check error which crashes the game."
+ },
+
+ "NPC Speak": {
+ "FormerIDs": "{EntryDll: 'NpcEcho.dll'}",
+ "Default | UpdateKey": "Nexus:694",
+ "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Object Time Left": {
+ "ID": "spacechase0.ObjectTimeLeft",
+ "Default | UpdateKey": "Nexus:1315"
+ },
+
+ "OmniFarm": {
+ "ID": "PhthaloBlue.OmniFarm",
+ "FormerIDs": "BlueMod_OmniFarm", // changed in 2.0.2-pathoschild-update
+ "Default | UpdateKey": "GitHub:lambui/StardewValleyMod_OmniFarm",
+ "~2.0.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Out of Season Bonuses (Seasonal Items)": {
+ "ID": "midoriarmstrong.seasonalitems",
+ "Default | UpdateKey": "Nexus:1452"
+ },
+
+ "Part of the Community": {
+ "ID": "SB_PotC",
+ "Default | UpdateKey": "Nexus:923",
+ "~1.0.8 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "PelicanFiber": {
+ "ID": "jwdred.PelicanFiber",
+ "FormerIDs": "{EntryDll: 'PelicanFiber.dll'}", // changed in 3.0.1
+ "MapRemoteVersions": { "3.0.2": "3.0.1" }, // didn't change manifest version
+ "Default | UpdateKey": "Nexus:631",
+ "~3.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "PelicanTTS": {
+ "ID": "Platonymous.PelicanTTS",
+ "Default | UpdateKey": "Nexus:1079", // added in 1.6.1
+ "~1.6 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Persia the Mermaid - Standalone Custom NPC": {
+ "ID": "63b9f419-7449-42db-ab2e-440b4d05c073",
+ "Default | UpdateKey": "Nexus:1419"
+ },
+
+ "Persistent Game Options": {
+ "ID": "Xangria.PersistentGameOptions",
+ "Default | UpdateKey": "Nexus:1778"
+ },
+
+ "Persival's BundleMod": {
+ "FormerIDs": "{EntryDll: 'BundleMod.dll'}",
+ "Default | UpdateKey": "Nexus:438",
+ "~1.0 | Status": "AssumeBroken" // broke in SDV 1.1
+ },
+
+ "Plant on Grass": {
+ "ID": "Demiacle.PlantOnGrass",
+ "Default | UpdateKey": "Nexus:1026"
+ },
+
+ "PyTK - Platonymous Toolkit": {
+ "ID": "Platonymous.Toolkit",
+ "Default | UpdateKey": "Nexus:1726"
+ },
+
+ "Point-and-Plant": {
+ "ID": "jwdred.PointAndPlant",
+ "FormerIDs": "{EntryDll: 'PointAndPlant.dll'}", // changed in 1.0.3
+ "Default | UpdateKey": "Nexus:572",
+ "~1.0.2 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Pony Weight Loss Program": {
+ "ID": "BadNetCode.PonyWeightLossProgram",
+ "Default | UpdateKey": "Nexus:1232"
+ },
+
+ "Portraiture": {
+ "ID": "Platonymous.Portraiture",
+ "Default | UpdateKey": "Nexus:999" // added in 1.3.1
+ },
+
+ "Prairie King Made Easy": {
+ "ID": "Mucchan.PrairieKingMadeEasy",
+ "FormerIDs": "{EntryDll: 'PrairieKingMadeEasy.dll'}", // changed in 1.0.1
+ "Default | UpdateKey": "Chucklefish:3594",
+ "~1.0 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Purchasable Recipes": {
+ "ID": "Paracosm.PurchasableRecipes",
+ "Default | UpdateKey": "Nexus:1722"
+ },
+
+ "Quest Delay": {
+ "ID": "BadNetCode.QuestDelay",
+ "Default | UpdateKey": "Nexus:1239"
+ },
+
+ "Rain Randomizer": {
+ "FormerIDs": "{EntryDll: 'RainRandomizer.dll'}",
+ "~1.0.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Recatch Legendary Fish": {
+ "ID": "cantorsdust.RecatchLegendaryFish",
+ "FormerIDs": "b3af8c31-48f0-43cf-8343-3eb08bcfa1f9 | community.RecatchLegendaryFish", // changed in 1.3 and 1.5.1
+ "Default | UpdateKey": "Nexus:172"
+ },
+
+ "Regeneration": {
+ "ID": "HammurabiRegeneration",
+ "Default | UpdateKey": "Chucklefish:4584"
+ },
+
+ "Relationship Bar UI": {
+ "ID": "RelationshipBar",
+ "Default | UpdateKey": "Nexus:1009"
+ },
+
+ "RelationshipsEnhanced": {
+ "ID": "relationshipsenhanced",
+ "Default | UpdateKey": "Chucklefish:4435",
+ "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Relationship Status": {
+ "ID": "relationshipstatus",
+ "MapRemoteVersions": { "1.0.5": "1.0.4" }, // not updated in manifest
+ "Default | UpdateKey": "Nexus:751",
+ "~1.0.5 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Rented Tools": {
+ "ID": "JarvieK.RentedTools",
+ "Default | UpdateKey": "Nexus:1307"
+ },
+
+ "Replanter": {
+ "ID": "jwdred.Replanter",
+ "FormerIDs": "{EntryDll: 'Replanter.dll'}", // changed in 1.0.5
+ "Default | UpdateKey": "Nexus:589",
+ "~1.0.4 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "ReRegeneration": {
+ "ID": "lrsk_sdvm_rerg.0925160827",
+ "MapLocalVersions": { "1.1.2-release": "1.1.2" },
+ "Default | UpdateKey": "Chucklefish:4465"
+ },
+
+ "Reseed": {
+ "ID": "Roc.Reseed",
+ "Default | UpdateKey": "Nexus:887"
+ },
+
+ "Reusable Wallpapers and Floors (Wallpaper Retain)": {
+ "ID": "dae1b553-2e39-43e7-8400-c7c5c836134b",
+ "Default | UpdateKey": "Nexus:356",
+ "~1.5 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Ring of Fire": {
+ "ID": "Platonymous.RingOfFire",
+ "Default | UpdateKey": "Nexus:1166" // added in 1.0.1
+ },
+
+ "Rise and Shine": {
+ "ID": "Yoshify.RiseAndShine",
+ "FormerIDs": "{EntryDll: 'RiseAndShine.dll'}", // changed in 1.1.1-whisk-update
+ "Default | UpdateKey": "Nexus:3"
+ },
+
+ "Rope Bridge": {
+ "ID": "RopeBridge",
+ "Default | UpdateKey": "Nexus:824"
+ },
+
+ "Rotate Toolbar": {
+ "ID": "Pathoschild.RotateToolbar",
+ "Default | UpdateKey": "Nexus:1100"
+ },
+
+ "Rush Orders": {
+ "ID": "spacechase0.RushOrders",
+ "FormerIDs": "RushOrders", // changed in 1.1
+ "Default | UpdateKey": "Nexus:605",
+ "~1.1 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Save Anywhere": {
+ "ID": "Omegasis.SaveAnywhere",
+ "FormerIDs": "{ID:'SaveAnywhere', Name:'Save Anywhere'}", // changed in 2.5; disambiguate from Night Owl
+ "Default | UpdateKey": "Nexus:444", // added in 2.6.1
+ "~2.4 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Save Backup": {
+ "ID": "Omegasis.SaveBackup",
+ "FormerIDs": "{ID:'4be88c18-b6f3-49b0-ba96-f94b1a5be890', Name:'Stardew_Save_Backup'}", // changed in 1.3; disambiguate from other Alpha_Omegasis mods
+ "Default | UpdateKey": "Nexus:435", // added in 1.3.1
+ "~1.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Scroll to Blank": {
+ "ID": "caraxian.scroll.to.blank",
+ "Default | UpdateKey": "Chucklefish:4405"
+ },
+
+ "Scythe Harvesting": {
+ "ID": "mmanlapat.ScytheHarvesting",
+ "FormerIDs": "ScytheHarvesting", // changed in 1.6
+ "Default | UpdateKey": "Nexus:1106"
+ },
+
+ "SDV Twitch": {
+ "ID": "MTD.SDVTwitch",
+ "Default | UpdateKey": "Nexus:1760"
+ },
+
+ "Seasonal Immersion": {
+ "ID": "Entoarox.SeasonalImmersion",
+ "FormerIDs": "EntoaroxSeasonalHouse | EntoaroxSeasonalBuildings | EntoaroxSeasonalImmersion", // changed in 1.1, 1.6 or earlier, and 1.7
+ "~1.11 | UpdateKey": "Chucklefish:4262", // only enable update checks up to 1.11 by request (has its own update-check feature)
+ "~1.8.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Seed Bag": {
+ "ID": "Platonymous.SeedBag",
+ "Default | UpdateKey": "Nexus:1133" // added in 1.1.2
+ },
+
+ "Seed Catalogue": {
+ "ID": "spacechase0.SeedCatalogue",
+ "Default | UpdateKey": "Nexus:1640"
+ },
+
+ "Self Service": {
+ "ID": "JarvieK.SelfService",
+ "MapRemoteVersions": { "0.2.1": "0.2" }, // manifest not updated
+ "Default | UpdateKey": "Nexus:1304"
+ },
+
+ "Send Items": {
+ "ID": "Denifia.SendItems",
+ "Default | UpdateKey": "Nexus:1087", // added in 1.0.3 (2017-10-04)
+ "~1.0.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Shed Notifications (BuildingsNotifications)": {
+ "ID": "TheCroak.BuildingsNotifications",
+ "Default | UpdateKey": "Nexus:620",
+ "~0.4.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Shenandoah Project": {
+ "ID": "Nishtra.ShenandoahProject",
+ "FormerIDs": "Shenandoah Project", // changed in 1.2
+ "MapRemoteVersions": { "1.1.1": "1.1" }, // not updated in manifest
+ "Default | UpdateKey": "Nexus:756",
+ "~1.1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Ship Anywhere": {
+ "ID": "spacechase0.ShipAnywhere",
+ "Default | UpdateKey": "Nexus:1379"
+ },
+
+ "Shipment Tracker": {
+ "ID": "7e474181-e1a0-40f9-9c11-d08a3dcefaf3",
+ "Default | UpdateKey": "Nexus:321",
+ "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Shop Expander": {
+ "ID": "Entoarox.ShopExpander",
+ "FormerIDs": "{ID:'821ce8f6-e629-41ad-9fde-03b54f68b0b6', Name:'Shop Expander'} | EntoaroxShopExpander", // changed in 1.5 and 1.5.2; disambiguate from Faster Paths
+ "MapRemoteVersions": { "1.6.0b": "1.6.0" },
+ "~1.6 | UpdateKey": "Chucklefish:4381", // only enable update checks up to 1.6 by request (has its own update-check feature)
+ "~1.5.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Showcase Mod": {
+ "ID": "Igorious.Showcase",
+ "MapLocalVersions": { "0.9-500": "0.9" },
+ "Default | UpdateKey": "Chucklefish:4487",
+ "~0.9 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Shroom Spotter": {
+ "ID": "TehPers.ShroomSpotter",
+ "Default | UpdateKey": "Nexus:908"
+ },
+
+ "Simple Crop Label": {
+ "ID": "SimpleCropLabel",
+ "Default | UpdateKey": "Nexus:314"
+ },
+
+ "Simple Sound Manager": {
+ "ID": "Omegasis.SimpleSoundManager",
+ "Default | UpdateKey": "Nexus:1410", // added in 1.0.1
+ "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Simple Sprinklers": {
+ "ID": "tZed.SimpleSprinkler",
+ "FormerIDs": "{EntryDll: 'SimpleSprinkler.dll'}", // changed in 1.5
+ "Default | UpdateKey": "Nexus:76",
+ "~1.4 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Siv's Marriage Mod": {
+ "ID": "6266959802",
+ "MapLocalVersions": { "0.0": "1.4" },
+ "Default | UpdateKey": "Nexus:366",
+ "~1.2.2 | Status": "AssumeBroken" // broke in SMAPI 1.9 (has multiple Mod instances)
+ },
+
+ "Skill Prestige": {
+ "ID": "alphablackwolf.skillPrestige",
+ "FormerIDs": "6b843e60-c8fc-4a25-a67b-4a38ac8dcf9b", // changed circa 1.2.3
+ "Default | UpdateKey": "Nexus:569",
+ "~1.0.9 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Skill Prestige: Cooking Adapter": {
+ "ID": "Alphablackwolf.CookingSkillPrestigeAdapter",
+ "FormerIDs": "20d6b8a3-b6e7-460b-a6e4-07c2b0cb6c63", // changed circa 1.1
+ "MapRemoteVersions": { "1.2.3": "1.1" }, // manifest not updated
+ "Default | UpdateKey": "Nexus:569",
+ "~1.0.9 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Skip Intro": {
+ "ID": "Pathoschild.SkipIntro",
+ "FormerIDs": "SkipIntro", // changed in 1.4
+ "Default | UpdateKey": "Nexus:533"
+ },
+
+ "Skull Cavern Elevator": {
+ "ID": "SkullCavernElevator",
+ "Default | UpdateKey": "Nexus:963"
+ },
+
+ "Skull Cave Saver": {
+ "ID": "cantorsdust.SkullCaveSaver",
+ "FormerIDs": "8ac06349-26f7-4394-806c-95d48fd35774 | community.SkullCaveSaver", // changed in 1.1 and 1.2.2
+ "Default | UpdateKey": "Nexus:175"
+ },
+
+ "Sleepy Eye": {
+ "ID": "spacechase0.SleepyEye",
+ "Default | UpdateKey": "Nexus:1152"
+ },
+
+ "Slower Fence Decay": {
+ "ID": "Speeder.SlowerFenceDecay",
+ "FormerIDs": "SPDSlowFenceDecay", // changed in 0.5.2-pathoschild-update
+ "Default | UpdateKey": "Nexus:252",
+ "~0.5.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Smart Mod": {
+ "ID": "KuroBear.SmartMod",
+ "~2.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Solar Eclipse Event": {
+ "ID": "KoihimeNakamura.SolarEclipseEvent",
+ "Default | UpdateKey": "Nexus:897",
+ "MapLocalVersions": { "1.3-20170917": "1.3" },
+ "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "SpaceCore": {
+ "ID": "spacechase0.SpaceCore",
+ "Default | UpdateKey": "Nexus:1348"
+ },
+
+ "Speedster": {
+ "ID": "Platonymous.Speedster",
+ "Default | UpdateKey": "Nexus:1102" // added in 1.3.1
+ },
+
+ "Sprinkler Range": {
+ "ID": "cat.sprinklerrange",
+ "Default | UpdateKey": "Nexus:1179"
+ },
+
+ "Sprinkles": {
+ "ID": "Platonymous.Sprinkles",
+ "Default | UpdateKey": "Chucklefish:4592",
+ "~1.1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Sprint and Dash": {
+ "ID": "SPDSprintAndDash",
+ "Default | UpdateKey": "Chucklefish:3531",
+ "~1.0 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Sprint and Dash Redux": {
+ "ID": "littleraskol.SprintAndDashRedux",
+ "FormerIDs": "lrsk_sdvm_sndr.0921161059", // changed in 1.3
+ "Default | UpdateKey": "Chucklefish:4201"
+ },
+
+ "Sprinting Mod": {
+ "FormerIDs": "{EntryDll: 'SprintingMod.dll'}",
+ "MapLocalVersions": { "1.0": "2.1" }, // not updated in manifest
+ "Default | UpdateKey": "GitHub:oliverpl/SprintingMod",
+ "~2.1 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "StackSplitX": {
+ "ID": "tstaples.StackSplitX",
+ "FormerIDs": "{EntryDll: 'StackSplitX.dll'}", // changed circa 1.3.1
+ "Default | UpdateKey": "Nexus:798",
+ "~1.2 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "StaminaRegen": {
+ "FormerIDs": "{EntryDll: 'StaminaRegen.dll'}",
+ "~1.0.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Stardew Config Menu": {
+ "ID": "Juice805.StardewConfigMenu",
+ "Default | UpdateKey": "Nexus:1312"
+ },
+
+ "Stardew Content Compatibility Layer (SCCL)": {
+ "ID": "SCCL",
+ "Default | UpdateKey": "Nexus:889",
+ "~0.1 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Stardew Editor Game Integration": {
+ "ID": "spacechase0.StardewEditor.GameIntegration",
+ "Default | UpdateKey": "Nexus:1298"
+ },
+
+ "Stardew Notification": {
+ "ID": "stardewnotification",
+ "Default | UpdateKey": "GitHub:monopandora/StardewNotification",
+ "~1.7 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Stardew Symphony": {
+ "ID": "Omegasis.StardewSymphony",
+ "FormerIDs": "{ID:'4108e859-333c-4fec-a1a7-d2e18c1019fe', Name:'Stardew_Symphony'}", // changed in 1.4; disambiguate other mods by Alpha_Omegasis
+ "Default | UpdateKey": "Nexus:425", // added in 1.4.1
+ "~1.3 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "StarDustCore": {
+ "ID": "StarDustCore",
+ "~ | Status": "Obsolete",
+ "~ | StatusReasonPhrase": "it was only used by earlier versions of Save Anywhere, and is no longer used or maintained."
+ },
+
+ "Starting Money": {
+ "ID": "mmanlapat.StartingMoney",
+ "FormerIDs": "StartingMoney", // changed in 1.1
+ "Default | UpdateKey": "Nexus:1138"
+ },
+
+ "StashItemsToChest": {
+ "ID": "BlueMod_StashItemsToChest",
+ "Default | UpdateKey": "GitHub:lambui/StardewValleyMod_StashItemsToChest",
+ "~1.0.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Stephan's Lots of Crops": {
+ "ID": "stephansstardewcrops",
+ "MapRemoteVersions": { "1.41": "1.1" }, // manifest not updated
+ "Default | UpdateKey": "Chucklefish:4314"
+ },
+
+ "Stone Bridge Over Pond (PondWithBridge)": {
+ "FormerIDs": "{EntryDll: 'PondWithBridge.dll'}",
+ "MapLocalVersions": { "0.0": "1.0" },
+ "Default | UpdateKey": "Nexus:316",
+ "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Stumps to Hardwood Stumps": {
+ "ID": "StumpsToHardwoodStumps",
+ "Default | UpdateKey": "Nexus:691"
+ },
+
+ "Super Greenhouse Warp Modifier": {
+ "ID": "SuperGreenhouse",
+ "Default | UpdateKey": "Chucklefish:4334",
+ "~1.0 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Swim Almost Anywhere / Swim Suit": {
+ "ID": "Platonymous.SwimSuit",
+ "Default | UpdateKey": "Nexus:1215" // added in 0.5.1
+ },
+
+ "Tainted Cellar": {
+ "ID": "TaintedCellar",
+ "FormerIDs": "{EntryDll: 'TaintedCellar.dll'}", // changed in 1.1
+ "~1.0 | Status": "AssumeBroken" // broke in SDV 1.1 or 1.11
+ },
+
+ "Tapper Ready": {
+ "ID": "skunkkk.TapperReady",
+ "Default | UpdateKey": "Nexus:1219"
+ },
+
+ "Teh's Fishing Overhaul": {
+ "ID": "TehPers.FishingOverhaul",
+ "Default | UpdateKey": "Nexus:866"
+ },
+
+ "Teleporter": {
+ "ID": "Teleporter",
+ "Default | UpdateKey": "Chucklefish:4374",
+ "~1.0.2 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "The Long Night": {
+ "ID": "Pathoschild.TheLongNight",
+ "Default | UpdateKey": "Nexus:1369"
+ },
+
+ "Three-heart Dance Partner": {
+ "ID": "ThreeHeartDancePartner",
+ "Default | UpdateKey": "Nexus:500",
+ "~1.0.1 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "TimeFreeze": {
+ "ID": "Omegasis.TimeFreeze",
+ "FormerIDs": "4108e859-333c-4fec-a1a7-d2e18c1019fe", // changed in 1.2
+ "Default | UpdateKey": "Nexus:973" // added in 1.2.1
+ },
+
+ "Time Reminder": {
+ "ID": "KoihimeNakamura.TimeReminder",
+ "MapLocalVersions": { "1.0-20170314": "1.0.2" },
+ "Default | UpdateKey": "Nexus:1000"
+ },
+
+ "TimeSpeed": {
+ "ID": "cantorsdust.TimeSpeed",
+ "FormerIDs": "{EntryDll: 'TimeSpeed.dll'} | {ID:'4108e859-333c-4fec-a1a7-d2e18c1019fe', Name:'TimeSpeed'} | {ID:'4108e859-333c-4fec-a1a7-d2e18c1019fe', Name:'TimeSpeed Mod (unofficial)'} | community.TimeSpeed", // changed in 2.0.3, 2.1, and 2.3.3; disambiguate other mods by Alpha_Omegasis
+ "Default | UpdateKey": "Nexus:169",
+ "~2.2 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "To Do List": {
+ "ID": "eleanor.todolist",
+ "Default | UpdateKey": "Nexus:1630"
+ },
+
+ "Tool Charging": {
+ "ID": "mralbobo.ToolCharging",
+ "Default | UpdateKey": "GitHub:mralbobo/stardew-tool-charging"
+ },
+
+ "TractorMod": {
+ "ID": "Pathoschild.TractorMod",
+ "FormerIDs": "BlueMod_TractorMod | PhthaloBlue.TractorMod | community.TractorMod", // changed in 3.2, 4.0 beta, and 4.0
+ "Default | UpdateKey": "Nexus:1401"
+ },
+
+ "TrainerMod": {
+ "ID": "SMAPI.TrainerMod",
+ "~ | Status": "Obsolete",
+ "~ | StatusReasonPhrase": "replaced by ConsoleCommands, which is added by the SMAPI installer."
+ },
+
+ "Tree Transplant": {
+ "ID": "TreeTransplant",
+ "Default | UpdateKey": "Nexus:1342"
+ },
+
+ "UI Info Suite": {
+ "ID": "Cdaragorn.UiInfoSuite",
+ "Default | UpdateKey": "Nexus:1150"
+ },
+
+ "UiModSuite": {
+ "ID": "Demiacle.UiModSuite",
+ "MapLocalVersions": { "0.5": "1.0" }, // not updated in manifest
+ "Default | UpdateKey": "Nexus:1023",
+ "~1.0 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Variable Grass": {
+ "ID": "dantheman999.VariableGrass",
+ "Default | UpdateKey": "GitHub:dantheman999301/StardewMods"
+ },
+
+ "Vertical Toolbar": {
+ "ID": "SB_VerticalToolMenu",
+ "Default | UpdateKey": "Nexus:943"
+ },
+
+ "WakeUp": {
+ "FormerIDs": "{EntryDll: 'WakeUp.dll'}",
+ "~1.0.2 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "Wallpaper Fix": {
+ "FormerIDs": "{EntryDll: 'WallpaperFix.dll'}",
+ "Default | UpdateKey": "Chucklefish:4211",
+ "~1.1 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "WarpAnimals": {
+ "ID": "Symen.WarpAnimals",
+ "Default | UpdateKey": "Nexus:1400"
+ },
+
+ "Weather Controller": {
+ "FormerIDs": "{EntryDll: 'WeatherController.dll'}",
+ "~1.0.2 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "What Farm Cave / WhatAMush": {
+ "ID": "WhatAMush",
+ "Default | UpdateKey": "Nexus:1097"
+ },
+
+ "WHats Up": {
+ "ID": "wHatsUp",
+ "Default | UpdateKey": "Nexus:1082"
+ },
+
+ "Winter Grass": {
+ "ID": "cat.wintergrass",
+ "Default | UpdateKey": "Nexus:1601"
+ },
+
+ "Wonderful Farm Life": {
+ "FormerIDs": "{EntryDll: 'WonderfulFarmLife.dll'}",
+ "~1.0 | Status": "AssumeBroken" // broke in SDV 1.1 or 1.11
+ },
+
+ "XmlSerializerRetool": {
+ "FormerIDs": "{EntryDll: 'XmlSerializerRetool.dll'}",
+ "~ | Status": "Obsolete",
+ "~ | StatusReasonPhrase": "it's no longer maintained or used."
+ },
+
+ "Xnb Loader": {
+ "ID": "Entoarox.XnbLoader",
+ "~1.1.10 | UpdateKey": "Chucklefish:4506", // only enable update checks up to 1.1.10 by request (has its own update-check feature)
+ "~1.0.6 | Status": "AssumeBroken" // broke in SMAPI 2.0
+ },
+
+ "zDailyIncrease": {
+ "ID": "zdailyincrease",
+ "MapRemoteVersions": { "1.3.5": "1.3.4" }, // not updated in manifest
+ "Default | UpdateKey": "Chucklefish:4247",
+ "~1.2 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Zoom Out Extreme": {
+ "ID": "RockinMods.ZoomMod",
+ "FormerIDs": "ZoomMod", // changed circa 1.2.1
+ "Default | UpdateKey": "Nexus:1326",
+ "~0.1 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Zoryn's Better RNG": {
+ "ID": "Zoryn.BetterRNG",
+ "FormerIDs": "76b6d1e1-f7ba-4d72-8c32-5a1e6d2716f6", // changed in 1.6
+ "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
+ "~1.6 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Zoryn's Calendar Anywhere": {
+ "ID": "Zoryn.CalendarAnywhere",
+ "FormerIDs": "a41c01cd-0437-43eb-944f-78cb5a53002a", // changed in 1.6
+ "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
+ "~1.6 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Zoryn's Durable Fences": {
+ "ID": "Zoryn.DurableFences",
+ "FormerIDs": "56d3439c-7b9b-497e-9496-0c4890e8a00e", // changed in 1.6
+ "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods"
+ },
+
+ "Zoryn's Health Bars": {
+ "ID": "Zoryn.HealthBars",
+ "FormerIDs": "{EntryDll: 'HealthBars.dll'}", // changed in 1.6
+ "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
+ "~1.6 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Zoryn's Fishing Mod": {
+ "ID": "Zoryn.FishingMod",
+ "FormerIDs": "fa277b1f-265e-47c3-a84f-cd320cc74949", // changed in 1.6
+ "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods"
+ },
+
+ "Zoryn's Junimo Deposit Anywhere": {
+ "ID": "Zoryn.JunimoDepositAnywhere",
+ "FormerIDs": "f93a4fe8-cade-4146-9335-b5f82fbbf7bc", // changed in 1.6
+ "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
+ "~1.7 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Zoryn's Movement Mod": {
+ "ID": "Zoryn.MovementModifier",
+ "FormerIDs": "8a632929-8335-484f-87dd-c29d2ba3215d", // changed in 1.6
+ "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
+ "~1.6 | Status": "AssumeBroken" // broke in SDV 1.2
+ },
+
+ "Zoryn's Regen Mod": {
+ "ID": "Zoryn.RegenMod",
+ "FormerIDs": "dfac4383-1b6b-4f33-ae4e-37fc23e5252e", // changed in 1.6
+ "Default | UpdateKey": "GitHub:Zoryn4163/SMAPI-Mods",
+ "~1.6 | Status": "AssumeBroken" // broke in SDV 1.2
+ }
+ }
+}