A feature-rich Discord bot designed for DayZ server management with deep Nitrado integration.
Includes log tracking, PvP stats, player interaction alerts, full stats tracking, heatmap visualization, and automatic alt account detection with device-based banning.
- Continuously polls DayZ ADM logs to track PvP kills, suicides, fall deaths, explosions, animal attacks, and connection events.
- Sends detailed embed messages to configured log channels.
- Automatically tracks player connection/disconnection events.
- Displays kills with full details: weapon, distance, location, and embedded kill/death statistics.
- Tracks K/D ratio, kill/death streaks, time alive, and player rank.
- Maintains persistent player statistics across wipes and sessions.
- Tracks device IDs and UIDs from DayZ server authentication logs (RPT format).
- Automatically identifies when multiple accounts use the same device.
- Sends alerts to designated staff channels for both banned and non-banned alt accounts.
- Prevents duplicate processing of the same authentication events.
- Ban or unban entire devices across all configured servers via Nitrado API.
- Automatic ban enforcement when banned devices attempt to connect.
- Separate alerts for banned devices vs. regular alt accounts.
- Staff-only query commands to investigate suspected ban evaders.
- Automatically or manually generate heatmaps showing player hotspots.
- Use
/generateallheatmapto output an image per server.
- Assign different log types to specific channels using
/logconfig. - Supports: deaths, kills, suicides, hits, flag interactions, connections, disconnections, alt alerts, and banned device alerts.
- Create flag zones using
/addarea. - Automatically detect and log flag raising/lowering in critical map zones.
- Use
/generatekeysto create codes for rewards or roles. - Users redeem via
/redeem, and all redemptions are logged for audit.
- Players link their in-game name via
/link. - Use
/statsor/stats [username]to show personal or public statistics.
/nitradoserver- Add or remove Nitrado servers by ID/serverlist- View all configured Nitrado servers and their IDs/logconfig- Assign log output categories to Discord channels
/link [username]- Connect Discord user to a character name/stats [username]- View player statistics (K/D, time alive, streaks, ranks)/unlink- Remove Discord account linking/staffunlink [user]- Force unlink a player account (admin only)
/bandevice [device_id or username]- Ban a device across all servers (auto-bans all associated accounts on Nitrado)/unbandevice [device_id or username]- Unban a device across all servers/querydevice [username]- Staff command to view a player's device ID and all linked accounts/queryalts [device_id]- Staff command to find all accounts on a specific device/viewbans- View all banned devices and their associated usernames
/generatekeys [amount]- Generate redeemable codes in bulk/redeem- Players use this to claim codes/addarea [x] [z] [radius] [channel] [name]- Create flag detection zones/removearea- Remove flag detection zones
/sync- Resync slash commands (if required)/resetdatabase [database_name]- Reset specified database
Classic prefix command available for sync:
<PREFIX>sync
The bot automatically tracks device IDs and UIDs from DayZ server authentication logs:
- Authentication Event Monitoring: When a player connects to the server, the DayZ server logs authentication events in the RPT file containing device ID and UID information.
- Device Tracking: The bot parses these logs and stores the device ID associated with each player account.
- Alt Detection: If multiple accounts share the same device ID, they are flagged as potential alt accounts.
- Ban Detection: If a device is marked as banned in the database, any player attempting to connect with that device is automatically banned on the server.
Configure alert channels using /logconfig:
- AltAlert: Receives notifications when non-banned alt accounts are detected. Displays all accounts on the shared device.
- AltBanned: Receives notifications when a banned device is detected. The account is automatically banned on the server, and all associated alt accounts are listed.
-
Ban a Device:
/bandevice username:PlayerNameOr if you have the device ID:
/bandevice device_id:VUZwoETj2mkhZSZuUxOg5T8jwr0TrB4R_pt4klUoRio=This bans all current and future accounts on that device across all configured servers.
-
Investigate a Player:
/querydevice username:SuspectedPlayerThis shows:
- The player's device ID
- All other accounts on that device
- Ban status of the device
-
Check a Device:
/queryalts device_id:VUZwoETj2mkhZSZuUxOg5T8jwr0TrB4R_pt4klUoRio=Lists all accounts ever associated with that device.
-
Unban a Device:
/unbandevice device_id:VUZwoETj2mkhZSZuUxOg5T8jwr0TrB4R_pt4klUoRio=This removes the ban, allowing accounts on that device to connect again.
Once a device is banned:
- Any player attempting to connect with that device is automatically banned on the Nitrado server.
- An alert is sent to the AltBanned channel.
- The player cannot bypass the ban by using a different account on the same device.
Before running the bot, you will need Python 3.10 or later.
- Visit: https://www.python.org/downloads/release/python-3100/
- Scroll down and download the Windows installer (64-bit).
When the installer opens:
- IMPORTANT: Check the box labeled "Add Python 3.10 to PATH" at the bottom of the first window.
- Click "Install Now."
After installation, open a terminal and run:
python --versionYou should see:
Python 3.10.x
If you get an error, restart your computer and try again.
python -m pip install --upgrade pip-
Clone the repository:
git clone https://github.com/Sat727/Dayz-Console-Killfeed.git cd Dayz-Console-Killfeed -
Edit
config.pywith your Nitrado token, Discord bot token, and channel mappings. -
Install dependencies:
pip install -r requirements.txt
-
Run the bot:
python main.py
Edit config.py and fill in these fields:
class Config:
NITRADO_TOKEN = "" # Your Nitrado API token
DISCORD_TOKEN = "" # Your Discord bot token
BOT_PREFIX = "." # Prefix for non-slash fallback commands
EMBED_IMAGE = "" # Optional thumbnail for embeds
EMBED_FOOTER = "Your Server Name" # Displayed at bottom of all embeds
EMBED_FOOTER_IMAGE = "" # Footer icon URL
EMBED_COLOR = 0xE40000 # Hex color for embedsMake sure all tokens are valid and quotes are used properly.
Use the provided requirements.txt:
pip install -r requirements.txtpython main.pyAfter the bot is online:
-
Add Your Server:
/nitradoserverInput your Nitrado server ID and select "Add". The bot will create a database entry for your server configuration.
You can run
/serverlistanytime to view all your Nitrado servers and their IDs. -
Configure Logging Channels:
/logconfigSelect the server you added in step 1, then assign log types (death, kill, hit, flag, onlinecount, altalert, altbanned, etc.) to Discord channels.
| File | Purpose |
|---|---|
killfeed.db |
Player statistics (kills, deaths, streaks, time alive, device IDs, UIDs, linked Discord accounts), flag detection zones, server configurations, banned devices, redeemable codes, heatmap data, and activity tracking |
Device IDs are stored as base64-encoded SHA256 hashes of the DayZ client device identifier. UIDs are stored as 40-character hexadecimal strings representing the Steam UID equivalent on DayZ client.
Both fields are automatically populated when players authenticate to the server. No manual entry is required by administrators.
IMPORTANT: Ensure your bot is set to PRIVATE in the Discord Developer Portal.
If your bot is public, unauthorized users may be able to add it to their servers and access admin-level commands. The bot includes a built-in safety check and will exit if this condition is detected at startup.
To set the bot to private:
- Go to the Discord Developer Portal (https://discord.com/developers/applications)
- Select your bot application
- Navigate to "Bot Settings"
- Find the "Public Bot" toggle and disable it