SP

Spring RTS Engine Note - Beyond All Reason server

Open-source engine for hosting real-time strategy game servers

Game Engines & Frameworks ★ 4k stars Hard setup GPL-2.0

The Spring RTS engine is a free, open-source 3D real-time strategy game engine that powers games like Beyond All Reason and Zero-K. It supports self-hosted multiplayer through community lobby and host servers.

Key features

  • 3D RTS game engine
  • Multiplayer hosting
  • Many supported games
  • Scriptable AI

Pros & cons

Strengths

  • Powers major free RTS games
  • Mature engine

Trade-offs

  • Complex to host
  • Steep learning curve

Spring RTS Engine Note - Beyond All Reason server replaces

Last reviewed Sep 13, 2026 · 898 words

There is no docker pull spring-server. The Spring engine is a 3D real-time strategy engine, not a service, and the "server" in Spring multiplayer is one of the players' own game clients, or a headless copy of the same engine run as a dedicated host. Everything else people call a server in this ecosystem, the lobby that lets players find each other and the autohost bots that keep a room open around the clock, is separate software that games like Beyond All Reason and Zero-K run themselves. If you arrived expecting to host a private BAR server for your friends with one compose file, the honest answer is that you cannot, and this guide explains what you can do instead.

Three layers, and you only ever host one of them

A Spring game session has a lobby server, a host, and clients. The lobby server (Spring's protocol dates to the mid-2000s and uses port 8200 by convention) handles accounts, chat and the list of open battles. Beyond All Reason runs a lobby called Teiserver; Zero-K runs its own. These are the projects' central infrastructure, and self-hosting one gives you an empty world with no other players, which is the point only if you are building a closed LAN-party network.

The host is a copy of the engine that runs the authoritative simulation. Spring is lockstep-deterministic: every client simulates the same game, and the host relays commands and enforces sync, so the host needs bandwidth and a stable clock more than it needs CPU. By default that host is whichever player clicked "host battle". A dedicated host is the same engine started headless (spring-dedicated, or the spring-headless binary that also runs Lua) on a Linux box, listening on UDP 8452 by default, with a start script describing the game, map and players.

Clients are the players, and they need the full engine plus the game archive and the map, downloaded through the lobby client. The engine is GPL-2.0 C++, the games are separate content packages with their own licences, and none of it is small: 1 GB is the floor for a dedicated host with a game loaded, and a BAR client wants a real GPU.

What a self-hosted autohost actually is

The thing worth hosting is an autohost: a bot that logs into the lobby server as a user, opens a battle, runs the dedicated engine when the game starts, and reopens the room afterwards. SPADS, a Perl program that has been the standard for over a decade, does this; BAR's community runs dozens of them. Running your own means a Linux box with engine binaries matching the version the lobby expects (a mismatch means nobody can join), the game and map archives synced, SPADS configured with a lobby account, and UDP 8452 forwarded. It is a weekend of work the first time, it breaks when the game updates its engine, and the payoff is a persistent room with your name on it, your map rotation and your settings. That is the realistic self-hosting story for Spring, and it suits a clan or a regular group, not a solo player.

The engine forked, and that changes which repo you clone

The upstream spring/spring repository is largely dormant. Beyond All Reason maintains its own fork of the engine, called Recoil, and Zero-K pins its own maintained build; both have drifted from upstream in ways that matter for compatibility. If your goal is hosting BAR games, you build or download the Recoil version BAR currently ships, not upstream Spring. This is the single most common way a home-built autohost fails: right game, right SPADS, wrong engine build, and every join attempt ends in a version error. Follow the game's own hosting documentation over the engine's.

The cheaper way to get most of this

If the actual want is "an open-source RTS my friends and I can play on a machine I control", 0 A.D. lets any player host a match directly with one forwarded UDP port (20595), has no account requirement, and is packaged in most distros. It is a smaller game than BAR, but the hosting is an evening, not a weekend, and it does not depend on anyone else's infrastructure. For running many game servers of assorted kinds, Pterodactyl provides the panel and process management and can wrap a SPADS autohost as one of its eggs with some custom work. Both are larger, more conventional self-hosting targets than Spring, and both sit with the rest of the game engines category.

What I'd do

Play Beyond All Reason on its official lobby; it is free, the infrastructure is well run, and there is nothing to gain from replicating it. If your group plays regularly and wants a permanent room, set up a SPADS autohost on a small Linux VPS with 2 GB of RAM, using the exact Recoil build BAR ships that week, and budget an hour of maintenance after each engine release. Do not attempt a private lobby server unless you are running a LAN event and need it offline. For everyone whose interest is the general idea of a self-hosted RTS rather than Spring specifically, 0 A.D. gets you there before dinner.

Similar game engines & frameworks apps