Skip to main content

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

NameTypeDescription
xpDisplayName?stringCustom display name for XP (e.g., 'Reputation', 'Karma', 'Points') Default 'XP'

leaderboard

leaderboard: object;

Leaderboard visibility settings

NameTypeDescription
publicbooleanWhether the leaderboard is publicly visible Default false

multipliers?

optional multipliers: object;

Optional per-role, per-user, and server-wide multipliers

NameTypeDescription
role?Record<string, number>Per-role multipliers (roleId → multiplier)
server?numberServer-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

NameTypeDescription
backgroundUrl?stringReserved for future web-based rank card renderer
embedColor?numberCustom embed color in hex (e.g., 0x5865F2 for Discord Blurple)

xpRate

xpRate: number;

Global XP multiplier for this guild (default: 1.0)