zKillBot

zKillBot

Real-time EVE Online killmail notifications powered by zKillboard, delivered directly to your Discord server.

Invite zKillBot to your Discord Server

Configuration Examples

Default Configuration

Standard killmail display with balanced information layout

Default configuration example
Full Configuration

All features enabled including header, ship image, values, statistics, location, and timestamp

Full configuration example
Minimal Configuration

Clean layout with essential information only - perfect for high-traffic channels

Minimal configuration example
Enhanced Links

Full configuration with clickable entity links for easy navigation to zKillboard

Enhanced links configuration example

Real-time Updates

Receive killmails as they happen using zKillboard's R2 with minimal latency.

Flexible Filters

Subscribe to specific characters, corporations, alliances, systems, or ISK values with precise control.

Customizable

Highly configurable settings for your killmail notifications.

Getting Started

1
Invite the Bot

Use the invite link to add zKillBot to your Discord server

2
Subscribe

Use subscribe to add your first killmail filters

3
Configure Channel

Run config-channel to view and customize the channel settings

4
Repeat

Add as many filters as you'd like!

Invite zKillBot

Click here to invite the bot to your server (you must have the Manage Server permission!):

Invite zKillBot to your Discord Server

Commands

All commands are available as Discord slash commands (/command).

🌐 Available to everyone 🔒 Requires Manage Channels permission

/zkillbot about

🌐 Reports various statistics about zKillBot.

/zkillbot check

🔒 Verifies the current channel's permissions to ensure zKillBot can post messages here. This command must be run successfully before any subscriptions can be added.

/zkillbot config-channel

🔒 Customize which fields are displayed in killmail notifications and configure entity links. See detailed configuration options below.

/zkillbot invite

🌐 Returns the bot's invite link.

/zkillbot leave

🔒 Removes all subscriptions and instructs zKillBot to leave the server.

/zkillbot list

🌐 List all current subscriptions in the channel.

/zkillbot remove_all_subs

🔒 Remove all subscriptions for the current channel.

/zkillbot subscribe

🔒 Subscribes the current channel to killmails from:

  • Character, corporation, alliance
  • Location, system, constellation, region
  • Ship (typeId) or ship's group
  • ISK: Minimum ISK value (100m+)
  • Label: Specific labels (see labels section)
Subscribe Examples
# Character
/zkillbot subscribe CCP Stroopwafel

# Corporation
/zkillbot subscribe eve university

# Alliance (by ID)
/zkillbot subscribe 434243723

# System (Jita)
/zkillbot subscribe 30000142

# ISK minimum value
/zkillbot subscribe isk:1000000000

# Labels
/zkillbot subscribe label:ganked
/zkillbot unsubscribe

🔒 Removes a subscription from the current channel.

/zkillbot unsubscribe 670
/zkillbot unsubscribe isk
/zkillbot unsubscribe label:ganked

Channel Configuration

Use /zkillbot config-channel to customize your killmail notifications. This powerful command allows you to control both what information is displayed and how entities are linked.

Display Options

Toggle visibility of these killmail fields:

  • Header - Victim name with portrait and zKillboard link
  • Description - Kill summary text
  • Ship Image - Visual representation of the destroyed ship
  • Values - Destroyed/Dropped/Fitted ISK amounts
  • Statistics - Involved pilots/Points/Total value
  • Location - System/Constellation/Region information
  • Footer - Final blow entity details
  • Timestamp - When the kill occurred
Entity Linking

Configure clickable links for entities in killmails:

  • Character Links - Link pilot names to their zKillboard profiles
  • Corporation Links - Link corp names to zKillboard corp pages
  • Alliance Links - Link alliance names to zKillboard alliance pages
  • System/Region Links - Link system/region names to zKillboard system/region pages
  • Ship Links - Link ship types to zKillboard ship pages
Entity links make it easy to quickly access detailed information about any pilot, corporation, alliance, system, region, or ship mentioned in the killmail.

Important Notes

  • zKillBot uses R2 to poll killmails from zKillBoard in near real-time.
  • If a name query matches multiple results, zKillBot will list the IDs so you can subscribe by ID or refine your search.
  • A channel may have multiple subscriptions.
  • Each killmail will only be posted once per channel, even if it matches multiple subscriptions.
  • Subscriptions are per-channel, meaning different channels can track different entities.
  • Each channel can have a different display configuration.
  • Killmails include links back to zKillboard for full details.
  • ISK values are adjusted to your guild's locale setting.
A cap of 6,000 posts per server over a rolling 3-day window is enforced to reduce spam. Posts exceeding this limit are silently discarded.

Valid Labels

