# tModLoader: the modding API that turns Terraria into a platform

> tModLoader is an MIT-licensed, community-run expansion of Terraria that lets players install mods and developers write them in C#. It is a separate application from the base game, distributed on Steam, and everyone in a multiplayer session has to be running it.

**tModLoader/tModLoader** — A mod to make and play Terraria mods. Supports Terraria 1.4 (and earlier) installations 

- Repository: https://github.com/tModLoader/tModLoader
- Website: https://www.tmodloader.net/
- Stars: 5,683 · Forks: 2,177
- Language: C#
- License: MIT
- Published: 2026-09-22 · Updated: 2026-09-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/tmodloader-tmodloader

## What tModLoader adds to a Terraria install

Terraria itself has no supported way to load third-party code. tModLoader is a modification and expansion of the game that supplies that layer: it loads mod assemblies, exposes an API for content and gameplay hooks, and gives players a menu for enabling and disabling mods before a world starts. The README describes the project as open-source and community-driven, and the repository is licensed MIT, so the API and the loader are readable and forkable.

The audience splits in two. Players use it to install and play community mods, either alone or with friends. Developers use it to write mods in C#, and the repository ships ExampleMod/ as a working reference rather than leaving newcomers to reverse-engineer the API from the loader source. Contributors work on the loader itself, and the README points each of those three groups at a separate wiki guide.

One boundary is stated plainly and matters more than any feature list: all players in a session must have tModLoader installed. Vanilla players cannot join a TML session, so a modded run is a group decision, not a per-player one.

## How the loader, the patches and the branches fit together

The repository layout shows a patching architecture rather than a clean-room rewrite. FNA sits at the top level as a git submodule, patches/ and FailedPatches_1.4.2.txt hold the changes applied on top of the game, and patching_todo.txt and reworking_todo.txt track what is still in flight. setup.bat and setup-cli.bat drive the build, with setup/ holding the scripts they call. Solutions live under solutions/, and tModLoader.sln plus tModLoader.targets define the build for anyone compiling from source.

Mods are C# assemblies loaded at runtime, and tModPorter/ exists to rewrite mod source across breaking API changes, which tells you the API is not frozen. tModCodeAssist/ and tModBuildTasks/ support the authoring side.

The branch structure is the part to internalize. The default branch is 1.4.5, while the recent releases are tagged against 1.4.4-refs/heads/stable and 1.4.4-refs/heads/preview. The README warns that repository code runs ahead of the released version, so cloning the default branch gives you work in progress, not the build players are running. The last push was on 2026-09-22.

## Installing tModLoader from Steam and enabling a first mod

The README's install path is Steam, not a source build. It links the store page for tModLoader as a separate application, and the player guide linked from the README covers the rest. The repository does not document a standalone installer for the desktop release, so the Steam listing is where the README sends you.

Once installed, launch tModLoader instead of Terraria. The mod browser and enable/disable list are inside that client. A typical first run is: open the mod browser, install a mod, then enable it before loading a world, because mods are selected per session rather than injected into a running game.

If you want to build mods rather than play them, the repository includes a setup script. The README does not spell out its arguments, so treat this as the entry point rather than a complete recipe:

```bash
./setup-cli.sh
```

On Windows the equivalent batch file sits next to it:

```bash
setup.bat
```

The developer guide linked from the README is where the actual project scaffolding, build and packaging steps live. The repository does not duplicate them in README.md, so do not expect the README to walk you from an empty folder to a published mod.

## Where tModLoader is the wrong tool

Multiplayer is the first hard limit. The README states that all your friends must install TML to play together and that vanilla users cannot play with TML users. If your group will not all install a second application, mods are off the table.

Platform coverage is the second. The README's instructions cover Steam and the desktop guides; mobile is not part of the install path it describes. Search interest in a mobile build is visible in the related queries, but the README does not offer one, and the repository does not document an Android or iOS target. Anyone expecting a phone install should treat that as unconfirmed rather than planned.

The third is version drift. Because the README says repository code is ahead of the released version, building from the default branch can produce something that does not match the release players have. Mods written against a preview branch may not load on the stable client, and the presence of a porter tool and multiple porting-notes files is evidence that breakage happens between versions, not a rare event.

