Integrations
External plugin support - Vault, LuckPerms, PlaceholderAPI, DiscordSRV, TAB, and Floodgate.
Overview
EssentialsC detects supported plugins at startup and hooks into them automatically. No extra configuration is required to enable a hook - just have the plugin loaded before EssentialsC starts. The one exception is DiscordSRV, which is disabled by default and has to be enabled under discordsrv in config.yml before the hook is created. If a plugin is added later, a server restart is needed for the hook to activate.
Vault
When Vault is present, EssentialsC registers itself as the economy provider. Any plugin that reads balances through Vault will automatically use EssentialsC's economy.
The Vault hook is a full read-write economy provider. EssentialsC's own commands (balance, pay, eco, baltop) manage balances, and external plugins using Vault's economy API read from and write to the same storage without any additional configuration.
LuckPerms
LuckPerms integration provides group-based chat formatting and tab list prefixes and suffixes. Chat and tab formats are defined in config.yml under the luckperms section. The format strings support MiniMessage and the <DISPLAYNAME>, <USERNAME>, <MESSAGE>, <PREFIX>, <SUFFIX>, and <GROUP> placeholders, and are passed through PlaceholderAPI when it is installed.
EssentialsC reads LuckPerms metadata asynchronously and falls back gracefully if LuckPerms is absent. The chat format for a player is looked up in luckperms.group-formats using their primary group. If no matching group is defined, luckperms.chat-format is used.
luckperms: chat-formatting: true chat-format: "<DISPLAYNAME> &7» &f<MESSAGE>" group-formats: owner: "&c[Owner] <USERNAME> &7» &f<MESSAGE>" tab-formatting: true
group-formats is not present in the default config.yml - add it yourself at the same indent level as chat-format, as shown above.
PlaceholderAPI
Installing PlaceholderAPI automatically registers the EssentialsC expansion, exposing over a dozen placeholder categories for use in scoreboards, nametags, tab lists, and any other PAPI-compatible plugin.
Use placeholders in the format %essc_<placeholder>% in any PAPI-compatible plugin. The full placeholder list can be viewed in-game with /essc placeholders or /papi parse me %essc_...%.
Vault, Player, Server, Statistic). When an operator joins for the first time, it then installs those expansions plus LuckPerms through /papi ecloud download and runs /papi reload automatically. The notice only appears once, tracked by a .setup-complete marker file in the plugin folder.
| Category | Example Placeholders |
|---|---|
| Economy | %essc_eco_balance%, %essc_eco_balance_formatted% |
| AFK | %essc_afk_status%, %essc_afk_duration%, %essc_afk_count% |
| Home | %essc_home_count%, %essc_home_max%, %essc_home_remaining% |
| Kit | %essc_kit_cooldown_<name>%, %essc_kit_has_<name>% |
| Vanish | %essc_vanish_status%, %essc_vanish_boolean% |
| Nickname | %essc_nick_name%, %essc_nick_plain% |
| Playtime | %essc_playtime_formatted%, %essc_playtime_hours% |
| Punishment | %essc_punish_is_banned%, %essc_punish_is_muted% |
| Warp | %essc_warp_count%, %essc_warp_list% |
| TPA | %essc_tpa_pending_incoming%, %essc_tpa_blocked% |
| RTP | %essc_rtp_cooldown% |
| Shop | %essc_shop_category_<id>_items%, %essc_shop_balance% |
| Auction | %essc_ah_active_total%, %essc_ah_expired_count% |
DiscordSRV
DiscordSRV integration forwards server events to your Discord server through configurable channels. EssentialsC provides detailed event hooks that fire whenever a significant action occurs. The integration is disabled by default - set discordsrv.enabled to true in config.yml and restart the server to turn it on.
| Event | Description |
|---|---|
| Ban | When a player is banned. |
| Ban-IP | When an IP address is banned. |
| Kick | When a player is kicked. |
| Mute | When a player is muted. |
| Kit Claim | When a kit is claimed. |
| Home Set | When a home is set. |
| Home Delete | When a home is deleted. |
| Shop Buy | When a player buys something in /shop. Sent to the shop channel. |
| Shop Sell | When a player sells items in /shop or with /quicksell. Sent to the shop channel. |
| Sell GUI | When a player sells items through the /sell GUI. Sent to the shop channel. |
Every event above can be toggled and colored individually under discordsrv.events, keyed by ban, kick, mute, kit, home, home_delete, banip, shop_buy, shop_sell, and sell_gui. The three shop events go to the shop channel; everything else goes to the punishments channel.
On busy servers, set shop.transaction-log.discord-min-total to only post shop transactions worth at least that amount. The shop log file and console log still record every transaction - see Shop Configuration.
| Key | Type | Default | Description |
|---|---|---|---|
discordsrv.enabled |
Boolean | false |
Set to false to disable the integration entirely. When false, no notifications are sent and no missing-plugin warnings are shown. |
discordsrv.channels.punishments.name |
String | punishments |
Channel key for moderation, kit and home events. The value must match a channel defined in DiscordSRV's config.yml. |
discordsrv.channels.shop.name |
String | shop |
Channel key for shop_buy, shop_sell and sell_gui events. Must also match a DiscordSRV channel. |
discordsrv.events.<event>.enabled |
Boolean | true |
Per-event toggle. Set to false to stop relaying that event. |
discordsrv.events.<event>.color |
String | #E74C3C |
Embed color for the event. Accepts any hex color code (#E74C3C ban, #F39C12 kick, #9B59B6 mute, #3498DB kit, #2ECC71 home, #E74C3C home delete and banip, #34BE49 shop buy, #F1C40F shop sell, #E67E22 sell GUI). |
discordsrv.show-avatar |
Boolean | true |
Show a player's avatar next to their name in Discord embeds. |
discordsrv.avatar-url |
String | https://crafthead.net/helm/{uuid} |
URL used to fetch player avatars. {uuid} is replaced with the player's UUID. |
TAB
When the TAB plugin is present, EssentialsC hands tab list names over to TAB: it applies the player's nickname (or their real name if none is set) and prefixes the AFK indicator from afk.tab-placeholder.
Without TAB, EssentialsC manages the tab list itself - LuckPerms prefixes and suffixes (when luckperms.tab-formatting is enabled), the nickname, and the AFK tag are applied to the player list name and to Minecraft scoreboard teams. Vanished players are removed from the tab list when vanish.hide-from-tab is enabled.
Floodgate
Floodgate support allows Bedrock players (connecting through Geyser) to use EssentialsC commands and features seamlessly. Player data is handled correctly across Java and Bedrock editions, with proper UUID resolution for Geyser-connected players.
Bedrock players see the same messages, GUIs, and command output as Java players. Their nicknames, homes, warps, and economy data are stored using their Bedrock UUID, so switching between editions is not possible for the same account.
Metrics
EssentialsC uses bStats for anonymous usage statistics. The data collected includes server version, Java version, plugin version, and enabled features. This helps the developer understand which features are most used and which server platforms are most common.
bStats can be disabled in /plugins/bStats/config.yml. No personally identifiable information is collected.
EssentialsC also bundles FastStats with built-in error tracking, which reports back alongside the regular metrics.