Configuration
The five files the plugin writes, and what belongs in each.
Files live in plugins/ExyliaEvents/. All are written on the first boot with their defaults and with
comments on each key. config.yml sits at the top; everything a player reads — messages, sidebars,
Build Battle themes, Trivia questions and menus — lives in a language folder under lang/:
plugins/ExyliaEvents/
├── config.yml
└── lang/
└── <code>/
├── messages.yml
├── scoreboards.yml
├── buildbattle-themes.yml
├── trivia-questions.yml
└── menus/config.yml
language
language: defaultlanguagestringpor defecto defaultThe language of the plugin's menus, messages, sidebars, themes and questions. default follows the
language set in ExyliaLib's config.yml; en, es, pt or fr set this plugin alone. Each one is
a folder under lang/ you can edit. English is the base every other language is laid over, so a key
not translated yet still arrives in English, and any other code starts as a copy of English, yours to
rewrite. A reload picks up a changed language without a restart.
custom holds the files a server had before languages existed: the first start after updating moves
the old messages.yml, scoreboards.yml, buildbattle-themes.yml, trivia-questions.yml and
menus/ into lang/custom/ and sets language: custom, so nothing an owner edited is lost. A fresh
install has neither and starts in default.
settings
Everything about how events behave, covered in Game flow:
settings:
use-main-lobby: true
broadcast-interval: 30
waiting-timeout: 300
broadcast-countdown-times: [30, 15, 10, 5]
max-events-per-player: 1
max-events-total: -1
max-events-waiting: 3
start-cooldown: 0
start-cooldown-permissions: []
event-music-enabled: true
event-music-volume: 0.5
event-music-interval: 150
event-music-discs: [...]
chat-isolation: true
player-isolation: true
frozen-timeout: 6use-main-lobbybooleanpor defecto trueWhether players are sent to the stored main lobby when they leave an event.
chat-isolationbooleanpor defecto trueKeeps an event's chat inside that event: its players read each other and nobody else, spectators read the players, and the rest of the server reads neither. Spectators are the one asymmetry — the players never read them, so a running match is not commentated at.
Set it to false to leave chat exactly as the server's chat plugin delivers it. The message is never
cancelled or re-sent, only its audience is smaller, and a chat plugin that sends each line itself has
taken delivery over — isolation then quietly does not apply.
player-isolationbooleanpor defecto trueKeeps an event's players and spectators out of sight of the rest of the server: they see each other,
in the world and in the tab list, and nobody outside sees them. It is also what stops two events
running side by side from showing each other's players. Set it to false to leave everybody visible
to everybody.
frozen-timeoutintegerpor defecto 6Seconds a player may hang motionless in mid-air inside an event before being eliminated from it. A
frozen or lag-switched client stops sending movement and keeps floating where it stopped, which no
player can do on their own. Standing still on the ground, swimming, climbing, riding and gliding are
not counted. 0 turns it off.
network
network:
enabled: false
return-on-end: trueWhether this server announces its events to the rest of the network and accepts the players other servers send to them. Off by default, and covered in Network.
main-lobby
A leftover from an older layout. The lobby lives in the database now; this section is read once, on the first start after the move, and copied there. A blank world means there is nothing to copy.
reward-commands, command-whitelist, world-restrictions, random-events
Covered in Rewards and Game flow.
auto-world
auto-world:
clone-spacing: 500
clone-paste-y: 64Covered in Arenas · The auto world.
gauntlet
Points, timings and champion commands for series of events. Covered in Gauntlets.
world-border
world-border:
enabled: trueenabledbooleanpor defecto trueWhether the red wall is drawn around arenas, plots and matches. It is only something players see: turning it off saves client frames in small arenas, and the bounds are still enforced either way. A shrinking zone is always drawn, since players have to see where it is closing to.
This is the server-wide switch. Each event type also has its own
bounds-border, so a border is drawn only when both say
so.
Per-type blocks
buildbattle, chairs, gemcrawler, pillarsoffortune, survivalgames and maceroulette keep the
settings that are not text — Build Battle's allowed entities, the holograms' placement, the Pillars
item blacklist, the Survival Games loot pool, Mace Roulette's spin sounds — plus winner-fireworks.
The boss bars, action bars, titles and hologram lines players read are in messages.yml, in each
type's own section. Covered in On-screen and audio.
scoreboards.yml
lang/<code>/scoreboards.yml.
One sidebar per event type plus the lobby board. See On-screen and audio · Sidebars.
Durations — an event's base length, the CS:GO round clocks, the Mace Roulette timers — are asked for as a length of time rather than clicked up a step at a time, and are written back the same way.
messages.yml
lang/<code>/messages.yml. Every message, with a shared events section and then one section per event type — tnttag,
taggame, lms, topkiller, oitc, quake, csgo, tntrun, spleef, splegg, splatoon,
brackets, tournament, buildbattle, blockparty, thimble, parkour, infection, kingkong,
slap, anvilrunning, chairs, gemcrawler, pillarsoffortune, simonsays, volcano,
survivalgames, bridge, ctf, domination, murdermystery, hideseek, morphhunt, redlight,
glassbridge, koth, paintball, dodgeball, sheepwars, zombiehorde, trivia, race,
maceroulette, the eight team variants and gauntlet — plus teams, placeholders, admin and
editor, the words of the setup screens.
A type's section also holds its boss bars, action bars, titles and hologram lines, so they translate with the rest.
Team names live in teams, which is why translating the file translates the teams as well.
event-catalog holds what players read about each type — its name, the lines describing it and the
category the menus group it under — keyed by type id, so the whole catalogue is renamed or translated
here. A file written before a type existed does not gain its entry; that type shows the built-in one
until you add it.
scheduled-events.yml
Time-of-day scheduling. See Game flow · Scheduled events.
trivia-questions.yml
lang/<code>/trivia-questions.yml. The questions Trivia asks. Every entry has its text, exactly four answers and correct, the index of
the right one counted from zero — which is what the four answer zones marked on the arena are matched
against.
questions:
- question: "How many blocks tall is an Enderman?"
answers: ["2", "3", "4", "5"]
correct: 1It ships with twenty-four example questions in each language and is meant to be rewritten, translated or replaced wholesale. A
malformed question — not four answers, or a correct out of range — is dropped.
buildbattle-themes.yml
lang/<code>/buildbattle-themes.yml. The themes Build Battle votes on, plus the materials the vote items use. Fully translatable: edit,
translate or replace every entry. The settings menu has a button that restores the shipped list.
menus/
lang/<code>/menus/
├── admin/ the panel, the type selector, the configuration list and setup,
│ one settings screen per type — CS:GO has one per weapon and Mace
│ Roulette one for its modifiers —, kit list, arena markers, the
│ gauntlet editor and confirmation dialogs
└── user/ the main menu, active events and their categories, start event,
stats, kit selection, team selection, the gauntlet builder and
the spectator menumenus/admin/ is rewritten from the jar on every start, so nothing an owner is meant to edit lives
there. menus/user/ is yours: a missing file is written again, a new key is added at once, a changed
default waits in /exylialib updates, and anything you changed is never touched.
The active events screen groups its entries by game when a server is running several arenas of the same one.
Migrations
config.yml is at version 4. Older files are migrated on the first boot after updating:
| From | What changes |
|---|---|
| Version 1 | The three title timings are divided by twenty, because they were written in ticks and are read in seconds now. |
| Version 2 | language: custom is added, pointing the server at the files it already had, moved into lang/custom/. |
| Version 3 | The boss bars, action bars, titles and hologram lines move into messages.yml, at the same path, keeping whatever text the owner wrote. |
A key no file declares is deleted on load and reported once as UNKNOWN_KEY. It keeps the files clean
across updates, and is why your own keys do not survive in them.
Something missing on this page? Tell us on Discord