Game

Dedicated server

A dedicated server runs a world with nobody playing on it: players join it like a friend's game, and it keeps going when they leave. It is the normal game, started with a few extra options.

Updated 27 Oct 2026

A dedicated server runs a world with nobody playing on it: players join it like a friend's game, and it keeps going when they leave. It is the normal game, started with a few extra options.

Starting it

The easiest way is the dedicated server download (Downloads page, under the game): it is smaller, has no graphics or sound, and starts as a server by itself. Unzip it and run start-server.bat (Windows) or start-server.sh (Linux).

The normal game can run as a server too:

"Seeds & Circuits.exe" -batchmode -nographics -dedicated
./"Seeds & Circuits.x86_64" -batchmode -nographics -dedicated
  • -batchmode -nographics: no window, no graphics card needed. Add -logFile - to see the log in the console (or -logFile <file> to keep it in a file).
  • The first start writes server.json next to the game with the default settings (below). Edit it and start again.
  • When the world is up the log says [Server] Ready.

Joining

  • Direct (the default): the server listens on address:port (UDP, default 0.0.0.0:7777) and answers status checks on the next port (7778). Open both UDP ports in the firewall and router. Players add it under Play ▸ Servers (Add Server: name, address, port); the game checks that a server answers there and then shows its players and ping.
  • The public server list: set "list": true (or start with -list "<server name>") to show it under Play ▸ Servers for everyone. The server needs a website account for that: the first time, its log says which page to open and which code to approve; after that it stays signed in. One listing per account.
  • Relay ("relay": true or -relay): no ports to open, but the game shows no join codes, so players can only reach it through the public server list.
  • Joining needs a website account with play access, the same game version and the same mods as the server.

server.json

SettingDefaultWhat it does
world"Server"The world (save) to load; made new when there is none.
nameworld's nameThe name in the server list.
description""A line under the name in the server list.
listfalseShow it on the public server list.
publicAddress""The address players should join (empty = the one the website sees).
queryPort0UDP port for status checks: 0 = the game port + 1, -1 = none.
maxPlayers0Players at once; 0 = as many as the edition allows.
relayfalseThrough Unity Relay instead of listening on address:port.
address, port"0.0.0.0", 7777Where to listen without Relay.
frameRate60Server updates per second.
autosaveMinutes10Minutes between saves; 0 = off.
friendlyFirefalsePlayers can hurt each other.
movementCheckstruePlayers moving faster than a player can (speed or teleport cheats) are put back; the log says who.
seed, creative, generationrandom, falseA new world's seed, game mode and world settings.
sharingall "individual"What players share (below). Counts for loaded worlds too.
admins[]Player ids that get the console when they join.
savesFolder""Where the worlds are saved: empty = Saves next to the server; a relative path is next to it too.
autoUpdatetrueGet new versions from the website by itself (see Updates).
updateCheckMinutes30Minutes between checks for a new version.
updateWarningMinutes5Minutes players are warned before it restarts for an update; 0 = right away.

Command line flags win over the file: -world <name>, -seed <text>, -creative, -maxplayers <n>, -relay / -norelay, -address <ip>, -port <n>, -list "<name>", -publicaddress <host>, -description <text>, -saves <folder>, -sharing <mode> (all three at once), -config <file> (another settings file).

What players share

sharing has three entries, each "shared", "individual" or "group":

  • blueprints: researched blueprints and data drives.
  • towns: who owns a town. A placed town banner claims its town: only its owners build there, collect its taxes, use its storehouses and job board, run its homes and change the banner. Breaking the banner ends the claim.
  • world: waypoint flags (only their owners see and change them) and visited islands.

"group" shares among players a mod puts in the same group (guilds); without such a mod it is the same as individual. Change it while running with the console: world.sharing towns shared.

The console and admins

  • Type commands into the server's console window: they run with full rights. stop (or quit) saves and stops.
  • op <name or client id> gives a joined player the console; deop takes it away. It is saved with the world.
  • When a player joins, the log shows [Server] <name> joined (player id <id>, ...). Put that id in admins to make them an admin every time they join.

Who may join

  • net.kick <player> disconnects a player.
  • net.ban <player> [reason] bans a player (by name or client id, or by player id when they aren't on) and disconnects them; net.unban <name or id>, net.bans lists them.
  • net.whitelist on lets in only players on the whitelist (and admins): net.whitelist add <player>, net.whitelist remove <player>, net.whitelist lists it, net.whitelist off.
  • Bans and the whitelist are saved with the world. A player id follows the player's website account.

Mods

  • Put mods in Mods next to the game (or in the data folder's Mods); the server's own mods are on unless turned off. The log lists the running ones at start.
  • mods lists the installed mods; mods.enable <id> / mods.disable <id> change them from the next start.
  • Joining players download the server's mods when they join.

Saves

Worlds are saved in Saves/<world>.json next to the server (the log shows the folder at start: [Server] Saves:), so the whole server, settings and worlds together, can be copied, backed up or moved as one folder. savesFolder (or -saves <folder>) keeps them somewhere else. To host a world played in the game, copy its .json (and its other files with the same name) from the game's Saves folder into the server's.

The server saves every autosaveMinutes and when it stops. Back that folder up; copy a world file there to host it.

Updates

Players can only join a server with the same game version, so a server started with start-server.bat / start-server.sh keeps itself up to date:

  • It needs a website account with play access. The first time, the log says which page to open and which code to approve (the same sign-in the public server list uses).
  • Every updateCheckMinutes it asks the website for the newest server version. When there is one, it downloads it while running, warns the players (updateWarningMinutes, or right away when nobody is on), saves and stops. The start script copies the new files in and starts it again. server.json, Saves, Mods and the start scripts stay.
  • Started any other way (the exe itself, the normal game) it only says in the log that a new version is out.
  • "autoUpdate": false turns it off. To update by hand, stop the server and unzip the new download over it.