1. tModLoader
  2. News
  3. October 2023 Stable Update

October 2023 Stable Update

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 ported

Localization
RazzSG and Blueberryy - Russian
Pixelnando - - Brazilian Portuguese
Solxan - Support localizing Steam workshop and Store pages

We 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.