---
title: "BattleSpades dedicated server"
description: "Explore BattleSpades, the playable clean-room Ace of Spades server with authoritative physics, VXL maps, bots, and six game modes."
canonical: "https://aosplay.net/dedicated-server"
markdown: "https://aosplay.net/docs/dedicated-server.md"
last_updated: "2026-07-16"
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

> Explore BattleSpades, the playable clean-room Ace of Spades server with authoritative physics, VXL maps, bots, and six 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://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 |
| --- | --- |
| 866 | unit and regression tests |
| 60 Hz | authoritative simulation |
| <5 ms | 50-player tick p99 gate |
| 0.0.2 | portable alpha series |

## 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 open revival client build. 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 — Playable alpha.** Core netcode and gameplay are working with real clients. The project is usable today while the remaining packet surface and presentation details continue to be recovered.

## 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.

Six modes give those systems a purpose rather than leaving them as disconnected demonstrations. Team Deathmatch, Capture the Flag, Classic CTF, Arena, gangster VIP, and Zombie infection each have their own runtime 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
- Objective-aware bots with voxel navigation and class actions
- 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 TDM, CTF, Arena, VIP, and Zombie play
- 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 alpha archives package the launcher, native runtime, editable configuration, maps, prefabs, plugins, and license notices. Builds are prepared for Windows, Linux, and macOS on x86-64 and ARM64, so hosting does not require a system Python installation or local 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 open revival client build.

### 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://aosplay.net/host-a-server) ([Markdown](https://aosplay.net/docs/host-a-server.md))
- [Inside the Ace of Spades protocol 168](https://aosplay.net/protocol-168) ([Markdown](https://aosplay.net/docs/protocol-168.md))
- [The open Ace of Spades revival client](https://aosplay.net/revival-client) ([Markdown](https://aosplay.net/docs/revival-client.md))

---

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