Add-on plugin ยท MCIdentitySkill

Skills live on the item.

MCIdentitySkill is a standalone add-on that adds skill items to MCIdentity: items that cast a MythicMobs skill, and that only one profession may hold and use. It ships as its own jar, on its own version line, and installs alongside the core plugin.

SpigotMC PaperMC Folia Own database Requires MCIdentity 4.2.0+ and MythicMobs

What changed: abilities are no longer stored in the database

The skill system used to live inside the core plugin, with an abilities table in its database. It has been split into this add-on โ€” and the storage did not come with it. Skill data now lives on the Minecraft item itself, in the hidden data every item can carry.

Previously

Abilities in the database

  • Ability types and equipped abilities were stored in the core plugin's database, until MCIdentity 3.0.0 removed them.
  • An ability item pointed at a row; the row was the truth.
  • Every ability read meant a database lookup.
  • Duplicating or destroying an item could disagree with the stored rows.
Now

Skills on the item

  • A skill's definition lives on the item, not in a table โ€” no registry row can contradict what a player is holding.
  • The item is the record. Trade it, drop it, or chest it and its data goes with it.
  • Reads are in-memory: the data is already in the item you are holding.
  • Nothing can be orphaned, and no lookup can disagree with what the player holds.
  • A database records two narrower things: which type exists on the server, and which item an identity has equipped in which slot.

The core MCIdentity storage is unchanged for everything else โ€” identities, professions, stats, and sessions are still stored in your chosen backend. Only skills moved onto the item.

One consequence is worth stating plainly: there is no way to list which skills a player owns, and no command that could answer it. A player owns exactly the skill items in their inventory, and the only way to see them is to look at the items.

What a skill item stores

An item is a skill item exactly when its hidden item data says so; there is no list to add it to. Every value is labelled as belonging to this add-on, so it can never be confused with another plugin's data or with anything Minecraft itself stores.

What every skill item carries
  • Skill required The MythicMobs skill cast when the item is used.
  • Profession required The MCIdentity profession allowed to hold and cast the item.
  • Display name The name shown in messages; falls back to the skill.
  • Look Which model the item uses; falls back to the default look.
  • Cooldown A light re-use guard in seconds; none or zero leaves cooldowns entirely to MythicMobs.

The profession ignores capital letters and surrounding spaces, so an item created for Miner still matches a player playing miner. Text values are capped at 128 characters and the cooldown is clamped between 0 and 86400 seconds.

Malformed items

An item carrying some of these keys but missing the skill or the profession is malformed, and malformed items are always denied โ€” never repaired, and never treated as usable by everyone. A missing profession meaning "anyone may use this" would invert the restriction the add-on exists to enforce.

An item carrying none of these keys is an ordinary item. The add-on has no opinion about it and never blocks it.

Profession restriction

A player may equip or use a skill item only while the profession of their currently active MCIdentity identity matches the profession stored on the item.

Matching is case-insensitive and ignores surrounding whitespace, because profession codes are typed by hand in both places. It is otherwise exact: there is no wildcard, no "any", no prefix match, and no list of alternates. A skill item belongs to exactly one profession.

Item professionActive professionResult
minerminerallowed
Miner  MINER allowed
minerarcherdenied
minerminedenied โ€” no prefix match
*minerdenied โ€” no wildcard
(blank)minerdenied โ€” malformed item
miner(no active identity)denied
minerplayerdenied โ€” the base identity
playerplayerdenied โ€” the base identity

The base Player identity owns no skills

player is the reserved profession of the base identity every player starts with, and it is the one profession that never matches. While the base identity is worn, a skill item cannot be equipped or used whatever profession it asks for, the /skill menu does not open, and no slot can be filled.

Stamping an item with player does not work around this โ€” the base identity is answered before the professions are compared, so no item can be built that gives it a skill. Skills belong to a chosen profession, so a player picks one first.

"Your base player identity has no skills. Wear an identity with a profession to use one."

When the check runs

ActionTrigger
EquipMoving or dragging the item into a slot, or selecting the hotbar slot it already sits in.
UseRight-clicking with the item in the main hand.
PlaceAlways refused โ€” a skill item is equipment, never a block.

The hotbar-selection case matters because an item can reach a player's hand without ever passing through the add-on โ€” dropped by a mob, moved by a hopper, or simply still held after an identity swap.

Denials name the profession

So a player can tell an item they will never be able to use from one they only need to swap identity for:

"This skill belongs to the miner profession, but you are playing as archer."

Skill items are never placeable

A skill item is built on a player head, which vanilla treats as a placeable block. Placing one would strip the item into a block state and leave a head anyone could break and pick up, so every attempt to place a skill item is cancelled โ€” regardless of profession, and even for a malformed item. Skill items are equipment: they are held and right-clicked, never set down.

The restriction fails closed and cannot be switched off. Anything that stops the add-on proving a player is allowed โ€” unreadable item data, no active identity, the base Player identity, or an unreachable core plugin โ€” denies the action. There is no config setting that makes skill items work regardless of profession.

MythicMobs owns the behaviour

MythicMobs is a hard dependency. The skill stored on an item is a MythicMobs skill ID, and casting an item means asking MythicMobs to run that skill with the player as caster. Damage, targeting, particles, and effect timing are all authored in your MythicMobs configuration โ€” if a change is about how a skill behaves, it belongs there and not in this add-on.

Order of operations

  1. Read the item from the player's hand โ€” one persistent data container read per action.
  2. Check the profession. A denial stops here; MythicMobs is never consulted for a player in the wrong profession.
  3. Check any local cooldown set on the item.
  4. Fire a cancellable event so other plugins can add restrictions of their own.
  5. Hand the skill to MythicMobs โ€” and only now does anything actually happen.

