1. tModLoader
  2. News

tModLoader News

August 2024 Stable Update

It is time for the August 2024 Stable Update.

The tModLoader team and our amazing community of contributors continues to improve tModLoader.

This month's release contains many improvements to the user experience, various bug fixes, as well as new features with examples and documentation for mod makers.

As always, if you are having issues of any sort, definitely don't hesitate to check out our FAQ on GitHub or reach out to us at our Discord.

Changelog

The following is a list of the most noteworthy changes made for this release. As a reminder, modders should consult the Update Migration Guide to see how to adapt to the new changes after running tModPorter.

Major Changes

[h2]New Features[/h2]
JavidPack: Add Recently Published sort, Time Period sort, and update Hot sort to the workshop menu. Better workshop user experience JavidPack: Memory tracking feature reworked and added back to mods menu

[h2]API Changes[/h2]
Rijam: Example Rockets and explosive projectile fixes and features Rijam: Added support for modifying Petting, Chat Bubble, Party Hat, and Emote Bubble positions. Added ExampleTownPet and License example JavidPack: UseItem will now be called during QuickHeal and QuickMana JavidPack: Added ExampleFlask and EmitEnchantmentVisualsAt hook. Weapon imbue visuals can now support projectiles properly JavidPack: NPCID.Sets.NeverDropsResourcePickups added and MinionBossMinion now showcases guaranteed heart drops JavidPack: Player.MeleeEnchantActive helper property added

Bug Fixes

[h2]Quality of Life and Other Fixes[/h2]
JavidPack: Config list UI will now show all mods to reduce user confusion JavidPack: Improve performance of player select menu and visual consistency of other menus JavidPack: Fix issue preventing users downloading mods built for a newer build version of tModLoader JavidPack: Mod location icon in mod listing now shows helpful tooltip. Improve visual consistency of other menus JavidPack: Fix mod icon blurry on Mods menu, fix many other icons blurry JavidPack: Error message for Mac users on outdated macOS

[h2]API Fixes and Changes[/h2]
Oliver Heamon: Run expensive tasks in Mod Sources asynchronously JavidPack: Modders accidentally using obsolete LocalizedText.SetDefault will now be shown a helpful custom error message JavidPack: Fix issue preventing pluralized LocalizedText being used in BroadcastChatMessage method JavidPack: Add error message for modders most likely renaming .png textures instead of saving in .png format. JavidPack: Fix errors caused by malformed build.txt files and incorrect 32 bit Linux detection JavidPack: Fix JITException error message sometimes repeating same mod multiple times JavidPack: Add error when it is detected that a recently built mod will not be loaded due to version or modpack priority Solxan: Added 'internal name' to workshop description and other refactors Lacewing: Resprite localization buttons JavidPack: GraniteBiome StructureMap fix and related docs JavidPack: Remove obsolete AllowVanillaClients from code

Other

[h2]ExampleMod and API Documentation[/h2]
Narnia: Added ExampleSign, showcasing sign related methods and tile alternate placements JavidPack: Added ExampleResourcePickup, a resource pickup item example JavidPack: Fix vanilla UIElement class LockVanillaMouseScroll usage and document some UIElement methods JavidPack: Document tooltip drawing methods and others JavidPack: Document TagCompound, secret seeds, etc

[h2]Localization[/h2]
RazzSG: Russian Fish cat cat: Chinese Fish cat cat: More Chinese

We would also like to mention that we have volunteers translating our monthly release announcements into Chinese, Russian, and Brazilian Portuguese. If you would like to help translate these announcements into another supported language, please reach out on Discord.

July 2024 Stable Update

It is time for the July 2024 Stable Update.

The tModLoader team and our amazing community of contributors continues to improve tModLoader.

This month's release contains many improvements to the user experience, some gameplay bug fixes, as well as new examples and documentation for mod makers.

As always, if you are having issues of any sort, definitely don't hesitate to check out our FAQ on GitHub or reach out to us at our Discord.

New Changes' Highlights

The following is a list of the most noteworthy changes made for this release. As a reminder, modders should consult the Update Migration Guide to see how to adapt to the new changes after running tModPorter.

