Content generated with AI — it may contain mistakes.

Reference

Configuration

Every key of config.yml: language, requests, match times, modes, bets, spectators, after the duel, history, replays, network, the duel scoreboards and the command allowlist, plus messages and menus.

plugins/ExyliaDuels/config.yml holds everything that is not a message, a menu, an arena or a kit. Arenas and kits, with their flags and rules, are made in game with /duelsadmin. Every key of this file can be changed in game too: the panel's Settings card holds the modes, bets and limits, and All settings opens every key. Both write this file. Times are written 30s, 5m, 1h30m or 30d. Apply a hand edit with /duelsadmin reload.

Language

languagestringpor defecto default

default follows the language set in ExyliaLib's config.yml; en, es, fr, pt, ru or tr sets this plugin alone. Each is a folder under lang/ you can edit.

debugbooleanpor defecto false

Explains in the console what the plugin is doing.

Challenges: requests

KeyDefaultWhat it does
requests.expiry60sHow long a challenge waits for an answer.
requests.cooldown10sTime a player waits between two challenges sent. exyliaduels.cooldown.<n> gives a rank <n> seconds instead, the lowest winning. Skipped with exyliaduels.bypass.cooldown.

The fight: match

KeyDefaultWhat it does
match.countdown5sCountdown before the fight, with both players frozen in place.
match.max-duration10mLongest a fight may last, every round of it together. When it runs out the duel is a draw, whatever the round score, and every stake is refunded.
match.end-delay3sTime the result stays on screen before both players are sent back, and between two rounds.

Each round after the first starts with the same match.countdown.

Modes: modes

KeyDefaultWhat it does
modes.own-inventorytruePlayers may fight with their own inventory.
modes.risktrueWith their own inventory, players may agree that the loser's inventory goes to the winner.

A kit is always offered while at least one kit is enabled, or another plugin offers one. Which modes a player may pick also depends on their rank: see Permissions.

Bets: bets

KeyDefaultWhat it does
bets.money.enabledtrueMoney bets.
bets.money.currency""The currency a new money bet starts with, by its ExyliaLib id. Empty uses the server's default. It is also the currency money_won records count.
bets.money.currencies[]The currencies a bet may use, by their ExyliaLib id. Empty offers every currency the player may use.
bets.money.minimum100Smallest stake per player.
bets.money.maximum0Largest stake per player. 0 means no limit. exyliaduels.bet.max.<n> gives a rank a largest stake of <n> (0: none) instead, the highest winning.
bets.money.tax-percent5.0Share of the pot destroyed when a duel is won, from 0 to 100. Draws and cancelled duels are refunded in full. exyliaduels.tax.<n> gives a winner's rank <n> percent instead, the lowest winning. Players with exyliaduels.bypass.tax keep everything.
bets.items.enabledtrueItem bets: players on the same server put their stakes in a trade window and confirm.
Only currencies earned by playing

List only currencies players earn in game in bets.money.currencies. Never offer a currency bought with real money. See ExyliaLib's economy for the currency ids.

Spectators: spectators

spectators.enabledbooleanpor defecto true

Players may watch a duel with /duel spectate <player>, in spectator mode inside the arena.

After the duel: after-duel

after-duel.windowdurationpor defecto 5m

How long the [INVENTORY], [YOURS] and [⟲ REMATCH] buttons of the end-of-duel block work. 0s turns them off. See Duelling.

History: history

KeyDefaultWhat it does
history.enabledtrueStores every decided duel for /duel history, draws included. Cancelled duels never.
history.keep45How many duels each player keeps, newest first. 0 keeps every one.
history.max-age30dDuels older than this are deleted. 0s keeps them however old.

Replays: replays

KeyDefaultWhat it does
replays.enabledtrueRecords every duel that reaches the fight. Needs history.enabled: a replay is reached from its duel there, and goes when both players' rows of it are gone.
replays.kit-onlyfalseRecords only duels fought with a kit.
replays.max-age14dReplays older than this are deleted, even while the history still lists the duel. 0s keeps them as long as the history does.

Network: network

KeyDefaultWhat it does
network.enabledfalsePlayers on other servers can be challenged, and server-kit duels are fought on the arena server.
network.arena-serverarenaThe server-id of the server that hosts network duels, as the proxy names it.
network.shared-economyfalseWhether every server shares one economy. Only then may players on different servers bet money.

See Network before turning it on.

