Configuration Files

Detailed specifications of variables and settings inside the plugin configuration files.

Main Configuration File (config.yml)

Located at plugins/ShyamDuels/config.yml. This file manages module toggles, world structures, command limitations, and party and duel matchmaking metrics.

Module Toggles

Disable specific sub-modules server-wide:

yamlmodules:
  queue: true
  ffa: true
  party: true
  spectate: true
  friends: true
  duels: true
  custom-kits: true
  killstreaks: true
  auto-gg: true
  action-bar: false
  tab-list: true
  scoreboard: true
  practice-kit-editor: true
  practice-duel-command: true
  practice-right-click-duel: true
  practice-death-messages: true
  practice-golden-head: true
  practice-totem-practice: true
  armor-trimmer: true
  shield-customizer: true
  enchant-table: true
  kit-editor-armor-trimmer: true
  kit-room-shulker-editor: true

See Practice Features for practice module details.

World and Arena Configurations

yamlarenas:
  world: Arenas               # Base void world; clone worlds become Arenas1, Arenas2, …
  cloning: 0                  # Extra world copies for duel capacity (0 = off)
  sanitize-clone-worlds: true # Strip entity data from copied world folders
  reset-queue:
    max-concurrent: 3         # Max simultaneous FAWE arena restorations
    ffa-one-at-a-time: true   # Only one FFA reset at a time (duel resets unaffected)
  clear-entities-on-startup: true
  sanitize-clone-worlds: true # Strip entity data from copied world folders

See the Arena Setup: Arena Cloning guide for how cloning works. Build template arenas only in the base Arenas world, not in Arenas1, Arenas2, or other auto-generated clone worlds.

Command Restrictions

Configure command rules inside matches to block cheating or bypass attempts:

yamlcommand-restrictions:
  allowed:                    # Always permitted (plus admin bypass)
    - leave
    - leavefight
    - spawn
    - spectate
  in-party:                   # Blocked while in a party lobby
    - kiteditor
    - duel
    - ffa
    - spectate
  in-match-global:            # Blocked during any active match
    - kiteditor
  in-duel:
    mode: block-all
  in-ffa:
    mode: block-all
  in-spectate:
    mode: block-all

Queue and Duels

yamlqueue:
  multiple-kits: true         # Allow queuing multiple kits at once
  random-queue-enabled: true  # Random kit queue option
  modes:                      # Disable individual queue sizes
    1v1: true
    2v2: true
    3v3: true
    4v4: true

duels:
  invite-expiration: 60       # Seconds before duel invites expire
  start-countdown: 5          # Countdown before round starts
  max-rounds: 20

leavefight:
  cooldown: 3                 # Seconds before /leavefight can be used again
  delay: 3                      # Teleport delay after command

Party, FFA, and Match Start

yamlparty:
  default-max-size: 8
  size-permissions:
    shyamduels.vip: 16
    shyamduels.vipplus: 32
  invite-expiration: 60

party-chat:
  format: "&b[Party] &f{player}: &7{message}"

party-ffa:
  spawn-circle-radius: 4.0

ffa:
  reset-interval-seconds: 1800
  use-match-start-options: true
  skip-countdown: false
  countdown-seconds: [5, 4, 3, 2, 1]

match-start:
  countdown-seconds: [5, 4, 3, 2, 1]

match-start-potions:
  enabled: true
  delay_seconds: 1
  blocked-effects: [poison, slowness, weakness, ...]

Configure match-start potion scanning per kit with /kit matchstartpots. See Kit Setup.

Killstreaks, Messages, and Practice Items

yamlkillstreaks:
  enabled: true
  broadcast: true
  tiers:
    - kills: 5
      name: "Killing Spree"
    - kills: 10
      name: "Rampage"

death-messages:
  enabled: true
  customizable: true

auto-gg:
  enabled: true
  delay-seconds: 2

golden-head:
  cooldown: 3
  item: { ... }               # Texture, name, lore, effects

totem-practice:
  command: "totempractice"
  gui: { title, size }
  practice: { score_reset_duration, max_misses }

door-animation:
  enabled: true               # Complex door gates (see Gate Setup guide)

custom-kits:
  enabled: true
  base-kit-name: custom
  default-unlocked-kits: 3
  hide-from-public-menus: true

right-click:
  enabled: true
  commands:
    - "duel %clicked_player%"

Golden head, totem practice, and door animation are toggled via modules.*, not separate enabled keys on those sections.

Tab List and Scoreboard

Tab headers/footers and scoreboard layouts are configured in separate files:

Reload tab config with /tab reload. Players toggle tab/scoreboard visibility in /settings.

Tab sort ranks in tab/display.yml use optional LuckPerms permissions for prefix priority: group.owner, shyamtab.admin, shyamtab.staff, shyamtab.vip.

GUI Menus and Item Configs

All player-facing menus live under plugins/ShyamDuels/menus/:

Lobby hotbar items and the post-duel rematch button: items/spawn-items.yml. Party and queue hotbar items: items/party-items.yml, items/queue-items.yml.

yaml# items/spawn-items.yml
rematch:
  enabled: true               # Allow rematch after duels
  duration-seconds: 5         # How long the rematch item stays in hotbar
  slot: 5                     # Hotbar slot (0-8)
  material: EMERALD
  name: "&a&lREMATCH"
  lore:
    - " &fQuick rematch vs &e{opponent}"
    - " &7Kit: &b{kit}"

items:
  queue:
    slot: 0
    material: DIAMOND_SWORD
    name: "&b&lRANKED QUEUE"
    commands: ["player:queue"]

Rematch lore supports {opponent} and {kit} placeholders. Reload with /shyamduels reload.

Kit and FFA GUI order/icons: data/order.yml. Custom kit categories: categories.json (runtime).

Runtime Data Files

Messages (lang/messages.yml)

All in-game chat strings, GUI titles, duel titles, party messages, and help text live in plugins/ShyamDuels/lang/messages.yml. Reload with /shyamduels reload.

Database Connection Settings (database.yml)

Manages backend data connections for matchmaking stats, arena registers, and kit loads:

yamltype: SQLITE                  # Connection type: SQLITE or MYSQL

sqlite:
  directory: data
  arenas-file: arenas.db      # Local SQLite database files
  kits-file: kits.db
  stats-file: stats.db

mysql:
  host: localhost
  port: 3306
  database: shyamduels
  username: root
  password: ""
  use-ssl: false

ELO and Ranks Database (ranks.yml)

Manages matchmaking ranges and calculations:

yamlelo:
  rank-system: true           # Enable rank progressions
  starting-elo: 1000          # Base ELO rating for new players
  base-gain: 25               # Base ELO added on win
  base-loss: 20               # Base ELO deducted on loss
  kill-gain: 5                # Bonus ELO added per kill

  anti-farm:
    enabled: true             # Block ELO farming exploits
    cooldown-hours: 3         # Cooldown before the same opponent yields ELO again
    max-wins-per-opponent: 2  # Max wins against the same player in cooldown period
    block-same-ip: true       # Block ELO gains between matching IP addresses

Import from StrikePractice: see the Migration Guide.

Sound Effects Library (sounds.yml)

Maps custom sounds to match events. Supports standard Minecraft sound keys (e.g. BLOCK_NOTE_BLOCK_PLING):

yamlsounds:
  match-found:
    sound: ENTITY_PLAYER_LEVELUP
    volume: 1.0
    pitch: 1.0
  countdown:
    sound: BLOCK_NOTE_BLOCK_PLING
    volume: 1.0
    pitch: 1.0
  fight-start:
    sound: ENTITY_WITHER_SPAWN
    volume: 0.5
    pitch: 1.0