1. tModLoader
  2. News

tModLoader News

The 1.4.4 Update is Now Live

The 1.4.4 Update Is Now Live on Steam.
Thank you for your patience.

As a reminder, if mods you were using on 1.4.3 haven't updated yet, you can switch back to 1.4.3 in the meantime by using the beta branches feature to switch to the 1.4.3-legacy branch.

New Changes' Highlights


The following is a list of the most noteworthy pull requests and commits that have been pushed since 2022th October, and are now available on the default/stable branch.

[h3]Major Localization Changes by jopojelly[/h3]
• Translations are now fully in localization files (.hjson files). DisplayName and Tooltip, for example, can no longer be assigned in code.
• Localization files are automatically updated with entries for new content and managed by tModLoader. More organization options available.
• All ModTranslation usages are now replaced with LocalizedText
• All translation keys now follow a more predictable pattern: Mods.ModName.Category.ContentName.DataName
• Contributing translations, directly or through translation mods, streamlined.

Porting Notes: #preview-update-log in Discord
[h3]Change HookGen Namespace Style by Chicken Bones[/h3]
• Hookgen namespaces (IL. and On.) have been removed in favor of On_ and IL_ prepended to the type name.
• No longer will you get 3 different namespace suggestions when you use VS to import a Terraria type name.
• Want On Item hooks? Just use On_Item it's in the same namespace as Item!

Porting Notes: #preview-update-log in Discord
[h3]Declarative Shops by BasicallyIAmFox[/h3]
• NPC shops are now declarative, meaning they get registered, and items can be added to them with conditions, similarly to NPC drops (loot) and recipes
• Adding items to shops, or hiding items from shops is now as easy as adding or disabling recipes
• Info mods can traverse the NPCShopDatabase to show how to obtain an item. All the conditions for items appearing in shops have been localized.
• Registering multiple shops per NPC is perfectly fine, and selecting the shop to be opened when chatting can now be done via the ref string shop parameter in OnChatButtonClicked

Porting Notes: #preview-update-log in Discord
[h3]Max Health and Mana Manipulation API by absoluteAquarian[/h3]
• Adds ModPlayer.ModifyMaxStats with StatModifier arguments for permanent adjustments to max health/mana.
• Adds Player.ConsumedLifeCrystals, ConsumedLifeFruit and ConsumedManaCrystals properties.
• Add helper methods Player.UseHealthMaxIncreasingItem and Player.UseManaMaxIncreasingItem for the visual effects.
• Adds ModResourceDisplaySet allowing for custom life/mana draw styles (similar to boss bar styles) that can be selected in settings.
• Adds ModResourceOverlay to allow for drawing custom hearts/mana/effects over the vanilla (or modded) life/mana UI elements.

Porting Notes: #preview-update-log in Discord
[h3]ModHair API by steviegt6[/h3]
• Adds the ability to add new hairstyles, with unlock conditions.
[h3]Update MonoMod to new Re-organized implementation by Chicken-Bones[/h3]
• Updates to MonoMod involve the removal of old APIs, and better performance and stability moving forward.
NativeDetour and Detour are gone, there was little need for modders to use these anyway.

Porting Notes: #preview-update-log in Discord
[h3]Player/NPC damage hooks rework. Hit/HurtModifiers and Hit/HurtInfo by Chicken Bones[/h3]
Player and NPC hit hooks (OnHit, ModifyHit, OnHitBy, etc) have been simplified with common architecture, and had many new features added.

Porting Notes: #preview-update-log in Discord
[h3]OnStack Hook by andro951[/h3]
• Adds ModItem/GlobalItem.OnStack and SplitStack to enable modded data such as experience counters, durability, etc to work with stackable items.
• Crafting now creates the recipe item(s) first, and then combines them using OnStack. This means that in OnCreate,
RecipeCreationContext.DestinationStack has been added so you can make sure that the crafted result is stackable with the mouse item (if any)

Porting Notes: #preview-update-log in Discord
[h3]Mod config auto localization by jopojelly[/h3]
ModConfig can now be localized by default.
• Localization for ModConfig entries are now done fully in .hjson files.
• .hjson files are automatically populated with entries.
• New LabelArgs and TooltipArgs attributes allow for cleaner code and better code/localization reuse.
• [Label] and [Tooltip] obsolete, [Header] changed. See porting notes.

