Configurations ๐Ÿ—ƒ๏ธ Configuration Files

๐Ÿ“ Main Configuration

On this page, you will find everything you need to know about the config.yml options of Phoenix Duels

#Main Configuration

config.yml holds the server-wide settings. Almost everything here is also editable in game from /pduels editor > Settings, which is the safer route on a live server; this page is for when you would rather edit the file directly.

Run /pduels reload after editing, or /pduels reload menus if you only touched menu files.

circle-exclamation

Leave product-license alone. It is written by the plugin and identifies your purchase. See Licensing.

#General

notify-if-new-version: true
join-reminder: true
language: EN_US
debug: false
Option Description
notify-if-new-version Tells players with phoenixduels.admin when a newer version is available, shortly after they join.
join-reminder Shows the Lite version's welcome message on join. Has no effect on Premium.
language Which translation file the plugin loads. Lines missing from it fall back to English. See Languages & Translations.
debug Adds verbose logging to the console. Leave it off unless support asks for it.

#Database

The available types are sqlite and mysql. SQLite needs no setup and is fine for a single server; MySQL is a Premium feature.

database:
  type: sqlite
  address: localhost
  name: phoenixduels_db
  port: 3306
  username: phoenixuser
  password: phoenixpassword
  table-prefix: ''
  hikari:
    maximumPoolSize: 20
    minimumIdle: 5
    idleTimeout: 600000
    maxLifetime: 1800000
    connectionTimeout: 30000
    fetch-timeout: 5000

table-prefix is put in front of every table name. It is what lets two separate Phoenix Duels installations share one MySQL database without colliding. Set it before the first start, because changing it later makes the plugin create a fresh, empty set of tables and your existing data is left behind under the old names.

The hikari block tunes the connection pool and only applies to MySQL. The defaults suit most servers. maximumPoolSize is the usual thing to raise on a large network, and fetch-timeout is how long a query may take before the plugin gives up on it.

See What tables does the plugin create in my database? for the tables that get created.

#Worlds

Restricts the plugin to certain worlds, which is useful if you run Multiverse and only want duels in a dedicated world.

worlds:
  should-use: DISABLED_WORLDS
  enabled: []
  disabled:
  - world_nether

Valid options for should-use are ENABLED_WORLDS and DISABLED_WORLDS. With ENABLED_WORLDS, only the worlds in the enabled list are used and everything else is ignored. With DISABLED_WORLDS, every world is used except the ones in disabled.

#Allowed Types

Removes an entire category of play. To run a ranked-only server, leave RANKED as the only entry.

allowed-types:
- CHALLENGE
- UNRANKED
- RANKED

#Match

Every option below is documented in detail, with screenshots, on the Match Settings page. The keys are listed here for editing the file directly.

match:
  default-finishing-seconds: 5
  extended-finishing-seconds: 60
  maximum-allowed-rounds: 10
  rounds-format: FIRST_TO
  restore-last-inventory: true
  require-empty-inventory: false
  launch-fireworks-for-winner: true
  spectator-engine: DEFAULT
  tablist-scoping-enabled: true
  spectator-tablist-prefix: '&e[S] '
  prevent-same-ip-ranked: false
  sneak-to-ready: false
  prevent-party-queueing: false
  floor-kill: true
Option Description
default-finishing-seconds How long players stay in the arena after a match ends.
extended-finishing-seconds Used instead of the default when the ending needs more time on screen, such as a betting payout.
maximum-allowed-rounds The highest rounds value a player may pick for a custom match.
rounds-format FIRST_TO makes the rounds value the number of round wins needed to clinch the match. BEST_OF makes it the total number of rounds played, with the majority deciding the winner.
restore-last-inventory Saves the player's inventory before a match and gives it back afterwards.
require-empty-inventory Refuses a duel invitation unless the player's inventory is empty.
launch-fireworks-for-winner Fires fireworks around the winner.
spectator-engine DEFAULT uses real spectator gamemode. LEGACY keeps the player in survival as an invisible ghost. Lite is always LEGACY.
tablist-scoping-enabled Limits the tab list of players in a match to that arena.
spectator-tablist-prefix Shown before a spectator's name in the tab list.
prevent-same-ip-ranked Stops ranked matchmaking pairing players who share an IP address.
sneak-to-ready Ends the pre-fight countdown as soon as everyone has sneaked.
prevent-party-queueing Stops parties queueing for Unranked and Ranked.
floor-kill Instantly eliminates a player who lands on the arena floor.

#Whitelist / Blacklist Commands

Controls which commands players may run during a match. To block flying mid-duel, for example:

match:
  commands:
    mode: BLACKLIST
    whitelist-commands: []
    blacklist-commands:
    - fly
    - heal

Valid options for mode are BLACKLIST and WHITELIST. Only the list matching the chosen mode is read.

#Nametags and Chat

match:
  custom-nametags:
    enabled: true
    prefix: '%color%[%team%] '
  chat:
    enabled: true
    scope: TEAM
    format: '&8[&a&lArena&8] &e%player%&8: &f%message%'

chat.scope takes TEAM, where only teammates see the message, or ARENA, where everyone in the match does. See Custom Nametags and Team Chat.

#Party

party:
  require-permission-to-create: false
  default-slots: 5
  chat-format: '&7[Party] &f%player%&7: &f%message%'
  permission-slots:
    '0':
      amount: 10
      permission: phoenixduels.partymembers.10
    '1':
      amount: 15
      permission: phoenixduels.partymembers.15

Covered in full on the Party page.

#Betting

betting:
  money-enabled: true
  items-enabled: true
items-betting:
  max-items-per-player: 10

Money betting requires Vault. See Betting.

#Ranked Restriction

Keeps players out of Ranked until they have won a number of Unranked games.

ranked:
  unranked-requirement:
    enabled: false
    amount: 10
    bypass-permission: phoenixduels.ranked.bypass

#Invitations

invitation-expiration-time: 60

How many seconds a duel or party invitation stays valid before it lapses.

#Performance

performance:
  internal-pool-size: 5
cache:
  use-memory-for-performance: true
stats-update-interval: 60
leaderboard-fetch-interval: 60
regeneration:
  internal:
    blocks-per-cycle: 4096
    max-chunks-per-cycle: 16
Option Description
performance.internal-pool-size How many threads the plugin uses for its background work, such as database reads.
cache.use-memory-for-performance Caches components in memory instead of rebuilding them. Recommended, but you can turn it off on a very low-memory server.
stats-update-interval Seconds between refreshes of cached player statistics.
leaderboard-fetch-interval Seconds between leaderboard refreshes. Raise it if leaderboard queries are heavy; lower it if your holograms feel stale.
regeneration.internal.blocks-per-cycle How many blocks the internal regeneration engine restores per tick. Lower this if regeneration causes lag spikes.
regeneration.internal.max-chunks-per-cycle How many chunks it may touch per tick. Lower this alongside the option above.

circle-info

The two regeneration.internal values are the ones to change if regeneration is causing lag. Halving them makes regeneration slower but much smoother.

#Commands

Every command can be disabled or renamed. See the Commands page for the full table of keys and defaults.

commands:
  require-permission: false
  party:
    enabled: true
    alternative: match

#Other Files

config.yml is not the only file. The plugin also writes:

#Translations

All player-facing text lives in the translation file for your chosen language, under translations/. Chat messages, titles, menu text and holograms are all edited there rather than in config.yml.

Last updated 1 day ago
My Cart (0 items)

Oops... looks like the spiders padded through here

Add products to your cart and remove them from here Lets buy