Status: on pause for now. PRs welcome.
- HTTP handlers (some static, some dynamic)
- WebSocket RPC handlers (static + a few dynamic processors)
- SQLiteCpp
- Protobuf models
- vcpkg manifest dependencies (repo includes
vcpkgas a submodule)
This is currently set up primarily for Windows (can build for linux, check prod branch):
- Windows 10+ (targeted)
- Visual Studio / MSVC toolchain (or clang-cl) https://visualstudio.microsoft.com/downloads/?q=build+tools#build-tools-for-visual-studio-2026
Dependency management is via vcpkg (manifest mode). You need to build with the vcpkg toolchain file enabled.
You can follow this tutorial if you want (make sure to read about the configuration first) NOTE: as of 7th May 2026 you no longer need a steam api key or an auth.json. you only need an auth.json if you wish to use vivox voice and chat backend. https://youtu.be/j1DOWg2PbLA
git clone https://github.com/astroval0/pragmabackend cd pragmabackend git submodule update --init --recursive
If you'd like to set up Vivox-Voice chat server (Spectre's text and voice chat backend)
You'll need to make an auth.json at the repo root and fill it out with the respective values.
https://unity.com/products/vivox
{
"vivox": {
"server": "",
"domain": "",
"issuer": "",
"key": ""
}
}Do not commit
auth.jsonlol.
In Settings -> Build, Execution, Deployment -> CMake, set:
- Generator: Ninja (default is fine)
- CMake options: set the vcpkg toolchain file, e.g.
-
- if your absolute path is
E:\dev\spectre\srv\pragmabackendthen your toolchain file path is E:\dev\spectre\srv\pragmabackend\vcpkg\scripts\buildsystems\vcpkg.cmake
- if your absolute path is
-DCMAKE_TOOLCHAIN_FILE="<path>"
Logs are written to logs/app.log.
By default the server starts three listeners:
- Game HTTP:
http://127.0.0.1:8081 - Social HTTP:
http://127.0.0.1:8082 - WebSocket:
ws://127.0.0.1:80
Any client needs to point at the backend address:
http://127.0.0.1:8081(game)http://127.0.0.1:8082(social)
This project is meant for local, but you can forward it publicly.
PRs welcome. If you contribute:
- keep changes focused (one feature/fix per PR)
- don't commit secrets (
auth.json, tokens, private keys) - include a quick note on how to test the change locally
CMake can't find packages
- You probably forgot the vcpkg toolchain file. Set
-DCMAKE_TOOLCHAIN_FILE="<your absolute path plus \vcpkg\scripts\buildsystems\vcpkg.cmake > ". -
- if your absolute path is
E:\dev\spectre\srv\pragmabackendthen your toolchain file path isE:\dev\spectre\srv\pragmabackend\vcpkg\scripts\buildsystems\vcpkg.cmake
- if your absolute path is
failed to open InventoryStore file
- you didn't follow the instructions properly so it couldn't build fully.
Port already in use
- Change the port defines and rebuild. Make sure whatever client you use is updated too.
failed to read PlayerConfigData in SavePlayerDataProcessor
- Press WIN+R -> type in
%localappdata%-> press enter -> delete theSpectrefolder.
You may download a public build of the backend from the latest release. This will contain a build for windows, linux and a docker container image. For windows or linux, simply extract the .zip and run the executable named pragmabackend inside. For the docker container, run docker image load -i pragmabackend-docker.tar and then docker run -d -p 80:80 -p 8081:8081 -p 8082:8082 pragmabackend:latest