XP & Level System

Xponent uses a fully configurable XP engine. Here is how it works under the hood.

Message XP

Every message a member sends earns Base XP + random(0–10) bonus. The base is configurable (default: 15 XP). A per-member cooldown (default: 60 seconds) prevents spam farming. Bot messages are always ignored.

Reaction XP

When Reaction XP is enabled, adding a reaction earns XP (default: 5 XP). Has its own separate cooldown and an optional daily cap to prevent abuse.

Level Curves

Linear: XP needed = Level × 100 × multiplier. Always the same gap.
Standard (default): XP needed = Level² × 100 × multiplier.
Steep: XP needed = Level² × 200 × multiplier.
Exponential: XP needed = 1.5^Level × 50 × multiplier. Early levels are easy, later levels become very challenging.

Level-Up Events

When a member crosses a level threshold, the bot announces it in the configured channel (or the current channel). It then checks the role rewards table and automatically assigns or replaces roles based on the configured mode.

Max Level Cap

Optional. When set, members stop gaining XP once they reach this level. Useful for prestige systems or seasonal resets.

Requirements

  • MessageContent intent must be enabled in the Discord Developer Portal
  • GuildMessageReactions intent required for Reaction XP
  • GuildMembers intent required for invite tracking and member sync