← [README](README.md)
# Release notes
## Upcoming release
* For players:
* Added friendly log message for save file-not-found errors.
* Updated for the 'Force Off' gamepad mode added in Stardew Valley 1.4.1.
* The 'skipped mods' list now shows broken dependencies first, so it's easier to see which ones to fix first.
* Fixed compatibility with Linux Mint 18 (thanks to techge!) and Arch Linux.
* Fixed compatibility with Linux systems which have libhybris-utils installed.
* Fixed memory leak when repeatedly loading a save and returning to title.
* Fixed memory leak when mods reload assets.
* Fixes for the bundled Console Commands mod:
* added new clothing items;
* fixed spawning new flooring and rings (thanks to Mizzion!);
* fixed spawning custom rings added by mods;
* Fixed errors when some item data is invalid.
* Internal optimizations.
* Updated translations. Thanks to L30Bola (added Portuguese) and PlussRolf (added Spanish)!
* For the web UI:
* Added option to edit & reupload in the JSON validator.
* The log parser and JSON validator no longer save files to Pastebin due to ongoing performance issues. All files are now saved to Azure Blob storage instead and expire after one month.
* Updated the JSON validator for Content Patcher 1.10 and 1.11.
* Fixed JSON validator no longer letting you change format when viewing results.
* Fixed JSON validator for Content Patcher schema not requiring `Default` if `AllowBlank` omitted.
* Fixed log parser not correctly handling content packs with no author (thanks to danvolchek!).
* Fixed main sidebar link pointing to wiki instead of home page.
* For modders:
* Added asset propagation for...
* grass textures;
* winter flooring textures;
* `Data\Bundles` changes (for added bundles only).
* Added direct `Console` access to paranoid mode warnings.
* Improved error messages for `TargetParameterCountException` when using the reflection API.
* `helper.Read/WriteSaveData` can now be used while a save is being loaded (e.g. within a `Specialized.LoadStageChanged` event).
* Fixed private textures loaded from content packs not having their `Name` field set.
* Fixed asset propagation for `Characters\Farmer\farmer_girl_base_bald`.
* For SMAPI developers:
* You can now run local environments without configuring Amazon, Azure, MongoDB, and Pastebin accounts.
## 3.0.1
Released 02 December 2019 for Stardew Valley 1.4.0.1.
* For players:
* Updated for Stardew Valley 1.4.0.1.
* Improved compatibility with some Linux terminals (thanks to archification and DanielHeath!).
* Updated translations. Thanks to berkayylmao (added Turkish), feathershine (added Chinese), and Osiris901 (added Russian)!
* For the web UI:
* Rebuilt web infrastructure to handle higher traffic.
* If a log can't be uploaded to Pastebin (e.g. due to rate limits), it's now uploaded to Amazon S3 instead. Logs uploaded to S3 expire after one month.
* Fixed JSON validator not letting you drag & drop a file.
* For modders:
* `SemanticVersion` now supports [semver 2.0](https://semver.org/) build metadata.
## 3.0
Released 26 November 2019 for Stardew Valley 1.4.
### Release highlights
For players:
* **Updated for Stardew Valley 1.4.**
SMAPI 3.0 adds compatibility with the latest game version, and improves mod APIs for changes in
the game code.
* **Improved performance.**
SMAPI should have less impact on game performance and startup time for some players.
* **Automatic save fixing and more error recovery.**
SMAPI now detects and prevents more crashes due to game/mod bugs, and automatically fixes your
save if you remove some custom-content mods.
* **Improved mod scanning.**
SMAPI now supports some non-standard mod structures automatically, improves compatibility with
the Vortex mod manager, and improves various error/skip messages related to mod loading.
* **Overhauled update checks.**
SMAPI update checks are now handled entirely on the web server and support community-defined
version mappings. In particular, false update alerts due to author mistakes can now be solved by
the community for all players.
* **Fixed many bugs and edge cases.**
For modders:
* **New event system.**
SMAPI 3.0 removes the deprecated static events in favor of the new `helper.Events` API. The event
engine is rewritten to make events more efficient, add events that weren't possible before, make
existing events more useful, and make event usage and behavior more consistent. When a mod makes
changes in an event handler, those changes are now also reflected in the next event raise.
* **Improved mod build package.**
The [mod build package](https://www.nuget.org/packages/Pathoschild.Stardew.ModBuildConfig) now
includes the `assets` folder by default if present, supports the new `.csproj` project format,
enables mod `.pdb` files automatically (to provide line numbers in error messages), adds optional
Harmony support, and fixes some bugs and edge cases. This also adds compatibility with SMAPI 3.0
and Stardew Valley 1.4, and drops support for older versions.
* **Mods loaded earlier.**
SMAPI now loads mods much earlier, before the game is initialised. That lets mods do things that
were difficult before, like intercepting some core assets.
* **Improved Android support.**
SMAPI now automatically detects when it's running on Android, and updates `Constants.TargetPlatform`
so mods can adjust their logic if needed. The Save Backup mod is also now Android-compatible.
* **Improved asset propagation.**
SMAPI now automatically propagates asset changes for farm animal data, NPC default location data,
critter textures, and `DayTimeMoneyBox` buttons. Every loaded texture now also has a `Name` field
so mods can check which asset a texture was loaded for.
* **Breaking changes:**
See _[migrate to SMAPI 3.0](https://stardewvalleywiki.com/Modding:Migrate_to_SMAPI_3.0)_ and
_[migrate to Stardew Valley 1.4](https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.4)_
for more info.
### For players
* Changes:
* Updated for Stardew Valley 1.4.
* Improved performance.
* Reworked update checks and added community-defined version mapping, to reduce false update alerts due to author mistakes.
* SMAPI now removes invalid location