# GuildDKP
A complete DKP management and auction addon for **WoW TBC Anniversary**.
Built for guilds that want a clean, in-game DKP system with no external tools required —
points, bidding, rolloffs, refunds and a auto-trade are all handled inside the addon.
---
## Features
### DKP Management
- Per-guild data buckets — each guild has its own isolated DKP list. Twinking on alts in
another guild does **not** mix the data.
- Players who leave the guild are hidden from the list but their DKP is preserved
(rejoining restores them automatically).
- Sortable DKP list (by name / rank / DKP) with class colors.
- Boss-/Raid-DKP configuration — set DKP per boss, award to current raid in one click.
- Bulk awards use a single throttled message — no more disconnects when handing out
DKP to 25 raid members at once.
- Full DKP and auction audit log.
### Auctions
- Loot Master detection (in-game `IsMasterLooter` API + roster fallback).
- Bidding popup with current high-bid display, item link (clickable, hover for tooltip),
countdown timer and live announcements in /raid_warning.
- **+10 button** — calculates the next valid bid above the current high and submits
immediately.
- **ALL IN button** — bids your entire DKP. If two or more All-In bidders tie, an
automatic `/roll` decides the winner; if they tie again, the rolloff repeats.
- Refund button on the auction page — Loot Master can undo the last awarded auction
with one click (DKP refunded, log entry marked).
- Bid via `!bid <amount>` in raid chat works for players without the addon too.
### Auto-Trade
- When the Loot Master awards an item, it is remembered for the winner.
- When the winner opens a trade window with the LM, the item is automatically placed
in the next free trade slot.
- Stackable items: only **1** is split off, not the whole stack.
- After `ERR_TRADE_COMPLETE` the pending entry is removed — the item is not offered
again on the next trade.
- Soulbound items in the LM's bags are skipped.
### Officer Permissions
- Guild Master (rankIndex 0) is recognised as Officer automatically.
- Configurable rank whitelist: any rank with names like `Officer`, `Offizier`,
`Twink Offi`, `Gildenmeister` is treated as Officer.
- Configurable per-player whitelist for individual exceptions.
- Both lists are managed in the **Ranks** tab in the main window —
**only Officers can edit them**, and changes are broadcast/synced to all addon
users in the guild.
### Sync & Versioning
- Full state sync via **AceComm + LibDeflate + AceSerializer** — payloads are
compressed, chunked and rate-limited (no DC risk).
- Live broadcasts for DKP changes, auctions, refunds, rank changes.
- Active version check on login and every 30 minutes — chat warning if a newer
version is in your guild/group.
- Query a specific player's version: `/dkp version <name>` (or with target selected).
### Quality of Life
- Item tooltip enhancement: hover over a previously won item shows
`won by Enha on 12.05.26 (50 DKP)`.
- Per-character settings profiles (`bidStep`, `idleThreshold`, etc. can differ
per alt).
- Built-in profiler for performance debugging (`/dkp profile-stats`).
- Minimap button.
- Test mode for trying the addon solo.
---
## Slash Commands
| Command | Description |
|---|---|
| `/dkp` | Open / close the main window |
| `/dkp my` | Show your own DKP |
| `/dkp who <name>` | Show another player's DKP |
| `/dkp add <name> <±amount> [reason]` | Officer: add DKP |
| `/dkp set <name> <value> [reason]` | Officer: set DKP |
| `/dkp auction <itemlink>` | Loot Master: start an auction |
| `/dkp award` / `cancel` | Loot Master: finalise / cancel current auction |
| `/dkp version [name]` | Check your version, broadcast a check, or query a single player |
| `/dkp pending` | Show outstanding auto-trade entries |
| `/dkp profile [list / use / new / delete]` | Manage settings profiles |
| `/bid <amount>` | Place a bid in the active auction |
---
## Installation
1. Extract into `WoW Anniversary/Interface/AddOns/GuildDKP/`.
2. Both you **and the other addon users in your guild must run the same version** —
the active version check will warn you if they don't.
3. On first launch you will be in your current guild's bucket; old data from a
previous version is kept in a `_legacy_` backup. Use `/dkp adopt` to import it
into the active guild.
---
## Notes
- TBC Anniversary specific: the addon uses `C_Container` APIs with classic fallbacks
so it should work on TBC, WotLK Classic and SoD without changes.
- Player-to-player addon comm is used for sync; both clients must have the addon
installed for full functionality. Players without the addon can still bid via
`!bid <amount>` in chat.
---
**Feedback, bug reports and suggestions welcome on the CurseForge page or via PM.**

