Skip to content

Point decay and zero-sum DKP #9

Description

@avandenberghe

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions