Installation
The loader jar and the licence, dependencies, the files the plugin writes, the database, moving from ExyliaSpecials and updating.
Getting the plugin
ExyliaCombat is a premium plugin, bought on BuiltByBit. It ships through the Lukittu loader, so the file you install is the loader
jar, Exylia-Combat-Loader.jar. Bought on BuiltByBit, the licence is embedded in that jar: there is no key to enter. The loader checks the licence on every start and then
hands over to the plugin.
Before you start
| Plugin | What for |
|---|---|
ExyliaLib | Required. Configuration, menus and prompts, the database, cooldowns, the action bar, rewards, the economy, regions and the Combat facade. |
packetevents | Optional, recommended. Draws the PvP barrier as translucent tiles (without it the wall is made of fake blocks), and is required by the combat-nametag module. |
The loader's plugin.yml names ExyliaLib under softdepend on purpose: the loader is what installs it, so
the loader has to be allowed to start without it. On a server without ExyliaLib it downloads the newest
release into plugins/ and asks for a restart. On a server running an older release it stages the newest
one and says so in the console; restart once more to apply it.
Every other plugin ExyliaCombat talks to is optional and only used when it is installed: WorldGuard and the claim plugins for safe zones, DeluxeCombat, CelestCombat or PvPManager as the tag provider, PlaceholderAPI, and the Lunar and Feather client APIs. See Integrations.
Installing
Drop in the jars
Exylia-Combat-Loader.jar into plugins/, and packetevents if the server does not have it yet.
Start the server
The loader checks the licence embedded in the jar and hands over to the plugin. The loader installs ExyliaLib if it is missing; if it had to, restart once more.
Let it generate
The plugin writes config.yml, one modules/<module>/config.yml per module, its messages and menus, and
creates its tables. The console names the combat provider it picked and ends with
ExyliaCombat enabled.
Choose the modules
Switch modules on or off under modules in config.yml and restart: a switch is read at startup. See
Configuration.
Generated files
All of them live in plugins/ExyliaCombat/.
| File | Contents |
|---|---|
loader.yml | Written by the loader: license_key, and version (auto keeps the plugin on the newest release). |
config.yml | Language, module switches, command names, the player record's save interval, the combat tag and logging out, and the safe-zone sources. See Configuration. |
modules/<module>/config.yml | The settings of one module, documented on that module's page. action-bar has none. |
database.yml | Where rows are stored, and the Redis connection. Written by ExyliaLib. |
lang/<language>/messages.yml | The combat tag, /combat, the action bar, the admin lines, the older restriction refusals, the logout NPC's name and the combat log broadcast. |
lang/<language>/modules/<module>/messages.yml | The text of one module. |
lang/<language>/modules/stats/menu.yml, leaderboard.yml | The /pvpstats screen and the leaderboard screen. Yours to restyle: an update only adds what is missing. |
lang/<language>/admin/ | The admin panel: players, player and cooldowns. Regenerated from the jar on every start, so edits there are lost. |
The database
Two tables, in the database database.yml points at: H2 in a file by default, or MySQL, MariaDB,
PostgreSQL or MongoDB through ExyliaLib.
| Table | What it holds |
|---|---|
exyliacombat_players | One row per player: the PvP switch, newbie protection left, kills, deaths, streak, best streak, combat logs, points and KDR. Loaded when the player connects, saved when they leave and every player-data.save-interval. Only used while pvp-toggle, newbie-protection or stats is on. |
exyliacombat_loggers | Combat loggers waiting to come back: their gear, health, position and whether their logout NPC died. Read on start, so a restart in the middle never loses anyone's inventory. |
Both tables are player progress with the player as owner, so ExyliaLib's /exylialib resetplayer and
/exylialib wipe cover them; a reset also removes the player's standing logout NPC. See
ExyliaLib's commands.
When the database cannot be read as a player joins, their record is kept in memory for that session only, and the console says so.
Coming from ExyliaSpecials
ExyliaCombat took over the combat tag of ExyliaSpecials 4.0. On its first start (no config.yml yet, and
an ExyliaSpecials folder next to it) it imports combat, actionbar.enabled, vanilla-cooldowns and
language from ExyliaSpecials, the combat and action bar lines of each lang/<code>/messages.yml, and
database.yml. A Specials that already moved on keeps its copy in
plugins/ExyliaSpecials/exyliacombat-export.yml, which is read first. The old exyliaspecials.combat.bypass
permission still bypasses the restrictions.
Updating
Replace the loader jar and restart, or leave version: auto in loader.yml. Your files are kept; new keys
are added with their defaults. Keys that moved between versions are carried over with their values:
- From 1.0,
actionbar.enabledbecomesmodules.action-bar, andvanilla-cooldownsmoves tomodules/vanilla-cooldowns/config.yml(keycooldowns). The statsanti-boostkeys move tomodules/kill-abuse/config.yml. - From config version 3,
combat.logout-npcmoves tomodules/logout-npc/config.yml,combat.barriertomodules/pvp-barrier/config.yml(theirenabledbecomemodules.logout-npcandmodules.pvp-barrier), andcombat.allowed-commands,blocked-inventories,blocked-teleport-causes,disable-flight,disable-elytraand the refusalnotificationsmove tomodules/combat-restrictions/config.yml. - From 1.1, the streak broadcast and shutdown lines of
kill-rewardsplay short note-block sounds instead of the dragon growl and wither death, and the bounty and newbiegrantedlevel-ups are quieter. Only a line still holding the old sound tag is changed.
Something missing on this page? Tell us on Discord