Porting Notes: #preview-update-log in Discord
[h3]Make IEntitySource easier to use. Improve docs. Fix some projectile crit and armor pen bugs by Chicken-Bones[/h3]
• All entity sources have been reviewed. Most are unchanged, but some have been removed, some added, or split.
• Many sources now extend EntitySource_Parent which is the most useful source. If in doubt, use GetSource_FromThis() when spawning a projectile.
CritChance and ArmorPenetration now transfer from parent to child projectiles, and from players to player spawned projectiles.
Projectile.ContinuouslyUpdateDamage is now ContinuouslyUpdateDamageStats and also updates CritChance and ArmorPenetration (no, minions still cannot crit, even though they have CritChance)

Porting Notes: #preview-update-log in Discord
[h3]Allow keybind text to use translated text by Cyrillya[/h3]
• Modded keybinds are now localizable
• The name passed into KeybindLoader.RegisterKeybind is used in the key: "Mods.{ModName}.Keybind.{KeybindName}"

Porting Notes: #preview-update-log in Discord
[h3]Item.NewItem overloads that takes Item by jopojelly[/h3]
• Added new Item.NewItem overloads that take an Item instance and clones it, allowing spawning a clone of an item.
• Fixes several cases where modded data was lost or broken (mediumcore death, items dropping from Tile Entities)
Player.QuickSpawnItem (and similar) overloads with the Item parameter now use the item cloning by default. Player.QuickSpawnClonedItem is now marked as obsolete.

