Skip to content

Plugin Enhancement: Levels & XP — boosters, multipliers, streak bonuses, lottery #33

Description

@DeadIndian

Plugin Enhancement: Levels & XP — boosters, multipliers, streak bonuses

Enhance adb-plugin-levels with XP boosters, channel/role multipliers, double XP events, level-up rewards lottery, and activity streaks to make the leveling system more engaging.

Why

The current levels plugin is bare-bones: flat XP per message, static cooldown, no incentives for varied participation. Servers need mechanics to reward active periods, encourage specific channel participation, and create FOMO events.

Spec

New Features:

1. XP Multipliers

  • /xp-multiplier channel <#channel> <multiplier> — Set channel XP multiplier (e.g., 2x in #general)
  • /xp-multiplier role <role> <multiplier> — Set role XP multiplier (e.g., 1.5x for boosters)
  • /xp-multiplier stack [additive|multiplicative] — How multipliers stack
  • Multipliers visible in /level-config overview

2. Double XP / Events

  • /xp-event start <name> <multiplier> <duration> — Start a timed XP event (e.g., 2x XP for 2h)
  • /xp-event stop — End active event early
  • /xp-event list — Scheduled/active events
  • Optional: recurring events (every Saturday 2x XP 6-9pm)
  • Event banner embed posted to configured channel on start/end

3. Activity Streaks

  • Daily streak: Bonus XP for chatting on consecutive days (+5 XP per day streak)
  • Message streak: Bonus for consecutive messages within 5 min (+1 XP per message, capped at +10)
  • /streak — Check your current streaks
  • /streak leaderboard — Top streak holders
  • Streak freeze item (economy integration): pay currency to preserve streak for a day

4. Level-Up Rewards

  • /level-lottery prize <amount> — Set pool of currency added per level-up (economy integration)
  • /level-lottery toggle — Enable random jackpot on level-up
  • Every level-up enters user into a mini lottery (configurable chance, default 5%)
  • Winner gets currency from the pool
  • /level-reward random <count> <role> — Give random role from pool on level-up

5. Level-Up Announcements

  • Custom level-up message templates: {user} leveled up to **Level {level}**!
  • Channel-specific: set a dedicated #level-up channel or use the channel the user leveled in
  • Role milestone auto-embed showing next role reward
  • Level-up GIF/image option (configurable URL)

6. XP Leaderboard Enhancements

  • /leaderboard — Add pagination (top 50)
  • /leaderboard weekly — This week's top earners
  • /leaderboard role <role> — Leaderboard filtered by role
  • /leaderboard around <user> — Show ranking around a specific user
  • XP decay for inactive users (configurable)

Config Schema Additions:

{
  // Existing config preserved
  // New:
  "multipliers": {
    "channels": { "channelId": 1.5 },
    "roles": { "roleId": 1.5 },
    "stacking": "additive" | "multiplicative"
  },
  "streaks": {
    "dailyBonus": 5,
    "dailyMaxStreak": 365,
    "messageStreakBonus": 1,
    "messageStreakCap": 10,
    "messageStreakWindow": 300000  // 5 min in ms
  },
  "lottery": {
    "enabled": false,
    "poolAmount": 100,
    "chance": 0.05,
    "currencyName": "coins"
  },
  "events": [],
  "decayInactiveDays": 30,
  "decayPercent": 10    // lose 10% XP
}

Acceptance Criteria

  • Channel and role XP multipliers working
  • Double XP event with timer and announcement
  • Daily and message streaks tracked
  • Level-up lottery with economy integration
  • Paginated leaderboard with weekly filter
  • All configurable via slash commands

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

    plugin-enhancementEnhancement to an existing plugin (add features, improve UX)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions