Skip to main content

Community & Engagement

These modules turn XDiscordUltimate from a bridge into a full community platform — awarding roles for playtime, greeting new players, managing voice channels, whitelisting applicants, broadcasting announcements, and giving staff operational control from Discord. Each module toggles independently under features.*.
Awards Discord roles based on accumulated playtime. Syncs on a configurable interval and optionally announces promotions and cleans up stale roles.
features:
  activity-roles:
    enabled: true
    sync-interval: 300
    remove-old-roles: true
    announce-promotion: true
    tiers:
      newcomer:
        display-name: "Newcomer"
        min-hours: 0
        role-id: "111111111111111111"
        color: "#AAAAAA"
      regular:
        display-name: "Regular"
        min-hours: 10
        role-id: "222222222222222222"
        color: "#55FF55"
      veteran:
        display-name: "Veteran"
        min-hours: 50
        role-id: "333333333333333333"
        color: "#5555FF"
      elite:
        display-name: "Elite"
        min-hours: 100
        role-id: "444444444444444444"
        color: "#FFAA00"
      legend:
        display-name: "Legend"
        min-hours: 500
        role-id: "555555555555555555"
        color: "#FF55FF"
Detects Discord server boosters and grants a LuckPerms permission group, then runs reward commands. Reverses with remove-commands when a player stops boosting.
features:
  booster-perks:
    enabled: true
    permission-group: "booster"
    sync-interval: 300
    use-native-detection: true
    booster-role-id: "111111111111111111"
    additional-booster-roles: []
    reward-commands:
      - "give %player% diamond 5"
      - "broadcast &e%player% is now boosting the server!"
    remove-commands:
      - "lp user %player% parent remove booster"
Creates a live player-count status voice channel and optional “join to create” dynamic voice channels under a category.
features:
  voice-channels:
    enabled: true
    enable-status-channel: true
    status-channel-id: "111111111111111111"
    status-channel-format: "📊 Players: %online%/%max%"
    update-interval: 60
    enable-dynamic-channels: true
    category-id: "222222222222222222"
    hub-channel-id: "333333333333333333"
    dynamic-channel-prefix: "🎮 Gaming Room"
    max-dynamic-channels: 10
    user-limit: 0
Bot DMs players a configurable message — optionally only on first join, optionally only once verified. Supports a plain message, an embed, or both.
features:
  welcome-dm:
    enabled: true
    first-join-only: true
    verified-only: false
    plain-message: "Welcome to the server!"
    embed:
      title: "Welcome to %server_name%"
      description: "Glad to have you. Read the rules and have fun!"
      color: "#55FFFF"
      thumbnail: "%player_head%"
      image: ""
      footer: ""
      fields:
        - "Rules|Check #rules|true"
Players request the whitelist via Discord; staff approve or decline. Supports auto-whitelist, DM notifications, and configurable channel/role.
# Discord
/whitelist <username>     # Player requests whitelist
features:
  whitelist:
    enabled: true
    whitelist-channel: "whitelist"
    support-role: "Support"
    auto-whitelist: false
    dm-on-accept: true
    dm-on-decline: true
A simple /ip command that posts the server address. Admins set the address with /ip set.
# Discord
/ip                       # Show the server address
/ip set <address>         # Admin: set the address (perm xdiscord.ip.admin)
features:
  server-ip:
    enabled: true
    api-url: ""
    image-channel: "general"
Broadcasts an in-game title plus an optional Discord message. Scheduled announcements are supported via the scheduled map.
# In-game
/announce <message>       # Broadcast a title in-game + optional Discord message
                          # Permission: xdiscord.announce
features:
  announcements:
    enabled: true
    default-channel: "announcements"
    show-title: true
    send-to-discord: true
    title-stay: 100
    title-fade-in: 10
    title-fade-out: 20
    prefix: ""
    sound: "ENTITY_EXPERIENCE_ORB_PICKUP"
    discord-color: "#FFD700"
    scheduled: {}
Run server commands from Discord. Gated by permission and channel.
# Discord (prefix configurable)
!<command>                # e.g. !say Hello, !tp player1 player2
                          # Permission: xdiscord.console
features:
  bot-console:
    enabled: true
    command-prefix: "!"
    allow-dm: false
    console-channel: "bot-console"

# Top-level Discord console mirror (separate from the command runner):
discord-console:
  enabled: true
  channel-id: "444444444444444444"
  allowed-roles:
    - "Admin"
Monitors TPS and RAM and DMs or messages admins when thresholds are crossed. Targets are the bot’s configured adminIDs.
features:
  admin-alerts:
    enabled: true
    tps-threshold: 15.0
    ram-threshold: 90
    check-interval: 30
    dm-alerts: true
    alert-channel: "admin-alerts"
Run restart/stop/kick/tps/list from Discord, gated by an allowed-commands map and an optional role requirement.
features:
  server-control:
    enabled: true
    allowed-commands:
      restart: true
      stop: true
      kick: true
      tps: true
      list: true
    require-role: true
    control-role: "Server Admin"

Next Steps

The Module System

Understand how all 19 modules toggle, depend on each other, and reload.

Configuration

See the full configuration reference for every module.