# API & Integration
Source: https://docs.r5r.dev/hosting/api-integration
Understanding the Host API system, identifiers, and data flow.
# Host API System
The R5R Tracker uses a secure API system to authenticate game servers and attribute stats to the correct Verified Host.
## Host API Key
Your **Host API Key** is the master credential that links your game servers to your verified account.
* **Generation**: You can generate or regenerate your key in the [Control Panel > Settings](https://r5r.dev/cp/?tab=settings).
* **Usage**: This key must be placed in your server's `platform/r5rdev_config.json` file.
* **Security**: **Never share this key.** If compromised, anyone can upload fake stats to your servers.
```json theme={null}
{
"apikey": "YOUR_GENERATED_KEY_HERE"
}
```
## Server Identifiers
To distinguish between multiple servers running under the same host account, the system uses **Server Identifiers**.
### 1. Registering Identifiers
In the [Control Panel](https://r5r.dev/cp), go to the [**Servers**](https://r5r.dev/cp/?tab=servers) tab. Here you can define identifiers for your instances (e.g., `na-west-1`, `eu-central-pro`, `1v1-arena`).
### 2. Configuring the Server
On your game server, you must set the `identifier` config setting to match one of your registered identifiers. This allows the tracker to know exactly *which* of your servers is reporting data. This is done for you automatically in the [Config](https://r5r.dev/cp/?tab=config) tab.
## Data Endpoints
The tracker system primarily communicates with two endpoints:
### Player Stats Ingest
* **Endpoint**: `/api/stats8.php`
* **Function**: Receives real-time player statistics (kills, damage, weapon usage) at the end of rounds or matches.
* **Auth**: Requires valid `HOST_API_KEY` and Verified Host status.
### Match Logs Ingest
* **Endpoint**: `/api/tracker.php`
* **Function**: Uploads compressed match logs for archival and replay analysis.
* **Auth**: IP Whitelisted or Key Authenticated.
## Discord Webhooks
If enabled, your server can send events to a Discord Webhook.
* **Endpoint**: `/api/playercount.php`
* **Configuration**: Set `stats_discord_webhook_player_count "1"` in `playlists_r5_patch.txt`.
* **Behavior**: Sends "Player Joined", "Player Left" events to your configured webhook URL.
* `playercount` will be deprecated in a future release, as it verbose for high traffic servers via curl post. This functionality will be moved to websockets under discord hooks and available in a new suite of configurable discord based webhook features.
* **Endpoint**: `/api/endmatch.php`
* **Configuration**: Set `stats_discord_webhook_matches_enabled "1"` in `playlists_r5_patch.txt`.
* **Behavior**: Sends a short match recap to a discord channel:\
\
Example:\
**SERVER: \[NA] 1v1s**
> [Match Ended](https://r5r.dev/lookup?MatchID=2201168879311273582) `CYPHER101a` won with: `24` kills & `6126` damage.
## Private Tracker Discord API
A private Discord command set is available for Verified Hosts at their discretion. Access is granted in the host-only channel at [discord.com/channels/1182006089177387141/1193142143070523504](https://discord.com/channels/1182006089177387141/1193142143070523504). Use it for quick lookups and moderation.
* `.names {oid|playername}`: Lists all names a player has used across all seasons (works with OID or last-known name when OID is matched).
* `.oid {playername}`: Returns OID(s) for the provided name (may return multiple on partial matches by season).
* `.isbanned {oid}`: Indicates if the player is globally banned on the R5R network.
* `.flags {oid}`: Shows counts for invalidated stats and whitelisted flags.
* `.flaginfo {oid}`: Lists all processed flags with match ID and reason.
* `.whitelists {oid}`: Lists all flags that were skipped for the player.
* `.lastgames {oid}`: Returns the last 5 match IDs for the player.
* `.find {name}`: Finds OID(s) by exact name match across all seasons.
* `.ismuted {oid}`: Shows if the player is globally text-muted on the tracker network (host opt-in required).
* `.readonly`: Lists stats registered as read-only in the CMS backend (with data types).
* `.set {oid} {read_only statname} {value}`: Helper-only. Sets a read-only stat by statname/value; value must match the stat’s data type.
* `.whois {oid}`: Returns current EA endpoint data for the account.
* `.whoisname {oid}`: Returns current EA endpoint data by current username.
* `.name {oid}`: Returns the player’s last name for the current season.
* `.played {oid|current_name|old_alias} {season_number}`: Lists seasons the player has played (or checks a specific season when provided).
# CC Commands
Source: https://docs.r5r.dev/hosting/cc-commands
Reference for Client Commands (CC) for server administration and interaction.
# Client Commands (CC)
Client Commands (CC) allow admins and players to interact with the server directly from the in-game console or chat. This system is powerful for managing matches, players, and server settings on the fly.
## Enabling CC Commands
CC commands do not require the tracker plugin, but tracker does extend them. CC commands are enabled via `cc_administration "1"` set in `playlists_r5_patch.txt` (enabled by default). Admin access is configured in the [Control Panel Config tab](https://r5r.dev/cp/?tab=config) under `settings.ADMINS` (or directly in `r5rdev_config.json`). Use comma-separated UIDs or `Name-UID` pairs.
* **Required setting**: `cc_administration "1"` in `playlists_r5_patch.txt` (still needed to enable CC).
* **Primary (recommended)**: `settings.ADMINS` in the Config tab / `r5rdev_config.json`.
* **Legacy (non-tracker fallback)**: `admins_list` in `playlists_r5_patch.txt`. This is deprecated and overridden by the Config tab.
Tracker-related `playlists_r5_patch.txt` settings are deprecated. Only keep `cc_administration` here; move admin lists and other tracker values into the Config tab and redeploy `r5rdev_config.json`.
## General Commands
| Command | Usage | Description |
| :------ | :-------- | :--------------------------------------------------------------- |
| `help` | `cc help` | Prints the built-in CC help summary in chat with usage examples. |
## Administration Commands
These commands are prefixed with `cc` and require admin privileges.
See [**usage**](https://docs.r5r.dev/hosting/cc-commands#mute-usage-and-timestrings) below for more context about using timestrings and -reason args in certain commands
### Moderation
`kicksay`, `bansay` are depecated. You can now append -say to the command to enable broadcasting. Example: `cc kick r5mkos -r "Bad boy" -say`
| Command | Usage | Description |
| :---------------------------- | :-------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `kick` | `cc kick [name\|oid] [-reason "[reason]"] [-say]` | Kicks a player from the server. Optional -say argument broadcasts reason |
| `ban` | `cc ban [name\|oid] [-reason "[reason]"] [-say]` | Bans a player (IP\|OID\|Handle) from the server. |
| `banid` | `cc banid [oid] [-reason "[reason]"]` | Bans an OID (offline OK) and logs an optional reason. |
| `unban` | `cc unban [oid]` | Removes a ban by OID. |
| `timeout` | `cc timeout [name\|oid] [true\|false] [-reason "[reason]"] [timestring] [-say] [-motd]` | Applies or clears a timeout with an optional reason; supports mixed-order timestrings. Use -say to broadcast. Use -motd to display Message Of The Day to player. |
| `gettimeout` | `cc gettimeout [name\|oid]` | Displays timeout details for a player/UID. |
| `mute` \| `gag` | `cc mute [name\|oid] [-r\|-reason "[reason]"] [timestring] [-say]` | Mutes a player's text chat for a specified timestring (supports mixed-order units). |
| `unmute` \| `ungag` | `cc unmute [name\|oid] [-r\|-reason "[reason]"]` | Unmutes or ungags a player and can log a reason. |
| `is_muted` \| `is_gagged` | `cc is_muted [name\|oid]` | Checks if a player is currently muted. |
| `mute_reason` \| `gag_reason` | `cc mute_reason [name\|oid]` | Returns the stored mute/gag reason for a player (supports offline UID lookup). |
| `unmute_time` \| `ungag_time` | `cc unmute_time [name\|oid]` | Shows when a player's mute/gag expires (human-readable). |
| `restricted` | `cc restricted [0\|1\|false\|true]` | `1` enables restricted server mode, `0` disables it. Configure thresholds in the Config tab. |
#### Mute usage and timestrings
* Syntax: `cc mute [name|oid] [-r|-reason "[reason]"] [timestring] [say]`; unmute with `cc unmute [name|oid] [-r|-reason "[reason]"]`.
* Order: only `cc mute [name|oid]` must stay first; all other parts can be mixed.
* Reason flag: use `-r` or `-reason` followed immediately by the reason text; the flag+reason can appear anywhere after the player (also works for `unmute`).
* Say flag: use `-say` to also broadcast moderation action to all players in the server except the target player.
* Timestring: combine any units (years, months, days, hours, minutes/min/mins/minute, seconds/sec/secs/second); units add together and order does not matter.
* Example: `cc mute bob -reason "Bad language" 2 mins 30 seconds`.
* Multi-unit example: `cc mute player1 -r "Spamming" 1 min 2 min 5 seconds` results in three minutes and five seconds.
* Mixed-order example: `cc mute player2 50 secs -r "Potty mouth" 20 sec 5 seconds` is valid.
* `timeout` follows the same timestring rules; use the `[true|false]` flag to apply or clear the timeout before the time/reason args. Example: `cc timeout player1 true -reason "AFK grief" 2 mins 30 secs`; clear with `cc timeout player1 false`.
### Server Management
| Command | Usage | Description |
| :-------------------------------- | :------------------------------------------ | :------------------------------------------------------------------------------ |
| `map` | `cc map [mapname] [playlist] [gamemode]` | Changes map, playlist, and gamemode together. Supports partial matches |
| `nextmap` | `cc nextmap` | Forces the server to rotate to the next map in the playlist. |
| `endround` | `cc endround` | Immediately ends the current round. |
| `startbr` | `cc startbr` | Forces the Battle Royale match to start (skips waiting for players). |
| `afk` | `cc afk [0\|1]` | `1` enables "AFK to Rest", `0` disables it. |
| `kill_banners` | `cc kill_banners` | Removes all banners from the map. |
| `start_banners` | `cc start_banners` | Restarts\|Respawns map banners. |
| `allow_legend_select` | `cc allow_legend_select [0\|1]` | Enables or disables the ability to select legends. |
| `set_legend` | `cc set_legend [index]` | Sets the legend for all players to the specified index. |
| `movement_recorder_playback_rate` | `cc movement_recorder_playback_rate [rate]` | Sets the playback rate for the movement recorder (e.g., `1.0`, `0.5`). |
| `disable_rotate` | `cc disable_rotate [0\|1\|false\|true]` | Disables auto rotate list for manual interaction of loading maps with `cc map`. |
### Scoring & Settings
| Command | Usage | Description |
| :------------- | :----------------------------------------------------- | :----------------------------------------------------------------------------- |
| `score` | `cc score [name\|oid\|*\|current\|season\|difference]` | Shows player score/KD info or displays current/season/difference SBMM weights. |
| `scoreconfig` | `cc scoreconfig [current\|season\|difference] [float]` | Sets SBMM weights or KD difference thresholds. |
| `setting` | `cc setting [key]` | Returns a tracker setting value (tracker only). |
| `fetchsetting` | `cc fetchsetting [name\|oid] [key]` | Returns a specific tracker setting for a player (tracker only). |
### Communication
| Command | Usage | Description |
| :------------------- | :----------------------------------------- | :--------------------------------------------------------------------------------------------- |
| `msg` | `cc msg [name\|oid] "[message]"` | Sends a private server chat message to a player (cannot target self or send empty text). |
| `msgall` | `cc msgall "[message]"` | Sends a server chat message to everyone (truncates if too long). |
| `adminmsg` | `cc adminmsg [name\|oid] "[message]"` | Sends an admin-branded message to one player. |
| `adminmsgall` | `cc adminmsgall "[message]"` | Sends an admin-branded chat message to all players. |
| `sayto` | `cc sayto [name\|oid] [title] [msg] [dur]` | Sends a titled message to a specific player (duration defaults to \~3s if omitted). |
| `sayall` | `cc sayall [title] [msg] [dur]` | Broadcasts a titled message to all clients with a duration (seconds). |
| `show_motd` | `cc show_motd [name\|oid]` | Opens specified player's motd if they do not have it disabled, but bypasses once per day check |
| `addmotd` | `cc addmotd [name\|oid] "[message]"` | Prepends a message to a player's MOTD. |
| `vc` | `cc vc [0\|1]` | Toggles global voice chat (`sv_voiceenable` and `sv_alltalk`). |
| `thumbsup` | `cc thumbsup` | Plays the thumbs-up chat effect for everyone. |
| `msgeffect` | `cc msgeffect [effect_id]` | Sends a specific chat effect by ID. |
| `print_chat_effects` | `cc print_chat_effects` | Developer: prints all available chat effect IDs. |
### Audio
| Command | Usage | Description |
| :------------ | :--------------------------- | :------------------------------------------------ |
| `playself` | `cc playself [audiofile]` | Emits sound from your entity only to you. |
| `playonself` | `cc playonself [audiofile]` | Emits sound from your entity (audible to others). |
| `playall` | `cc playall [audiofile]` | Emits sound to all players. |
| `stopplayall` | `cc stopplayall [audiofile]` | Stops playing sounds for all players. |
### Utility & Debug
| Command | Usage | Description |
| :----------------------- | :--------------------------------------------- | :--------------------------------------------------------------------- |
| `playerinfo` | `cc playerinfo` | Prints aggregated player stats (may truncate if too large). |
| `playerinput` | `cc playerinput [name\|oid]` | Shows a player's current input device (mouse/keyboard vs controller). |
| `input` | `cc input [name\|oid] [0\|1\|mnk\|controller]` | Developer: forces a player's input mode. |
| `listhandles` | `cc listhandles` | Lists player names with their entity handles. |
| `pos` | `cc pos [label]` | Developer: saves a spawn position with the given label. |
| `groups` | `cc groups` | Shows number of 1v1 groups in progress. |
| `groupmap` | `cc groupmap` | Shows number of players in the 1v1 group map. |
| `start_interval_thread` | `cc start_interval_thread` | Starts the interval message thread (tracker). |
| `kill_interval_thread` | `cc kill_interval_thread` | Stops the interval message thread (tracker). |
| `cleanuplogs` | `cc cleanuplogs` | Triggers tracker log cleanup. |
| `reload_config` | `cc reload_config` | Reloads the tracker configuration. |
| `restart_ws` | `cc restart_ws` | Restarts the tracker WebSocket client when connected. |
| `startlog` | `cc startlog` | Developer/tracker: manually start the tracker logger. |
| `stoplog` | `cc stoplog [true\|ship]` | Developer/tracker: stop the tracker logger (optionally mark as ship). |
| `spamupdate` \| `spam` | `cc spamupdate` | Starts periodic update spam messages. |
| `spamstop` \| `stopspam` | `cc spamstop` | Stops periodic update spam messages. |
| `testremote` | `cc testremote` | Developer: test remote persistence callback. |
| `acceptchal` | `cc acceptchal [name\|oid]` | Developer: accepts a challenge for a player. |
| `draw` | `cc draw` | Developer: enables minimap drawing for all players. |
| `disabledraw` | `cc disabledraw` | Developer: disables minimap drawing for all players. |
| `dmg` | `cc dmg [name\|oid] [amount]` | Developer: applies damage to a player. |
| `gamerules` | `cc gamerules` | Developer placeholder for map/playlist swap (no-op stub). |
| `killme` | `cc killme` | Developer: suicides the caller if alive. |
| `addbot` | `cc addbot [name] [team#]` | Add a player bot to the server. Must specify name and team# |
| `playlist` | `cc playlist` | Return information about the current map/playlist/gamemode. |
| `confirm` | `cc confirm` | Required to be entered before certain outcomes that may be undesirable |
## Console Commands ( ConCommand )
These commands are entered directly into the server's console window (not prefixed with `cc`). They control the tracker system and WebSocket connection.
### Tracker System
| Command | Description |
| :---------------------- | :---------------------------------------------- |
| `tracker_reload_config` | Reloads the r5r.dev tracker configuration file. |
| `tracker_shutdown` | Shuts down the r5r.dev tracker systems. |
### WebSocket Connection
| Command | Description |
| :--------------------- | :---------------------------------------------------------------------------- |
| `tracker_ws_reconnect` | Restarts the WebSocket connection to the remote server. |
| `tracker_ws_shutdown` | Shuts down the WebSocket connection to the remote server. |
| `tracker_ws_status` | Displays the current status of the WebSocket connection to the remote server. |
### Command Examples
`sayall` broadcasts a banner with a title, message, and optional duration; `msgall` uses the text chat broadcast channel.
**Kicking a player:**
```bash theme={null}
cc kick BadPlayer "being toxic"
```
**Banning a player and announcing it:**
```bash theme={null}
cc ban Cheater123 "Aimbot detected" -say
```
**Broadcasting a banner message:**
```bash theme={null}
cc sayall "Server Admin" "Restarting in 5 minutes" 10
```
**Broadcasting a chat message:**
```bash theme={null}
cc msgall "Restarting in 5 minutes"
```
**Changing Map (Partial Match):**
```bash theme={null}
cc map desert
// This matches "mp_rr_desertlands_64k_x_64k"
```
## Maps & Modes Reference
### Maps
Partial names can be used with `cc map` for mapnames, playlists, and gamemodes. Updated: Feb 10/2026
| Internal Name | Map Name |
| :------------------------------- | :--------------------------- |
| `mp_rr_box` | Box |
| `mp_rr_canyonlands_staging` | Firing Range |
| `mp_rr_canyonlands_64k_x_64k` | Kings Canyon |
| `mp_rr_canyonlands_mu1` | Kings Canyon (Season 2) |
| `mp_rr_canyonlands_mu1_night` | Kings Canyon After Dark |
| `mp_rr_canyonlands_mu2` | Kings Canyon (Season 5) |
| `mp_rr_canyonlands_mu2_tt` | Kings Canyon (Town Takeover) |
| `mp_rr_canyonlands_mu2_mv` | Kings Canyon (Mirage Voyage) |
| `mp_rr_canyonlands_mu2_ufo` | Kings Canyon (UFO) |
| `mp_rr_desertlands_64k_x_64k` | World's Edge (Season 3) |
| `mp_rr_desertlands_64k_x_64k_nx` | World's Edge After Dark |
| `mp_rr_desertlands_64k_x_64k_tt` | World's Edge (Town Takeover) |
| `mp_rr_desertlands_64k_x_64k_mv` | World's Edge (Mirage Voyage) |
| `mp_rr_desertlands_holiday` | World's Edge (Holiday) |
| `mp_rr_desertlands_mu1` | World's Edge (Season 4) |
| `mp_rr_desertlands_mu1_tt` | World's Edge (Bloodhound TT) |
| `mp_rr_desertlands_mu2` | World's Edge (Season 6) |
| `mp_rr_olympus` | Olympus |
| `mp_rr_olympus_tt` | Olympus (Town Takeover) |
| `mp_rr_party_crasher` | Party Crasher |
| `mp_rr_arena_phase_runner` | Phase Runner |
| `mp_rr_arena_composite` | Drop Off |
| `mp_rr_arena_skygarden` | Sky Garden |
| `mp_rr_aqueduct` | Overflow |
| `mp_rr_arena_empty` | Arena Empty |
| `mp_lobby` | Lobby |
### Playlists
| Internal Name | Playlist Name |
| :------------------------------- | :------------------------------------- |
| `fs_movementrecorder` | Movement Recorder |
| `winterexpress` | Winter Express |
| `custom_ctf` | CTF |
| `fs_prophunt` | PropHunt |
| `fs_duckhunt` | DuckHunt |
| `fs_infected` | Infected |
| `fs_surf` | Surf |
| `fs_dm` | TDM/FFA |
| `fs_realistic_ttv` | Realistic TTV Building |
| `fs_4d` | 4D FFA |
| `fs_9k` | DM Movement PVP |
| `fs_dm_fast_instagib` | Instagib |
| `fs_grapples_n_guns` | Grapples N Guns |
| `fs_scenarios` | Zone Wars |
| `fs_1v1` | 1v1 |
| `fs_vamp_1v1` | 1v1 Vamp |
| `fs_1v1_headshots_only` | 1v1 Headshots Only |
| `fs_lgduels_1v1` | 1v1 LG Duels |
| `fs_movementgym` | FS Movement Gym |
| `fs_ltm_mortalevoshields` | SOLOS EVOS LTM |
| `fs_ltm_armedanddangerous` | TRIOS A\&D LTM |
| `fs_rankupmapmovementpractice` | Rank-up Parkour \[Practice Map] |
| `fs_ithurtsmovementmappractice` | It Hurts Movement Map \[Practice Map] |
| `fs_fallingforever` | Falling Forever \[Practice Map] |
| `fs_doormovementpractice` | Door Map \[Practice Map] |
| `fs_grapplemovementpractice` | Grapple Practice \[Practice Map] |
| `fs_mantlejumppractice` | Mantle Jump Map \[Practice Map] |
| `fs_firstmovementmappractice` | First Movement Map \[Practice Map] |
| `fs_gymmovementmappractice` | Gym Movement Map \[Practice Map] |
| `fs_strafeitmovementmappractice` | Strafe It Movement Map \[Practice Map] |
| `survival` | TRIOS |
| `survival_duos` | DUOS |
| `survival_solos` | SOLOS |
| `survival_firingrange` | Firing Range |
| `survival_training` | Training |
| `survival_dev` | Survival Dev |
| `menufall` | Lobby |
| `dev_default` | Survival Dev |
| `custom_playlist_example` | My custom playlist |
### Game Modes
| Mode ID | Description |
| :-------------------- | :-------------------- |
| `fs_1v1` | 1v1 Arena |
| `fs_dm` | Deathmatch |
| `fs_tdm` | Team Deathmatch |
| `fs_prophunt` | Prop Hunt |
| `fs_duckhunt` | Duck Hunt |
| `survival_solos` | Battle Royale (Solos) |
| `survival_duos` | Battle Royale (Duos) |
| `survival_trios` | Battle Royale (Trios) |
| `fs_surf` | Surf |
| `fs_movementgym` | Movement Gym |
| `fs_infected` | Infected |
| `survival` | Survival (Base) |
| `survival_dev` | Survival (Dev) |
| `custom_ctf` | Capture The Flag |
| `fs_lgduels_1v1` | LG Duels |
| `fs_scenarios` | Scenarios |
| `fs_haloMod_oddball` | Halo Mod (Oddball) |
| `fs_dm_fast_instagib` | Instagib DM |
| `fs_snd` | Search & Destroy |
| `SURVIVAL` | Survival (Legacy) |
| `fs_dm_oddball` | Deathmatch Oddball |
| `fs_fallingforever` | Falling Forever |
# Configuration
Source: https://docs.r5r.dev/hosting/configuration
Reference for server Configuration Variables (ConVars) and config files.
# Configuration Overview
The tracker system is configured via `platform/r5rdev_config.json`. Use the [Control Panel Config tab](https://r5r.dev/cp/?tab=config) 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.
| ConVar | Default | Description |
| :-------------------------------- | :------------------ | :---------------------------------------------------------------------------------------------------------------------- |
| `tracker_ws_enable` | `1` | Enable WebSocket remote command interface (0 = disabled, 1 = enabled). |
| `tracker_ws_port` | `9705` | WebSocket server port. |
| `tracker_ws_debug` | `0` | Enable WebSocket debug logging. |
| `tracker_ws_use_ssl` | `1` | Use SSL for WebSocket connection. |
| `tracker_ws_lax_ssl` | `0` | Lax SSL certificate validation (0 = strict, 1 = lax). See [Getting Started](/hosting/getting-started#ssl-certificates). |
| `tracker_ws_buffer_size` | `261120` | WebSocket buffer size in bytes (Startup only). |
| `tracker_ws_max_retries` | `3` | Maximum number of connection retries. |
| `tracker_ws_retry_time` | `5.0` | Time in seconds between retries. |
| `tracker_ws_time_out` | `125` | Connection timeout in seconds. |
| `tracker_ws_keep_alive` | `60` | Keep-alive interval in seconds. |
| `tracker_ws_throttle_rate` | `0.10` | Message processing throttle rate (seconds). |
| `tracker_ws_hostname` | `r5r.dev` | WebSocket server hostname. |
| `tracker_ws_tls_version` | `3` | TLS Version (0: 1.0, 1: 1.1, 2: 1.2, 3: 1.3). |
| `tracker_ws_relay_chat` | `0` | Relays chat messages to qualified clients via web panel. |
| `tracker_ws_reconnect_on_change` | `1` | Reconnect to remote socket when qualified convars change. |
| `tracker_ws_reconnect_on_newgame` | `0` | Reconnect the socket for each new game. |
| `tracker_ws_ca_bundle_file` | `Sectigobundle.pem` | Certificate 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](https://r5r.dev/cp/?tab=config) 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](https://r5r.dev/cp/?tab=config). This page also allows you to "Update Config" remotely if your server is connected via WebSockets.
### Root Settings
| Key | Type | Description |
| :----------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------- |
| `apikey` | String | **Required**. Your Host API Key from the Control Panel. Without this, data will be rejected and rate limits will be lower. |
| `identifier` | String | Unique ID for this server instance (e.g., `main_server`, `server2`). Used for WebSocket communication. |
| `logfolder` | String | Folder 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.
```json theme={null}
"webhooks": {
"PLAYERS_WEBHOOK": "https://discord.com/api/webhooks/...",
"MATCHES_WEBHOOK": "https://discord.com/api/webhooks/..."
}
```
| Key | Description |
| :---------------- | :--------------------------------------- |
| `PLAYERS_WEBHOOK` | URL for player join/leave notifications. |
| `MATCHES_WEBHOOK` | URL 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.
```json theme={null}
"server": {
"MAX_LOGFILE_DIR_SIZE": 50,
"AUTO_DELETE_STATLOGS": false,
"USE_WEB_SOCKETS": true
...
}
```
| Key | Type | Description |
| :----------------------- | :---- | :---------------------------------------------------------------------------------------------------------------------- |
| `MAX_LOGFILE_DIR_SIZE` | Int | Max size of the log directory in MB (Recommended: 20-50). |
| `AUTO_DELETE_STATLOGS` | Bool | Automatically delete logs at the end of a round. |
| `DELETE_ALL_LOGS` | Bool | Delete **ALL** logs after a match round. |
| `CVAR_MAX_BUFFER` | Int | Log event accumulator size (Default: 50000). Keep high to prevent disk I/O lag. |
| `USE_WEB_SOCKETS`\* | Bool | Enable WebSocket features (Control Panel commands, live data). Uses SSL. |
| `LAX_SSL`\* | Bool | Allow self-signed/invalid certs. If `false` (recommended), `Sectigobundle.pem` must be in `platform/`. |
| `RELAY_CHAT_MESSAGES`\* | Bool | Relay in-game chat to the Control Panel; if disabled, Watch Chat will not show messages. |
| `RECONNECT_ON_NEWGAME`\* | Bool | Reconnect the socket on every map load. Requires `USE_WEB_SOCKETS`. |
| `TRACKER_ENABLED` | Bool | Runs the tracker in scripts; disable if you only want Control Panel server management. |
| `TRACKER_ENCRYPTION` | Bool | Encrypt outbound tracker data; disable for a small performance gain. |
| `TRACKER_SHIPSTATS` | Bool | Post matches to the tracker system (enabled for normal tracker usage). |
| `USE_GLOBAL_STATS` | Bool | Allow inbound/outbound live stat data (start/end of match or when needed for stat queries). |
| `TRACKER_MAX_WAIT` | Float | Max seconds to wait for batch stat loading (Default: 7.0). Lower values may miss some players still connecting/loading. |
| `EA_VERIFY_SERVER` | Bool | Allow EA account verification for servers registered as EA identification servers. |
### Game Settings
Gameplay and administration settings.
```json theme={null}
"settings": {
"ADMINS": "100123456789,100987654321",
"ENABLE_CHATBOT": true
...
}
```
| Key | Type | Description |
| :----------------------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ADMINS` | String | Comma-separated list of Admin UIDs (or `Name-UID` format). |
| `ENABLE_CHATBOT` | Bool | Enables the in-game chatbot. |
| `CHATBOT_PREFIX` | String | Prefix for chatbot messages (e.g., `[SERVER]`). |
| `INTERVAL_MESSAGES` | String | Pipe-separated list of time-based messages. Supports events like `start`, `end`, `join`, or seconds. Example: `start=Match Started!\|300=5 minutes passed!`. |
| `LOOP_MESSAGES` | String | Pipe-separated list of messages to cycle through. |
| `LOOP_MESSAGES_INTERVAL` | Int | Interval in seconds (multiple of 10) to cycle `LOOP_MESSAGES`. |
| `OPT_IN_GLOBAL_MUTE` | Bool | Apply 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_` (uses tracker stats), `#setting_` (uses the player's current tracker setting value).
* Example:
```text theme={null}
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.
| Key | Type | Description |
| :----------------------------- | :----- | :-------------------------------------------------------------------------------------------------- |
| `RESTRICTED_SERVER` | Bool | Enables restricted/private server mode. |
| `RESTRICTED_WHITELIST_ONLY` | Bool | Only allow whitelisted players; kicks others. |
| `RESTRICTED_PLAYER_WHITELIST` | String | Comma-separated whitelist of player IDs. |
| `RESTRICTED_JOIN_MESSAGE` | String | Message shown to players who meet restricted server requirements. |
| `RESTRICTED_WHITELIST_MESSAGE` | String | Message shown to whitelisted players on join. |
| `RESTRICTED_ADMIN_MESSAGE` | String | Message shown to admins on join. |
| `RESTRICTED_GAMESPLAYED` | Int | Minimum games played required to join (requires `USE_GLOBAL_STATS`). |
| `RESTRICTED_PLAYTIME` | Int | Minimum playtime (seconds) required to join (requires `USE_GLOBAL_STATS`). |
| `RESTRICTED_RANK` | Int | Minimum leaderboard rank (elo) required to join (requires `USE_GLOBAL_STATS`). |
| `RESTRICTED_KILLS` | Int | Minimum kills required to join (requires `USE_GLOBAL_STATS`). |
| `RESTRICTED_KD` | Float | Minimum KD ratio required to join (requires `USE_GLOBAL_STATS`). |
| `RESTRICTED_KICK_LOG` | Bool | Log/print when a player is kicked with the reason (verbose; useful for debugging restricted kicks). |
# Control Panel
Source: https://docs.r5r.dev/hosting/control-panel
Web-based tool for server management, configuration, and monitoring.
# Host Control Panel
The [Control Panel](https://r5r.dev/cp) is the hub for configuring and operating verified hosts. Tabs appear only when you have permission for them; each tab enforces its own access check. Tracker settings once edited in playlists now live here—download/apply `r5rdev_config.json` from the Config tab instead.
# Host view selection
At the top-right of the host control panel, you can select the host to switch to ( as you may be a moderator of multiple hosts ), and the server under that host your actions target. Several actions in the control panel also have `sync to all servers` options for replicating commands.
## Tabs at a Glance
### Settings
Host title/description, API key view/regenerate, and host selector. Owners see everything; moderators only see tabs granted to them.\\
### Servers
Manage each registered server’s status and settings. You can edit per-server options, including:
* **Allow showing server address**: expose the address in UI.
* **Do not share PlayerData with this host's other servers**: isolate player data for this server.
* **Keep chat log**: persist chat for later viewing (required for Chat tab history).
Use **Clone settings** to copy user permissions from this server to another user quickly.
Pick a server before running commands or chat actions. Live status relies on WebSockets.\\
### Users
Add/remove privileged users and grant granular permissions (e.g., `view_banlists`, `cmd_kick_player`). Invites require the user to allow discoverability in [Account Settings](https://r5r.dev/account?tab=settings#discoverability).
After giving a user privileges who did not have any, they will receive a real-time notification that they now have access to your host control panel.
Users will only see tabs that they have view\_ permissions for. Additionally, actions within them will be scoped to permissions.
Users added here are not automatically added as admins on servers, and must be configured in the [Config File](https://r5r.dev/cp/?tab=config)
If a user's ea account is connected to the website, their ea account uid will be displayed next to their name. Otherwise, use the [Tracker discord api](https://discord.com/channels/1182006089177387141/1193142143070523504) to fetch it if needed.
### Banlists
View, add, and remove bans. Syncs live over WebSockets when enabled.\\
When the page is loaded, it always loads the cached version of the banlist. Fetching will pull the live in-memory banlist from the server you have selected.
### Matches
Monitor live matches (where available) and review history for your servers.\\
### Analytics
Host-level charts and summaries.\\
### Config
* Build/download `r5rdev_config.json` (API key, identifier, webhooks, server/settings/private, restricted gates).
* Use **Update Config** to push remotely when `tracker_ws_enable=1` or `USE_WEB_SOCKETS=true` (config JSON).
* Sectigo CA bundle download is available here for strict SSL.
Pushing config to the server and clicking 'Update Config' will apply 'settings' and 'restricted' categories immediately without having to reload the map.
It is recommended to use the ui form of managing config in the [Config tab](https://r5r.dev/cp/?tab=config)
### Commands
Web UI for moderation commands (kick/ban/map change, config reload, etc ).
Giving users permissions to get and set config should be done cautiously, as it can reveal your api key, and allow users to change admins on the server.
### Chat
Watch live chat and view the chat log. Requires `RELAY_CHAT_MESSAGES` enabled on the server and **Keep chat log** enabled in the [Servers tab](https://r5r.dev/cp/?tab=servers). WebSockets must be on for live streaming. You can also send a message to a specific player or all players. The message will appear as \[ADMIN: ]:
You cannot change the name that the message is sent as from the web panel -- it uses the logged in user's ea account id, or if not connected, the r5r.dev account name.
### Notifications
Send real-time notifications to all website users who follow the host user.\\
### Logs
Review actions taken by your Control Panel privileged users.\\
# Getting Started
Source: https://docs.r5r.dev/hosting/getting-started
How to install and set up the R5R Tracker plugin for your server.
# Installation
To enable tracking and advanced features on your R5Reloaded server, you need to install the Tracker plugin.
1. **Download**: Get the latest files from [r5r.dev/download](https://r5r.dev/download).
2. **Install**: Extract and place all files into your game's root directory.
## Initial Setup
Verification is not required to run the tracker plugin. Unverified hosts still post matches publicly, but those matches are not aggregated or recorded globally.
To enable global aggregation and full control panel features, verify your account and generate an API key.
1. **Verify Account** (recommended): Submit a host verification request at [r5r.dev/account](https://r5r.dev/account?tab=requests#host-verification).
2. **Generate Key**: Once verified, log in to the [Host Control Panel](https://r5r.dev/cp) and navigate to the **Settings** tab to generate your Host API Key.
3. **Setup a Server**: Proceed to configure at least one server in [Servers tab](https://r5r.dev/cp/?tab=servers)
4. **Configure**: Configure settings in the control panel and download the file directly from [r5r.dev/cp/?tab=config](https://r5r.dev/cp/?tab=config).
Your API key is automatically updated in your config after generated. If you change your API key, you will have to manually place the r5rdev\_config.json file into `/platform/` folder.
## SSL Certificates
If you are using `tracker_ws_lax_ssl` set to `0` (Strict SSL), you must ensure the certificate bundle is present.
* **File**: `Sectigobundle.pem`
* **Location**: `platform/` folder.
* **Download**: If missing, download from [r5r.dev/cp/certs/Sectigobundle.pem](https://r5r.dev/cp/certs/Sectigobundle.pem).
Sectigobundle.pem is already included in the correct directory hierarchy `/platform/Sectigobundle.pem` within the prepackaged release found at [r5r.dev/download](https://r5r.dev/download)
## Script configuration
If you downloaded the pre-compiled release from GitHub, you can skip this.
Majority of tracker services are shipped by default with the core R5Reloaded game. However, these scripts are not enabled by default.
The tracker scripts are not compiled unless the compile-time guard constants `TRACKER` and `HAS_TRACKER_DLL` are set to `true` in: `\platform\scripts\vscripts\sh_consts.gnut`.
If you downloaded the pre-compiled release from GitHub, these are already toggled for you. In the event that you want to disable tracker at a script level, you can keep `HAS_TRACKER_DLL` set to true,
and set `TRACKER` to false. This can be especially usful for users who only want to use a subset feature, such as the Host Control Panel.
If `TRACKER` is set to false, the scripts will behave like stock R5Reloaded, but still possess internal engine tracker code. Internal tracker code calls script functions for various aspects, and those functions will not exist, so expect some functionality to not work, such as updating admins/whitelists in realtime. The engine has checks in place to ensure no crashes will happen in the event of this setup.
## Next Steps
Once installed, proceed to [Configuration](/hosting/configuration) to set up your ConVars and options.
# Restricted Servers
Source: https://docs.r5r.dev/hosting/restricted-servers
Configure server access restrictions based on stats and whitelists.
# Restricted Server Settings
Configure restricted access in the [Control Panel Config tab](https://r5r.dev/cp/?tab=config) (or `r5rdev_config.json`). Playlist-based settings are deprecated and ignored.
If cc\_administration is enabled in `playlists_r5_patch.txt`, using command `cc restricted [1/0/true/false]` can enable and disable restricted status in realtime
## Private Settings (Config Tab)
| Key | Type | Description |
| :----------------------------- | :----- | :--------------------------------------------------------- |
| `RESTRICTED_SERVER` | Bool | Enable restricted/private server mode. |
| `RESTRICTED_WHITELIST_ONLY` | Bool | Only allow whitelisted players to join. |
| `RESTRICTED_PLAYER_WHITELIST` | String | Comma-separated player OIDs allowed to join. |
| `RESTRICTED_JOIN_MESSAGE` | String | Message shown when a player meets requirements. |
| `RESTRICTED_WHITELIST_MESSAGE` | String | Message shown to whitelisted players. |
| `RESTRICTED_ADMIN_MESSAGE` | String | Message shown to admins when joining. |
| `RESTRICTED_GAMESPLAYED` | Int | Minimum games played (requires `USE_GLOBAL_STATS`). |
| `RESTRICTED_PLAYTIME` | Int | Minimum playtime in seconds (requires `USE_GLOBAL_STATS`). |
| `RESTRICTED_RANK` | Int | Minimum rank/score (requires `USE_GLOBAL_STATS`). |
| `RESTRICTED_KILLS` | Int | Minimum kills (requires `USE_GLOBAL_STATS`). |
| `RESTRICTED_KD` | Float | Minimum K/D ratio (requires `USE_GLOBAL_STATS`). |
| `RESTRICTED_KICK_LOG` | Bool | Log kicks for restricted checks. |
## How to Configure
1. Open the [Control Panel Config tab](https://r5r.dev/cp/?tab=config).
2. Set the **Private** section fields above, then download/apply the updated `r5rdev_config.json`.
3. Ensure `USE_GLOBAL_STATS` is enabled if you rely on stat gates.
`playlists_r5_patch.txt` can no longer enable restricted servers. Use the Config tab instead.
# Welcome
Source: https://docs.r5r.dev/index
Documentation for R5Reloaded Tracker services, hosting, and user features.
# R5R Tracker Documentation
**Under Construction**: This documentation is currently being built and is rapidly growing and changing. Information may be incomplete or subject to change.
Welcome to the official documentation for the **R5Reloaded Tracker**. This project aims to provide a comprehensive ecosystem for the R5Reloaded community, offering:
* **Player Stats & Analytics**: Detailed tracking of player performance, match history, and seasonal rankings.
* **Hosting Tools**: Advanced moderation and management tools for server hosts to run better servers.
* **Extended Functionality**: Custom script and engine features to enhance the R5Reloaded experience.
* **Data Services**: Inbound and outbound data handling for leaderboards and third-party integrations.
## For Users
Manage your profile, view your stats, and connect your accounts.
Learn how to manage your R5R account, link EA/Discord, and configure settings.
Understand the stats and insights available for your gameplay.
## For Hosts
Set up and configure your server to report stats and use advanced features.
Installation guide and basic setup for server hosts.
Detailed reference for ConVars and config files.
# Account Management
Source: https://docs.r5r.dev/users/account
Managing your R5R profile, settings, and linked accounts.
# Account Hub
The [Account Center](https://r5r.dev/account.php) is your central hub for managing your R5Reloaded presence. It is divided into several tabs:
## Core Features
* **Overview**: A snapshot of your account and "For You" feed.
* **News**: Read the latest announcements from the R5R staff.
* **Profile**: Customize your public appearance.
* **Avatar & Banner**: Upload custom images.
* **Bio**: Write a short biography.
* **Anonymization**: Enable "Deep Anon" to hide your identity in certain contexts.
* **Settings**: Manage privacy and account preferences.
* **Posts**: Manage your community posts and configurations.
## Linking Accounts
To unlock full functionality, including analytics, you should link your external accounts.
### EA Account
Linking your EA Account is **essential** for verifying your identity and claiming your stats.
1. Go to the [**Profile**](https://r5r.dev/account?tab=profile#profile-connections) tab in Account Center.
2. Click "Link EA Account".
3. Follow the prompts to verify ownership.
Currently you must enter the given command in an official tracker server, such as KARMA.
Do not enter your command into the chat. Use the console by pressing tilde on your keyboard: \`
### Discord
Link your Discord account to display it on your profile and enable easier login/recovery options.
## Support & Requests
* **Requests**: Submit requests for Name Changes or Verified Host status.
* **Support**: Open and manage moderation tickets.
* **Notifications**: Configure which alerts you receive.
## Verified Hosts
Users with **Verified** or **Helper** status gain access to the **Verified** tab, containing specialized host tools and creator perks.
# Analytics
Source: https://docs.r5r.dev/users/analytics
Understanding your player statistics and performance insights.
# Player Analytics
The R5R Tracker provides deep insights into your gameplay performance through the [Analytics](https://r5r.dev/account.php?tab=analytics) tab.
## Charts & Graphs
### Score History
View your **Elo / Score Over Seasons** to track your competitive progress. This chart visualizes your ranking climb (or fall) across different seasons.
### Recent Matches
Analyze your performance in recent matches with the **Elo Δ (Delta)** chart, showing how much score you gained or lost in each game.
## Stats Tracking
The tracker captures detailed metrics from your matches, including:
* **Kills & Deaths**: Core K/D ratio tracking.
* **Damage**: Total and average damage output.
* **Map Performance**: Stats broken down by map.
* **Weapon Usage**: (If supported by server) Weapon-specific performance.
## Tracker Insights
Global insights are generated periodically to provide a snapshot of the current meta:
* **Weapon Rankings**: Tracks which weapons are securing the most kills and usage across the platform.
* **Map Rankings**: Shows the most played and popular maps.
* **Input Storylines**: Analyzes the performance distribution between Controller and Mouse & Keyboard players.
* **Accuracy Leaders**: Recognizes top players by hit percentage.
* *Requirement*: You must have fired a minimum of **500 shots** in the season to qualify for accuracy leaderboards.
* **Only players with a minimum of 4 hours of playtime, and with an account in good standing are displayed on insights.**
Stats are only recorded on servers with the R5R Tracker plugin installed and `tracker_enabled` set to `1`.
# Leaderboard
Source: https://docs.r5r.dev/users/leaderboard
How the seasonal leaderboard works and how rankings are calculated.
# Seasonal Leaderboard
The [Leaderboard](https://r5r.dev/leaderboard) displays the top players for the current season.
## Direct Linking
You can link directly to a specific player's leaderboard entry or profile using URL parameters. This is useful for sharing profiles in Discord or on social media.
**URL Pattern:**
```
https://r5r.dev/leaderboard?type=player&player=PLAYERNAME
```
**Example:** `https://r5r.dev/leaderboard?type=player&player=Hideouts`
* **Accumulation**: Score is accumulated by playing on ranked or stats-enabled servers.
* **Seasons**: Each season soft-resets the leaderboard to keep competition fresh.
## How to Qualify
To appear on the leaderboard:
1. **Play**: Participate in matches on tracked servers.
2. **Verify**: Some leaderboard features may require a Verified EA Account.
3. **Status**: Users with deep anonymization will not appear on the leaderboard.
4. **Banned**: Banned players are removed from the leaderboard.
The "Elo" displayed is typically your in-game Ranked Score captured by the tracker plugin.
## Stat invalidations
* Players who have found to cheat, or stat pad will have their stats invalidated.
* If a player's stats are invalidated, it will also modified players' stats that interacted with the invalidated player stats.
\
**Example**: PlayerA is invalidated for kills in a match. PlayerB died to playerA, that death is removed for that match.
* Stat invalidations can be any of the following:
1. **GLOBAL**: Stats for the entire season are invalidated.
2. **MATCH**: Stats are invalidated for that match.
1) Kills
2) Deaths
3) Damage
4) Shots
5) Hits
These will subsequently cause other calculations like wins to automatically propegate. If the gamemode requires highhest kills to be a winner for instance, then a kills invalidation will recalculate as a loss, due to having 0 kills.
# Profile Customization
Source: https://docs.r5r.dev/users/profile
How to customize your R5Reloaded Tracker profile.
# Your Profile
Your profile is your public identity on R5R Tracker. You can customize it to show off your personality and stats.
## Customization Options
Go to the [Profile Tab](https://r5r.dev/account.php?tab=profile) to edit these settings.
### Identity
* **Avatar**: Pulled automatically from your linked Discord account (no manual upload).
* **Bio**: Write a short description about yourself.
* **Status Message**: A quick status update shown on your profile.
* **Custom Link**: Set a custom alias that points to your profile.
Setting a custom link name also reserves this name disallowing newly registered accounts from using it or name switching to it
### Privacy & Visibility
You have granular control over what is displayed on your public profile:
* **Profile Visibility**: Toggle your entire profile between Public and Private.
* **Specific Fields**: You can individually hide your:
* Rank / Score
* Bio
* Status Message
* Connected Accounts (Discord/EA)
* **Anonymization**: A privacy setting that replaces your EA Account name with a random name.
* **Deep Anonymization**: A strict privacy mode that hides your identity in public leaderboards, feeds, and API responses.
### Linked Accounts
* **Discord**: Displays your Discord name & avatar on your profile.
* **EA Account**: Displays your EA Account name.
## Badges
Badges are awarded for various achievements, such as:
* **Season Rank**: Your final rank in previous seasons.
* **Verified Host**: For verified server hosts.
* **Contributor**: For contributing to the R5R ecosystem.
This feature is still currently under development, and will contain unlockable badges that also unlock rewards in-game.
# Requests
Source: https://docs.r5r.dev/users/requests
Submitting and managing name changes and verified host requests.
# Requests
The [Requests Tab](https://r5r.dev/account.php?tab=requests) allows you to submit formal requests to the R5R staff.
## Name Change Requests
If you want to change your display name on Tracker website:
1. Navigate to the **Requests** tab.
2. Select **Name Change**.
3. Enter your desired new name.
4. Submit for approval.
Name changes are reviewed to ensure they comply with community guidelines
## Verified Host Requests
Server hosts can request "Verified" status to unlock advanced features like the Control Panel.
1. Navigate to the **Requests** tab.
2. Select **Verified Host**.
3. Provide details about your server and community.
4. Staff will review your application.
## Tracking Status
You can track the status of your submitted requests in the same tab. Statuses include:
* **Pending**: Under review.
* **Approved**: Request granted.
* **Denied**: Request rejected (reason often provided).
Your approval and denial reason is emailed to the email set in your account. This alert will be replaced with a notifications center notification in the future.