diff --git a/build/common.targets b/build/common.targets index af24c8d7..05cfd8b5 100644 --- a/build/common.targets +++ b/build/common.targets @@ -7,7 +7,7 @@ repo. It imports the other MSBuild files as needed. - 4.4.0 + 4.5.0 SMAPI latest $(AssemblySearchPaths);{GAC} diff --git a/docs/release-notes.md b/docs/release-notes.md index c4331501..76f17c29 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -1,16 +1,19 @@ ← [README](README.md) # Release notes -## Upcoming release +## 4.5.0 +Released 25 January 2026 for Stardew Valley 1.6.14 or later. See [release highlights](https://www.patreon.com/posts/149054246). + * For players: - * Added in-game config UI via [Generic Mod Config Menu](). + * Added in-game config UI for SMAPI via [Generic Mod Config Menu](https://www.nexusmods.com/stardewvalley/mods/5098). * SMAPI now uses [automated and attested builds](https://www.patreon.com/posts/automated-builds-148417912) (thanks to DecidedlyHuman)! _This improves the security and transparency of SMAPI builds. Every step to build SMAPI from the public source code is now public and verifiable, with file signatures to let players and tools confirm the build hasn't been tampered with._ * SMAPI can now detect known malicious loose files in the `Mods` folder. * Updated internal mod blacklist. * For mod authors: - * SMAPI no longer has a separate 'for developers' version. Instead, you can now use [Generic Mod Config Menu]() to enable 'developer mode' in the console window options. + * SMAPI no longer has a separate 'for developers' version. + _Instead, you can now use [Generic Mod Config Menu](https://www.nexusmods.com/stardewvalley/mods/5098) to enable 'developer mode' in the console window options._ ## 4.4.0 Released 10 January 2026 for Stardew Valley 1.6.14 or later. See [release highlights](https://www.patreon.com/posts/147916705). diff --git a/src/SMAPI.Mods.ConsoleCommands/manifest.json b/src/SMAPI.Mods.ConsoleCommands/manifest.json index 3f44f80c..9193514a 100644 --- a/src/SMAPI.Mods.ConsoleCommands/manifest.json +++ b/src/SMAPI.Mods.ConsoleCommands/manifest.json @@ -1,9 +1,9 @@ { "Name": "Console Commands", "Author": "SMAPI", - "Version": "4.4.0", + "Version": "4.5.0", "Description": "Adds SMAPI console commands that let you manipulate the game.", "UniqueId": "SMAPI.ConsoleCommands", "EntryDll": "ConsoleCommands.dll", - "MinimumApiVersion": "4.4.0" + "MinimumApiVersion": "4.5.0" } diff --git a/src/SMAPI.Mods.SaveBackup/manifest.json b/src/SMAPI.Mods.SaveBackup/manifest.json index d3d054e6..aa5d53a9 100644 --- a/src/SMAPI.Mods.SaveBackup/manifest.json +++ b/src/SMAPI.Mods.SaveBackup/manifest.json @@ -1,9 +1,9 @@ { "Name": "Save Backup", "Author": "SMAPI", - "Version": "4.4.0", + "Version": "4.5.0", "Description": "Automatically backs up all your saves once per day into its folder.", "UniqueId": "SMAPI.SaveBackup", "EntryDll": "SaveBackup.dll", - "MinimumApiVersion": "4.4.0" + "MinimumApiVersion": "4.5.0" } diff --git a/src/SMAPI/Constants.cs b/src/SMAPI/Constants.cs index 06e066eb..21673fcc 100644 --- a/src/SMAPI/Constants.cs +++ b/src/SMAPI/Constants.cs @@ -49,7 +49,7 @@ internal static class EarlyConstants internal static int? LogScreenId { get; set; } /// SMAPI's current raw semantic version. - internal static string RawApiVersion = "4.4.0"; + internal static string RawApiVersion = "4.5.0"; } /// Contains SMAPI's constants and assumptions. @@ -108,7 +108,7 @@ public static class Constants #if DEBUG true; #else - false; + false; #endif /// The URL of the SMAPI home page. @@ -124,7 +124,7 @@ public static class Constants internal static string ApiUserConfigPath => Path.Combine(Constants.InternalFilesPath, "config.user.json"); /// The file path for the per-mods-folder override file, which is applied over it. - internal static string ApiModGroupConfigPath => Path.Combine(ModsPath, "SMAPI-config.json"); + internal static string ApiModGroupConfigPath => Path.Combine(Constants.ModsPath, "SMAPI-config.json"); /// The file path for the SMAPI metadata file. internal static string ApiMetadataPath => Path.Combine(Constants.InternalFilesPath, "metadata.json");