Your ship is its modules
An object has no fixed stats. Speed, hull, power, sensors, jamming, cargo and weapons are all derived from the modules you install. What your ship is emerges from its module mix.
An open-source, server-authoritative 2D space sandbox — an Eve Online–style persistent sim, simplified to two dimensions.
A galaxy of sectors linked by jump gates. Ships whose abilities come entirely from the modules you bolt onto them. One simulation authority, a persistent world, and bots that play by exactly the same rules as humans.
Rebuilt from scratch periodically since ~2005. This is the newest iteration.
You command an object — a ship, station, drone or depot — adrift in a shared, persistent 2D universe. The galaxy is a graph of sectors joined by jump gates, with a security gradient from safe core space to lawless frontier.
An object has no fixed stats. Speed, hull, power, sensors, jamming, cargo and weapons are all derived from the modules you install. What your ship is emerges from its module mix.
One server owns the simulation and validates every action. Open-source clients and bots are safe because the server, not the client, decides outcomes.
The world is interest-managed: you hear about a neighbour only when your sensors beat their jammers and they're in range — not the whole map.
Factions hold territory, standing and goals, and post contracts — the unit of work in the world — for agents to accept, complete and get paid for.
NPCs are headless bots that connect over the very same wire protocol as a human client. There are no privileged messages — fork the reference bot to automate your own account.
The server simulates an active slice and lets dormant areas sleep, fast-forwarding them when you return. PostgreSQL is the single source of truth — the world survives restarts.
This is an early, in-progress rebuild. The infrastructure has been solved many times over 20 years; the goal this time is to make one combat + AI loop genuinely playable early.
StarRaid is a multi-repo project. Each component is its own independent git repository
with its own README and justfile; they share only the contracts between them.
The wire contract between client/npc and server — the single source of truth for the game's messages.
The sole gameplay authority: the tick loop, action validation, and PostgreSQL persistence.
The reference bot plus the dispatcher tier that spawns bots on the server's request.
The native desktop game client — thin, server-authoritative, renders only what it senses.
The game-master web console for steering the living world: events, factions, fixtures, monitoring.
This site — the project's public front door and getting-started guide.
Every component is an independent, open-source repository with its own README and
justfile. Clone the ones you need side by side and build each on its own.
You'll want Go 1.26+, Docker, protoc
and just.
# clone the components you need, side by side
git clone git@github.com:xuedi/starraid-protocol.git protocol
git clone git@github.com:xuedi/starraid-server.git server
git clone git@github.com:xuedi/starraid-npc.git npc
Build and run the server:
cd server
just install # wire this module to your local protocol checkout
just db-up # start PostgreSQL
STARRAID_DEV_SECRET=dev just run # run the server
In another terminal, connect the reference bot — it speaks the same protocol as a human client:
cd npc
just install
just run -server localhost:60000 -user dev -secret dev
Each Go component finds the shared protocol bindings through a local, configurable path — no fixed checkout layout required. See each repo's README for details.