Summary
Implement point decay and zero-sum DKP distribution — two common DKP variants that prevent point hoarding and encourage spending.
Point decay
Periodically reduce all member balances by a percentage to prevent indefinite point hoarding.
Configurable decay rate (%) and frequency (days/weeks)
Decay applies to earned and adjustment balances
Each decay run creates decay transactions in the ledger (Database schema: transaction-based points ledger #3 )
Manual trigger from ACP + optional cron job
Decay sync: recalculate all decay in one pass
Zero-sum DKP
When loot is distributed, the DKP spent by the buyer is redistributed equally among all raid attendees who did NOT receive loot.
On item purchase, calculate item_value / (attendees - buyers) and credit each non-buyer
Zero-sum bonus transactions with account = 'zerosum'
Zero-sum sync: recalculate all zero-sum bonuses retroactively
Toggle per pool: not all pools need zero-sum
Configuration
Per-pool settings: decay enabled, decay rate, decay frequency, zero-sum enabled
Global toggle to enable/disable decay system-wide
Reference
Old bbDKP: decay sync, zerosum sync log types
EQdkp Plus: core/auto_point_adjustments.class.php
Archived language keys: RAIDDECAY, ADJDECAY, DECAY, ZSVALUE, ZEROSUM in bbguild/contrib/archive/language/*/dkp_common.php
Summary
Implement point decay and zero-sum DKP distribution — two common DKP variants that prevent point hoarding and encourage spending.
Point decay
Periodically reduce all member balances by a percentage to prevent indefinite point hoarding.
decaytransactions in the ledger (Database schema: transaction-based points ledger #3)Zero-sum DKP
When loot is distributed, the DKP spent by the buyer is redistributed equally among all raid attendees who did NOT receive loot.
item_value / (attendees - buyers)and credit each non-buyeraccount = 'zerosum'Configuration
Reference
core/auto_point_adjustments.class.phpRAIDDECAY,ADJDECAY,DECAY,ZSVALUE,ZEROSUMinbbguild/contrib/archive/language/*/dkp_common.php