It is time for the April Fools 2024 Stable Update.
The tModLoader team and our amazing community of contributors continues to improve tModLoader.
This month we've fixed several issues, the most impactful being the issue with corrupted config.json files preventing the game from loading for some users. We hope this fix allows users experiencing this issue to continue playing tModLoader.
Notably, the mod loading and syncing logic has been reworked in this month's release. Users will see a new menu when joining a multiplayer server if mods need to be reloaded, explaining which mods will be downloaded, enabled, or disabled.
The new menu can be seen in the image below.
[img]{STEAM_CLAN_IMAGE}/37627134/3afa6d272c6761a4641638277cb114de589f102f.png[/img]
As well, mod loading speed has been improved by roughly 10%. We expect to see faster mod loading times and more consistent syncing of mods in multiplayer.
We would like to encourage modders to read the new [url=https://github.com/tModLoader/tModLoader/wiki/Assets]Assets wiki page[/url] and apply the contained guidelines to their mods. We have noticed that many mods are incorrectly using the Asset system, leading to slow mod loading as a result.
As always, if you are having issues of any sort, definitely don't hesitate to check out our [url=https://github.com/tModLoader/tModLoader/wiki/Basic-tModLoader-Usage-FAQ]FAQ on GitHub [/url] or reach out to us at [url=https://discord.com/invite/tmodloader]our Discord[/url].
[h1]New Changes' Highlights[/h1]
The following is a list of the most noteworthy changes made for this release. As a reminder, modders should consult the [url=https://github.com/tModLoader/tModLoader/wiki/Update-Migration-Guide#v202402]Update Migration Guide[/url] to see how to adapt to the new changes after running tModPorter.
[h1]New Features[/h1]
[h2]API Changes[/h2]
[b]Chicken-Bones, JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/pull/3822]Massive rework to mod version selection and multiplayer mod syncing user experience[/url]
[b]Ishigh1, JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/pull/3296]Edit ModConfig directly on server console before loading world[/url]
[b]Brian Hansen, JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4053]Modded Sand and Sandgun support, ExampleSandBlock[/url]
[b]Cyrilly[/b]: [url=https://github.com/tModLoader/tModLoader/pull/3943]Add more features to BuilderToggle API[/url]
[b]JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4052]Mod.DisplayNameClean added for situations where DisplayName chat tags are not desired[/url]
[b]BasicallyIAmFox[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4118]Added Main.ActiveNPCs/Projectiles/Players/Items iterators to write more convenient code for correctly iterating over active entities[/url]
[h1]Bug Fixes[/h1]
[h2]Gameplay Fixes[/h2]
[b]JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/commit/87dbe88f29a6cec7d69517e1738075f9b7c0ab68]Fix shop sell back price issue[/url]
[b]JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/commit/0350c2d63a060125f1040caff8bf0cb9260615f2]Restore full shop sell behavior[/url]
[b]direwolf420[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4059]Fix celebrationmk10 treasure bag item issue[/url]
[h2]Quality of Life and Other Fixes[/h2]
[b]JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4103]Prevent config.json corruption and workaround existing corruption[/url]
[b]JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/commit/06ae60113f05a42a11f8558125c44f1d6154ad2d]Fix malformed language packs preventing game launch[/url]
[b]Johannes Grimm, JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4067]Improved handling of world save and load errors[/url]
[b]Mirsario[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4096]Fix incorrect date handling and other logging issues[/url]
[b]JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/commit/7c479d1708968a9f140468e17bbfdf0d14697ce8]Item/NPC/Projectile/NPCDefinition config elements are now more responsive[/url]
[b]Chicken-Bones[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4113]Improve speed of AssetRequestMode.ImmediateLoad during mod loading[/url]
[b]Johannes Grimm[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4079]Allow Journeys End menu to persist on restart[/url]
[b]Johannes Grimm[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4047]Fix sorting of searched mods in download mods menu[/url]
[b]JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/commit/a734931a308ac2cd274ad9b6982b8d5bf531d826]Prevent EnableAll/Doubleclick from enabling mod requiring update[/url]
[h2]API Fixes and Changes[/h2]
[b]Mirsario[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4087]Allow .hjson files to be used for non-localization purposes[/url]
[b]R.Phoenix[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4060]Fix fishing line drawing issue when using bobbers, ModifyFishingLine moved from ModProjectile to ModItem[/url]
[b]Chicken-Bones[/b]: [url=https://github.com/tModLoader/tModLoader/commit/a2b48a7cb1df78e7b3026df2387c5502f345b2ae]Add Asset constructors to ShaderData for easier async asset usage[/url]
[b]Chicken-Bones[/b]: [url=https://github.com/tModLoader/tModLoader/commit/bd5f05b5f70609cc616ad793897f502a0fe7813d]Warn when mods spend a long time blocking on asset loading[/url]
[b]Chicken-Bones[/b]: [url=https://github.com/tModLoader/tModLoader/commit/e28fde35666ca10f0c67c2fc09f56bc4227ed652]Report total mod load time in logs[/url]
[b]Chicken-Bones, JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4109]Zip library updated from Ionic.Zip.Reduced v1.9.1.8 to DotNetZip v1.16.0[/url]
[b]Solxan[/b]: [url=https://github.com/tModLoader/tModLoader/commit/46a88756f650f1a6287955ff99de75ae764c31a3]Continuous Integration work[/url]
[b]Chicken-Bones[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4089]Add new MethodOverrideQuery for faster HasOverride checks[/url]
[b]Chicken-Bones[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4088]Remove IIndexed constraint from IEntityWithInstances so that HookList can be used more generally (#4088)[/url]
[b]Chicken-Bones[/b]: [url=https://github.com/tModLoader/tModLoader/commit/6e1fee2d305863166ce675288022096f209ee05f]Remove unnecessary computation in Cloning when not needed[/url]
[b]Chicken-Bones[/b]: [url=https://github.com/tModLoader/tModLoader/commit/e8cf9038625ac17d22f23414684b485b611f6066]Improve usability of method reference override queries by allowing the delegate type to be unspecified[/url]
[b]Johannes Grimm[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4078]Fix tModLoader test code[/url]
[b]JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/commit/9f43d2e330a147ab21d70cc7feeacc01e7e0212d]Fix #4132 - Server Map Bug[/url]
[h1]Other[/h1]
[h2]ExampleMod and API Documentation[/h2]
[b]JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4121]ExampleMod updated according to Asset wiki page guidelines[/url]
[b]JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/commit/21b579ce3021c15d89626b3e8675c1c21463b90f]Closed door randomization feature documentation[/url]
[b]JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/commit/dfa6ebf8958cbab2183f68755c4757f0dd474c83]Chain item drop method documentation[/url]
[b]Chicken-Bones[/b]: [url=https://github.com/tModLoader/tModLoader/commit/12bed07610daf123899fa10dbb55a7af6ab83ece]Improve documentation on ModContent.Request[/url]
[b]JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/commit/0e7909135b6ad6517db3fa038d376fa23cca996d]Fix ExampleCampfire nearby logic[/url]
[b]JavidPack[/b]: [url=https://github.com/tModLoader/tModLoader/commit/072a73179dc60e032eadb5dc98fc6bbffec709fc]Added an example of adding a shop item after a modded boss is defeated[/url]
[h2]Localization[/h2]
[b]Johannes Grimm[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4049]German[/url]
[b]RazzSG[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4075]Russian[/url], [url=https://github.com/tModLoader/tModLoader/pull/4140]more[/url]
[b]Tomasz[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4057]Polish[/url]
[b]lace-wing[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4141]Chinese[/url]
[b]Pixelnando[/b]: [url=https://github.com/tModLoader/tModLoader/pull/4143]Brazilian Portuguese[/url]