{ /** * 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. Multiple * variants can be separated with '|'. * * 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). * * Note that this shouldn't be set to 'AssumeBroken' if SMAPI can detect the incompatibility * automatically, since that hides the details from trace logs. * * - 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. * * - StatusReasonDetails: a technical reason shown in TRACE logs, indicating why the status * was overridden. If not provided, it defaults to the StatusReasonPhrase or 'no reason given'. * * - AlternativeUrl: a URL where the player can find an unofficial update or alternative if the * mod is no longer compatible. */ "ModData": { /********* ** Common dependencies for friendly errors *********/ "Advanced Location Loader": { "ID": "Entoarox.AdvancedLocationLoader", "Default | UpdateKey": "Nexus:2270" }, "Content Patcher": { "ID": "Pathoschild.ContentPatcher", "Default | UpdateKey": "Nexus:1915" }, "Custom Farming Redux": { "ID": "Platonymous.CustomFarming", "Default | UpdateKey": "Nexus:991" }, "Custom Shirts": { "ID": "Platonymous.CustomShirts", "Default | UpdateKey": "Nexus:2416" }, "Entoarox Framework": { "ID": "Entoarox.EntoaroxFramework", "Default | UpdateKey": "Nexus:2269" }, "JSON Assets": { "ID": "spacechase0.JsonAssets", "Default | UpdateKey": "Nexus:1720" }, "Mail Framework": { "ID": "DIGUS.MailFrameworkMod", "Default | UpdateKey": "Nexus:1536" }, "MTN": { "ID": "SgtPickles.MTN", "Default | UpdateKey": "Nexus:2256" }, "PyTK": { "ID": "Platonymous.Toolkit", "Default | UpdateKey": "Nexus:1726" }, "Rubydew": { "ID": "bwdy.rubydew", "SuppressWarnings": "UsesDynamic", // mod explicitly loads DLLs for Linux/Mac compatibility "Default | UpdateKey": "Nexus:3656" }, "SpaceCore": { "ID": "spacechase0.SpaceCore", "Default | UpdateKey": "Nexus:1348" }, "Stardust Core": { "ID": "Omegasis.StardustCore", "Default | UpdateKey": "Nexus:2341" }, "TMXL Map Toolkit": { "ID": "Platonymous.TMXLoader", "Default | UpdateKey": "Nexus:1820" }, /********* ** Obsolete *********/ "Animal Mood Fix": { "ID": "GPeters-AnimalMoodFix", "~ | Status": "Obsolete", "~ | StatusReasonPhrase": "the animal mood bugs were fixed in Stardew Valley 1.2." }, "Bee House Flower Range Fix": { "ID": "kirbylink.beehousefix", "~ | Status": "Obsolete", "~ | StatusReasonPhrase": "the bee house flower range was fixed in Stardew Valley 1.4." }, "Colored Chests": { "ID": "4befde5c-731c-4853-8e4b-c5cdf946805f", "~ | Status": "Obsolete", "~ | StatusReasonPhrase": "colored chests were added in Stardew Valley 1.1." }, "Modder Serialization Utility": { "ID": "SerializerUtils-0-1", "~ | Status": "Obsolete", "~ | StatusReasonPhrase": "it's no longer maintained or used." }, "No Debug Mode": { "ID": "NoDebugMode", "~ | Status": "Obsolete", "~ | StatusReasonPhrase": "debug mode was removed in SMAPI 1.0." }, "Split Screen": { "ID": "Ilyaki.SplitScreen", "~ | Status": "Obsolete", "~ | StatusReasonPhrase": "split-screen mode was added in Stardew Valley 1.5" }, /********* ** Broke in SDV 1.5 (Content Patcher packs) *********/ "mi.Mermaids": { "ID": "mi.Mermaids", "~1.0.0 | Status": "AssumeBroken", "~1.0.0 | StatusReasonDetails": "causes errors due to removed Stardew Valley 1.5 content" }, /********* ** Broke in SDV 1.5 (SMAPI mods) *********/ "Audio Devices": { "ID": "maxvollmer.audiodevices", "~2.0.0 | Status": "AssumeBroken", "~2.0.0 | StatusReasonDetails": "causes crash to desktop when starting the game" }, "ChestEx": { "ID": "berkayylmao.ChestEx", "~1.3.4 | Status": "AssumeBroken", "~1.3.4 | StatusReasonDetails": "has no effect due to changes in Stardew Valley 1.5, causes crashes in other mods like Chests Anywhere" }, "Custom Furniture": { "ID": "Platonymous.CustomFurniture", "~0.11.2 | Status": "AssumeBroken", "~0.11.2 | StatusReasonDetails": "causes errors and custom furniture no longer work in Stardew Valley 1.5" }, "Custom Localization": { "ID": "ZaneYork.CustomLocalization", "FormerIDs": "SMAPI.CustomLocalization", // changed in 1.0.1 "~1.1 | Status": "AssumeBroken", "~1.1 | StatusReasonDetails": "reflection error due to renamed _localizedAssets field" }, "Geode Info Menu": { "ID": "cat.geodeinfomenu", "~1.5.2 | Status": "AssumeBroken", "~1.5.2 | StatusReasonDetails": "shows no info, freezes game if you try to search" }, "Mod Settings Tab": { "ID": "GilarF.ModSettingsTab", "~0.2.1 | Status": "AssumeBroken", "~0.2.1 | StatusReasonDetails": "fails extending title menu" }, "More Grass": { "ID": "EpicBellyFlop45.MoreGrass", "~1.0.8 | Status": "AssumeBroken", "~1.0.8 | StatusReasonDetails": "crashes on save load" }, "Movement Speed": { "ID": "bcmpinc.MovementSpeed", "~3.0.0 | Status": "AssumeBroken", "~3.0.0 | StatusReasonDetails": "broken due to transpiler errors" }, "Tree Spread": { "ID": "bcmpinc.TreeSpread", "~3.0.0 | Status": "AssumeBroken", "~3.0.0 | StatusReasonDetails": "broken due to transpiler errors" }, "TreeTransplant": { "ID": "TreeTransplant", "~1.0.9 | Status": "AssumeBroken", "~3.0.0 | StatusReasonDetails": "breaks game launch due to AccessViolationException" }, /********* ** Broke in SDV 1.4 *********/ "Auto Quality Patch": { "ID": "SilentOak.AutoQualityPatch", "~2.1.3-unofficial.7-mizzion | Status": "AssumeBroken", "~2.1.3-unofficial.7-mizzion | StatusReasonDetails": "broken due to runtime errors" }, "Fix Dice": { "ID": "ashley.fixdice", "~1.1.2 | Status": "AssumeBroken", "~1.1.2 | StatusReasonDetails": "crashes game on startup" }, "Invite Code Mod": { "ID": "KOREJJamJar.InviteCodeMod", "~1.0.1 | Status": "AssumeBroken" }, "Loved Labels": { "ID": "Advize.LovedLabels", "~2.2.1-unofficial.2-pathoschild | Status": "AssumeBroken" }, "Neat Additions": { "ID": "ilyaki.neatadditions", "~1.0.3 | Status": "AssumeBroken" }, "Remote Fridge Storage": { "ID": "EternalSoap.RemoteFridgeStorage", "~1.5 | Status": "AssumeBroken" }, "Stack Everything": { "ID": "cat.stackeverything", "~2.15 | Status": "AssumeBroken" }, /********* ** Broke in SMAPI 3.0 (runtime errors due to lifecycle changes) *********/ "Advancing Sprinklers": { "ID": "warix3.advancingsprinklers", "~1.0.0 | Status": "AssumeBroken" }, "Better Sprinklers": { "ID": "Speeder.BetterSprinklers", "~2.3.1-unofficial.7-pathoschild | Status": "AssumeBroken" }, "Current Location (Vrakyas)": { "ID": "Vrakyas.CurrentLocation", "~1.5.4 | Status": "AssumeBroken" }, "Custom Adventure Guild Challenges": { "ID": "DefenTheNation.CustomGuildChallenges", "~1.8 | Status": "AssumeBroken" }, "Decrafting Mod": { "ID": "MSCFC.DecraftingMod", "~1.0 | Status": "AssumeBroken", "~1.0 | StatusReasonDetails": "fails due to NullReferenceException in ModEntry" }, "Level Extender": { "ID": "DevinLematty.LevelExtender", "~3.1 | Status": "AssumeBroken" }, "Mod Update Menu": { "ID": "cat.modupdatemenu", "~1.4 | Status": "AssumeBroken" }, "Quick Start": { "ID": "WuestMan.QuickStart", "~1.5 | Status": "AssumeBroken" }, "Stardew Valley ESP": { "ID": "reimu.sdv-helper", "~1.1 | Status": "AssumeBroken" }, "Underdark Krobus": { "ID": "melnoelle.underdarkkrobus", "~1.0 | Status": "AssumeBroken", "~1.0 | StatusReasonDetails": "fails due to NullReferenceException in ModEntry" }, "Underdark Sewer": { "ID": "melnoelle.underdarksewer", "~1.1.0 | Status": "AssumeBroken", "~1.1.0 | StatusReasonDetails": "fails due to NullReferenceException in ModEntry" }, /********* ** Broke in SDV 1.3.36 *********/ "2cute FarmCave": { "ID": "taintedwheat.2CuteFarmCave", "Default | UpdateKey": "Nexus:843", "~2.0 | Status": "AssumeBroken", "~2.0 | StatusReasonDetails": "references the deleted Content/Mine asset" }, "Ace's Expanded Caves - Default Cave": { "ID": "Acerbicon.AECdefault", "Default | UpdateKey": "Nexus:2131", "~1.2.2 | Status": "AssumeBroken", "~1.2.2 | StatusReasonDetails": "references the deleted Content/Mine asset" }, "Ace's Expanded Caves - Desert Cave": { "ID": "Acerbicon.AECdesert", "Default | UpdateKey": "Nexus:2131", "~1.2.2 | Status": "AssumeBroken", "~1.2.2 | StatusReasonDetails": "references the deleted Content/Mine asset" }, "Ace's Expanded Caves - Ice Cave": { "ID": "Acerbicon.AECice", "Default | UpdateKey": "Nexus:2131", "~1.2.2 | Status": "AssumeBroken", "~1.2.2 | StatusReasonDetails": "references the deleted Content/Mine asset" }, "Ace's Expanded Caves - Lava Cave": { "ID": "Acerbicon.AEClava", "Default | UpdateKey": "Nexus:2131", "~1.2.2 | Status": "AssumeBroken", "~1.2.2 | StatusReasonDetails": "references the deleted Content/Mine asset" }, "Ace's Expanded Caves - Slime Cave": { "ID": "Acerbicon.AECslime", "Default | UpdateKey": "Nexus:2131", "~1.2.2 | Status": "AssumeBroken", "~1.2.2 | StatusReasonDetails": "references the deleted Content/Mine asset" }, "Green Pastures Farm": { "ID": "bugbuddy.GreenPasturesFarm", "Default | UpdateKey": "Nexus:2326", "~1.0 | Status": "AssumeBroken", "~1.0 | StatusReasonDetails": "references the deleted Content/weapons asset" }, "Immersive Farm 2": { "ID": "zander.immersivefarm2", "~2.0.1 | Status": "AssumeBroken", "~2.0.1 | StatusReasonDetails": "references the deleted Content/Mine asset" }, "Karmylla's Immersive Map Edits": { "ID": "Karmylla.ImmersiveMapEdits", "Default | UpdateKey": "Nexus:1149", "~2.4 | Status": "AssumeBroken", "~2.4 | StatusReasonDetails": "references the deleted Content/weapons asset" }, "Secret Gardens Greenhouse": { "ID": "jessebot.secretgardens", "Default | UpdateKey": "Nexus:3067", "~2.0.1 | Status": "AssumeBroken", "~2.0.1 | StatusReasonDetails": "references the deleted Content/Mine asset" }, /********* ** Broke circa SDV 1.3 *********/ "Canon-Friendly Dialogue Expansion": { "ID": "gizzymo.canonfriendlyexpansion", "~1.1.1 | Status": "AssumeBroken", "~1.1.1 | StatusReasonDetails": "causes a save crash on certain dates" }, "Everytime Submarine": { "ID": "MustafaDemirel.EverytimeSubmarine", "~1.0.0 | Status": "AssumeBroken", "~1.1.1 | StatusReasonDetails": "breaks player saves if their beach bridge is fixed" }, "BJS Night Sounds": { "ID": "BunnyJumps.BJSNightSounds", "~1.0.0 | Status": "AssumeBroken", "~1.0.0 | StatusReasonDetails": "runtime errors with Harmony 1.2.0.1 in SMAPI 2.8+" }, "Fishing Adjust": { "ID": "shuaiz.FishingAdjustMod", "~2.0.1 | Status": "AssumeBroken", "~2.0.1 | StatusReasonDetails": "fails with 'method not found' error for 'Void Harmony.HarmonyInstance.Patch(System.Reflection.MethodBase, Harmony.HarmonyMethod, Harmony.HarmonyMethod, Harmony.HarmonyMethod)'" }, "Fishing Automaton": { "ID": "Drynwynn.FishingAutomaton", "~1.1 | Status": "AssumeBroken", "~1.1 | StatusReasonDetails": "runtime errors with Harmony 1.2.0.1 in SMAPI 2.8+" }, "More Silo Storage": { "ID": "OrneryWalrus.MoreSiloStorage", "~1.0.1 | Status": "AssumeBroken" }, "No Added Flying Mine Monsters": { "ID": "Drynwynn.NoAddedFlyingMineMonsters", "~1.1 | Status": "AssumeBroken", "~1.1 | StatusReasonDetails": "runtime errors with Harmony 1.2.0.1 in SMAPI 2.8+" }, "Server Bookmarker": { "ID": "Ilyaki.ServerBookmarker", "~1.0.0 | Status": "AssumeBroken", "~1.0.0 | StatusReasonDetails": "runtime errors in Stardew Valley 1.3.29" }, "Stephan's Lots of Crops": { "ID": "stephansstardewcrops", "~1.1 | Status": "AssumeBroken", "~1.1 | StatusReasonDetails": "causes errors due to overwritten Stardew Valley 1.3 items" } } }