Skip to content

loadsec/Terraria-Patcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

144 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ”ง Terraria Patcher

A modern, cross-platform desktop application for patching and customizing your Terraria installation.
Apply quality-of-life improvements, manage community plugins, and fine-tune game settings โ€” all through a clean and intuitive UI.


Platform Electron React TypeScript License: MIT


โœจ Features

๐ŸŽฎ Game Modifications

Apply standalone patches directly to the Terraria executable:

Category Patches Available
๐ŸŒŸ Quality of Life Display Time, Functional Social Slots, Max Crafting Range, Pylon Everywhere, Remove Angler Daily Limit
โš”๏ธ Combat & Debuffs Remove Rod of Discord Debuff, Remove Potion Sickness, Remove Mana Costs, Remove Drowning
๐Ÿƒ Overpowered / Cheats One Hit Kill, Infinite Ammo, Infinite Wings, Infinite Cloud Jumps
โœจ Persistent Buffs Permanently activate any buff for your character
๐Ÿ’Š Healing Rates Tune Vampire Knives & Spectre Armor life steal percentages
๐Ÿ‘พ Spawning Tweaks Adjust Voodoo Demon spawn rate
๐ŸŽ Loot & Bags Force Treasure Bags to always drop every possible item

๐Ÿ”Œ Plugin System

  • Browse and manage community plugins in a dedicated tab
  • Enable or disable each plugin individually
  • Auto-sync support โ€” apply plugin changes automatically

โš™๏ธ Configuration

  • Set your Terraria executable path
  • Enable third-party plugin loading from \Plugins\*.cs
  • Language selector with search support
  • Auto-save settings on change

๐ŸŒ Internationalization

  • ๐Ÿ‡บ๐Ÿ‡ธ English
  • ๐Ÿ‡ง๐Ÿ‡ท Portuguรชs Brasileiro

๐Ÿ–ฅ๏ธ Tech Stack

Technology Usage
Electron Desktop application framework
React 19 UI library
TypeScript Type safety across the entire codebase
electron-vite + Vite Fast build tooling & HMR
Tailwind CSS v4 Utility-first styling
shadcn/ui Component system built on Radix UI
react-i18next Internationalization
react-router-dom Client-side routing
lucide-react Icon library

๐Ÿš€ Getting Started

Prerequisites (General)

Linux (Ubuntu/Debian): End Users vs Contributors

End Users (install app and patch only)

  • No compiler toolchain is required just to use the app and apply patches.
  • Install the .NET 10 Runtime if the app reports that patching features are unavailable.
  • On Linux FNA builds, plugin .cs compilation at game runtime requires mono-devel (only if you use the plugin system with source plugins).

Contributors / Development (running from source)

On Linux, electron-edge-js is compiled during install (node-gyp), so you need a native build toolchain available.

Install the required system packages before running pnpm install / npm install:

sudo apt-get update
sudo apt-get install -y build-essential python3 pkg-config

If you see an error like Error: not found: make, it usually means build-essential is missing.

Install Mono compiler tools if you want to test FNA plugin .cs runtime compilation locally:

sudo apt-get install -y mono-devel

If you are running Electron in a VM (or hit Linux sandbox issues during development), use:

pnpm dev -- --no-sandbox

.NET Runtime / SDK (Cross-Platform)

The C# bridge used by patching features now targets .NET 10 (net10.0) for cross-platform support.

  • End users: install the .NET 10 Runtime (or SDK) if patching features report a missing .NET runtime
  • Contributors: install the .NET 10 SDK to build/modify the C# bridge

Official downloads:

Installation

git clone https://github.com/your-username/terraria-patcher.git
cd terraria-patcher
pnpm install

Development

pnpm dev

C# Bridge (Contributor Notes)

This project uses a C# patching bridge (edge-js + Mono.Cecil) located in src/main/bridge.

  • The C# source code is the canonical implementation for patching logic.
  • Prebuilt bridge binaries may be kept in the repository for convenience, so the app can run without requiring every contributor to build the bridge first.
  • If you change any file inside src/main/bridge (.cs / .csproj), rebuild the bridge before testing:
cd src/main/bridge
dotnet build -c Release
  • The Electron main process loads the compiled bridge from:
    • src/main/bridge/bin/Release/TerrariaPatcherBridge.dll
  • The bridge runtime files generated by dotnet build are also required:
    • src/main/bridge/bin/Release/TerrariaPatcherBridge.runtimeconfig.json
    • src/main/bridge/bin/Release/TerrariaPatcherBridge.deps.json

FNA Plugin Loader (Linux/macOS Terraria)

The FNA plugin loader (resources/plugins/PluginLoader.FNA.dll) should be built as a Mono-compatible assembly (for the Terraria/FNA runtime).

Set FNA_LIB_DIR to the Terraria FNA managed files folder (must contain FNA.dll and Terraria.dll or Terraria.exe), then build:

export FNA_LIB_DIR="/path/to/Terraria"
pnpm run build:plugin-loader-fna

This copies the compiled loader to:

  • resources/plugins/PluginLoader.FNA.dll

Runtime note (for plugin .cs compilation in FNA builds):

  • Install Mono compiler tools (mcs), e.g. mono-devel / mono-complete
  • build:plugin-loader-fna uses msbuild (Mono/VS Build Tools) to keep the output compatible with Terraria's runtime

Build

pnpm build           # Current platform
pnpm build:win       # Windows (.exe)
pnpm build:mac       # macOS (.dmg)
pnpm build:linux     # Linux (.AppImage)

๐Ÿ“ Project Structure

terraria-patcher/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main/               # Electron main process
โ”‚   โ”œโ”€โ”€ preload/            # Electron preload scripts
โ”‚   โ””โ”€โ”€ renderer/           # React frontend
โ”‚       โ””โ”€โ”€ src/
โ”‚           โ”œโ”€โ”€ components/ # Shared UI components
โ”‚           โ”œโ”€โ”€ pages/      # App pages (Patcher, Config, About...)
โ”‚           โ”œโ”€โ”€ locales/    # i18n translation files (en, pt-BR)
โ”‚           โ””โ”€โ”€ i18n.ts     # i18n configuration
โ”œโ”€โ”€ build/                  # Electron Builder resources
โ””โ”€โ”€ resources/              # App icons and static assets

๐Ÿ™ Credits

This project is heavily inspired by the original Terraria Patcher created by Doug Benham โ€” an incredible developer who laid the foundation for IL-based Terraria patching on Windows.

Our goal is to build on that foundation with a modern UI and native cross-platform support.

โš ๏ธ Note: The app supports patching on Windows and Linux. macOS support remains a cross-platform target, but may still require additional validation depending on the Terraria distribution/runtime setup.


๐Ÿ“„ License

Released under the MIT License.


Made with โค๏ธ for the Terraria community

About

Open-source Terraria desktop patcher with IL patching, plugin support, Plugins.ini editor, and built-in updates.

Topics

Resources

License

Stars

Watchers

Forks

Contributors