Welcome to the tModLoader wiki!
This place serves as a center for guides related to tModLoader. These guides help to teach basic concepts regarding tModLoader modding and should prove as a useful resource to modders. Please feel free to contribute guides for topics not yet covered, but please refrain from editing well established guides without consulting the developers first.
Note that the automatically generated documentation will be ahead of the current released version. There is no guarantee that everything here will be present in the current released version.
You can navigate through the pages through the links in one of the sidebars on the right.
A list of useful resources can be found here.
Below is a structured list of wiki pages that you can use to learn more about the API.
If you wish to contribute, please view our contribution guide beforehand.
These pages tend to describe certain files or folders.
- Information about build.txt
- Information about description.txt
- The tModLoader development pipeline (Learn about how tModLoader is built)
- Contribute translations to mods or tML
- Information about the Mod browser (How to use it and how to publish your mod)
- Licensing information (Among other things: how to license your mod, about tML's license)
- Basic tModLoader Usage Guide -- Learn the basics of using tML
- Basic tModLoader Usage FAQ
- Basic tModLoader Modding Starter Guide - Start here if you want to make a mod.
- Basic tModLoader Modding FAQ
- Running a modded server -- Learn how to setup a modded server
- Debugging Multiplayer Usage Issues
These pages aim to aid you to learn how to develop mods properly, how to setup your developing environment etc.
- Developing with Visual Studio -- Recommended
- Developing with Visual Studio Code -- Takes less space, ~200 MB. Can't debug.
- Developing with Rider
- Developing with Notepad++
- Developing on Mac or Linux
- Why Use an IDE
- Update Migration Guide -- Contains info on code updates required for updating mods to new tModLoader releases.
These guides are easy and should be used if you are new to the API. Their goal is to get you familiar with tML and help you learn certain classes.
- Basic Guide Prerequisites
- Basic ModItem
- Basic ModProjectile
- About NPC Spawning
- About NPC Drops and Loot
- Autoloading guide
- ModRecipe guide
- Making a basic ammo
- Sounds guide
- ModDust guide
- ModTile guide
- Basic JSON & ModConfigs
- Basic Logging
- Basic Glowmasks
- Time and Timers
The following guides are more advanced than the easy ones, but not advanced or expert level.
- Intermediate Guide Prerequisites
- Saving and loading using TagCompound
- Intermediate Recipes: RecipeGroups, RecipeFinder/RecipeEditor
- Multiplayer Compatibility: ModPacket
- Modding with C#6
- Modding with C#7
- Git & mod management
The following guides are considered advanced, and should only be attempted if the intermediate level is mastered.
- Advanced Guide Prerequisites
- Vanilla Code Adaption
- Angular velocity and Linear velocity
- Advanced guide to custom UI
Expert-level guides are not necessarily harder than advanced guides, but they more often cover a particular (difficult) subject. Expert guides should be followed if you are interested in learning about complicated topics or improving your mod's quality.
- Expert Guide Prerequisites
- Cross Mod Content -- Call, weakReferences, modReferences, recipes
- IL Editing -- Patching the game using MonoMod
- Vanilla Ammo IDs
- Vanilla Buff IDs
- Item Class Documentation
- Vanilla Item Field Values
- Vanilla Item IDs
- NPC Class Documentation
- Vanilla NPC Field Values
- Vanilla NPC IDs
- BannerToNPC Conversions
- Projectile Class Documentation
- Vanilla Projectile AIs
- Vanilla Projectile IDs
- Vanilla Projectile Field Values
- Vanilla Recipes
- Vanilla Sound IDs
- Vanilla Tile IDs
- Tile Class Documentation
- Vanilla Wall IDs
- Vanilla World Generation Steps
- Useful Vanilla Fields
- Useful Vanilla Methods
- Vanilla Interface layers values
- Vanilla Interface Changes
These are pages that we have so far failed to categorize or simply do not belong in one.