BoosterRewards Wiki

Configuration (config.yml)

The config.yml file controls the core behavior of the plugin, including database settings, reward definitions, and synchronization timings.

config.yml
# =============================================================================
#    ____                   _            _____ZX______
#   |  _ \                 | |          |  __ \ZX_____\
#   | |_) | ___   ___  ___ | |_ ___ _ __| |__) |_____
#   |  _ < / _ \ / _ \/ __|| __/ _ \ '__|  _  // _ \ \ /\ / / _` | '__/ _` |/ __|
#   | |_) | (_) | (_) \__ \| ||  __/ |  | | \ \  __/\ V  V / (_| | | | (_| \__ \
#   |____/ \___/ \___/|___/ \__\___|_|  |_|  \_\___| \_/\_/ \__,_|_|  \__,_|___/
#                         MAIN CONFIGURATION FILE
# =============================================================================
# Need help? Create a ticket at: https://discord.gg/38Ebj42e
# Documentation: https://jan1k1.github.io/BoosterRewards
#Config Version (Do not change)
config-version: 1
# =============================================================================

# =============================================================================
# AVAILABLE PLACEHOLDERS
# =============================================================================
# You can use these placeholders in reward commands and messages:
#
#   %player%         - The Minecraft username of the player
#   %uuid%           - The player's Minecraft UUID
#   %discord_user%   - The player's Discord username (e.g., "jan1k")
#   %discord_id%     - The player's Discord User ID (e.g., "123456789012345678")
#   %boost_start%    - Timestamp when the player started boosting
#   %boost_duration% - How long the player has been boosting (e.g., "3 days")
#
# =============================================================================


# =============================================================================
# DATABASE SETTINGS
# =============================================================================
# The plugin needs a database to store linked accounts and boost data.
#
# SUPPORTED TYPES:
#   - H2       (Default, file-based, no setup required)
#   - MYSQL    (Remote database, requires server details)
#   - MARIADB  (Same as MySQL, just a different database engine)
#
# For small servers (under 100 players), H2 is perfectly fine.
# For large networks, use MySQL/MariaDB for better performance.
# =============================================================================
database:
  # Database type: H2, MYSQL, or MARIADB
  type: H2
  
  # MySQL/MariaDB connection settings (ignored if using H2)
  host: "localhost"
  port: 3306
  database: "boosterrewards"
  username: "root"
  password: ""
  
  # Advanced settings
  table-prefix: "booster_"  # Prefix for database tables (useful if sharing a database)
  pool-size: 10           # Max number of database connections (10 is good for most servers)
  timeout: 5000           # Connection timeout in milliseconds

# =============================================================================
# REWARD SETTINGS
# =============================================================================
# Define what rewards players receive when they boost your Discord server.
# You can create multiple reward tiers with different requirements.
#
# COMMAND PREFIXES:
#   - No prefix or "console: " = Run as console (recommended for permissions)
#   - "player: " = Run as the player
#
# EXAMPLES:
#   - "lp user %player% parent add booster"     (Give LuckPerms group)
#   - "give %player% diamond 5"                  (Give items)
#   - "eco give %player% 1000"                   (Give money)
#   - "player: warp boosterzone"                 (Teleport player)
# =============================================================================
rewards:
  booster:
    # Enable/disable this reward tier
    enabled: true
    
    # Permission given to boosters (optional, for permission-based perks)
    permission: "boosterrewards.booster"
    
    # Commands to run when player STARTS boosting
    # These run once when boost is detected
    on-boost:
      - "lp user %player% parent add booster"
      - "give %player% diamond 5"
    
    # Commands to run when player STOPS boosting
    # These run when their boost expires or is removed
    on-stop:
      - "lp user %player% parent remove booster"
    
    # Cooldown before they can receive rewards again (in seconds, 0 = no cooldown)
    cooldown: 0
    
    # If true, rewards can only be claimed once ever (even if they boost again)
    one-time: false

  # Reward tier for the 2nd boost (Nitro users get 2 boosts)
  # This runs IF we can detect a second boost (implied or supported)
  booster_2:
    enabled: false
    permission: "boosterrewards.doublebooster"
    on-boost:
      - "give %player% diamond 10"
      - "msg %player% &dThanks for your second boost!"
    on-stop: []
    cooldown: 0
    one-time: false

  # Example of a secondary reward tier (disabled by default)
  # You can add as many tiers as you want
  Booster-subscriber:
    enabled: false
    role-id: "000000000000000000"  # Specific Discord role to check for
    permission: "boosterrewards.subscriber"
    on-boost:
      - "lp user %player% parent add subscriber"
    on-stop:
      - "lp user %player% parent remove subscriber"