Porting Notes: #preview-update-log in Discord
[h3]Fix Quick Heal and Quick Mana consuming non-consummables by Cyrillya[/h3]
• Adds item.Consummable as a check in Quick Heal and Quick Mana
• Is a simpler solution then overriding ConsumeItem(

Porting Notes: #preview-update-log in Discord
[h3]Add ModSystem.ClearWorld by Chicken-Bones[/h3]
• Adds ModSystem.ClearWorld which runs on world clear. The new best place to clear/initialize world related data structures.

Porting Notes: #preview-update-log in Discord
[h3]IL Editing QoL Stuff and IL Editing GenPasses by Destructor-Ben[/h3]
• Adds some helper methods and an exception for easier IL editing and error handling.
• Adds WorldGen.ModifyPass and WorldGen.DetourPass to allow easily IL hooking legacy world gen passes
• It is recommended for modders to wrap their IL hooks in a try-catch, and call either MonoModHooks.DumpIL or throw new ILPatchFailureException so that a user can provide the IL log file for diagnosis when hooks fail.

Porting Notes: #preview-update-log in Discord
[h3]Unify Localized Conditions by Chicken Bones[/h3]
Terraria.Recipe.Condition has been moved to Terraria.Condition and can now be applied to more things. Recipes, item variants, drops and soon shops
• Added SimpleItemDropRuleCondition class to help make drop conditions more easily.

Porting Notes: #preview-update-log in Discord
[h3]GetItemDrops hook and redesigns to support Block Swap feature by jopojelly[/h3]
• Tiles and walls now automatically drop the items that place it. This process supports tiles with multiple styles.
• Block Swap feature now supports modded torches, chests, and drawers.
• Other miscellaneous fixes.

Porting Notes: #preview-update-log in Discord
[h3]Default Research Unlock Value changed to 1 by jopojelly[/h3]
• All items will now default to needing 1 item to research.
• The previous value of 0 left items unresearchable since many modders don't bother to implement journey mode features
• Modders can clean up their code. ModItems with Item.ResearchUnlockCount = 1; lines can be deleted.

Porting Notes: #preview-update-log in Discord
[h3]Mod/GlobalNPC.CanBeHitByNPC hooks by Ishigh1[/h3]
• New hooks, mirroring CanHitNPC but called on the victim's ModNPC and GlobalNPC
[h3]BuyItem and PreReforge split into more granular methods, etc by jopojelly and Jadams505[/h3]
Player.BuyItem split into BuyItem, CanAfford, and PayCurrency methods
Player.CanBuyItem removed
CustomCurrencyManager.BuyItem split in the same manner.
Mod/GlobalItem.PreReforge is now split into PreReforge and CanReforge. PreReforge no longer returns bool, CanReforge handles that purpose.

Porting Notes: #preview-update-log in Discord
[h3]AmmoID.Sets.IsRocket changed to IsSpecialist, Player.rocketDamage changed to Player.specialistDamage by jopojelly[/h3]
• Renames Player.rocketDamage to Player.specialistDamage, in line with 1.4.4 changes to Shroomite Helmet that changed "bonus rocket damage" to "bonus specialist ranged damage".
• Renames AmmoID.Sets.IsRocket to AmmoID.Sets.IsSpecialist and adds ammo entries matching Terraria for the same reason.
• Adds ItemID.Sets.IsRangedSpecialistWeapon to cover specialist weapons that don't use ammo.

Porting Notes: #preview-update-log in Discord
[h3]ModPrefix.GetTooltipLines by jopojelly[/h3]
ModPrefix.GetTooltipLines added to allow adding tooltips directly from ModPrefix class. Better code cohesion.

Porting Notes: #preview-update-log in Discord
[h3]ModTile.RegisterItemDrop to add fallback and manual type+style item drops by jopojelly[/h3]
• Reworks automatic tile drops introduced in https://github.com/tModLoader/tModLoader/pull/3210
ModBlockType.ItemDrop removed.
TileLoader.GetItemDropFromTypeAndStyle no longer falls back to tile style 0. A special fallback will be used if the style is not found.
ModTile.RegisterItemDrop added. Allows manually registering an item drop for a tile style, or as a fallback item. Used to provide drops for styles that don't have a corresponding item that places it.
ModWall.RegisterItemDrop added. Allows manual registration of wall drop, useful for unsafe walls that drop safe walls.

Porting Notes: #preview-update-log in Discord
[h3]Remove ILoadable from IModType by Chicken-Bones[/h3]
IModType is no longer ILoadable, ModType is unchanged
• As a reminder, IModType exists only to support classes that can't extend from ModType. In tML the only instance of this is ModTileEntity which much extend from TileEntity, there is little reason for modders to extend from it instead of ModType.

Porting Notes: #preview-update-log in Discord
[h3]Automatically register TownNPCMood localizations by jopojelly[/h3]
• TownNPCMood localization entries will automatically populate .hjson for town npc. Only used keys will be populated.
• TownNPCDialogueName localization entries will automatically populate .hjson for biomes.
NPCID.Sets.NoTownNPCHappiness added for town npc that don't use happiness.

Porting Notes: #preview-update-log in Discord
[h3]Various NPC Gravity Changes by Kogsey[/h3]
• Allows modders to affect NPC gravity and maxFallSpeed without interfering with other mods by multiplying NPC.GravityMultiplier and NPC.MaxFallSpeedMultiplier
• Adds GravityIgnoresType, GravityIgnoresLiquid and GravityIgnoresSpace properties to NPC to disable the respective vanilla gravity calculations.

Porting Notes: #preview-update-log in Discord


Performance Improvements


[h3]Improve Player.clientClone performance by Chicken Bones & Mirsario[/h3]
Item.Clone can become very performance expensive with many mods. Only type, stack and prefix are required to tell if an item has changed in the inventory and needs to be re-synced.

This PR replaces usages of Item.Clone in Player.clientClone with Item.CopyNetStateTo
Additionally, a single Player (and ModPlayer) instance is reused for all clientClone/CopyClientStateTo calls, acting as a 'storage copy' rather than making a new one each frame.

Please note that tModPorter is not smart enough to identify Item.Clone usages in ModPlayer.CopyClientStateTo calls automatically. You will need to replace these yourself or an exception will be thrown at runtime.

Porting Notes: #preview-update-log in Discord
[h3]Significantly Improve GlobalType Performance by Chicken Bones[/h3]
• More performance, more modularity. No need to fear having hundreds of globals per mod. The new system should do better at optimizing performance than a modder can with 'uber globals' because it will skip even iterating past a global which doesn't apply to the target entity type.
AppliesToEntity is not called during the game anymore! Instead, whether a global applies to an Item/Projectile/NPC type is computed and cached at the end of PostSetupContent
• This is a minimally breaking change, but reading the PR description is strongly recommended, especially for advanced modders.

Porting Notes: #preview-update-log in Discord


Localization


Brazilian Portuguese - Updated thanks to Pixelnando.
Chinese - Updated thanks to lyc-Lacewing and sgkoishi.
Russian - Updated thanks to RazzSG, Blueberryy, and Ved-s.

Bug Fixes


[h3]Torch fixes (Smart cursor, Biome torch/campfire) by jopojelly[/h3]
• Biome Torch/Campfire (Torch Gods Favor) support has been added. ModBiome can now dictate the appropriate item to auto swap.
• Various torch issues have been fixed: Smart cursor, underwater placement, duplication menu category
• Block Swap feature now supports modded Campfire tiles.
ExampleWaterTorch added. ExampleCampfire added.

Porting Notes: #preview-update-log in Discord
[h3]UI Fixes by Destructor-Ben[/h3]
UICommon.WithFadedMouseOver now supports border color toggling.

Porting Notes: #preview-update-log in Discord
[h3]Fix ModWaterStyle.SlopeTexture not being used by jopojelly[/h3]
• If you are using ModWaterStyle, make sure you have a _Slope.png file. If you didn't, your mod won't load and will need to be updated.
• The Slope texture was added in 1.4.4 Terraria and helps draw water correctly around sloped tiles. See https://github.com/tModLoader/tModLoader/blob/1.4.4/ExampleMod/Content/Biomes/ExampleWaterStyle_Slope.png for an example. You can also look at the Images/LiquidSlope_# files from vanilla.
Rijam - More Conditions mtkloepf - Updated some documentation PaulHause - [1.4.4] WIP: Reworked Biome Block Counting for Vanilla Biomes stormytuna - Changes ModifyBuffTip hook into ModifyBuffText hook (#3307) noctisatrae - Improving the documentation (Recipe.Create) ScalarVector1 - Change legacy version message ExterminatorX99 - Run HookGen ExterminatorX99 - Mod/GlobalWall.WallFrame hook Ouroel - Wrap many ModPlayer hooks in exception suppressors to prevent cascading failures Exiled1 - Added a currency system accessor DarioDaF - Hotfix enumeration stopped error (Task edit UI) and icon disappearing Setnour6 - Add NearShimmer recipe condition Setnour6 - [1.4.4] Add new secret seed conditions for ItemDropRules Antirhinnum - A Little* Bit of Documentation turtletowerz - dedicated server management rewrite BasicallyIAmFox - UseImageX method overloads BasicallyIAmFox - [1.4.4] Add ItemID.Sets.OreDropsFromSlime MutantWafflez - New 1.4.4 Info Accessory Hooks MutantWafflez - Modded Loadout IO MutantWafflez - Completed Several Tasks From PortingNotes_1.4.4.9.md absoluteAquarian - More Reliable Stack Trace File Path Trimming absoluteAquarian - OnStack API Documentation Improvements Kogsey - Fixes setting npcCatchable true forcing NPC.friendly to falce Kogsey - Shimmer Recipe.Condition support + internalisation/removal of vanilla corruption/crimson versions Cyrillya - ModPlayer.AddMaterialsForCrafting Method Cyrillya - Call ItemLoader.UseItem for food quick buff Destructor-Ben - Better Mod Development Menu Destructor-Ben - More UI Fixes Destructor-Ben - IL Editing GenPasses Destructor-Ben - IL Editing QoL Stuff Jadams505 - Modded chest lock support direwolf420 - add DamageClassLoader.GetDamageClass direwolf420 - Add ItemID.Sets.CoinLuckValue direwolf420 - ModTypeLookup.RegisterLegacyNames method direwolf420 - InfoDisplay text coloring support direwolf420 - GrappleCanLatchOnTo hook direwolf420 - [1.4.4] Add TileID.Sets.AvoidedByMeteorLanding direwolf420 - [1.4.4] Add ItemID.Sets.GeodeDrops Mirsario - Patch improvements Mirsario - Code Style Update (K&R, etc.) Mirsario - Move & rename ModItem.SacrificeTotal Chicken-Bones - Improve FastParallel.For performance in CPU contended scenarios. Solxanich - Fix #881 (tModLoader not enabled for family share accounts on steam) Solxanich - Correct LogStartup order & Int.MaxValue UnloadedItem Exiled1 - Fix #3221 by adding a check to player and world names to prevent reserved keywords from being used. Cyrillya - Fix Player.Serialize bug due to extra buff slots added by mods HydroH - Fix IME compability issue turtletowerz - Fix console commands on Docker servers Destructor-Ben - UIMessageBox Fix Kogsey - Fix gravity being assigned instead of fall speed in maxFallSpeed private set. Kogsey - Fix for multiplayer modded music boxes not working with wiring Antirhinnum - Fix Character Creation Window Hair Draw Ordering Bug fkwilczek - Fixed double damage space fkwilczek - Fixed problem with detecting dotnet on linux Rijam - ItemUseStyleID.RaiseLamp Front Arm Animation Fix Rijam - Fix Town NPC Melee Swinging Source Rectangle Rijam - [1.4.4] Obsidian Armor Set Bonus Whip Speed Fix Jadams505 - [1.4.4] Health bar style options fix Jadams505 - [1.4.4] Quick stack visual fix Jadams505 - [1.4.4] Interface layer drawing fix direwolf420 - Use correct layers for First/LastVanillaLayer direwolf420 - Fix ModTree.Shake hook not working direwolf420 - Fix ProjectileLoader.ReceiveExtraAI not being called (consistently) direwolf420 - [ExampleMod] Fix EM not loading on servers, ExampleRecipeMaterialPlayer fixes direwolf420 - Fix pet drawing in player select screen for invalid items + ExampleMod showcase direwolf420 - Fix items falling through tiles and certain projectiles updating in non-loaded chunks in MP direwolf420 - [1.4.4] Fix DustType + CreateDust interaction direwolf420 - Fix tile framing (causing infinite UnloadedXTile loop and invisible tiles) ilcheese2 - Fix content folder path on Mac with GoG version (#3173)
[h3]ExampleMod[/h3]
Blockaroz - Example Drill Midnight417 - Example for a Custom Swing Sword RayRelax - Porting various example commands RegularPhoenix - Ported Example Javelin RegularPhoenix - Updated Example Resource Rijam - Example Swinging Energy Sword (1.4.4 Excalibur Clone) Rijam - Minor Example Mod Changes Rijam - Updated Shimmered Example NPCs and Added Gore direwolf420 - Tweaks & fixes for example resource direwolf420 - Update existing mod integrations to 1.4.4 direwolf420 - More shimmer transformations direwolf420 - Reimplement ExampleBlock.ChangeWaterfallStyle FalconO5 - ExampleYoyo port

Frequently Asked Questions


[h3]How do I switch to the 1.4.3-legacy or 1.3-legacy branches of TML?[/h3]
To switch to anoter branch in steam, just do the following: 1. Right click on tModLoader in Steam and select 'Properties...', then 'BETAS';
2. Select the branch you want in the drop-down menu on top;
3. Close the window. You don't need to enter any passwords.


Have fun!

1.4.4 Release Announcement

Hello everyone!

We are excited to announce that 1.4.4 tModLoader will be available starting August 1st as tModLoader's default experience!
After a lot of testing and changes, we are ready to release this next big version of tModLoader. We have seen significant uptake within the modding community on our 1.4.4-preview Beta, and are looking forward to a smooth transition to the next big stage.
A lot of hard work went into this, so a big thank you to everyone involved.

Likewise, although 1.4.4 is released from our end, there will still be some mods not yet released on 1.4.4. This may include some popular mods. We anticipate several of these noteworthy mods to release within the few days to follow, and ask for your patience as modders publish their work.

For more information on the Jump to 1.4.4 and all that's happening around it, you can read more in our big announcement from earlier this month: tModLoader 1.4.4 Transition Plan
Please note that 1.4.4 will NOT replace 1.4.3. 1.4.3 will continue to be available in full through Steam Beta options, just as 1.3 is today.​


Once again, we are excited to bring tModLoader to 1.4.4 age! We hope you enjoy this next era of modding, and several improvements we've made during the journey.

Sincerely,
The tModLoader Community

1.4.3-Legacy Transition Period Start

Howdy Terrarians,

In Case You Missed It, July 7th marks the start of our transition to 1.4.4.

You can read more about the transition here:
https://store.steampowered.com/news/app/1281930/view/3694688633575770202

This recent update includes several file storage changes and an in-game recommendation and for tutorial for hopping to one of our two beta options to match your preference.
We recommend doing so ahead of us swapping out the default to 1.4.4 to avoid interruption:
  1. 1.4.3-Legacy
  2. 1.4.4-Preview

Have fun, and stay classy!

tModLoader 1.4.4 Transition Plan

Hello Terrarians!

As the tModLoader community reaches closer to offering tModLoader 1.4.4 as the default, we'd like to take this chance to outline how this is all going to work.

tModLoader 1.4.4 is a big update with major code changes incompatible with existing 1.4 mods. It marks the start of a new generation of mods, just as the change from 1.3 to 1.4 did before.

For those that remember the change from 1.3 to 1.4 - it was quite a big event.
There were lots of moving parts and we've all learned a lot from the process.

We've kept 1.3 alive and running in the Steam Betas, and will be doing the exact same with 1.4.3.
More info on Steam Betas here on our GitHub

With Modders making fast progress on porting to 1.4.4, it's even more important that we talk about this early. So how's this going to work?

There will be three phases of the transition: Establishing 1.4.3-Legacy Support, Transition Period, and Transition Day

1.4.3 Legacy Support

We've established a new home for 1.4.3 modding - the Steam Beta "1.4.3-legacy" branch!
This branch will keep all 1.4.3 mods currently accessible, and will be a permanent mainstay.

Likewise, we have also added new version tags to our Workshop. You can now filter by "tModLoader version" = 1.4.4 or 1.4.3 to see which mods are available.
Mod Browser version filtering is on our roadmap as well.


Modders can continue to publish updates for 1.4.3 users by using the 1.4.3-Legacy Steam beta. This is a great time to think about stabilizing that existing release and moving to 1.4.4 permanently with tModPorter's help.

Please note we will also automatically move some save files around with an upcoming July 7 update - if you encounter any issues, please let us know immediately at our Discord

Finally, we still have a few compatibility items to sort out. Items like our Server Management scripts will need some attention to support both 1.4.3 and 1.4.4 in parallel.

Please keep an eye on our Discord for the latest progress!

Rest assured that any mods published on 1.4.3-legacy will continue to be available to 1.4.3-legacy users and are unaffected by modders publishing updates on the 1.4.4 version of tModLoader.

Transition Period

Around the second week of July, we will start migrating users over to the 1.4.3-legacy beta branch through an in-game prompt.

During this period, we recommend players who wish to remain playing on 1.4.3 to switch to the 1.4.3-legacy Beta Option. This will guarantee that you will be unaffected on Transition Day.

All your save files from 1.4.3 will be automatically and safely migrated over to a new folder during this transition period: tModLoader-1.4.3. This will ensure you always can come back to play on 1.4.3 at your leisure.

The Transition Period will last for at least the remainder of July. This period provides modders with a last chance to publish their mods on 1.4.4-preview ahead of 1.4.4 being the default offering.
As a reminder, tModLoader automatically takes care of making your mod available on stable whenever preview rolls over in to a new stable. So modders will NOT need to post any updates on Transition Day

Transition Day

We are planning to make 1.4.4 the default on August 1st, 2023, at Midnight UTC.

On July 25th, we will confirm deployment will proceed.
On July 31st, 10 pm UTC, we will begin deployment
  1. At Midnight, we will make the 1.4.4 build and upload it to Steam
  2. At 1 am UTC on August 1st, we will validate that the Steam update was pushed
  3. We will then delete the 1.4.4-preview Steam Beta Option and kick all players back to Default

Mods currently on 1.4.4-preview will automatically be available on default 1.4.4 without any action by modders or player. This should be a relatively seamless transition.

Modding communities should update their instructions to tell users that 1.4.4 is now default, and that 1.4.4-preview should be avoided for most players.

In the future, a new 'preview' beta will be used to give modders time to prepare for ongoing monthly updates to tModLoader and it will not be intended for regular players.
Please keep an eye out for a separate announcement on that return to normal Dev Cycle and how it will work in it's second iteration.

Core Summary

Wowsers that is a lot of words and a lot to take in.

At the end of the day, here's the key takeaways:
  • Players - We recommend using 1.4.3-legacy branch to keep playing 1.4.3 and be unaffected by all this. Otherwise, 1.4.4 is coming soon ːcoolstar2022ː
  • Modders - Keep porting to 1.4.4-preview. You are doing great work! ːsteamhappyː

January tModLoader Stability Update

The New Year is upon us, as well as fresh Stable TML Bug Fix Series bringing polishing and a wagon of stability improvements.
Happy New Year Terrarians!

tModLoader for Terraria v1.4.4, when?


Before we begin, we hope everyone has been having fun playing the new Terraria v1.4.4 update (Labor of Love). We know everyone is looking forward to mods having access to all of the new features.
We'd like to remind tModLoader users that updating tModLoader to the v1.4.4 codebase will take some time, so please be patient.

We are committed to getting tModLoader updated to v1.4.4 sometime soon and we can see the end coming, but we can not guarantee when that will be yet.
Much of the Terraria code has changed and we still need a bit more time test tModLoader and then give mod makers time to adapt their mods to those changes.
If you are a mod maker and are interested in the migration to 1.4.4, please participate in our Discord development channels and on GitHub.

Thank you for your patience!

Bug Fixes

For this update, we are keeping it focused to bug fixes.
Although we have new features and changes in the works, they all are primarily happening with 1.4.4. Please stay tuned for news on 1.4.4!

Freedbot: Made server manage script curl/wget agnostic (#3081) ilcheese2: Fix content folder path on Mac with GoG version (#3173) SecondFry: Fix workshop files location for Docker deploy (#3047) Cyrilla: Fix temporary items not saving modded data (#3054) Lama3L9R: Fix engine crash when failed to fetch local mod dependencies (#3023) Antirhinnum: Fix Corsair RGB (#3096) Dradonhunter11: Fixed: Patreon Items and Developer Items can now be researched (#3075) AbsoluteAquarian: Fix AssemblyManager.ForceJITOnMethod() Throwing on Interface Methods (#3175) Jadams505: More checks to stop chat (#3065) Jadams505: Fixed vines disappearing when teleporting (#3059) JavidPack: Simple approach to Fix #2959 (#3051) JavidPack: Fix typo rendering French mod browser unusable JavidPack: Fix #3010 by ensuring ContentSamples.ItemsByType have tooltips JavidPack: Fix #3018, Buff tooltips can now have chat tags. Solxanich: Trailing cleanup of start server.sh. Fixes #3137 Solxanich: Fixes #3032 - GoG mod deletion (#3171) Solxanich: Workshop Improvements Pack 3 (#3157) Solxanich: Fix Terraria OW Mod Audio (#3161) Solxanich: Vastly Speed Up Publishing Menu

Known Issues

[h3]My game doesn't launch, and I'm on Windows![/h3]
  • If you're on Windows 7 or 8.X, or an older Windows OS, installing .NET pre-requisites listed in Microsoft's website might very much help. Especially the KB3063858 update.
  • If the above doesn't apply or didn't help, try deleting the dotnet folder in the install directory, and try running TML again. There seems to be a bug with extracting needed libraries on some Windows devices, where it may take two attempts. We are actively investigating improvements to remedy this.


Frequently Asked Questions


[h3]How do I switch to the 1.4-preview or 1.3-legacy branches of TML?[/h3]
To switch to anoter branch in steam, just do the following: 1. Right click on tModLoader in Steam and select 'Properties...', then 'BETAS';
2. Select the branch you want in the drop-down menu on top;
3. Close the window. You don't need to enter any passwords.
Please note: 1.4-preview versions of TML are intended to only be used by mod developers and testers who know what they're doing. Some popular mods' authors do not intend for their mods to always work with it.

[h3]When 1.4.4 tModLoader???[/h3]
See the first section of this announcement.

[h3]I have a 32-bit OS, will it be supported?[/h3]
Work is finishing up on improving our handling of native libraries, so we can add 32-bit Windows support. If everything goes well in testing, this will be pushed to the stable branch as soon as it is ready, with an announcement in our Discord.

Our Lovely Supporters

Special thanks to everyone who has supported us on Patreon in the last three months since our last big monthly update!
We know there are a lot of you, and are ever grateful for supporting this community-run modloader!

See you in February Terrarians!