New Features

[h2]API Changes[/h2]
None this month.

Bug Fixes

[h2]Gameplay Fixes[/h2]
JavidPack: Fix sellback exploits with shopCustomPrice Solxan: Fix crash caused by duplicated launch arguments JavidPack: Better error message for unsupported 32 bit Windows users Michael Scott: Fix issue with dresser menu by unloading Main.dresserInterfaceDummy correctly JavidPack: Remove ValidModBrowserSignature usage and remove unusable OnlyDownloadSignedModsFromServers config to fix a rare issue with some Linux users Solaestas: Fix issue causing IL edit crashes by clearing ReflectionHelper cache

[h2]Quality of Life and Other Fixes[/h2]
JavidPack: Fix escape key behavior on menus and an input text issue JavidPack: Update Download Mods menu, added backgrounds to tooltips JavidPack: Added icons to indicate client and server configs. Solxan: Remove memory estimates feature temporarily

[h2]API Fixes and Changes[/h2]
Solxan: Added support to publish a mod using the Unlisted visibility option Solxan: Publish mod menu now says "update" when updating an existing mod Solxan: Fix an issue preventing republishing a mod that had been removed from the workshop JavidPack: Fix ModifyActiveShop items parameter, items should not be null Reverted, the original behavior was correct.
Chicken-Bones: Improve FastParallel.For deadlock logging. Add crash dump option for exceptions JavidPack: Improve error messages and behavior for mod sources with invalid versions JavidPack: Add processor count logging Solxan: Add RAM logging

Other

[h2]ExampleMod and API Documentation[/h2]
TacoConKvass: Example Boots and document movement stats JavidPack: Document proper ProjectileID.Sets.DontAttachHideToAlpha usage Blu3: Example Arrow JavidPack: Some more notes about ExampleMod class being a partial class Solxan: Documentation on disabling TerrariaSteamClient if needed Solxan: Preformatted Dotnet Environment Dump Variables in case CTD with no natives.log context. Default Off. Vadim Placinta: Update serverconfig.txt to mention -nosteam option

[h2]Localization[/h2]
Pixelnando: Brazilian Portuguese - Steam page RazzSG: Russian Tomasz: Polish JavidPack: Localize Create Mod menu and some missing ModConfig text

We would also like to mention that we have volunteers translating our monthly release announcements into Chinese, Russian, and Brazilian Portuguese. If you would like to help translate these announcements into another supported language, please reach out on Discord.

June 2024 Stable Update

It is time for the June 2024 Stable Update.

The tModLoader team and our amazing community of contributors continues to improve tModLoader.

This month we've fixed a few UI issues: some fixes for the ModPacks feature, some UI fixes for multiplayer connections, and a UI fix for Mod Browser / downloading mods.

As always, if you are having issues of any sort, definitely don't hesitate to check out our FAQ on GitHub or reach out to us at our Discord.

New Changes' Highlights

The following is a list of the most noteworthy changes made for this release. As a reminder, modders should consult the Update Migration Guide to see how to adapt to the new changes after running tModPorter.

New Features

[h2]API Changes[/h2]
BasicallyIAmFox: Allow shaders to omit parameters they don't use JackerAcid: ItemID.Sets.DuplicationMenuToolsFilter added to allow categorizing items as tools JavidPack: GoreID.Sets.LiquidDroplet added and ExampleDroplet updated

Bug Fixes

[h2]Gameplay Fixes[/h2]
JavidPack: Fix Daybreak and Solar Eruption Explosions erroneously delivering critical hits JavidPack: Fix sellback price issue with shop items using shopCustomPrice JavidPack: Fix credits not working sometimes

