Content generated with AI — it may contain mistakes.

Reference

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: default
languagestringpor defecto default

The 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: 6
use-main-lobbybooleanpor defecto true

Whether players are sent to the stored main lobby when they leave an event.

chat-isolationbooleanpor defecto true

Keeps 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 true

Keeps 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 6

Seconds 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: true

Whether 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: 64

Covered in Arenas · The auto world.

gauntlet

Points, timings and champion commands for series of events. Covered in Gauntlets.

world-border

world-border:
  enabled: true
enabledbooleanpor defecto true

Whether 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.

Times on the admin screens are typed

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.

trivia-questions.yml
questions:
  - question: "How many blocks tall is an Enderman?"
    answers: ["2", "3", "4", "5"]
    correct: 1

It 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.

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 menu

menus/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:

FromWhat changes
Version 1The three title timings are divided by twenty, because they were written in ticks and are read in seconds now.
Version 2language: custom is added, pointing the server at the files it already had, moved into lang/custom/.
Version 3The boss bars, action bars, titles and hologram lines move into messages.yml, at the same path, keeping whatever text the owner wrote.
Unknown keys are removed

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