TDSM is one of several open-source server mods available for the online action-adventure game Terraria. This modification is developed to allow the Terraria server software to be run on Linux like operating systems, and opens up many other potential benefits for players using the server.
- External plugin support.
- Administrative permissions system.
- MySQL & SQLite databases.
- New & custom in-game commands.
- Remote console administration.
It’s also updated relatively quickly by the maintainers after a new Terraria client version is released.
- A Terraria game client for connection to the server after installation.
- For a small-sized world, a VPS that has at least 1GB RAM.
- For a medium-sized world, a VPS that has at least 1GB RAM.
- For a large-sized world, a VPS that has at least 2GB RAM.
1 — Update System Packages
Ensure the packages are up to date on the system with the command:
Confirm the action by entering
y for any prompts in this step.
2 — Install Screen
The screen will be used to keep the TDSM server running in a persistent shell session, and allows us to disconnect or re-attach to the session when needed.
Install Screen with the command:
3 — Install Mono
Mono is the open-source implementation of Microsoft’s .NET Framework, and we need it to successfully run and start the TDSM server later on.
Install Mono and all its packages with the command:
4 — Install Unzip
The server software comes packaged in a
.zip file. So install the unzip package which we’ll use in the next step, to extract the files.
5 — Add Swap Space
The server mod requires adequate swap space to be allocated by the system. Otherwise, this can result in crashing and instability with TDSM whilst it is running.
Create the base swap file:
Give it the correct permissions it needs:
Have the system build the file:
Then enable it with the
To automate the mounting of the swap file on boot we need to include its details into the
Insert this top-line show in the next code snippet into the file.
6 — Download the TDSM Server Software
The TDSM server software that we’ll download in this step will be stored and run from your user’s home directory.
Make sure this is your current working directory by entering:
As of writing this tutorial the current TDSM server build release is number:
For newer versions than the current
005 release, and to download the most up to date version.
You’ll need to change the URL passed to
wget in the next code snippet.
The TDSM server releases and their file URL’s can be found on the project’s GitHub page: Here.
7 — Run the Terraria Server Binary
Next, unzip the downloaded archive file and extract the contents into a new folder named
tdsm-terraria-server using the
Note: The downloaded
.zipfile name will differ for future release downloads.
Change into the unpacked
tdsm-terraria-server directory with:
Now to run the server software in it’s most basic form without any arguments or parameters, enter the following command:
Note the inclusion of Screen in the last command. This runs the Mono program and server in a separate shell session to our original one.
8 — Create a New World
The below output (or similar) is seen upon successfully running the server binary in “Step 7 — Run the Terraria Server Binary“.
n and press
ENTER to create a new world.
2 , or
3 depending upon your preference and suitability of world size.
The requirements section at the start of this article indicates what world size is suitable for your VPS.
Here it is again:
- For a small sized world, a VPS that has at least 1GB RAM.
- For a medium sized world, a VPS that has at least 1GB RAM.
- For a large sized world, a VPS that has at least 2GB RAM.
Warning: Be aware that the larger the world the more memory and CPU your server will need to consume whilst the server is up and running, so be sure to select a suitable world size.
2 , or
3 again once more depending upon your desired level of in-game difficulty.
Now give the new world a suitable name.
For example purposes, we’re calling ours
test-tdsm-server in this guide.
Wait for the new world to be generated as it outputs its progress and percentage completion.
9 — Set World Details
Once the world is created and has finished generating, choose your previously created world by entering
1 into the prompt:
Provide the world with a max number of players that can join the server at any one time. If you are unsure on a value, the default of
8 is a sensible choice.
Warning: Once again be aware that the more players the world has connected the more memory and CPU your server will need to consume whilst running.
Enter a suitable port the server can transmit on, go for the default choice of
7777 if you don’t have a specific port you want to use:
The final two questions are up to you (forwarding and password). Forwarding with
iptables is covered in this next section, however.
Wait for the server to load as it outputs its progress.
10 — iptables Firewall
Now the server is up running you’ll need to de-attach from the currently active screen session with:
iptables (or you intend to use it) as a firewall solution on the VPS, then open up the port number you chose in “ 9 — Set World Details”
To do this use:
7777 for your own chosen port number.
For any other firewall program you may use in its place perform the equivalent port forwarding/opening actions.
To now connect back to the previous screen session press:
The server itself is now ready and should be open for connections via the Terraria client.
To learn how to administer, run, and configure the server properly alongside what configuration files it uses, see the Github wiki: Click here.