Content generated with AI — it may contain mistakes.

Getting started

Installation

Dropping the jar in, what gets generated, and the order the files matter in.

Requirements

RequirementDetail
ServerPaper 1.21 or newer. Folia supported.
Java21
RequiredExyliaLib, FastAsyncWorldEdit, packetevents
OptionalPlaceholderAPI, ViaVersion, Worlds, Apollo, FeatherServerAPI, floodgate
FastAsyncWorldEdit and packetevents are hard dependencies

Both are listed under depend, not softdepend — the server refuses to load the plugin without either. Cloning an arena is a schematic paste and regenerating one is a schematic restore; neither has a fallback.

Install

Drop in the dependencies

ExyliaLib, FastAsyncWorldEdit and packetevents in plugins/. ExyliaLib must be the same copy every Exylia plugin sees — never shade it, never run two.

Drop in the jar

ExyliaPracticeCore in plugins/ and restart. The plugin ships through the Lukittu loader, so the file you install is the loader jar. Bought on BuiltByBit, the licence is embedded in that jar: there is no key to enter.

Let it generate

First boot writes the files below and creates the clone world. Nothing is playable yet — there is no arena and no kit.

Give yourself the admin node

exyliapractice.admin is the only node an operator needs. /epc then opens the admin menu.

Set the lobby spawn

/epc → Data Management → Set Lobby. Until this is set, teleportToLobby does nothing and players stay wherever they log in.

What gets generated

PathWhat it is
config.ymlEvery setting: arenas, queue, ELO, party, duel, lobby, jumpads, web API. Reference
messages.yml26 sections of player-facing text
scoreboards.yml19 sidebars. Reference
ranks.ymlThe nine ranks, their divisions and their K-factors. Reference
items/lobby.ymlThe lobby hotbar
items/party.ymlThe hotbar while in a party
items/queue.ymlThe hotbar while queued
menus/admin/**31 admin screens
menus/player/**30 player screens

Every one of these is written once and never overwritten. What is on disk is what you edited.

Editing menus is supported

No menu file is ever regenerated. Edit any of the 61 freely; the plugin only writes one that is not already there.

Older installs have a banner at the top of the 31 admin menus claiming the opposite — that they are regenerated on every startup and edits will be lost. That was never true and the banner is gone from new copies, but a file already on disk keeps it, because the plugin does not overwrite what you have. Delete those five lines from your own copies.

The clone world

On first boot the plugin creates a world called ExyliaPracticeCore_clones: flat, void, no structures, no mob spawning, no weather, no daylight cycle, time frozen at 6000 and randomTickSpeed at 0. Arena clones are pasted into it side by side.

On Folia the world comes from the Worlds plugin

Folia cannot create a world through WorldCreator, so the plugin asks Worlds instead, trying its 4.x API and then its 3.x one. Without it, the console says clone world unavailable and the main world is used as a fallback — which means clones get pasted into your lobby world. Install Worlds on Folia.

The world is deleted on shutdown, folder and all. It holds nothing worth keeping: every clone is re-pasted from the arena's schematic on demand.

Load order and what needs the database

The plugin reads its arenas, kits, seasons and settings out of the database ExyliaLib is configured with. Configure that first — see the ExyliaLib database docs. The 17 tables are created automatically; they are listed here.

On the very first boot with an existing pre-season database, a one-shot migration copies every row of practice_player_stats into season 1 and into the lifetime tier. It runs in the background, is resumable, and only ever reads the legacy table.

Something missing on this page? Tell us on Discord