tModLoader Patch Notes — May 1, 2025
Aggregated from Steam, cross-tracked with Battle.net coverage on GamePatchNote.
Hello everyone! It is time for the May 2025 Stable Update.
We are once again grateful for the massive amount of community participation in developing and testing new features each month.
This month's release contains several notable features that mod makers can look forward to using. Features include brand new support for biome conversions and for custom ID sets as well as improved support for custom tile drawing and tile entities. The full listing of changes is detailed below.
Modders: There are several features of note currently in preview for next month that modders can test and provide feedback for. One new feature is the new UpdateVisibleAccessory and UpdateItemDye hooks. These new hooks along with the CustomVisualEquipType showcase show off how to properly implement custom player drawing for custom equip types. This will allow modders to draw these things in the correct and working manner. Another new feature is the custom ModType example in ExampleMod. This has been a frequently requested feature and we're happy to finally have an easy to follow example for this. We encourage mod makers to experiment with these new features on the preview branch and provide feedback this month so that they are ready for the stable release next month.
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
New Features
JavidPack: Custom and Named ID Sets ("content tags"). Mods can now create their own "Sets" and collaborate easily using them.
IbanPlay: Biome conversion support. Added Convert() hook for ModBlockTypes, Tile/WallLoader.RegisterConversion(), and other related features
JavidPack: Basic tile entity example and many more new helper methods to make working with tiles and tile entities easier
JavidPack: ExampleChandelier and several new related ModTile hooks. Swaying tiles are now customizable.
API Changes
Jacob Adams: ModMapLayer positioning can now be customized
JavidPack: Added NPCID.Sets.DoesntDespawnToInactivityAndCountsNPCSlots
Bug Fixes
Quality of Life and Other Fixes
Solxan: Add warning message if subscribed workshop mod has been removed from workshop (Hotfix)
Harper Stoeckle: Fix incorrect text rendering in several places
Solxan: Only show community announcements in-game
Solxan: Use DisplayNameClean if available for Missing and New Mods messages
Ben-tal: Fix Missing Sound Mappings, fixing some sounds that were not playing correctly
API Fixes and Changes
JavidPack: Fix vanilla frost and pumpkin moon music priority
JavidPack: Fix issue with using MonoModHooks.DumpIL on methods with generic parameters
JavidPack: Fix issue with game update methods being called on server before any player connects
CornHusker89: Add check for broken tModLoader methods when verifying mod assemblies, fixing misleading error messages
JavidPack: Fix instanced item drops becoming stuck while using NPCLoader.blockLoot
JavidPack: Expose ContentSamples.AddItemResearchOverride, Fix ContentSamples.CreativeResearchItemPersistentIdOverride not clearing
JavidPack: Fix mods located outside ModSources folder showing up twice in menu
Chicken-Bones: TagSerializableSerializer is now able to find subtype serializers in dll references
Tyfyter: Let damage classes inherit generic prefixes
IbanPlay: Made critter cage lids account for multi-column spritesheets
Lion8cake: TileLoader.DrawEffects now called after drawData.colorTint/finalColor assignment
Mirsario: Fixed NPC BuffLoader.Update not accounting for buffIndex changes
JavidPack: Fix crash from bad build.txt values (Hotfix)
Other
ExampleMod and API Documentation
hezuo1hao: Localize hard-coded text within ExampleMod
Thanatos: Fix ExampleSoul item not rendering at the expected full brightness
JavidPack: Various Documentation Updates: 1, 2
Localization
Fish: Chinese
RazzSG: Russian
We would also like to mention that we have volunteers translating our monthly release announcements into Chinese, Russian, Brazilian Portuguese, Polish, and Spanish. If you would like to help translate these announcements into another supported language, please reach out on Discord.