Skip to main content

Configuration Overview

The tracker system is configured via platform/r5rdev_config.json. Use the Control Panel Config tab to generate/download the JSON and push updates.
  • Convars can also be optionally configured through platform/cfg/game.cfg

First time install

In order to activate tracker, you will need to download your config json file and place it into /platform/ folder of your R5Reloaded install. Once this done, if tracker_ws_enable is enabled, you can manage this config directly from the web panel. Any values within the ‘settings’ and ‘restricted’ categories will take effect immediately without needing to restart the entire server OR reload the map, when reloaded from the web panel, or alternatively in the servers console on the host machine with tracker_reload_config
Tracker-related settings previously placed in playlists_r5_patch.txt have been deprecated. Migrate any remaining values into the Config tab

Game Config (game.cfg)

Add these ConVars to your platform/cfg/game.cfg file to configure the WebSocket interface and tracker behavior.

WebSocket Settings

A limited set of convars that may be desirable to change will be overidden by the setting in r5rdev_config.json.
ConVarDefaultDescription
tracker_ws_enable1Enable WebSocket remote command interface (0 = disabled, 1 = enabled).
tracker_ws_port9705WebSocket server port.
tracker_ws_debug0Enable WebSocket debug logging.
tracker_ws_use_ssl1Use SSL for WebSocket connection.
tracker_ws_lax_ssl0Lax SSL certificate validation (0 = strict, 1 = lax). See Getting Started.
tracker_ws_buffer_size261120WebSocket buffer size in bytes (Startup only).
tracker_ws_max_retries3Maximum number of connection retries.
tracker_ws_retry_time5.0Time in seconds between retries.
tracker_ws_time_out125Connection timeout in seconds.
tracker_ws_keep_alive60Keep-alive interval in seconds.
tracker_ws_throttle_rate0.10Message processing throttle rate (seconds).
tracker_ws_hostnamer5r.devWebSocket server hostname.
tracker_ws_tls_version3TLS Version (0: 1.0, 1: 1.1, 2: 1.2, 3: 1.3).
tracker_ws_relay_chat0Relays chat messages to qualified clients via web panel.
tracker_ws_reconnect_on_change1Reconnect to remote socket when qualified convars change.
tracker_ws_reconnect_on_newgame0Reconnect the socket for each new game.
tracker_ws_ca_bundle_fileSectigobundle.pemCertificate bundle file name.

Playlist Patch (Deprecated)

Tracker-related entries in playlists_r5_patch.txt have been removed. Configure these settings in the Control Panel Config tab and apply/download r5rdev_config.json instead.
If you keep settings in the playlists file for other purposes, note that tracker settings in it are ignored.

Config JSON (r5rdev_config.json)

The platform/r5rdev_config.json file is the primary configuration file for the tracker plugin. It contains your API credentials, webhook settings, and server options.
You can edit this file manually or configure it visually and download it from the Host Control Panel Config Tab. This page also allows you to “Update Config” remotely if your server is connected via WebSockets.

Root Settings

KeyTypeDescription
apikeyStringRequired. Your Host API Key from the Control Panel. Without this, data will be rejected and rate limits will be lower.
identifierStringUnique ID for this server instance (e.g., main_server, server2). Used for WebSocket communication.
logfolderStringFolder name within platform/ to store logs (e.g., tracker_logs). Blocked paths: scripts, resource, maps, logs, cfg, mods.

Webhooks

Configure Discord webhooks for server events.
"webhooks": {
    "PLAYERS_WEBHOOK": "https://discord.com/api/webhooks/...",
    "MATCHES_WEBHOOK": "https://discord.com/api/webhooks/..."
}
KeyDescription
PLAYERS_WEBHOOKURL for player join/leave notifications.
MATCHES_WEBHOOKURL for Match Recap notifications.

Server Settings

Control low-level server behavior and logging.
The Control Panel config (r5rdev_config.json) can set and override a limited set of these ConVars for convenience. ConVars marked with * are applied from r5rdev_config.json when present.
"server": {
    "MAX_LOGFILE_DIR_SIZE": 50,
    "AUTO_DELETE_STATLOGS": false,
    "USE_WEB_SOCKETS": true
    ...
}
KeyTypeDescription
MAX_LOGFILE_DIR_SIZEIntMax size of the log directory in MB (Recommended: 20-50).
AUTO_DELETE_STATLOGSBoolAutomatically delete logs at the end of a round.
DELETE_ALL_LOGSBoolDelete ALL logs after a match round.
CVAR_MAX_BUFFERIntLog event accumulator size (Default: 50000). Keep high to prevent disk I/O lag.
USE_WEB_SOCKETS*BoolEnable WebSocket features (Control Panel commands, live data). Uses SSL.
LAX_SSL*BoolAllow self-signed/invalid certs. If false (recommended), Sectigobundle.pem must be in platform/.
RELAY_CHAT_MESSAGES*BoolRelay in-game chat to the Control Panel; if disabled, Watch Chat will not show messages.
RECONNECT_ON_NEWGAME*BoolReconnect the socket on every map load. Requires USE_WEB_SOCKETS.
TRACKER_ENABLEDBoolRuns the tracker in scripts; disable if you only want Control Panel server management.
TRACKER_ENCRYPTIONBoolEncrypt outbound tracker data; disable for a small performance gain.
TRACKER_SHIPSTATSBoolPost matches to the tracker system (enabled for normal tracker usage).
USE_GLOBAL_STATSBoolAllow inbound/outbound live stat data (start/end of match or when needed for stat queries).
TRACKER_MAX_WAITFloatMax seconds to wait for batch stat loading (Default: 7.0). Lower values may miss some players still connecting/loading.
EA_VERIFY_SERVERBoolAllow EA account verification for servers registered as EA identification servers.