Failure behaviour

SituationBehaviour
MythicMobs or MCIdentity missing at startupThe add-on logs a severe message and disables itself. Loading with unrestricted skills, or skills that silently do nothing, would be worse than not loading.
Unknown skill ID at cast timeLogged as a warning; the player is told the skill could not be cast. Nothing is thrown onto the game thread.
Skill ID unknown when the item is createdGiving the item warns immediately, but still creates the item โ€” the skill may live in a MythicMobs pack that loads later.

Commands & permissions

A player has one command and no arguments to remember. Everything else is an operator's.

The player's command

Typing /skill on its own opens the skill menu of the identity you are wearing. Equipping happens inside that menu โ€” hold a skill item and click an empty slot to put it there. That is the whole of what a player does with this add-on, so there is nothing else to learn.

A slot that already holds a skill refuses the click and says so: an equipped skill is permanent. So does a skill you already have equipped somewhere else โ€” a skill is held in one slot or none. Wearing the base Player identity, the menu does not open at all.

Every command

CommandDescriptionPermissionDefault
/skillOpen your skill menu, and equip into it.mcoriax.mcidentity.skill.command.guieveryone
/skill infoShow what the item in your main hand stores, and whether you can use it.mcoriax.mcidentity.skill.command.infooperators
/skill equip <slot>Fill an empty slot with the held skill item. Does what a click in the menu does, for the cases a click cannot cover.mcoriax.mcidentity.skill.command.equipoperators
/skill give <player> <skill> <profession> [cooldown]Create a skill item and give it to a player.mcoriax.mcidentity.skill.command.giveoperators
/skill clearStrip skill data from the held item, turning it back into an ordinary item.mcoriax.mcidentity.skill.command.clearoperators

Permission nodes

NodeDefaultGrants
mcoriax.mcidentity.skill.command.guieveryone/skill, the menu
mcoriax.mcidentity.skill.adminoperatorsEvery subcommand at once
mcoriax.mcidentity.skill.*operatorsEvery command in the add-on

mcoriax.mcidentity.skill.command.gui is the only node a player holds. Revoking it takes the add-on away from that player entirely; there is nothing smaller to revoke, because there is nothing else they can run.

Creating a skill item

An operator gives a player a skill item by naming the player, the MythicMobs skill, the profession allowed to use it, and optionally a cooldown in seconds. For example, Steve can be given an item that casts a skill called quarry sense, usable only while playing a Miner, with a 45 second re-use guard. Without a cooldown, cooldowns are left entirely to MythicMobs.

Reading a skill item back

A skill's definition lives on the item, so reading the item is how you see it. /skill info shows what the held item stores (the skill, the profession, and the cooldown) and whether you can use it, with the reason when you cannot.

Installing

RequirementWhy
Java 25 or newerMatches the core plugin.
SpigotMC, PaperMC, or FoliaOne universal jar; the server type is detected at startup.
MCIdentity 4.2.0 or newerHard dependency. It owns the identity every skill item is attached to, and 4.2.0 is the first release that shares its scheduling with the add-ons. On an older core the add-on logs an error and switches itself off.
MCIdentity 4.7.0 or newerOnly when the add-on stores its data on the central server, because it reuses the core plugin's connection to it.
MythicMobsHard dependency. It owns and runs every skill.
A databaseOptional in practice: SQLite is the default and needs no setup.
  1. Put the MCIdentitySkill jar into your server's plugins folder, alongside MCIdentity and MythicMobs.
  2. Start the server once. The add-on writes its configuration file and then switches itself off, because it ships disabled so it never does anything you did not ask for.
  3. Turn the add-on on in that file, and choose a different storage backend if you do not want SQLite.
  4. Restart the server.

If MCIdentity or MythicMobs is missing, the add-on logs an error and switches itself off.

Storage

It stores two things, in the same way as MCIdentityRune. A skill's own definition is not in either of them โ€” that still lives on the item.

The two are independent. A type existing does not equip it, and equipping does not require a registered type โ€” a slot keeps the item itself rather than pointing at a type, so the two can never contradict each other.

An equipped skill is permanent. A player may fill an empty slot and may never empty a filled one. The menu cancels every click before deciding what it meant, so a skill cannot be dragged back out, and the equip rules refuse to write to an occupied slot, so no command or API path can take a skill off either. Only an administrator can clear a slot, to correct a bad row.

A skill is held once. An identity may hold a given skill code in at most one slot, so the slots are a set of distinct skills rather than somewhere to stack one skill for extra effect. The check reads the code out of each filled slot's item, because the item is where a skill lives. Codes ignore capital letters and surrounding spaces, so one skill cannot fill two slots under two spellings.

The base Player identity has no menu and no slots at all: wearing it, the menu does not open and nothing can be equipped.

For developers

The add-on publishes its own developer library, in the same three-part shape as the core plugin's. Plugins that build on it should list MCIdentitySkill as a dependency so it loads first.

Two cancellable events are fired, both after the profession check has already passed โ€” a listener never has to repeat it:

EventFires when
Skill equipA player is about to equip an allowed skill item.
Skill useA player is about to cast an allowed skill item, before MythicMobs is consulted.

Cancelling either one adds a restriction of your own; set a cancel reason and the player is told it. An access check reports why it denied โ€” the profession the item requires and the one the player has โ€” rather than a plain yes or no, so you can write your own message.

The core plugin's own integration surface is unchanged โ€” see the Developer API and Events & Listeners pages. For this add-on's release history, see the MCIdentitySkill change logs.