Interface: GuildConfig
Per-guild XP system configuration
All fields have sensible defaults matching MEE6 behavior.
Examples
{
* cooldownSeconds: 120,
* xpRate: 1.5,
* noXpRoleIds: ['123456789012345678'],
* noXpChannelIds: ['234567890123456789'],
* roleRewards: [
* { level: 5, roleId: '345678901234567890' },
* { level: 10, roleId: '456789012345678901' }
* ],
* rewardsMode: 'stack',
* removeRewardOnXpLoss: true,
* leaderboard: { public: true },
* multipliers: {
* server: 2.0,
* role: { '567890123456789012': 1.5 },
* user: { '678901234567890123': 0.5 }
* },
* theme: {
* embedColor: 0x5865F2,
* backgroundUrl: 'https://example.com/background.png'
* },
* labels: {
* xpDisplayName: 'Reputation'
* }
* }
Common terminology alternatives:
- 'Reputation' - For community reputation systems
- 'Points' - For point-based reward systems
- 'Karma' - For Reddit-style karma systems
- 'Credits' - For economy/currency systems
- 'Stars' - For achievement/rating systems
Properties
cooldownSeconds
cooldownSeconds: number;
Minimum seconds between XP awards for same user (default: 60)
labels?
optional labels: object;
Optional custom terminology for XP system branding
| Name | Type | Description |
|---|---|---|
xpDisplayName? | string | Custom display name for XP (e.g., 'Reputation', 'Karma', 'Points') Default 'XP' |
leaderboard
leaderboard: object;
Leaderboard visibility settings
| Name | Type | Description |
|---|---|---|
public | boolean | Whether the leaderboard is publicly visible Default false |
multipliers?
optional multipliers: object;
Optional per-role, per-user, and server-wide multipliers
| Name | Type | Description |
|---|---|---|
role? | Record<string, number> | Per-role multipliers (roleId → multiplier) |
server? | number | Server-wide multiplier applied to all users (stacks with xpRate) |
user? | Record<string, number> | Per-user multipliers (userId → multiplier) |
noXpChannelIds
noXpChannelIds: string[];
Messages in these channels don't award XP (default: [])
noXpRoleIds
noXpRoleIds: string[];
Users with these roles don't gain XP (default: [])
removeRewardOnXpLoss
removeRewardOnXpLoss: boolean;
Remove roles when user loses levels (default: false)
rewardsMode
rewardsMode: RewardsMode;
How role rewards stack (default: 'stack')
roleRewards
roleRewards: RoleReward[];
Roles awarded at specific levels (default: [])
theme?
optional theme: object;
Optional theme customization for rank and leaderboard embeds
| Name | Type | Description |
|---|---|---|
backgroundUrl? | string | Reserved for future web-based rank card renderer |
embedColor? | number | Custom embed color in hex (e.g., 0x5865F2 for Discord Blurple) |
xpRate
xpRate: number;
Global XP multiplier for this guild (default: 1.0)