Game Settings

Gameplay and administration settings.
"settings": {
    "ADMINS": "100123456789,100987654321",
    "ENABLE_CHATBOT": true
    ...
}
KeyTypeDescription
ADMINSStringComma-separated list of Admin UIDs (or Name-UID format).
ENABLE_CHATBOTBoolEnables the in-game chatbot.
CHATBOT_PREFIXStringPrefix for chatbot messages (e.g., [SERVER]).
INTERVAL_MESSAGESStringPipe-separated list of time-based messages. Supports events like start, end, join, or seconds. Example: start=Match Started!|300=5 minutes passed!.
LOOP_MESSAGESStringPipe-separated list of messages to cycle through.
LOOP_MESSAGES_INTERVALIntInterval in seconds (multiple of 10) to cycle LOOP_MESSAGES.
OPT_IN_GLOBAL_MUTEBoolApply global mutes to players who have opted in network-wide.

Interval Messages

Use INTERVAL_MESSAGES to send timed and event-based chat notices. The value is a pipe-separated list of key=value pairs. If you need to use | or = in a value, escape them with \. Example: join=Welcome #player! Your ELO \= #stat_score
  • Keys: start, numeric seconds (e.g., 300), end, and join.
  • For join messages, placeholders resolve per player when the message is sent: #player, #uid, #ping, #stat_<statKey> (uses tracker stats), #setting_<settingKey> (uses the player’s current tracker setting value).
  • Example:
start=The match has started!|300=Remember to take breaks!|600=Stay hydrated!|end=The match is over!|join=Welcome to the server #player. Your current elo is #stat_score

Loop Messages

Use LOOP_MESSAGES with LOOP_MESSAGES_INTERVAL to rotate chat announcements on a fixed cadence.
  • Provide a pipe-separated list of messages (e.g., Welcome to the server!\|Stats by r5r.dev!).
  • Set LOOP_MESSAGES_INTERVAL to a multiple of 10 (seconds) for how often to send the next entry.

Auto Rotation

Configure auto_rotate_list in playlists_r5_patch.txt to cycle map/playlist/gamemode combinations. This works with or without the tracker and has inline documentation in the playlists file.
  • Format: comma-separated entries of map playlist gamemode minplayers maxplayers (gamemode optional but recommended; minplayers optional, defaults to NO_MIN; maxplayers optional, defaults to no cap).
  • Partials are supported for map/playlist/gamemode matches. Each combination should be unique; invalid combos assert at startup with details.
  • If a map is due but player count is below minplayers, that entry is skipped. Likewise, if count is over maxplayers, it will also be skipped.
  • Leave blank to disable auto rotation.
  • Example: auto_rotate_list "comp 1v1 fs_dm, holiday winter winter 8, desert scenarios fs_dm, aque instagib fs_dm"

Restricted / Private Server Settings

These keys live under private in r5rdev_config.json and gate who can join when restricted mode is enabled.
KeyTypeDescription
RESTRICTED_SERVERBoolEnables restricted/private server mode.
RESTRICTED_WHITELIST_ONLYBoolOnly allow whitelisted players; kicks others.
RESTRICTED_PLAYER_WHITELISTStringComma-separated whitelist of player IDs.
RESTRICTED_JOIN_MESSAGEStringMessage shown to players who meet restricted server requirements.
RESTRICTED_WHITELIST_MESSAGEStringMessage shown to whitelisted players on join.
RESTRICTED_ADMIN_MESSAGEStringMessage shown to admins on join.
RESTRICTED_GAMESPLAYEDIntMinimum games played required to join (requires USE_GLOBAL_STATS).
RESTRICTED_PLAYTIMEIntMinimum playtime (seconds) required to join (requires USE_GLOBAL_STATS).
RESTRICTED_RANKIntMinimum leaderboard rank (elo) required to join (requires USE_GLOBAL_STATS).
RESTRICTED_KILLSIntMinimum kills required to join (requires USE_GLOBAL_STATS).
RESTRICTED_KDFloatMinimum KD ratio required to join (requires USE_GLOBAL_STATS).
RESTRICTED_KICK_LOGBoolLog/print when a player is kicked with the reason (verbose; useful for debugging restricted kicks).