#:1, #:10+, #:100+, #:1000+, #:2+, #:25+, #:5+, #:50+,
atShip, awox, bigisk, capital,
cat:11, cat:18, cat:22, cat:23, cat:350001, cat:40, cat:46, cat:6, cat:65, cat:87,
concord, extremeisk,
fw:amarr, fw:caldari, fw:gallente, fw:minmatar, fw:amamin, fw:calgal,
ganked, insaneisk,
isk:100b+, isk:10b+, isk:1b+, isk:1t+, isk:5b+, isk:1t+
loc:abyssal, loc:drifter, loc:highsec, loc:lowsec, loc:nullsec, loc:w-space,
npc, padding, pvp, solo,
tz:au, tz:eu, tz:ru, tz:use, tz:usw

Advanced Filters

zKillBot supports a powerful filter syntax that allows you to create complex subscription rules by combining multiple conditions using logical operators.

To subscribe to an advanced filter, use:

/zkillbot subscribe advanced:filterhere=1234

Filter Syntax

Filters use a simple grammar to express conditions:

  • Basic Rule: key=value, key>value, key<value
  • Operators: =, !=, <, <=, >, >=
  • AND Logic: Use semicolon ; to require all conditions
  • OR Logic: Use comma , for any condition
  • Grouping: Use parentheses () to nest conditions
  • ElemMatch: Use square brackets [] to match all conditions within the same array element
Additional Details
  • If a key’s value is an array, all elements of the array are searched.
  • Values are compared as numbers if both sides are numeric, otherwise as strings.
  • Filters automatically traverse nested data structures to find matching values.
A channel can only have one advanced filter.
Simple Conditions

Basic filter rules with single conditions:

# ISK value greater than 1 billion
totalValue>1000000000

# Specific ship type ID
ship_type_id=670

# System ID not equal to Jita
solar_system_id!=30000142
Complex Combinations

Combine multiple conditions with AND/OR logic:

# High-value kills in lowsec
totalValue>5000000000;security<0.5

# Frigate OR cruiser kills
ship_type_id=585,ship_type_id=621

# High-value kills OR solo kills
totalValue>1000000000,solo=true
Nested Filter Logic

Parentheses allow you to create sophisticated filters by grouping conditions:

# (High value OR solo kill) AND in lowsec
(totalValue>1000000000,solo=true);security<0.5

# Capital ship in highsec OR any ship worth over 10b
(ship_type_id=670;labels=loc:highsec),totalValue>10000000000

# Multiple complex conditions
((totalValue>5000000000;labels=loc:lowsec),(solo=true;ship_type_id=670))
ElemMatch - Matching Within Same Array Element

Square brackets [] allow you to match multiple conditions that must all be true within the same array element. This prevents false matches across different elements.

# Match if the same attacker has character_id=1234 AND got final blow
[character_id=1234;final_blow=true]

# Match if the same attacker is in group 26 AND got final blow
[group_id=26;final_blow=true]

# High-value kills where character 1234 dealt over 1000 damage
totalValue>1000000000;[character_id=1234;damage_done>1000]

# Complex: Either (character 1234 with final blow) OR high value, AND in lowsec
([character_id=1234;final_blow=true],totalValue>5000000000);labels=loc:lowsec
Why use elemMatch? Without square brackets, character_id=1234;final_blow=true would match if character 1234 appears anywhere in the attackers list AND anyone got the final blow. With [character_id=1234;final_blow=true], it only matches if character 1234 is the one who got the final blow.
Available Keys

You can filter on any field in the killmail data structure. Common keys include:

  • totalValue - Total ISK value
  • ship_type_id - Ship type ID
  • group_id - Ship's Group ID
  • solar_system_id - System ID
  • character_id - Character ID
  • corporation_id - Corporation ID
  • alliance_id - Alliance ID
  • faction_id - Faction ID
  • security - System security status
  • damage_taken - Damage on victim
  • damage_done - Damage dealt by attacker
  • final_blow - Final blow attacker (boolean)
  • points - zKillboard points
  • npc - NPC involved (boolean)
  • solo - Solo kill (boolean)
  • labels - zKillboard labels
The filter system recursively searches the entire killmail data structure, so you can reference any nested field. Refer to the zKillboard API for complete killmail data structure.

Upcoming Features

  • LOCALE implementation for language (ISK values already implemented)
  • Subscribe to a system and receive killmails within a chosen jump range or light-year distance

Support & Links

Discord Support

For issues or feature requests, join the zKillboard Discord.

Join Discord

Visit channel #discord-zkillbot

Source Code

The source for zKillBot is available on GitHub.

View on GitHub