How to run a DKP system in Discord
DKP (dragon kill points) is the oldest loot system in MMO raiding: members earn points for showing up and spend them to bid on drops. It lives or dies on trust, which means everyone should be able to see the standings and the history, and only officers should be able to change them.
Most guilds run DKP in a spreadsheet or an addon export. This guide moves the day-to-day part into Discord with CordBase (our product), so officers award and deduct points with a command and anyone can check the standings.
The setup: two tables
- Standings: one row per raider with their current DKP.
- Loot log: one row per item awarded, so there's a record of who spent what.
Free plans allow two tables with 100 rows each, which fits a 40-person guild's standings and 100 loot entries. Pro ($8/month) removes the table limit and allows 10,000 rows per table.
Step 1: Create the standings table
CordBase has a DKP Tracker template (player, points, reason, date), but it's built as a log of awards. For standings that go up and down, a small custom table works better. Sign in at cordbase.gg with Discord, add the bot to your server, and create a table called "DKP" with:
- name: text, required. Put it first: leaderboard entries are labelled with it, and the
rowoption searches it. - player: member, required.
- dkp: number, required.
- class: a choice list of your game's classes (optional).
The bot registers /dkp in your server.
Step 2: Permissions
Give your officer role write (they can add raiders and change DKP), your guild leader admin, and your raider role read. Raiders can then check standings but can't touch the numbers. Once a table has any role set, members without one of those roles can't use it at all.
Step 3: Award and spend
Add each raider once: /dkp add name:Thrain player:@Thrain dkp:0 class:Warrior
After a raid, award attendance:
/dkp update row:Thrain dkp:10 _mode:Increment
When someone wins an item for 35 DKP:
/dkp update row:Thrain dkp:35 _mode:Decrement
Increment and decrement change the current value in one database operation, so two officers awarding or deducting at the same moment both count. If you need to correct a mistake, _mode:Set puts in an exact value.
Step 4: Standings and history
/dkp leaderboard column:dkp limit:25shows the top 25, highest first./dkp query class:Warriorlists every warrior and their DKP, which helps when deciding a bid.
For the history, install the Loot Log template (item, received by, source or boss, rarity, date) and have officers add a row for each award:
/loot-log add item:Ashkandi received_by:@Thrain source:Nefarian rarity:Epic date:2026-10-08
Anyone can then check /loot-log query received_by:@Thrain.
What this doesn't do
- No bidding. Run the auction in chat or voice as usual, then record the result.
- No decay. Weekly percentage decay has to be applied by hand.
- No addon import. CordBase can't read WoW or FFXIV addon exports, and there's no CSV import yet.
If you need automated bidding and decay, a dedicated DKP tool or addon is a better fit. If you mainly need a fair, visible ledger in Discord, two tables cover it.
Questions people ask
Can raiders see their own DKP?
Yes, if their role has read access. /dkp query player:@name or the leaderboard shows it.
Can I run EPGP or other loot systems this way?
Partly. You can add number columns for EP and GP and increment them, but CordBase doesn't calculate ratios, so the priority (EP divided by GP) has to be worked out outside it.
Is the DKP Tracker template useful?
Yes, as an award log: each row records a player, points, reason and date. For a single running total per raider, a standings table like the one above is simpler.