[h2]Quality of Life and Other Fixes[/h2]
JavidPack: Fix error causing "tiles disappeared but still there" issue JavidPack and MacaylaMarvelous81: Greatly improve mod dependencies user experience. Fix dependent mods failing to be disabled when dependency mod fails to load. JavidPack: Fix host and play to correctly use custom save directories Anshroid Nemo: Fix Logitech RGB and G Hub detection Jack Ashmore: Update OneDrive opening logic to open in background JavidPack: Fix misleading install dependencies launch message. Also fix Install Dependencies action getting stuck on download mod progress screen JavidPack: Clarify in logs and mods menu if mod is loading from an active modpack JavidPack: Use mod display name in UIServerModsDifferMessage to reduce confusion JavidPack: Fix issue preventing selected local/frozen modpack saving properly in some situations JavidPack: New button icons for mod sources menu JavidPack: Fix rare issue causing cursor to disappear on some menus JavidPack: Improve error detection and error messages for users currently on v1.1.2 Terraria beta option

[h2]API Fixes and Changes[/h2]
JavidPack: ModTile/GlobalTile.CanPlace functionality restored JavidPack: Add warning when attempting to publish a mod with the same name as an existing mod JavidPack: Fix LoaderUtils.MustOverrideTogether error messages to display method name again

Other

[h2]ExampleMod and API Documentation[/h2]
James: Fix ExampleMusicBoxTile not emitting note particles JavidPack: Add example of spawning ore when boss is first defeated direwolf420: Fix minion boss loot order JavidPack: Fix some ExampleMod tiles with inconsistent preview/place horizontal flip MrQuba: Clarify CanEquipAccessory and CanAccessoryBeEquippedWith docs JavidPack: Document various coordinate conversion and geometry methods JavidPack: Document Lighting.GetColor methods JavidPack: Document StructureMap and GeneralPlacementTiles

[h2]Localization[/h2]
Rijam: Localized MagicSummonHybrid damage class RazzSG: Russian

May 2024 Stable Update

It is time for the May 2024 Stable Update.

The tModLoader team and our amazing community of contributors continues to improve tModLoader.

This month we've fixed a few crash conditions when using a large amount of mods, made some improvements to mod loading time, and made a major upgrade from using Dotnet 6 to Dotnet 8 for increased performance and capability.

Mod makers can look forward to the new features of C# 12 and Dotnet 8.

As always, if you are having issues of any sort, definitely don't hesitate to check out our FAQ on GitHub or reach out to us at our Discord.

New Changes' Highlights

The following is a list of the most noteworthy changes made for this release. As a reminder, modders should consult the Update Migration Guide to see how to adapt to the new changes after running tModPorter.

New Features

[h2]API Changes[/h2]
Mirsario: Port tModLoader from .NET 6 to .NET 8 Mirsario: Refactored mod creation to use a file tree of templates BasicallyIAmFox: Publicizes PlayerEyeHelper members


Bug Fixes

[h2]Gameplay Fixes[/h2]
Rijam: Fix Splash Sound for Shimmer JavidPack: Fix Gun Aim Alignment issue Leon Gies: Fixed AltGr not working in chat. Special characters can now be typed in chat for many non-English users

[h2]Quality of Life and Other Fixes[/h2]
JavidPack: Fix server kick when reloading mods takes more than 2 minutes Chicken-Bones: JIT mods in parallel on the thread pool to speed up mod loading lhzlhz419: Fix typo causing tModLoader crash with Vulkan on Mac JavidPack: Track and report lost player/world save data, will help identify mods causing lost data NexusXe: Fix docker permission denied issue JavidPack: Fix ShowWhatsNew feature, also fixes issue causing other notifications to not be shown Golfing7: Minor performance improvement LoaderManager.Get JavidPack: Improve world select menu performance JavidPack: Fix open csproj button, fix forward slashes in save path on windows causing some issues JavidPack: Provide better error messages for users currently on Terraria Undeluxe Edition beta Mirsario: Fixed an OverflowException thrown in case of >4GB texture memory usage. JavidPack: Add link to more suggestions for workshop issues

[h2]API Fixes and Changes[/h2]
BasicallyIAmFox: Moved `BestiaryFilledPercent` in `Conditions` type JavidPack: Fix GetHealLife/Mana not being applied to tooltips as well as CanUseItem not being checked for mana potions. JavidPack: Use HelpLink from InnerExceptions of MultipleException

Other

