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.
- 1 On Windows
- 1.1 Your IP address
- 1.2 Setting up the server
- 2 On FreeBSD
Your IP address
You'll first need your computer's IP address. If you are not sure what it is:
To play over Internet:
- One of the simplest ways is to browse a website made for checking your IP, for example WIMI (What Is My Ip).
- Alternately, you can type IP as a search query in Google. The first result will be your IP address.
You can also search "cmd" in the start menu and then type "ipconfig". This should give you information on your LAN IP address, Default Gateway, MAC address and other useful information.
To play on LAN:
Click the start button, then click on your search bar (or the "run" button, if you are using Windows XP) and type 'cmd', then press ↵ Enter. This will display a command window. Type ipconfig and press ↵ Enter. A page of information will display. Scroll back to the top. Under 'Ethernet Adapter Local Area Connection' or 'Wireless LAN adapter Wireless Network Connection 2', find 'IPv4 Address', which is your computer's IP address. x" is a number from 1 to 254. For example, 172.28.54.23 or 192.168.1.1.
Setting up the server
Setting up a "Host&Play" server
This is the simplest way of creating a server. It is usually for smaller LAN 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 select) then enter a password (or leave blank for no password). If you have trouble with this contact a higher up on the official terraria website.
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 new black window has opened. This is the server control interface, where you will be doing everything (entering commands and viewing information). When it starts, it asks you to choose a world. If you have a "clean installation" (you just installed Terraria and did not play with it) it will have no world(s). Otherwise it will list the worlds currently available on your computer. The last two command options create a new world, or delete an existing one.
Creating and selecting world in server console
NOTE: steps 1-4 are only necessary if creating a world.
- Type n, then ↵ Enter.
- Select world size, ↵ Enter.
- Name the world, ↵ Enter.
- Now you have to name the world. This name will show up when someone joins the game (for example, you choose the name "Brave New World" and when someone joins the game later he/she will see "Welcome to Brave New World!").
- It will now generate the new world.
- Note: It is also possible to run the game first with "Terraria.exe", go to "Single Player", create a new world there, then exit and select it in the server console.
- Type corresponding number, ↵ Enter.
- Now you select the world you want to play on, type the corresponding number of the world and ↵ Enter.
Note: By default, Terraria saves all worlds into "C:\Users\UserName\Documents\MyGames\Terraria\Worlds". World file names do not always correspond to the name of the world. Example: a world can be named "Brave New World" but the file might be named "world1.wld", though it will start with "Brave_New_World.wld" as its name.
Choosing the other options in the console
- Set number of maximum players.
- Decide on the number of maximum players allowed on the server (default is 8, if you simply hit ↵ Enter without typing anything, then it will be 8).
- Set port.
- Set server port number (default 7777, this could be very important for servers over the internet, but also for LAN servers, check Troubleshooting for more information).
- Set password.
- Set the password of your server. This will be asked from anyone who tries to join your server. If you leave it empty and just hit ↵ Enter, there will be no password for the server.
Now your server is running! Test it by starting Terraria and connect to it (if testing on the same computer where the server is running, go to Multiplayer->Join->Select your character->Type in "localhost" or "127.0.0.1". If you are on a different computer, type in the IP address of the server. If this doesn't work, check the Troubleshooting section.
NOTE: By default, Terraria saves all worlds to "C:\Users\UserName\Documents\MyGames\Terraria\Worlds". World file names are not always the same as the name of the world. Example: "world1.wld" can be named "Brave New World".
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 <serverconfigfile>", where <serverconfigfile> is the configuration file.
- Use cmd, go to Terraria folder and type in "TerrariaServer.exe -config <serverconfigfile>" without the quotation marks, then ↵ Enter.
- 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 <serverconfigfile>" without the quotation marks (important, leave a SPACE between the ".exe" and the "-config"). It should look like this: "<...>\TerrariaServer.exe -config <serverconfigurationfile>" Then apply it. From now on this shortcut will start your server with the given configuration file.
- 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
- TerrariaServer.exe -config <serverconfigurationfile>
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 <serverconfigurationfile> 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:
- Make sure each server uses different configuration files!
- Make sure each server uses different worlds!
- 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):
#this is an example config file for TerrariaServer.exe #use the command 'TerrariaServer.exe -config serverconfig.txt' to use this configuration or run start-server.bat #please report crashes by emailing crashlog.txt to [email protected] #the following is a list of available command line parameters: #-config <config file> Specifies the configuration file to use. #-port <7777> Specifies the port to listen on. #-players <number> / -maxplayers <50> Sets the max number of players #-pass <password> / -password <password> Sets the server password #-world <world file> Load a world and automatically start the server. #-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). #-banlist <path> Specifies the location of the banlist. Defaults to "banlist.txt" in the working directory. #-worldname <Ty> Sets the name of the world when using -autocreate. #-secure Adds addition cheat protection to the server. #Set’s the max number of players allowed on a server. Value must be between 1 and 255 #maxplayers=50 #Load a world and automatically start the server. #world=C:\Users\Defaults\My Documents\My Games\Terraria\Worlds\world1.wld #Set the port number #port=7777 #Set the server password #password= #Set the message of the day #motd=Please don’t cut the purple trees! #Sets the folder where world files will be stored #worldpath=C:\Users\Defaults\My Documents\My Games\Terraria\Worlds\ #Creates a new world if none is found. World size is specified by: 1(small), 2(medium), and 3(large). #Create
#Sets the name of the world when using autocreate #worldname=Ty #The location of the banlist. Defaults to "banlist.txt" in the working directory. #banlist=banlist.txt #Adds addition cheat protection. #secure=1 #Default system priority 0:Realtime, 1:High, 2:AboveNormal, 3:Normal, 4:BelowNormal, 5:Idle #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:
#Set the message of the day
- As it explains the following command. And it is also useful for turning off commands, like:
#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.
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)
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:
- Official Terraria forum server list
- Fansite server list
- Terraria Server List
- TServerWeb - Terraria Server List and Server Manager
- Terraria Connect
- 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 (especially true over the internet).
- 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.