Hoe een Terraria-server te hosten

Het hele werk, eerlijk gezegd: welke hardware je nodig hebt, waarom bijna iedereen TShock draait in plaats van de vanilla server, de ene poort die ertoe doet, de admin-stap die makkelijk kwijtraakt, en hoe je een wereld goed back-upt. Volg het en je hebt een werkende server zonder iemand te betalen.

De setup, in volgorde

1. Dimensioneer de hardware, bescheiden

Terraria is ongewoon licht. Een kleine groep op een middelgrote wereld draait comfortabel op 1GB RAM en één core. Een volledige server van 16 spelers op een grote wereld wil 2–4GB. Het spel is single-threaded voor wereldsimulatie, dus kloksnelheid telt zwaarder dan het aantal cores. Schijfruimte is naar moderne maatstaven triviaal: de server plus een grote wereld zit ruim onder een gigabyte, maar back-ups stapelen zich op, dus houd ruimte over.

2. Installeer de server, en installeer daarna TShock erover

De vanilla dedicated server is een gratis download van terraria.org, en die werkt, maar bijna niemand draait hem kaal. TShock vervangt hem door hetzelfde spel plus accounts, groepen, rechten, regiobescherming, echte admincommando’s en een plugin-systeem. Het is een aparte download van de TShock-releasepagina, het heeft een .NET-runtime nodig, en je draait TShock.Server in plaats van de vanilla binary.

3. Claim admin voordat iemand anders dat kan

Dit is de stap die mensen overslaan en later betreuren. Terraria heeft geen admin-wachtwoord om in een configuratiebestand in te stellen. Bij de eerste start schrijft TShock een eenmalige setupcode naar setup-code.txt in zijn configuratiemap, en de eerste persoon die in het spel /setup typt, gevolgd door die code, wordt superadmin. Iedereen die je server kan bereiken, kan dat doen. Claim het meteen, voordat je het adres uitdeelt: zodra de code is gebruikt, verwijdert TShock hem en schakelt het systeem permanent uit.

4. Open de poort

Eén poort, en die is TCP:

  • TCP 7777: het spel. Dit is het adres dat spelers invoeren bij “Join via IP”, en meer heeft een vanilla server niet nodig.
  • TCP 7878: optioneel, en alleen als je TShock’s REST API draait. Hiermee kan een extern paneel de spelerslijst lezen en commando’s uitvoeren. Het is beveiligd met een token, dus open hem niet voordat je eerst een token hebt ingesteld.

Terraria is hier opvallend eenvoudig vergeleken met de meeste survivalgames: er is geen aparte queryport en geen UDP om door te sturen. Als je server draait maar niemand kan joinen, zie dan de pagina voor probleemoplossing voor de oorzaken, in de volgorde die ze het snelst vindt.

5. Stel accounts en rechten in

Zodra je superadmin hebt geclaimd, neemt het gebruikerssysteem van TShock het over. Spelers registreren met /register en loggen in met /login, en jij wijst ze toe aan groepen zoals guest, default en trustedadmin, elk met een eigen set rechten. Bans, groepen en regio’s staan allemaal in de SQLite-database van TShock naast de configuratie, dus ze overleven herstarts. Dit is het grootste voordeel ten opzichte van een vanilla server, waar de enige kost van een griefer is dat hij opnieuw moet verbinden.

6. Maak een back-up van de wereld en test het herstel

TShock doet een deel hiervan voor je: stel BackupInterval in config.json in, en het schrijft een doorlopende back-up van de wereld naast de live save. Die laag redt een slecht uur, niet een slechte maand.

De rest is aan jou, en het is makkelijk omdat een Terraria-wereld een enkel .wld-bestand is. Kopieer het volgens schema, bewaar meer dan één generatie en kopieer het van de machine af. Kopieer terwijl de server inactief is of direct na een save, niet midden in een sessie.

Herstel er daarna ook één keer echt een ergens anders. Een back-up die niemand heeft hersteld is een theorie, en de faalwijze die lange werelden beëindigt is het ontdekken daarvan op de dag dat het ertoe doet.

7. Als je plugins wilt

TShock-plugins zijn .dll-bestanden die in de map ServerPlugins gaan en bij het starten worden geladen. Anders dan bij de meeste gemodde games installeren je spelers niets: plugins draaien server-side, dus wie joint heeft alleen het basisspel nodig.

Let bij zelf hosten op versie-drift: een plugin die is gebouwd voor een oudere TShock kan bij het laden een fout gooien en daarmee de server neerhalen. Controleer het log na het toevoegen van een plugin, en controleer je plugins opnieuw wanneer je TShock of Terraria zelf bijwerkt.

Wat dit je echt kost

Op de factuur weinig: Terraria is licht genoeg dat de goedkoopste VPS-tier het kan draaien. Bij elkaar opgeteld, het terugkerende werk: TShock bijwerken na game-patches, plugins opnieuw controleren ertegen, een back-upschema dat je zelf hebt geschreven en moet vertrouwen, en degene zijn die merkt dat de wereld niet weer is opgestart. Of dat het verschil waard is, is een terechte vraag, en de vergelijking van providers neemt die serieus in plaats van hem voor je te beantwoorden.

Of sla de build over

Dezelfde TShock-server, voor je geïnstalleerd en gepatcht, met de poort gepubliceerd, uurlijkse back-ups die draaien, je pluginmap op een volume dat herstarts overleeft, en je setupcode getoond in het dashboard zodat admin claimen één klik kost. Vanaf $1.49/maand, eerste week gratis als je Flux-account nieuw is.

Veelgestelde vragen

Wat zijn de hardwarevereisten voor een Terraria-server?

Minder dan de meeste mensen verwachten. Een kleine groep op een middelgrote wereld draait comfortabel op 1GB RAM en één core. Een drukke server van 16 spelers op een grote wereld wil 2–4GB. Wereldsimulatie is single-threaded, dus een snelle core wint het van extra cores, en schijfruimte is een kleinigheid totdat er back-ups zijn opgehoopt.

Heb ik een database nodig om een Terraria-server te draaien?

Nee. TShock slaat gebruikers, groepen, bans en regio’s op in een SQLite-bestand naast de configuratie, wat geen setup en geen aparte service nodig heeft. Er bestaat een MySQL-backend voor mensen die meerdere servers draaien met één gebruikerslijst, maar voor een enkele wereld voegt die alleen een component toe zonder voordeel.

Is er een controlepaneel voor Terraria?

Niet van het spel zelf, maar TShock brengt je al een heel eind. Beheer gebeurt met commando’s in het spel nadat je superadmin hebt geclaimd met /setup. TShock biedt ook een optionele REST API op poort 7878 waar externe panelen een live spelerslijst uit kunnen lezen en commando’s doorheen kunnen geven. Die is beveiligd met een token en staat standaard uit.

Welke poort heeft een Terraria-server nodig?

TCP 7777, en dat is echt alles voor een normale server. Er is geen aparte queryport en geen UDP, wat Terraria een van de eenvoudigste games maakt om door te sturen. Voeg TCP 7878 alleen toe als je TShock’s REST API bewust inschakelt.

Moeten mijn spelers iets installeren voor plugins?

Nee, en dit is het stille voordeel van TShock ten opzichte van client-side modding. Plugins draaien alleen server-side, dus iedereen die joint gebruikt het onveranderde spel. Er is geen versie-afstemming nodig en niemand wordt gekickt omdat hij de verkeerde build heeft.