Oops... looks like the spiders padded through here
Add products to your cart and remove them from here Lets buyOn this page, you will find everything you need to know about the config.yml options of Phoenix Duels
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.
Leave product-license alone. It is written by the plugin and identifies your purchase. See Licensing.
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. |
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.
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.
Removes an entire category of play. To run a ranked-only server, leave RANKED as the only entry.
allowed-types:
- CHALLENGE
- UNRANKED
- RANKED
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. |
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.
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:
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:
money-enabled: true
items-enabled: true
items-betting:
max-items-per-player: 10
Money betting requires Vault. See Betting.
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
invitation-expiration-time: 60
How many seconds a duel or party invitation stays valid before it lapses.
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. |
The two regeneration.internal values are the ones to change if regeneration is causing lag. Halving them makes regeneration slower but much smoother.
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
config.yml is not the only file. The plugin also writes:
feature_toggles.yml.templates.yml, the default scoreboard.spectator_hotbar.yml.elo.yml - the elo settings, covered on the Elo page.sounds.yml - covered on Customize Sounds.replay.yml and discord.yml - Premium only, covered on Statistics and Discord Match Log.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.
Oops... looks like the spiders padded through here
Add products to your cart and remove them from here Lets buy