Finally, if you want to change Terraria without writing C# or depending on a loader, tModLoader is the wrong shape. It is an API for code, not a configuration layer over the base game.

## How tModLoader differs from patching Terraria directly

The obvious alternative is to modify the game yourself: decompile it, apply your own patches, and ship a private build. The difference is maintenance. tModLoader carries patches/, FailedPatches_1.4.2.txt and a patching_todo.txt file precisely because keeping those patches aligned with the game is ongoing work. A personal patch set means you own that work alone, with no porter tool and no porting notes to lean on.

A second alternative is to stay on vanilla Terraria and accept the content the game ships. That is a real choice, not a fallback: it keeps you on the same client as every other player and removes the requirement that friends install anything. The cost is that community content is unavailable, which is the entire reason tModLoader exists.

The third is to write against the API but pin to the stable branch rather than the default. That is less a different tool than a different posture toward the same one, and given the branch naming in the releases it is the posture most mod authors will want.

## Maintenance, upgrade cost and the MIT licence

The repository is not archived and its last push was on 2026-09-22. Releases are frequent and versioned by date, with v2026.07.3.0 tagged against the stable branch and v2026.08.2.0 and v2026.08.2.1 against preview. That cadence means a mod author who targets preview should expect to re-check the API regularly, and the porting notes files in the repository root are the record of what changed.

Upgrade cost is visible in the repository itself. MigrationGuide_1.4.5.md, PortingNotes_1.4.4.9.md and PortingNotes_1.4.5.md exist because moving a mod between versions is not automatic, and tModPorter/ is the tool the project built to reduce that cost. Budget for reading those files on each major version bump.

The licence is MIT, which is permissive and allows reuse and redistribution under its terms. Two other files sit in the root that are not the project licence: MS-EULA.rtf and TERMS_OF_USE.md. The README does not explain how those interact with the MIT grant for the loader, and nothing here should be read as legal advice. If you plan to redistribute a build or bundle mods commercially, read those files and the LICENSE together before you do.

## Conclusion

Adopt tModLoader if you want to install community Terraria mods, or if you write C# and want an API with a shipped ExampleMod and a stable branch to target. Do not adopt it if you need to play with friends on vanilla Terraria, since the README states vanilla users cannot join a TML session, or if you expect the GitHub repository to match the released build, because the README says the repository code runs ahead of the release. Before you commit to a version, open MigrationGuide_1.4.5.md, PortingNotes_1.4.4.9.md and PortingNotes_1.4.5.md in the repository root and read what changed; those files are the actual upgrade path, not the release notes.

## FAQ

### What is tModLoader used for?

It is a modification and expansion of Terraria that makes it possible to make and play mods, according to the README. Players use it to install community content, and developers use it to write mods in C#.

### Can I play tModLoader without buying Terraria?

The README does not address ownership of the base game. It describes tModLoader as a modification and expansion of Terraria and directs players to its own Steam listing, so check that listing for what it requires.

### How much does tModLoader cost?

The README states that TML is a free-to-use modification of the game and will stay that way, and that it was not created to create a profit. It also offers an optional Patreon pledge that is shared among core members who wish to receive part of it.

### Is tModLoader available on mobile?

The README's instructions cover the Steam release and link to player, developer and contributor guides. It does not describe a mobile install, and the repository does not document an Android or iOS target.

### How do I install tModLoader?

The README points to the Steam store page for tModLoader, which is a separate application from Terraria, and to a player guide on the project wiki. It does not give a standalone installer for the desktop release.

## Sources

- [License: MIT](https://github.com/tModLoader/tModLoader/blob/1.4.5/LICENSE)
- [Project website](https://www.tmodloader.net/)
- [README](https://github.com/tModLoader/tModLoader/blob/1.4.5/README.md)
- [Releases](https://github.com/tModLoader/tModLoader/releases)
- [tModLoader/tModLoader on GitHub](https://github.com/tModLoader/tModLoader)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/tmodloader-tmodloader