[h2]ExampleMod and API Documentation[/h2]
JavidPack: Docs for Request and expert/master mode confusion JavidPack: Document autoloading logic JavidPack: Document AutoloadEquipAttribute, message for autoloaded equip texture missing JavidPack: Document ChatHelper methods JavidPack: Additional CanChooseAmmo example JavidPack: Apply research sorting to examplemod JavidPack: Clarify GetFileBytes docs JavidPack: Player.GetItem docs JavidPack: ExtractinatorUse docs update JavidPack: NetMessage.SendTileSquare docs

[h2]Localization[/h2]
JavidPack: Fix InfoDisplay and DamageClass not populating localization files

April 2024 Stable Update

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.



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 Assets wiki page 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 FAQ on GitHub or reach out to us at our Discord.

New Changes' Highlights

The following is a list of the most noteworthy changes made for this release. As a reminder, modders should consult the Update Migration Guide to see how to adapt to the new changes after running tModPorter.

New Features

[h2]API Changes[/h2]
Chicken-Bones, JavidPack: Massive rework to mod version selection and multiplayer mod syncing user experience Ishigh1, JavidPack: Edit ModConfig directly on server console before loading world Brian Hansen, JavidPack: Modded Sand and Sandgun support, ExampleSandBlock Cyrilly: Add more features to BuilderToggle API JavidPack: Mod.DisplayNameClean added for situations where DisplayName chat tags are not desired BasicallyIAmFox: Added Main.ActiveNPCs/Projectiles/Players/Items iterators to write more convenient code for correctly iterating over active entities

Bug Fixes

[h2]Gameplay Fixes[/h2]
JavidPack: Fix shop sell back price issue JavidPack: Restore full shop sell behavior direwolf420: Fix celebrationmk10 treasure bag item issue

[h2]Quality of Life and Other Fixes[/h2]
JavidPack: Prevent config.json corruption and workaround existing corruption JavidPack: Fix malformed language packs preventing game launch Johannes Grimm, JavidPack: Improved handling of world save and load errors Mirsario: Fix incorrect date handling and other logging issues JavidPack: Item/NPC/Projectile/NPCDefinition config elements are now more responsive Chicken-Bones: Improve speed of AssetRequestMode.ImmediateLoad during mod loading Johannes Grimm: Allow Journeys End menu to persist on restart Johannes Grimm: Fix sorting of searched mods in download mods menu JavidPack: Prevent EnableAll/Doubleclick from enabling mod requiring update

[h2]API Fixes and Changes[/h2]
Mirsario: Allow .hjson files to be used for non-localization purposes R.Phoenix: Fix fishing line drawing issue when using bobbers, ModifyFishingLine moved from ModProjectile to ModItem Chicken-Bones: Add Asset constructors to ShaderData for easier async asset usage Chicken-Bones: Warn when mods spend a long time blocking on asset loading Chicken-Bones: Report total mod load time in logs Chicken-Bones, JavidPack: Zip library updated from Ionic.Zip.Reduced v1.9.1.8 to DotNetZip v1.16.0 Solxan: Continuous Integration work Chicken-Bones: Add new MethodOverrideQuery for faster HasOverride checks Chicken-Bones: Remove IIndexed constraint from IEntityWithInstances so that HookList can be used more generally (#4088) Chicken-Bones: Remove unnecessary computation in Cloning when not needed Chicken-Bones: Improve usability of method reference override queries by allowing the delegate type to be unspecified Johannes Grimm: Fix tModLoader test code JavidPack: Fix #4132 - Server Map Bug

Other

[h2]ExampleMod and API Documentation[/h2]
JavidPack: ExampleMod updated according to Asset wiki page guidelines JavidPack: Closed door randomization feature documentation JavidPack: Chain item drop method documentation Chicken-Bones: Improve documentation on ModContent.Request JavidPack: Fix ExampleCampfire nearby logic JavidPack: Added an example of adding a shop item after a modded boss is defeated

[h2]Localization[/h2]
Johannes Grimm: German RazzSG: Russian, more Tomasz: Polish lace-wing: Chinese Pixelnando: Brazilian Portuguese