Terre is a Terraria proxy which aims to bring support for multi world and cross-platform play between mobile and desktop clients. It is possible to customize the proxy to your liking by installing plugins or even develop your own.
The proxy is still is a work in progress, bugs are to be expected. There is a getting started page on the wiki and downloads are available as packages.
The following list gives an overview of each subproject in this repository.
- proxy - The actual proxy server.
- image - A docker image build containing the proxy and all the official plugins.
- standalone - Packs terre and all its dependencies into a single jar.
- test - A test environment which can be used in the IDE, which will include plugins from the repository.
- portals - A plugin that makes it possible to create portals to teleport between servers (worlds).
- characters - A plugin that allows configuration of character storages. As alternative to client side characters. WIP, is currently only used to test server side character compatibility, no data is currently saved.
- k8s-server-finder A plugin that discovers Terraria servers on a kubernetes cluster and automatically registers them.
- tshock-users A plugin that hooks into the tShock user system to provide permission support on the proxy. Also improves server side character support when sharing characters between backing servers. Requires that the tShock backing servers and this plugin are connected to the same MySQL database. The plugin only reads data from this database. WIP, can be unstable, not all login scenarios are tested.
If you are looking for some more information, or you like to help out, feel free to hop on our discord server. You will find the button at the top.
- Java 17 or newer, JDK 17 for development
- Docker Desktop when building and testing the docker images locally
The following steps will ensure the project is cloned properly.
git clone https://github.com/LanternPowered/Terre.git
cd Terre
Note: If you do not have [Gradle] installed then use ./gradlew
for Unix systems or Git Bash and
gradlew.bat
for Windows systems in place of any gradle
command.
In order to build Terre you can use the following gradle
commands.
Build the standalone jar, which can be found in ./standalone/build/libs
after running the
following command. The jar is labeled similarly to terre-standalone-x.x.x-SNAPSHOT.jar
.
gradle build
This also builds portals and the other plugins, the jar of these plugins can for example be
found in ./portals/build/libs
and are labeled similarly to terre-portals-x.x.x-SNAPSHOT.jar
.
These plugin jars can be put into the plugins directory of Terre to enable extra functionality.
Build the docker image and publish it to the local docker daemon with the
cybermaxke/terre:latest
tag. The docker images contains all the official plugins by default,
which can be disabled through the config.
gradle jibDockerBuild