Server Configuration
config/servers.js exports an array of server objects — one per DayZ server
you manage. Every command and feature is configured per-server, so you can run
many servers from one bot. Copy servers.example.js to servers.js to start.
module.exports = [
{ /* server 1 */ },
{ /* server 2 */ }
];
When a command accepts a server option, the first entry is the default.
Server data
| Key | Type | What |
|---|---|---|
NAME | string | Display name (shown in command pickers and embeds) |
CFTOOLS_SERVER_API_ID | string | The server's CFTools Server API ID — used by most data commands |
SERVER_IPV4 | string | Public IPv4 — used by /server-info |
SERVER_PORT | number | Game port (e.g. 2302) — used by /server-info |
CFTOOLS_WEBHOOK_CHANNEL_ID | string | Channel that receives CFTools webhook messages (chat/killfeed source) |
CFTOOLS_WEBHOOK_USER_ID | string | The Discord user/webhook id that posts those messages |
[!WARNING] ID. If
SERVER_IPV4/SERVER_PORTare wrong or left at0.0.0.0, the embed comes back empty. Every other CFTools command usesCFTOOLS_SERVER_API_ID.
Command display
| Key | Default | What |
|---|---|---|
STATISTICS_INCLUDE_ZONES_HEATMAP | true | Render the hit-zone heat map in /statistics |
STATISTICS_HIDE_PLAYER_NAME_HISTORY | true | Hide previous names in /statistics |
SERVER_INFO_INCLUDE_MOD_LIST | true | Include the mod list in /server-info |
Live chat feed
Relays Discord messages into the DayZ server. See Features → Chat Feed.
| Key | Default | What |
|---|---|---|
USE_CHAT_FEED | true | Enable the feed |
CHAT_FEED_CHANNEL_IDS | [] | Channels to relay from |
CHAT_FEED_REQUIRED_ROLE_IDS | [] | If set, only these roles are relayed |
CHAT_FEED_USE_DISCORD_PREFIX | true | Prefix in-game messages with a Discord tag |
CHAT_FEED_USE_DISPLAY_NAME | true | Use server display name vs username |
CHAT_FEED_MESSAGE_COOLDOWN | 2.5 | Per-user cooldown (seconds) |
CHAT_FEED_MAX_DISPLAY_NAME_LENGTH | 20 | Truncate long names |
CHAT_FEED_DISCORD_TAGS | array | Role → in-game tag mapping (see below) |
CHAT_FEED_DISCORD_TAGS maps roles to colored tags shown in-game:
CHAT_FEED_DISCORD_TAGS: [
{ roleIds: [ clientConfig.permissions.ownerId ], displayTag: '[OWNER]', color: colors.red },
{ roleIds: clientConfig.permissions.administratorRoleIds, displayTag: '[ADMIN]', color: colors.red },
{ roleIds: clientConfig.permissions.moderatorRoleIds, displayTag: '[MOD]', color: colors.blue },
{ roleIds: [], displayTag: '[SURVIVOR]', enabled: false } // [] matches everyone
]
Teleport locations
| Key | Default | What |
|---|---|---|
USE_TELEPORT_LOCATIONS | true | Enable named (autocomplete) teleport destinations |
TELEPORT_LOCATIONS_FILE_NAME | 'chernarus' | File under config/teleport-locations/<name>.json |
See Features → Teleport.
Watch list
| Key | What |
|---|---|
WATCH_LIST_CHANNEL_ID | Channel for watch-list login notifications |
WATCH_LIST_NOTIFICATION_ROLE_ID | Role pinged when a watched player logs in |
Killfeed
| Key | Default | What |
|---|---|---|
USE_KILL_FEED | true | Enable the delayed killfeed |
KILL_FEED_DELAY | 5 | Delay (minutes) before forwarding a kill |
KILL_FEED_CHANNEL_ID | — | Public channel to forward kills to |
KILL_FEED_MESSAGE_IDENTIFIER | ' got killed by ' | Substring that marks a kill message |
KILL_FEED_REMOVE_IDENTIFIER | false | Strip the identifier from the forwarded text |
Leaderboard
| Key | Default | What |
|---|---|---|
OVERALL_RANKING_STAT | 'KILLS' | Stat used for the OVERALL ranking |
LEADERBOARD_DEFAULT_SORTING_STAT | 'OVERALL' | Default sort in /leaderboard |
LEADERBOARD_PLAYER_LIMIT | 25 | Players shown in /leaderboard |
LEADERBOARD_BLACKLIST | [] | CFTools IDs to exclude |
LEADERBOARD_STATS | array | Stats selectable in /leaderboard |
Available stats: OVERALL, KILLS, KILL_DEATH_RATIO, LONGEST_KILL,
PLAYTIME, LONGEST_SHOT, DEATHS, SUICIDES.
Automatic leaderboard
Posts a leaderboard to a channel on boot, then on an interval. See Features → Leaderboards.
| Key | Default | What |
|---|---|---|
AUTO_LB_ENABLED | true | Enable automatic posting |
AUTO_LB_CHANNEL_ID | — | Channel to post into |
AUTO_LB_INTERVAL_IN_MINUTES | 60 | Repost interval |
AUTO_LB_REMOVE_OLD_MESSAGES | true | Clean the bot's old messages first (needs Manage Messages) |
AUTO_LB_PLAYER_LIMIT | 100 | Players included |
AUTO_LB_STAT | 'OVERALL' | Stat to rank by |
Citadel storefront relay
Applies priority-queue / whitelist grants when players buy perks on a Citadel storefront. Full details in Storefront Relay.
| Key | Default | What |
|---|---|---|
CITADEL_RELAY_ENABLED | false | Enable the relay client for this server |
CITADEL_API_URL | https://api.citadel-hub.com | Citadel API base |
CITADEL_SERVICE_ID | — | ExternalService id (Citadel dashboard → Relays) |
CITADEL_API_KEY | — | The csk_ key (shown once) |
Next: Commands.