It is time for the October 2023 Stable Update!
Over the last month the tModLoader team has been busy fixing bugs and incorporating new functionality into tModLoader. This month's update includes many bug fixes, as usual, but this month's release has a particularly large amount of new functionality for modders to play with.
New features include support for modded Builders Toggles, modded Emote Bubbles, Rubblemaker support, a reworked NPC buff immunity system, a way to store world header data, and the long awaited Extra Jump API. These new features have made their way into tModLoader from the efforts of our amazing community of modders willing to contribute to tModLoader, we encourage modders to continue contributing features to tModLoader. These code changes will allow modders the ability to make things previously prohibitively complex to implement.
We hope players look forward to mods incorporating these new features and encourage modders to take a moment to test their mods today to ensure that they still load, especially if your mod relates in any way to the newly implemented features.
We look forward to seeing how mods make use of these new features. 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.
[h3]
Extra Jump API by
absoluteAquarius[/h3]
• Adds an API for adding modded extra jumps.
• Extra jumps were previously extremely hard to implement.
• Please read the Extra Jump API pull request page and the Update Migration Guide for more information.
Porting Notes: If you previously used your own approach, please use the tModLoader approach. The Update Migration Guide has more information on how to port your code.
[h3]
Add modded world header data by
Chicken-Bones[/h3]
• Modded world data can be now be saved into a 'header' in the .twld file. The header can be read without deserializing the entire .twld file, and the modded data is accessible in the world select menu and during vanilla world loading.
• The list of mods the world was last played with is now shown in the world select menu, just like for players
• The list of mods (and version of those mods) the world was generated with is now stored in the header. Only applies to worlds generated in the future of course.
[h3]
Modded Emote Bubble by
-Cyril-[/h3]
• Modders can now make custom emotes
• Modders can adjust how NPC pick emotes
• ExampleMod shows off several custom emotes and custom emote spawning
[h3]
Rework NPCID.Sets.DebuffImmunitySets by
JavidPack[/h3]
• Buff immunities for NPC has been reworked to be easier to work with and more functional.
• NPCID.Sets.DebuffImmunitySets has been replaced with NPCID.Sets.SpecificDebuffImmunity, NPCID.Sets.ImmuneToAllBuffs, and NPCID.Sets.ImmuneToRegularBuffs to simplify modder code.
• Added buff immunity inheritance through the BuffID.Sets.GrantImmunityWith set and corresponding methods.
Porting Notes: If your mod has any NPCs or does anything with buff immunity, you'll need to update their buff immunity code. Read the Porting Notes section for more information on how to port to the new code.
Mods should consider using the new buff immunity inheritance system for buff inheritance compatibility.
[h3]
Added support for Modded Builder Toggles by
xKirtle[/h3]
• Modders can now make builder toggles, which are those small icons top left of the inventory that are used for block swap, wire visibility, etc.
Porting Notes: If you previously made builders toggles using your own approach, use the tModLoader approach.
[h3]
Rubblemaker support by
GeorgeFeldy[/h3]
• Modders can now add tiles to the Rubblemaker
Bug Fixes
[h2]Gameplay Fixes[/h2]
Rijam -
Fixed Moon Lord Treasure Bag Weapons
Chicken-Bones -
Fix item use sounds playing multiple times for remote clients
JavidPack -
Call ItemCheck_ApplyManaRegenDelay on 1st frame of item use
Chicken-Bones -
Add ProjectileID.Sets.PlayerHurtDamageIgnoresDifficultyScaling for explosives
Chicken-Bones -
Fix melee speed affecting tool use speed
Cerbrus -
Check UseStandardCritCalcs in ProcessHitAgainstNPC[h2]Quality of Life and Other Fixes[/h2]
Cerbrus -
Automatically enable mod dependencies
JavidPack -
Disable roll forward when launching using local dotnet install
Chicken-Bones -
Enable hotbar key item swap and smart select while auto-reusing items
Chicken-Bones -
Fixes and improvements to smart select while using auto reusing
Chicken-Bones -
Fix favorite status transferring to hand in PickupItemIntoMouse
blushiemagic -
Patron sets for HER0zero and Mayne; adjusted rates for patron/dev sets
JavidPack -
Fix -host command line argument
JavidPack -
Added a special icon for translation mods
Chicken-Bones -
Add general purpose SDL driver fallbacks, error reporting and CLI args
Chicken-Bones -
Silence SteelSeries connection errors and http failures on async threads[h2]API Fixes and Changes[/h2]
stormytuna -
Add missing tooltips to TooltipLine docs
Lion8cake -
Remix Hallow worldgen is now in the "Hardmode Good" genpass
Destructor_Ben -
Added field for items to not change player direction on shoot
Chicken-Bones -
Add useTurnOnAnimationStart to restore turn behavior of earlygame vanilla swords
direwolf420 -
Modded toilet poo support
stormytuna -
Added ModPlayer.OnPickup hook
JavidPack -
Rename (Mod|Global)Projectile.Kill hook to OnKill
BasicallyIAmFox -
ItemID.Sets.IsSpaceGun
BasicallyIAmFox -
Made GenPass instances hideable for greater compatibility
BasicallyIAmFox -
Made TooltipLine instances hideable for greater compatibility
Tyfyter -
Made Player.shimmerImmune public
Cerbrus -
Add ModTile.IsTileBiomeSightable hook
direwolf420 -
BelongsToInvasion NPC sets
Destructor_Ben -
Better Changelogs
JavidPack -
ShakeTree createLeaves parameter now defaults to True to match 1.4.4 behavior
Destructor_Ben -
Add support for tweaking shadow color for in InfoDisplay class
JavidPack -
GlobalInfoDisplay.ModifyDisplayParameters supersedes ModifyDisplayValue/ModifyDisplayName/ModifyDisplayColor
JavidPack -
Restore ModConfig and PrefixDefinition functionality
direwolf420 -
Fix princess not using the intended translation key
JavidPack -
TranslationsNeeded.txt file can be used to automatically track needed translation counts[h2]ExampleMod[/h2]
VaemaVoid -
ExampleStaff ported
direwolf420 -
Example Minecart added
VaemaVoid -
Example Last Prism portedLocalization
RazzSG and Blueberryy - Russian
Pixelnando -
- Brazilian Portuguese
Solxan -
Support localizing Steam workshop and Store pagesWe recently started localizing the store page and workshop tags. We are also lacking a great deal of in-game translations for several languages still. If you are interested in translating these, please get in contact with us on
Discord to ask how to contribute translations or visit
the tModLoader wiki for instructions.