Guide:Setting up a Terraria server

This page is intended to guide you through configuring and running your own Terraria multiplayer server for LAN or Internet play. As of 1.3, players also have the option to connect via Steam multiplayer.

= On Windows = There are two methods of server connections, both of which can be used simultaneously on a single server.

Via Global IP:

 * To find your Global IP, you can use a website made for checking your IP, such as WIMI (What Is My IP).
 * You will have to port forward (port 7777 by default) for Terraria. (port forward guide).

Via LAN:
Click the start button, then click on your search bar (or the "run" button, if you are using Windows XP) and enter 'cmd'. This will display a command window. Then enter 'ipconfig'. At the top of the resulting information page, under 'Ethernet Adapter Local Area Connection' or 'Wireless LAN adapter Wireless Network Connection 2', find 'IPv4 Address', which is your computer's IP address on your local network. This window also shows other information including default gateway and MAC address. You will need the default gateway to configure your router in a browser.

Setting up a server
First, decide whether you want to start a "Host & Play" multiplayer game, or a dedicated server game. See multiplayer for an explanation of the differences.

Setting up a "Host & Play" server
This is the simplest way of playing multiplayer, and works well for in-home LAN or short online co-op games. Start Terraria, and in the main menu, choose "Multiplayer" then "Host&Play". Select a world to play in (or create a new one) then enter a password (or leave blank if you would prefer no password).

Setting up dedicated server without configuration file
First, try setting up a server without a configuration file. To do this, search for the folder Terraria is installed in, find "TerrariaServer.exe", then run it. A terminal window will open, the server control interface, where you can enter commands or view information. When it starts, it should ask you to choose a world, listing the worlds currently available on your computer. The window also gives the option to create or delete worlds at startup. When making a new world, follow the instructions in the terminal to change certain aspects of the world generation. Note: By default, Terraria saves all worlds into "C:\Users\UserName\Documents\MyGames\Terraria\Worlds".

From the Host Computer
In the Terraria game, go to Multiplayer->Join via IP->Select your character->Type in "localhost" or "127.0.0.1".

Over the Network
For other computers on your network/router, type in the 'IPv4' address of the computer you're running the server on. You'll notice when you run IP config on each computer on your network, the only number that changes under 'IPv4' is the last one. Each device connected to your network's WiFi has their own number accessing your router. The last number of the IPv4 can change for each device from time to time if your router uses "dynamic IPs".

Over the Internet
For friends connecting "over the internet", they'll need to enter your Global IP (meaning your router's IP), but this won't work until you set up the aforementioned port forwarding on your router. -

Setting up dedicated server with configuration file
To run a server with a pre-made configuration file you must search for your Terraria installation folder, then run "TerrariaServer.exe -config  ", where   is the configuration file.


 * 1) Use cmd, go to Terraria folder and type in "TerrariaServer.exe -config  " without the quotation marks, then.
 * 2) Make a shortcut of "TerrariaServer.exe", right-click on it, click on "Properties", edit the field "Target:" (originally: "<...>\TerrariaServer.exe"), type at the end, after "TerrariaServer.exe" the following: " -config  " without the quotation marks (important, leave a SPACE between the ".exe" and the "-config"). It should look like this: "<...>\TerrariaServer.exe -config  " Then apply it. From now on this shortcut will start your server with the given configuration file.
 * 3) If you want to, you can make a batch file as well, in its function it's the same as a shortcut. First, you make a new text file (.txt), then edit it in any kind of simple editor (not Office, something like Notepad), then type in the commands like this:
 * @echo off
 * cls
 * TerrariaServer.exe -config  

Then save the text file (.txt) as a batch file (.bat), or save it as a text, then rename it and change its extension from ".txt" to ".bat". But in this example you will have to place the batch file in the Terraria folder to make it work and the configuration file must be in the same folder as well. Otherwise, if you type in the full path for the "TerrariaServer.exe" and the   it will work anywhere and act as a shortcut. Example for full path:

