Citadel Cloud
Documentation

Getting Started with Citadel Cloud

Connect your DayZ server in minutes. Follow these steps to set up real-time monitoring, player management, and automated protection.

Quick Start

1

Create a Team

Sign in with your Steam account and create a team. Teams are the top-level container for your servers, members, and settings.

1. Go to citadelcloud.com and sign in with Steam
2. Click "Create Team" and enter a name
3. Your team is ready — you're the owner
2

Add a Server

Register your DayZ server with your team. You'll receive an API key that the plugin uses to authenticate.

1. Navigate to your team → Servers
2. Click "Register Server"
3. Enter your server name, IP, and ports
4. Copy the generated API key (shown only once)
3

Install the Plugin

Download and install the Citadel Cloud plugin on your DayZ server. The plugin connects via WebSocket and streams data in real-time.

1. Download CitadelPlugin from the releases page
2. Extract to your DayZ server's plugins directory
3. Edit the plugin config (see below)
4. Restart your DayZ server
4

Connect & Monitor

Once the plugin starts, it will establish a WebSocket connection to Citadel Cloud. Your dashboard will show live data within seconds.

Plugin Configuration

The plugin configuration file should be placed in your DayZ server's plugin directory. Here's the format:

CitadelPlugin.cfg
{
  "apiKey": "your-api-key-here",
  "cloudUrl": "wss://api.citadelcloud.com/ws/plugin",
  "metricsInterval": 15,
  "logEvents": true,
  "playerTracking": true,
  "killTracking": true,
  "chatTracking": true
}
apiKeyYour server's API key from the dashboard. Required.
cloudUrlWebSocket endpoint. Use the default unless self-hosting.
metricsIntervalHow often to send metrics (seconds). Default: 15.
logEventsStream connection/disconnection events. Default: true.
playerTrackingTrack player positions for the live map. Default: true.
killTrackingTrack kills and report to the cloud. Default: true.
chatTrackingStream chat messages to the cloud. Default: true.

API Reference

All API endpoints are under /api/v1. Authentication is via Bearer token in the Authorization header.

Authentication

GET/auth/steam
GET/auth/me
POST/auth/refresh

Teams

POST/teams
GET/teams
GET/teams/:teamId
PATCH/teams/:teamId
DELETE/teams/:teamId

Servers

GET/teams/:teamId/servers
POST/teams/:teamId/servers
PATCH/teams/:teamId/servers/:serverId
DELETE/teams/:teamId/servers/:serverId

Players

GET/teams/:teamId/players
GET/teams/:teamId/players/:playerId
GET/teams/:teamId/servers/:serverId/players/online

Bans

GET/teams/:teamId/ban-lists
POST/teams/:teamId/ban-lists/:listId/bans
DELETE/teams/:teamId/ban-lists/:listId/bans/:banId

Webhooks

GET/teams/:teamId/webhooks
POST/teams/:teamId/webhooks
POST/teams/:teamId/webhooks/:id/test

Webhooks

Webhooks send HTTP POST requests to your URL when events occur. Supports standard JSON and Discord webhook format.

Event Types

player_connectA player joined the server
player_disconnectA player left the server
chatA chat message was sent
killA player kill occurred
server_statusServer went online or offline
ban_createdA new ban was created
ban_revokedA ban was revoked

Payload Format

Standard Webhook Payload
{
  "event": "player_connect",
  "timestamp": "2026-03-01T12:00:00.000Z",
  "server": {
    "id": "...",
    "name": "My DayZ Server"
  },
  "data": {
    "steamId": "76561198...",
    "playerName": "Survivor",
    "ipAddress": "..."
  }
}

Enable "Discord webhook format" when creating a webhook to send Discord-compatible embeds instead of raw JSON.

Need help?

Join our Discord community for support, feature requests, and updates.

Get Started