Content generated with AI — it may contain mistakes.

Getting started

Installation

Dependencies, the files it writes, the tables it creates, and what to check on the first start.

Installing

Drop in the jars

ExyliaClans.jar, plus ExyliaLib and packetevents, into plugins/.

Add an economy plugin

The bank pays for claims and is read through ExyliaLib's economy bridge. Without one, /clan deposit and /clan withdraw refuse and no claim can ever be bought.

Decide who protects the land

claims.protection-mode ships as WORLDGUARD. If WorldGuard is not installed, set it to BUILTIN before anybody claims anything — see Claims.

Start the server

It writes four config files and thirty-seven menu files, and creates thirteen tables.

Grant the command nodes

Nothing is open by default: every subcommand of /clan checks its own permission node. See Permissions.

Files

FileContents
config.ymlLimits, warmups, the twelve module switches, claims, DTR, levels, boss bars and default-roles.
messages.ymlEvery line the plugin sends, in thirteen sections.
lfc.ymlLooking-for-clan: cooldowns, expiry, and the questions a player answers.
lfp.ymlLooking-for-players: cooldowns, expiry, text limits, application limits, and what a clan may ask for.
menus/*.ymlThirty-seven screens.
database.ymlWritten by ExyliaLib. H2 by default; MySQL, MariaDB, PostgreSQL and MongoDB are the other engines, with a redis block alongside them.
The YAML is generated, not shipped

config.yml, messages.yml, lfc.yml and lfp.yml are written from typed records on first start, comments included. A key the reader does not recognise is pruned — except inside default-roles, levels.level-definitions, levels.kill-streak-bonuses and the two categories blocks, which belong to you and are never touched.

Tables

TableHolds
clansOne row per clan: name, leader, balance, open, friendly fire, home, banned list, DTR, EXP.
clan_membersOne row per player. The player's UUID is the key, so a player is in one clan by construction.
clan_rolesEvery rank of every clan, with its weight and its comma-separated permissions.
clan_relationsDirectional. Two rows make a mutual alliance; one row makes a rivalry.
clan_invitesStanding invitations, keyed playerUuid:clanId.
clan_claimsOne rectangle per clan: world, minX, minZ, maxX, maxZ and the height it was made at.
clan_statsKills, deaths and playtime per clan.
player_statsThe same per player per clan, keyed playerUuid:clanId.
clan_logsThe audit trail, indexed by clan and timestamp descending.
clan_mailsThe mailbox, with read/deleted tracked per member as UUID lists.
lfc_profilesOne row per player advertising themselves.
lfp_postingsOne row per clan advertising for members.
lfp_applicationsApplications, keyed playerUuid:clanId.

Optional integrations

PluginWhat it changes
PlaceholderAPIRegisters the exyliaclans expansion, relational placeholders included.
WorldGuardBecomes the claim enforcer under protection-mode: WORLDGUARD, and blocks claiming over an existing region.
TABIts team handling is paused for a player while this plugin is colouring them, and resumed when they leave a clan.
EconomyThe bank.
Apollo / FeatherServerAPIClient waypoints for the clan home and for camp and rally markers.

The first start

Read the console. Three things are reported there and nowhere else:

  • Config issues. A key that could not be read is named, once, with what was wrong with it.
  • default-roles is empty. If you emptied that block, /clan create refuses rather than making a clan whose leader has no rank. Nothing is written back into the file.
  • DTR backfill. On the first start after enabling the DTR module, every existing clan sitting at 0.0 is given its maximum, and the count is logged.

Updating

Replace the jar and restart. /clanadmin reload re-reads config.yml, messages.yml, lfc.yml and lfp.yml, rebuilds the level table and recompiles every menu. /exylialib reload also recompiles the menus, so a palette change made through the library is picked up without a restart.

Reload does not rewrite existing clans

Changing default-roles only affects clans created afterwards. Clans that already exist keep the ranks they were made with, because those ranks are rows in clan_roles that the clan has since edited.

Something missing on this page? Tell us on Discord