The duel scoreboards: scoreboard, hits-scoreboard, rounds-scoreboard

The sidebar both fighters see from the countdown to the end of the duel. scoreboard is the usual one; hits-scoreboard replaces it in a duel with a hits-to-win kit, and rounds-scoreboard in a duel with a kit of several rounds (it wins when a kit has both). The three have the same keys.

KeyDefaultWhat it does
scoreboard.enabledtrueShows the board.
scoreboard.title['{primary}&lDUEL']The title. Several entries animate it, one per refresh.
scoreboard.linessee belowThe lines, top first, at most 15.
scoreboard.update.interval10Ticks between refreshes (20 ticks are one second).
scoreboard.update.smarttrueSends only the lines that changed.
scoreboard.update.cachetrueKept for older files; changes nothing.
lines:
  - ''
  - '{secondary}Opponent:'
  - ' {letters_black}▎ {highlight}%exyliaduels_opponent%'
  - ' {letters_black}▎ {letters}Health {letters_black}» {error}%exyliaduels_opponent_health% ❤'
  - ''
  - '{secondary}Duel:'
  - ' {letters_black}▎ {letters}Time {letters_black}» {info}%exyliaduels_time% ⌚'
  - ' {letters_black}▎ {letters}Mode {letters_black}» {info}%exyliaduels_mode%'
  - ' {letters_black}▎ {letters}Pot {letters_black}» {success}%exyliaduels_pot%'
  - ''

hits-scoreboard opens with both hit counts, and rounds-scoreboard with both round counts and the round:

lines:
  - ''
  - '{secondary}Rounds:'
  - ' {letters_black}▎ {letters}You {letters_black}» {success}%exyliaduels_rounds_won%{letters_black}/{info}%exyliaduels_rounds_to_win%'
  - ' {letters_black}▎ {letters}Them {letters_black}» {error}%exyliaduels_opponent_rounds_won%{letters_black}/{info}%exyliaduels_rounds_to_win%'
  - ' {letters_black}▎ {letters}Round {letters_black}» {info}%exyliaduels_round%'
  - ''
  - '{secondary}Duel:'
  - ' {letters_black}▎ {letters}Opponent {letters_black}» {highlight}%exyliaduels_opponent%'
  - ' {letters_black}▎ {letters}Time {letters_black}» {info}%exyliaduels_time% ⌚'
  - ' {letters_black}▎ {letters}Mode {letters_black}» {info}%exyliaduels_mode%'
  - ' {letters_black}▎ {letters}Pot {letters_black}» {success}%exyliaduels_pot%'
  - ''

Commands during a duel: allowed-commands

allowed-commandslistpor defecto [duel, msg, tell, w, whisper, m, r, reply]

The only commands a player can use from an accepted challenge until they are home again, and while spectating, written without the slash. Everything else is refused. Aliases with a plugin prefix (essentials:msg) are matched too.

Messages

lang/<language>/messages.yml holds every chat line, title, boss bar and label, grouped as challenge, request, bet, fight, spectate, network, stats, after-duel, replay, admin, labels and rules. Colours use palette tokens such as {primary}, so recolouring the server never means editing this file.

  • %prefix% is replaced by the prefix value. An empty message is not sent.
  • A message may open with an effect tag, which never reaches the screen: [sound:NAME|volume|pitch] plays a sound, [center] centres the line.
  • request.received is the block the challenged player reads. %accept% and %decline% are the buttons, styled by labels.accept-button and labels.decline-button.
  • fight.countdown-title, fight.fight-title, fight.victory-title and the others are the titles; fight.time-bar is the boss bar, with %time_precise% the time left.
  • after-duel.summary is the block both players read once a duel is decided, with %view%, %own% and %rematch% the buttons, styled by after-duel.view-button, own-button and rematch-button.
  • replay.hud is the line above the replay hotbar while watching.
  • rules holds what kit rules say during a duel (rounds won and lost, build height, item cooldowns) and the prompts of the screens that set them.
  • labels are the words injected into menus and messages (enabled, disabled, ready, random, the mode names), so one palette change restyles every screen.

The player screens under lang/<language>/menus/user/ (the challenge screen, the end-of-duel inventory view, the history and a duel's screen) and the replay hotbar, lang/<language>/overlays/replay.yml, are yours to restyle: an update only adds what is missing. The admin screens under menus/admin/ are regenerated from the jar on every start. See ExyliaLib's menus for the format.

Something missing on this page? Tell us on Discord