Terraria

Public manual-acceptance release

Terraria is available in the public launch catalog. A historical Steam client join passed; the product owner is manually retesting current client-facing actions after this restoration.

Terraria runs over TCP and persists its config and world files under /opt/terraria/config. Swarm Hosts waits for the TCP listener to open before promoting the Swarm Server to Running.

The server image wraps the community-maintained PassiveLemon Terraria Docker image, which runs the Terraria dedicated server with persistent world and config storage.

Basics you should know

  • Default protocol: TCP
  • Typical port: 7777/tcp
  • Persistent data: /opt/terraria/config
  • Worlds: /opt/terraria/config/Worlds
  • Runtime: pinned vanilla Terraria (VERSION is reported from the image at runtime)
  • Minimum resources: 1 CPU and 1 GB RAM
  • Recommended default: 2 CPUs and 2 GB RAM, especially while creating a new world

Launch

1) Open Launch. 2) Choose Terraria. 3) Leave AUTOCREATE=1 for a new server so Terraria creates the first world. 4) Set WORLDNAME, MAXPLAYERS, optional PASSWORD, and MOTD. 5) Leave SECURE=1 unless you have a specific reason to allow cheats. 6) Click Launch.

If you already uploaded a world file into /opt/terraria/config/Worlds, you can disable auto-create and set WORLDNAME to the uploaded world's name.

Common paths

  • World files: /opt/terraria/config/Worlds
  • Server config: /opt/terraria/config/serverconfig.txt
  • Logs: /opt/terraria/config/Logs

Swarm Hosts backs up /opt/terraria/config, which includes the generated server configuration, world files, and the vanilla ban-list file. The image runs these files as UID/GID 1000:1000 by default.

Server Actions

The Server Actions view exposes a closed, game-specific subset of the vanilla Terraria console. Swarm Hosts serializes each action, attaches a bounded temporary output capture to the pinned server's tmux pane, sends the approved command through the image's /usr/local/bin/inject bridge, and requires a fresh correlated response. There is no raw console, shell, or arbitrary command input.

Available actions are:

  • Server overview: reports the pinned server version, listening port, player limit, and connected-player count.
  • List online players: refreshes the short-lived verified player selector.
  • Broadcast message: sends a bounded server-authored message.
  • Save world now: waits for the vanilla save response before reporting success.
  • Kick player: accepts only a fresh opaque player selector, rechecks that the player is still online, then verifies that the player disconnected.
  • Set world time: accepts only dawn, noon, dusk, or midnight, then reads the world clock back.

Server Actions require the Swarm Server to be running. Player selectors expire after 30 seconds; run List online players again if a target is stale.

The first action release intentionally excludes ban-list changes, live password or MOTD changes, shutdown, and arbitrary console commands. Those mutations will remain unavailable until their persistence and recovery behavior is proven against the pinned runtime.

Mods & Content

This image is vanilla Terraria, so Mods & Content reports no managed content strategy. Swarm Hosts does not install tModLoader or TShock into this image and does not treat vanilla worlds as mods. A future modded Terraria offering should be a separately pinned runtime with its own compatibility and management tests.

Connect

Players join with the swarm host public IP and assigned TCP port:

<HOST_PUBLIC_IP>:<PORT>

After restoring a backup or replacing a world file, restart the Swarm Server and confirm Server overview and List online players both succeed before inviting players.