Content generated with AI — it may contain mistakes.

Getting started

Installation

Dependencies, first boot, the files it writes and the tables it creates.

Before you start

Three plugins must be in plugins/ before the first boot.

PluginWhat for
ExyliaLibConfiguration, database, menus, holograms, scoreboards, placeholders, rewards, schematics.
FastAsyncWorldEditSaving each arena as a schematic, restoring it after a game, and cloning it.
packeteventsThe packet layer behind the client-side effects.

Optional, and each only adds something:

  • PlaceholderAPI — read the plugin's counters elsewhere.
  • ExyliaProxyUtils — only for a network: what moves a player to the server an event is on. See Network.
  • Worlds — how the auto world is created on Folia. Off Folia the plugin creates it through Bukkit itself and this is not needed.
  • ExyliaPracticeCore, ExyliaFFA, ExyliaSandBox — a player busy in one of those cannot be pulled into an event, and the other way round.
  • ViaVersion, WorldGuard, TAB, floodgate, Apollo, Feather — load-order declarations for servers that run them.

Installing

Drop in the jars

ExyliaEvents.jar plus the three dependencies into plugins/.

Start the server

The first boot writes four configuration files and creates the tables.

Set the main lobby

From /eventsadmin, set the lobby players return to when they leave an event.

Create your first event

Covered in First steps.

Generated files

In plugins/ExyliaEvents/:

FileContents
config.ymlLanguage, limits, cooldowns, timers, command whitelist, world rules, random events, music.
lang/<code>/messages.ymlEvery message, with a section per event type, including its boss bars and titles.
lang/<code>/scoreboards.ymlOne sidebar per event type, plus the lobby sidebar.
lang/<code>/buildbattle-themes.ymlThe themes Build Battle votes on.
lang/<code>/trivia-questions.ymlThe questions Trivia asks.
lang/<code>/menus/Menu layouts: the admin panel, one settings screen per type, and the player menus.

<code> is the language the plugin runs in: en, es, pt or fr, or ExyliaLib's own language while config.yml says language: default. See Configuration · language.

Tables

TableHolds
event_configurationsThe configured events.
events_player_statsGlobal player statistics.
events_player_event_statsStatistics per player per event.
events_player_preferencesPer-player preferences, currently the music toggle.
events_settingsThe single settings row an older version wrote, read once and adopted.
events_server_settingsPer-backend settings, currently each server's main lobby location.
event_kitsKits belonging to a configuration.
event_loot_entriesLoot tables for chest-based types.
event_inscriptionsSign-up lists.
event_pending_rewardsRewards owed to players who were offline.

Database engine

Default is H2, embedded. To share configurations and statistics between servers, point database.yml at a real database:

plugins/ExyliaEvents/database.yml
database:
  type: mysql
  mysql:
    host: 127.0.0.1
    port: 3306
    database: minecraft
    username: root
    password: ""

Engines: h2, mysql, mariadb, postgresql, mongodb.

Arena schematics are per server

Configurations travel through the database, but the .schem files behind them live on each server's disk. A second server reading the same database still needs those files to restore or clone an arena.

Backups

/eventsadmin export dumps every table into plugins/ExyliaEvents/dumps/ and reports how many rows it wrote. /eventsadmin import <filename> reads one of those files back from the same folder. Worth doing before a risky change on a live server, and it is also how a set of configurations moves between database engines.

Updating

Replace the jar and restart. config.yml is versioned and migrates itself — see Configuration · Migrations.

Something missing on this page? Tell us on Discord