# =============================================================================
# SYNC & VERIFICATION SETTINGS
# =============================================================================
# Controls how often the plugin checks Discord for boost status updates.
# =============================================================================
sync:
  # How often to check all online players' boost status (in seconds)
  # Lower = more accurate but more API calls
  # Recommended: 300 (5 minutes) for most servers
  interval: 300
  
  # Automatically remove rewards when a player stops boosting?
  # If false, they keep rewards forever once obtained
  remove-rewards-on-stop: true
  
  # Check boost status when a player joins the server?
  # Useful for applying rewards immediately on login
  check-on-join: true
  
  # Verify all boosters when the server starts?
  # This syncs the database with current Discord boost status
  verify-on-startup: true
  
  # How to handle multiple reward tiers
  # AGGREGATE = Give all tiers they qualify for
  # HIGHEST   = Only give the highest tier
  rank-mode: AGGREGATE

# =============================================================================
# LINKING SETTINGS
# =============================================================================
# Controls how players link their Minecraft and Discord accounts.
# =============================================================================
linking:
  # ===========================================
  # LINKING MODE (How players start the link)
  # ===========================================
  # This controls which platform initiates the linking process.
  #
  # DISCORD_TO_MINECRAFT (Recommended):
  #   1. Player runs /link in Discord
  #   2. Bot gives them a code (e.g., "ABC123")
  #   3. Player types /link ABC123 in Minecraft
  #   ✅ Best for: Most servers, prevents abuse
  #
  # MINECRAFT_TO_DISCORD:
  #   1. Player runs /link in Minecraft
  #   2. Plugin gives them a code (e.g., "XYZ789")
  #   3. Player types /link XYZ789 in Discord
  #   ✅ Best for: Servers where players are in-game first
  #
  mode: DISCORD_TO_MINECRAFT
  
  # How long a link code is valid (in seconds)
  # After this time, the code expires and they need a new one
  # Default: 300 = 5 minutes
  code-expiry: 300
  
  # Length of the link code
  # 6 = codes like "ABC123" (recommended)
  # 8 = codes like "ABCD1234" (more secure)
  code-length: 6
  
  # Allow players to unlink and relink their account?
  # true  = Players can use /logout and /link again
  # false = Permanent link (contact staff to change)
  allow-relink: true
  
  # Require the user to be a booster BEFORE they can link?
  # true  = Only boosters can link (anti-spam)
  # false = Anyone can link, but only boosters get rewards
  require-boost-to-link: false

# =============================================================================
# FEATURES (Enable/Disable Plugin Features)
# =============================================================================
# Toggle various plugin features on or off.
# =============================================================================
features:
  # DEBUG MODE
  # Prints detailed logs to console for troubleshooting issues.
  # Shows: API calls, database queries, sync operations, etc.
  # ⚠️ Only enable when diagnosing problems - very spammy!
  debug-mode: false
  
  # UPDATE CHECKER
  # Checks for new plugin versions when the server starts.
  # If an update is available, it notifies admins in console.
  # Does NOT auto-update - just informs you.
  update-checker: true
  
  # METRICS (bStats)
  # Sends anonymous usage statistics to bStats.org
  # Helps us understand how the plugin is used to improve it.
  # Data: Server version, player count, Java version (no IPs or names)
  # Disable if you prefer complete privacy.
  metrics: true
  
  # AUTO-CLAIM REWARDS
  # Automatically give rewards when a boost is detected.
  # true  = Rewards are given instantly when boost is detected
  # false = Player must run a command to claim their rewards
  auto-claim: true
  


# =============================================================================
# LINK PANEL (Optional Discord Embed)
# =============================================================================
# Creates a permanent embed in a Discord channel with a "Link Account" button.
# Players click the button instead of using /link in Discord.
# =============================================================================
panel:
  # Enable the link panel feature
  enabled: false
  
  # Channel ID where the panel will be posted
  # (See discord.yml for how to get Channel IDs)
  channel-id: "000000000000000000"
  
  # Automatically update the panel embed periodically
  auto-update: true
  
  # How often to update the panel (in seconds)
  update-interval: 60