1. tModLoader
  2. News
  3. May 2025 Stable Update

May 2025 Stable Update

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

[h2]New Features[/h2]
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.

[h2]API Changes[/h2]
Jacob Adams: ModMapLayer positioning can now be customized JavidPack: Added NPCID.Sets.DoesntDespawnToInactivityAndCountsNPCSlots

Bug Fixes

[h2]Quality of Life and Other Fixes[/h2]
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

[h2]API Fixes and Changes[/h2]
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

[h2]ExampleMod and API Documentation[/h2]
hezuo1hao: Localize hard-coded text within ExampleMod Thanatos: Fix ExampleSoul item not rendering at the expected full brightness JavidPack: Various Documentation Updates: 1, 2

[h2]Localization[/h2]
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.