Hello! Thanks for choosing TShock.
Download and Extract
- Download the latest ZIP package of TShock from Github.
- Extract the ZIP file contents into a folder (Recommended: 7zip).
Become an Admin
- Run TerrariaServer.exe. This is your server.
- Select the world you want to use or create a new one.
- Select your desired server port.
- Note: Default settings are: Server port (7777). You may hit your ENTER key at each input to select the default setting in parenthesis ().
- Once the server starts the console window will have the following message: To become superadmin, join the game and type /auth [authcode]
- Run Terraria, join your server, and enter: /auth [authcode]. This will give you the ability to create a user account on the server, giving you access to all commands. This gives you one time super user access. This is intended to be used once at the very start and every subsequent admin operation is done under a superadmin account.
- Note: In order to join your own server, you can enter: localhost or 127.0.0.1 (which are the same thing, assuming the server is being run on the same machine that you run Terraria), or you can use your own External IP address, which can be found simply by going to a website such as WhatIsMyIP.com.
- Next, enter: /user add [username] [password] superadmin
- Example: /user add john qwerty superadmin
- This will add a user to your server that a player can log into, allowing them access to admin operations. This is intended for server owner only, do not give your account credentials out willy nilly.
- Log in with the superadmin user you just created by entering: /login [username] [password]
- Example: /login john qwerty
- Finally, to remove the "auth" message on server startup, enter: /auth-verify
Protect your Superadmin
The superadmin group has full access to your server. We do not recommend giving out the superadmin group to any other users. Make a separate group for them and give them the permissions that you want them to have. See: Basic User Management
Your server should now be successfully running TShock. Here are a few things you may like to do:
- Open your router's ports to allow users to join you. See: Port Forwarding: Why and How, by Rydian.
- Familiarize yourself with the Commands & Permissions.
- Configure a user and group structure which will be used by all of your players. Ideally, your superadmin account should not be accessed on a regular basis. This is similar to the root user account in linux.
- Configure whatever options you choose in the C:\TShock\tshock\config.json file. For information on what each option does, see Configuration File Docs.
- Note: you can open the config.json file with Notepad, or its superior, Notepad++
- Make your server noticeable! With your External IP address (WhatIsMyIP.com), you can sign up to have your server listed on Terraria Server Lists, or within Terraria's Quick Hookup forum.
- Convert your External IP into a DNS: Using a free service like No-IP.com, you can change your external IP address into a readable DNS name. In other words, instead of forcing your users to connect with xxx.xx.xxx.xxx, they can use "you.zapto.org", or similar.
- Tip: Unless you purchase a dedicated server or a static IP, at some point your players will be unable to connect to you because your IP has changed and you may not even notice. You can download No-IP's Dynamic DNS Client to keep your IP in sync with the DNS name you make with them.
- Get yourself acquainted with TShock's data storage within the C:\TShock\tshock\tshock.sqlite file. All users, regions, permissions, and other data is kept here. You can modify the database using SQLite Database Browser
Edit tshock.sqlite with caution!
Making mistakes inside this file can easily result in a corrupted database, which will prevent your server from functioning properly. Edit data at your own risk! It is highly recommended to make frequent backups of this file!
Frequently Asked Questions & Problems
Q: Function/class not found!
A: Make sure you have the latest version of TShock and TerrariaServer, and that you are running correctly updated plugins.
Q: Can I run the server in Linux?
A: As of version 3.2.8.0831, TShock can run in Mono, although with limited success.
On Debian 8 and derivatives (Ubuntu, Mint, etc.), TShock requires the following packages as dependencies:
mono-runtime libmysql6.4-cil libmono-corlib2.0-cil libmono-system-drawing4.0-cil libmono-system-runtime4.0-cil libmono-system-runtime-serialization4.0-cil libmono-system-numerics4.0-cil libmono-system-xml-linq4.0-cil
Please note that the mysql connector (libmysql6.4-cil) is required to be installed, even if you are using the SQLite backend.
If TShock starts but crashes due to missing dependencies, it may create a zero-length config.json file. Once the dependencies are resolved, delete the file to force the server to regenerate this file, or the server will crash on configuration file load.
Q: Error: a number needs to be between a min and a max?
A. Delete the auth.lck file and restart TShock.
Q: Encryption/Hash algorithm not supported on Windows XP.
A: In the configuration file, append -xp to the hash line.
Installation and Configuration Videos (OLD AND OUTDATED, BUT STILL POSSIBLY HELPFUL)