---
title: "BattleSpades dedicated server"
description: "BattleSpades Beta 0.1: the open-source, clean-room Ace of Spades dedicated server with authoritative physics, VXL maps, bots, and eleven game modes."
canonical: "https://www.aosplay.net/dedicated-server"
markdown: "https://www.aosplay.net/docs/dedicated-server.md"
last_updated: "2026-09-28"
content_type: "TechArticle"
keywords: ["Ace of Spades dedicated server","BattleSpades server","Battle Builder server","Ace of Spades 1.x server","voxel FPS server"]
---

# BattleSpades dedicated server

> BattleSpades Beta 0.1: the open-source, clean-room Ace of Spades dedicated server with authoritative physics, VXL maps, bots, and eleven game modes.

BattleSpades is a from-scratch dedicated server for the Ace of Spades 1.x Battle Builder protocol. It reconnects the original game clients to a modern, inspectable server core without pretending that network compatibility alone is enough: movement, combat, building, entities, objectives, and world mutation all have to feel correct.

![Ace of Spades engineer studying a blueprint beside a block-built desert construction site](https://www.aosplay.net/game/ui/ace-of-spades-battle-builder-construction.jpg)

_Battle Builder is a shooter and construction sandbox at the same time; the server has to understand both halves._

## At a glance

| Value | Meaning |
| --- | --- |
| BETA 0.2 | current release (0.2.1-beta.8) |
| 60 Hz | authoritative simulation |
| 11 | game modes |
| 6 | portable server builds |

## A real server, not a packet relay

_The aim is a complete and hackable server that behaves like the original authority expected by the retail client._

BattleSpades accepts the stock Steam client, the non-Steam client, and the new revival client. Connection compatibility is only the first layer. The server re-simulates players, resolves combat, owns the voxel world, advances game modes, and distributes state back to every connected peer.

That server-authoritative model matters because it creates one shared truth. A player may predict movement locally so controls feel immediate, but the fixed-rate server remains responsible for the result. The implementation was calibrated against the compiled client instead of relying on remembered behavior or approximate constants.

> **Current status — Beta 0.1.** Released on 21 September 2026 and running every official server in Europe and the USA. Core netcode and gameplay work with real clients; the remaining retail differences are listed on the implementation status page.

## What already works

The current server covers the complete minute-to-minute combat loop: walking, sprinting, crouching, wading, climbing, jumping, hitscan weapons, headshots, grenades, damage, kill feeds, graves, timed respawns, ammo crates, and health crates. Block placement and destruction operate on the exact aimed cell, with debris and structure collapse propagated to clients.

Eleven modes give those systems a purpose: the ten retail Match Lobby modes (Team Deathmatch, Capture the Flag, Classic CTF, Zombie, VIP, Multi-Hill, Territory Control, Diamond Mine, Demolition, and Occupation) plus Arena. Each has its own rules and objective flow.

- Full VXL map streaming with CRC validation
- BlockLine construction, spade digging, bullet damage, and flood-fill collapse
- Grenade fuse, bounce, line-of-sight blast damage, and 3×3×3 terrain destruction
- Bots that run, flank, take cover, and play every mode's objectives
- A Map Creator host for building and publishing custom maps
- Player and administrator commands, team management, and plugin hooks

## Readable logic with compiled hot paths

BattleSpades splits responsibilities deliberately. Python holds the game rules, modes, players, commands, plugins, and orchestration where maintainers need clarity. Cython handles physics, VXL and KV6 operations, byte-level packet work, and vector math where predictable performance matters.

The ENet transport uses the same protocol family as the original client: protocol version 168, a single channel, and range-coder compression. Networking and gameplay drains have explicit budgets so a burst of packets, world mutations, entity work, or plugin activity cannot quietly consume the entire tick.

- aoslib: compiled physics, VXL world operations, and KV6 voxel models
- shared: packet readers, writers, protocol types, and vector math
- server: 60 Hz loop, connections, players, combat, and world management
- modes: isolated rules for every retail mode plus Arena
- plugins and commands: customization without rewriting the simulation core

## Measured against the client

Reverse engineering becomes useful only when findings are repeatable. BattleSpades keeps captured behavior, packet research, deterministic scenarios, and regression tests close to the implementation. Movement replay gates compare client and server trajectories over thousands of frames, with the accepted mean position delta in the millimetre range.

Capacity validation is executable rather than aspirational. The current Windows and Python 3.12 baseline sustains the 50-player gate at roughly 60 Hz with sub-5 ms tick p99. That does not promise identical results on every host, but it provides a published baseline that future changes must continue to meet.

> **Why this matters — Parity is a maintained property.** A server can compile and still feel wrong. Regression fixtures make movement, packet ordering, block edits, bots, and modes reviewable engineering targets.

## Run it or build it

Portable Beta 0.1 archives (0.1.0-beta.1) package the launcher, native runtime, editable configuration, maps, prefabs, plugins, and license notices. They are published on GitHub Releases for Windows, Linux, and macOS on x86-64 and ARM64, with SHA-256 checksums, so hosting needs no system Python installation or compiler.

Developers can build from source with Python 3.10 through 3.12 and a C/C++ compiler. The repository includes installation scripts, release checks, operator documentation, protocol notes, and contribution guidance. Start with the hosting guide if the goal is a game night; start with the repository if the goal is changing the battlefield.

## Frequently asked questions

### Does BattleSpades work with the original Ace of Spades client?

Yes. It is designed for the original Ace of Spades 1.x Battle Builder protocol and is tested with the stock Steam client, the non-Steam client, and the revival client.

### Is BattleSpades a fork of an old dedicated server?

No. It is a clean-room, from-scratch implementation built from observed client behavior, packet research, and repeatable verification.

### Can I add custom modes or server behavior?

The readable Python game layer, mode modules, commands, and plugin hooks are intended to make experimentation possible without forcing every change into compiled physics code.

### How many players can it host?

The default configuration uses 24 player slots. An executable performance gate validates a 50-player workload at approximately 60 Hz with sub-5 ms tick p99 on the documented Windows baseline.

## Related reading

- [How to host a BattleSpades server](https://www.aosplay.net/host-a-server) ([Markdown](https://www.aosplay.net/docs/host-a-server.md))
- [Inside the Ace of Spades protocol 168](https://www.aosplay.net/protocol-168) ([Markdown](https://www.aosplay.net/docs/protocol-168.md))
- [The Ace of Spades revival client](https://www.aosplay.net/revival-client) ([Markdown](https://www.aosplay.net/docs/revival-client.md))

---

Source: [BattleSpades dedicated server](https://www.aosplay.net/dedicated-server)  
Maintained by Ace of Spades Revival contributors.
