Skip to content

SignatureBeef/Open-Terraria-API

Folders and files

NameName
Last commit message
Last commit date
Jan 2, 2025
Jan 4, 2025
Dec 28, 2024
Dec 31, 2024
Jan 4, 2025
Dec 28, 2024
Jan 4, 2025
Jan 2, 2025
Jan 2, 2025
Jan 2, 2025
Jan 2, 2025
Jul 13, 2020
Aug 11, 2022
May 30, 2021
May 29, 2020
Jul 12, 2020
Jun 20, 2021
Apr 20, 2024
Apr 20, 2024
Apr 20, 2024
Dec 31, 2024
Jan 2, 2025
Dec 28, 2024
Mar 27, 2022
Sep 4, 2022
Dec 28, 2024

Repository files navigation

Open Terraria API GitHub Workflow AppVeyor branch Nuget (with prereleases) License: GPL v3 Wiki

The Open Terraria API, known as OTAPI, is a low-level API for Terraria that rewrites and hooks into the official binaries for others to use.

It is primarily a server modification for the PC edition of Terraria, however v3 has seen additional support for the PC client assemblies, and the mobile windows server assembly too.

The upcoming branch is a ground up redesign and will take the place of the master branch when fully complete over in projects.

Significant changes this redesign brings are...

  • Modular script system, allowing single file patches using csharp, javascript and lua
  • A strong set of libraries with methods and extensions for use in extending or contributing back
  • .NET9 projects for all without Terraria's dependency to net4.

The stack consists upon:

  • OTAPI Scripts, a directory containing all the scripts used to patch the pc, mobile & client assemblies.
  • OTAPI Patcher, a program to process all OTAPI Scripts and produce the final OTAPI assemblies for all variants and also supports creating the NuGet packages.
  • ModFramework, a library that extends MonoMod and provides higher level patching methods and extensions, such as remapping fields to properties and arrays to collections
  • ModFramework Modules, additional plugins to add c#, javascript and lua scripts, for both patching and runtime.
  • FNA, for use on the client variants, for a consistent codebase on all platforms. Servers use the Xna shims instead.
  • MonoMod, for applying patches and generating runtime events/hooks.

Installation

For servers all you need to do is add a NuGet reference to OTAPI. See more in the wiki topic about server usage.

For client installations, you can download the launcher from the releases section, and follow the wiki topic.

Terraria support

Server assemblies used in the patching process are freely available at Terraria's website.

If you intend to patch a client version, you must own an existing copy of Terraria and have it installed in the default path of your machine. The OTAPI Project does not host or contain the original source file so it will extract files from and patch your existing installation.

All OTAPI builds support C#/lua/js scripts via plugins, however you may need to install the additional ModFramework module plugins if you use this in another project.

Variant Status Version
Windows Server for PC Cross platform NuGet package produced. OTAPI.Upcoming 1.4.2.3
Linux Server for PC not required or supported
MacOS Server for PC not required or supported
Windows Server for Mobile Cross platform NuGet package produced. OTAPI.Upcoming.Mobile 1.4.0.5
Linux Server for Mobile not required or supported
MacOS Server for Mobile not required or supported
Windows Client for PC Full support to install a patched OTAPI into an existing Windows install (steam confirmed), Xna is replaced with FNA and x64 enabled. 1.4.2.3
MacOS Client for PC Full support to install a patched OTAPI into an existing MacOS install (Steam/Gog confirmed) 1.4.2.3
Linux Client for PC not yet supported but planned. should be similar to MacOS
iOS Client not supported or planned
Android Client not supported or planned
tModLoader Server work has conducted in testing support for TML on Terraria 1.3, but no clear outcome until 1.4 support is released. 1.3.5.3

All packages

OTAPI.Upcoming OTAPI.Upcoming.Mobile
ModFramework
ModFramework ModFramework ModFramework


Bitcoin donations are welcomed via address 3PRfyMh1brjCqzkw9az2aT7yNjbfkwFZqo

QR