"C:\Games\Terraria\TerrariaServer.exe -config D:\TerrariaCon\example.txt"

As you can see in this example, the configuration file doesn't need to be in the Terraria folder.

'''It is possible to run more than one server from one computer! But to do so there are three important things:'''
 * 1) Make sure each server uses different configuration files!'''
 * 2) Make sure each server uses different worlds!'''
 * 3) Make sure each server uses different port numbers!'''

NOTE: Recommended to make each server a separated shortcut/batch file.

Making a configuration file

 * There is an example configuration file in the Terraria folder, it looks like this if you open it in a text editor (not Office, something like Notepad):


 * 1) this is an example config file for TerrariaServer.exe
 * 2) use the command 'TerrariaServer.exe -config serverconfig.txt' to use this configuration or run start-server.bat
 * 3) please report crashes by emailing crashlog.txt to support@terraria.org
 * 1) the following is a list of available command line parameters:
 * 1) -config 				Specifies the configuration file to use.
 * 2) -port 				Specifies the port to listen on.
 * 3) -players / -maxplayers <50>	Sets the max number of players
 * 4) -pass / -password 	Sets the server password
 * 5) -world 				Load a world and automatically start the server.
 * 6) -autocreate <#>				Creates a world if none is found in the path specified by -world. World size is specified by: 1(small), 2(medium), and 3(large).
 * 7) -banlist 				Specifies the location of the banlist. Defaults to "banlist.txt" in the working directory.
 * 8) -worldname 			Sets the name of the world when using -autocreate.
 * 9) -secure					Adds addition cheat protection to the server.
 * 1) Sets the max number of players allowed on a server. Value must be between 1 and 255
 * 2) maxplayers=50
 * 1) Load a world and automatically start the server.
 * 2) world=C:\Users\Defaults\My Documents\My Games\Terraria\Worlds\world1.wld
 * 1) Set the port number
 * 2) port=7777
 * 1) Set the server password
 * 2) password=
 * 1) Set the message of the day
 * 2) motd=Please don’t cut the purple trees!
 * 1) Sets the folder where world files will be stored
 * 2) worldpath=C:\Users\Defaults\My Documents\My Games\Terraria\Worlds\
 * 1) Creates a new world if none is found. World size is specified by: 1(small), 2(medium), and 3(large).
 * 2) Create


 * 1) Sets the name of the world when using autocreate
 * 2) worldname=Ty
 * 1) The location of the banlist. Defaults to "banlist.txt" in the working directory.
 * 2) banlist=banlist.txt
 * 1) Adds addition cheat protection.
 * 2) secure=1
 * 1) Default system priority 0:Realtime, 1:High, 2:AboveNormal, 3:Normal, 4:BelowNormal, 5:Idle
 * 2) priority=0
 * You can see that every line starts with a "#" sign. That sign "comments-out" everything in that line if it starts with "#". Meaning that those lines have no effect at all on the server. This is useful for both commenting in the file, like:


 * 1) Set the message of the day
 * As it explains the following command. And it is also useful for turning off commands, like:


 * 1) motd=Please don’t cut the purple trees!
 * Here, the server won't have "MessageOfTheDay", because it is "commented-out". So, if you want to use a command you just need to delete the "#" from the begining of the line. You can edit this file to your liking as much as you want. Every command is explained in the file. If you are ready, you just have to save the file and use it as a configuration file.
 * It is highly recommended to leave the original configuration file, make a copy of it and edit the copy, or open the original and "Save As..." another file, with a different name.

= On FreeBSD = Surely, if you're reading this, you know what an IP is and how to setup your router/firewall/jail to have a dedicated space on your machine to put the server.

You'll need: TShock, an unofficial Terraria Server, see this: https://www.reddit.com/r/Terraria/comments/2a2gjn/how_to_run_a_dedicated_terraria_server_on_ubuntu/ and that: https://github.com/NyxStudios/TShock/releases/.

Go to your jail, create a terraria user, then grab the last release of TShock, install screen, mono and sqlite3, unzip Tshock into terraria's homedir. Run this command once to initialize everything properly: (see https://www.reddit.com/r/Terraria/comments/2a2gjn/how_to_run_a_dedicated_terraria_server_on_ubuntu/cir0qna for details about the command) mono --server --gc=sgen -O=all TerrariaServer.exe Generate a world and quit (^C)

Once you generated your world, add the following code to /usr/local/etc/rc.d/terraria (available here: http://ix.io/iHD ) (don't know how to put the code here), and edit it according to your liking.

Edit your jail's rc.conf or whatever, terraria_enable="YES", restart the jail, and VOILÀ!

Feel free to ping moviuro @freenode (IRC) if you can successfully port these tips to Debian (rc.d is pretty similar to Debian's init AFAIK)

Server lists
Once your Internet server is running properly, consider posting it to one of the public server lists, so Internet users can find it and join:

Troubleshooting

 * There could be many reasons if something is not right. You can usually separate it into three groups.

"The server is not starting!"

 * This is mostly because of some typo or mistyping. Check everything again (especially true for those who use configuration file(s)), is everything typed correctly? If it's still no good try reinstalling the game.

"Others can't connect to the server!"

 * This is usually a network related problem.
 * 1st, make sure they try to connect to the right IP address. This is the server computer's IP address (IPv4) for networked computers, or the router's Global IP address for over the internet players.
 * 2nd, make sure your firewall is not blocking the "TerrariaServer.exe" or the server's port ("7777" by default).
 * 3rd, make sure the others join with the correct port number (especially true, if it's not the default "7777").
 * 4th, (over internet) if you are using a router you have to make sure it opens the server's port for you. In your router you need to do this by setting up the "Port Forwarding" or "Virtual Server", usually you need to make a new record there, it will ask a port number, this is your servers port (default "7777"), it will ask for an IP address as well, this is your LAN IP address (not the Internet IP address). Also, make sure that that the list in "Port Forwarding"/"Virtual Server" is the list of "allowed" connections, if it's not then don't make any record (if you made one, you can delete it and it means that this should not be your problem).
 * 5th, (over internet) if your IP address is dynamic (not static or reserved) it is possible for it to change over time, so check your IP address again. Also, if you are using Dynamic DNS to get around this problem, tell the other players to always type in your Domain Name to join and don't use the saved list of connections which the game offers (the game only saves the IP address, not the domain name, so if your IP has changed it won't be aware of it).

"World not saved/Items disappear from chests after closing server!!"
The Terraria server only saves the world automatically at regular time intervals.

If you close the server without issuing a save/exit command via the console (or if you use host and play), there's a chance that the world may not have saved the last few minutes of changes. So moving gear between chests and immediately closing the server without explicitly specifying the save/exit command may actually cause those items to disappear.

To ensure this isn't an issue: Always use a dedicated server, and remember to enter the "save"/"exit" commands rather than simply closing the console window via the red close button.

Note: The above can also be used as an exploit if you wanted to duplicate items without 3rd party software (but let's be honest, it's still cheating). This works because the character file and world file are independent of each other, and when running a server, it doesn't save the world when you exit with a character. All you do is run the server with the world that contains the items you want duplicated. Load up Terraria, pick the character you want to use, and connect to your server. Raid the world of all the items you want, then save and exit. This writes over your character file with the added items, but since you're running the world via a server, it won't write over the world file when you exit with your character. You can then alt-tab out to the the server console, and type 'exit-nosave'. This will close the world without saving, and will revert your world back to the way it was before you raided it with your character. Then just restart the server on the same world, with the same character and viola! Be aware of the game time when you're doing this. A server automatically saves the world at specific intervals (I think it's at 4:30am game time). The server console says when it's saving, so you'll know if you're good to go. But...it's still cheating.