A modern desktop mod menu platform for Terraria Vanilla and tModLoader. Control official runtime modules, apply IL-level game modifications, manage external plugins, and fine-tune your setup from a single Windows/Linux interface.
| Feature | Windows | Linux | macOS |
|---|---|---|---|
| App runs | Yes | Yes | Not validated |
| Terraria Vanilla Mod Menu | Yes | Yes | Not validated |
| tModLoader Mod Menu | Yes | Yes | Not validated |
| Plugin system | Yes | Yes | Not validated |
| Mod Menu JSON editor | Yes | Yes | Not validated |
| Auto-updates | Yes | Yes | Not validated |
macOS status — macOS has not been validated yet. The app may install or open there, but patching and runtime behavior may not work properly until tested on real macOS Terraria installs.
The installer adds the complete Mod Menu runtime to Terraria Vanilla or tModLoader through a fixed set of IL integration hooks. A backup is created before installation, and modules are enabled, disabled, and configured dynamically from the in-game menu without repatching.
| Category | Available Patches |
|---|---|
| Quality of Life | Display Clock, Functional Social Slots, Max Crafting Range, Pylons Everywhere, Remove Angler Daily Limit |
| Combat & Debuffs | Remove Rod of Discord Debuff, Remove Potion Sickness, Remove Mana Costs, Remove Drowning Damage |
| Overpowered / Cheats | One Hit Kill, Infinite Ammo, Infinite Wings, Infinite Cloud Jumps |
| Persistent Buffs | Permanently activate any in-game buff |
| Healing Rates | Tune Vampire Knives & Spectre Armor life steal percentages |
| Spawn Tweaks | Adjust Voodoo Demon spawn rate |
| Loot & Bags | Force Treasure Bags to always drop every possible item |
- Optional compiled runtime extensions can be loaded from the Mod Menu's
ExternalPluginsdirectory - External plugins are disabled by default and controlled by the runtime configuration
- Vanilla and tModLoader use separate runtime directories and configuration files
- Set and validate your Terraria executable path
- Language selector with search (English / Português Brasileiro)
- Automatic language detection on first launch
- Built-in update checker with background download support (via
electron-updater) - Self-contained patching bridge; no system .NET installation is required
| Layer | Technology |
|---|---|
| Desktop runtime | Electron |
| UI framework | React 19 + TypeScript |
| Build tooling | electron-vite + Vite |
| Styling | Tailwind CSS v4 + shadcn/ui |
| Routing | react-router-dom |
| i18n | react-i18next |
| Settings persistence | electron-store |
| Auto-updates | electron-updater |
| Patching bridge | .NET 10 C# subprocess (stdin/stdout JSON-RPC) |
| IL manipulation | Mono.Cecil |
React UI (renderer process)
└─ window.api.* — IPC exposed via preload
└─ Electron main process (src/main/index.ts)
└─ C# bridge subprocess — JSON over stdin/stdout
└─ Mono.Cecil → patches Terraria.exe on disk
The C# bridge is a self-contained .NET 10 binary bundled with the app. The main process spawns it on demand, sends JSON commands, and reads JSON responses — no native Node addons required.
| Requirement | Version | Notes |
|---|---|---|
| Node.js | ≥ 18 | |
| pnpm | ≥ 8 | npm install -g pnpm |
| .NET 10 Runtime | ≥ 10.0 | Required for patching. Download |
| .NET 10 SDK | ≥ 10.0 | Only needed if you want to build the C# bridge from source |
git clone https://github.com/loadsec/Terraria-Mod-Menu-PC.git
cd Terraria-Patcher
pnpm installpnpm devOn Linux, if you encounter sandbox issues inside a VM or container, use:
pnpm dev -- --no-sandbox
pnpm build # Current platform
pnpm build:win # Windows — NSIS installer
pnpm build:linux # Linux — AppImage
pnpm build:mac # macOS — DMG (not validated; patching may not work properly)The patching logic lives in src/main/bridge/ and compiles to a self-contained binary placed in resources/patcher-bridge/.
Prebuilt binaries are included in the repository so you can run the app without compiling the bridge yourself. Only rebuild if you change the C# source.
# Rebuild the bridge for the current platform
pnpm build:bridge
# Or manually:
cd src/main/bridge
dotnet build -c ReleaseTerraria-Patcher/
├── src/
│ ├── main/ # Electron main process + all IPC handlers
│ │ └── bridge/ # C# patching bridge (.NET 10, Mono.Cecil)
│ ├── mod-menu-runtime/ # Terraria Vanilla in-game runtime
│ ├── tmodloader-mod-menu-runtime/ # tModLoader in-game runtime
│ ├── preload/ # Context bridge (window.api)
│ └── renderer/src/
│ ├── pages/ # App pages
│ ├── components/ # Shared UI components
│ ├── locales/ # i18n files (en, pt-BR)
│ └── i18n.ts
├── resources/
│ ├── patcher-bridge/ # Prebuilt C# bridge binaries (win/linux/mac)
│ ├── mod-menu-runtime/ # Built Vanilla runtime assets
│ └── tmodloader-mod-menu-runtime/ # Built tModLoader runtime assets
└── version.json # App version + Terraria target + release manifest
This project is heavily inspired by the original Terraria Patcher by Doug Benham — the developer who first demonstrated how to apply IL patches to Terraria on Windows using Mono.Cecil. His work laid the entire foundation this tool builds upon.
Our goal is to extend that foundation with a modern Windows/Linux interface, separate runtimes for Terraria Vanilla and tModLoader, and an open, community-driven approach to Terraria modding.
Pull requests are welcome. For major changes, please open an issue first to discuss what you'd like to change.
If you have access to a macOS machine with Terraria installed and want to validate macOS behavior, please open an issue — that contribution would be very welcome.
Released under the MIT License.

