Prerequisites
Before you install Citadel Bot, get these four things in place.
1. Node.js 18+
The bot runs on Node.js 18 or newer (tested on Node 24). Check with:
node --version
If you'll deploy with Docker or Coolify instead of running it directly, you don't need Node locally — see Installation.
2. A Discord application + bot
- Go to the Discord Developer Portal and New Application.
- Open Bot → copy the Bot Token (this is
DISCORD_BOT_TOKEN). - On the application's General Information page, copy the Application ID (this is
CLIENT_ID). - Under Bot → Privileged Gateway Intents, enable Message Content Intent.
[!WARNING] feed; if it's off, Discord rejects the login with a "disallowed intents" error and the bot won't start.
3. A CFTools application + server grant
Citadel Bot authenticates against the CFTools Data API with an Application ID and a Secret.
- In the CFTools developer portal, open (or create) your application.
- Copy the Application ID — a short hex string like
6a1e58a181e3aa85f4a5e6b7(not the base64 secret). - Copy the Secret — a base64 value ending in
=. - Grant the application access to each server you'll manage. Without the grant, data calls fail with a "grant required" error.
[!NOTE] application and the same
CFTOOLS_API_APPLICATION_ID/CFTOOLS_API_SECRETare reused for every customer bot. Each customer just grants Citadel's application access to their server and provides their Server API ID — they never create their own CFTools app.
4. Your Server API ID (and IP/port)
Each DayZ server has a Server API ID in CFTools:
CFTools app → your server → Manage → Settings → API Key → Server ID
You'll also want the server's public IPv4 and game port (e.g. 2302). Most
commands use the Server API ID, but /server-info queries by IP/port — see
Server Configuration.
[!TIP] storefront relay) may require a CFTools premium plan on the server.
Checklist
- Node.js 18+ (or Docker/Coolify)
-
DISCORD_BOT_TOKEN+CLIENT_ID, Message Content Intent enabled -
CFTOOLS_API_APPLICATION_ID+CFTOOLS_API_SECRET - CFTools application granted on each server
-
CFTOOLS_SERVER_API_ID(+ IP/port) per server
Next: Installation.