Skip to content

Commands and Permissions ​

EmakiSkills exposes commands and permission nodes for players and for administrators alike

The main command of EmakiSkills is /emakiskills, with /eskills as an alias. Players use it to open the skill GUI, toggle cast mode, and upgrade skills; administrators use it for level management, granting or revoking skills, slot cleanup, profile inspection, skill-source resync, and reloading configuration

Command registration ​

ItemValue
Main command/emakiskills
Alias/eskills
Command permissionemakiskills.use
Help/eskills or /eskills help

Keep one rule in mind: the whole command sits behind emakiskills.use. Without it, no subcommand runs, including help, so the emakiskills.admin fallbacks inside subcommands are never reached. That permission defaults to true, so the only players it blocks are those a permission plugin has explicitly negated

Commands ​

CommandPermissionDescription
/eskills helpCommand permissionPrint the command help list. Also shown when running /eskills with no arguments. The help branch adds no extra check
/eskills guiemakiskills.use or emakiskills.adminOpen the skill GUI. Non-player senders are told the command is player-only
/eskills castmode <on|off|toggle>emakiskills.use or emakiskills.adminEnable, disable, or toggle cast mode
/eskills upgrade <skill>emakiskills.use or emakiskills.adminTry to upgrade a skill; feedback comes from the upgrade.* keys
/eskills level get <player> <skill>emakiskills.adminGet a player's skill level
/eskills level set <player> <skill> <value>emakiskills.adminSet a player's skill level
/eskills level add <player> <skill> <value>emakiskills.adminAdd levels to a player's skill
/eskills grant <player> <skill>emakiskills.adminWrite the skill into the player's manual learned set and persist it to manual_skill_ids in data/<uuid>.yml. Replies skill.not_found when the target skill id has no definition (YAML or externally registered)
/eskills revoke <player> <skill>emakiskills.adminRemove the skill from the player's manual learned set and persist it. Also replies skill.not_found when the target skill id has no definition
/eskills list [player]emakiskills.use or emakiskills.adminRead-only listing of the player's learned skills and slot bindings; the player may be omitted to target yourself
/eskills reset <player>emakiskills.adminClear the player's manually learned skills; slot bindings are untouched
/eskills clearslot <player> <slot>emakiskills.adminClear a player's skill slot binding
/eskills inspect [player]emakiskills.use or emakiskills.adminInspect the profile and the bound trigger of each slot
/eskills resync [player]emakiskills.adminValidate and resync the player's skill slot bindings. The player may be omitted to target yourself
/eskills debug [status|on|off|player|module] [...]emakiskills.debug or emakiskills.adminPrint or toggle debug state. Skill modules are cast, unlock, upgrade, and slot
/eskills reloademakiskills.reload or emakiskills.adminAsynchronously reload skills, resources, GUI, language, and main configuration, then report the elapsed time

If you type an unknown subcommand, it replies with general.unknown_command. level and clearslot also check the argument count and require an integer value / slot, otherwise they reply with general.invalid_args

Tab completion ​

PositionSuggestions
First argumentThe fourteen subcommand literals
castmode argument 2on, off, toggle
upgrade argument 2Skills the player has unlocked, has upgrades enabled for, and has not maxed; from console, all skill ids
level argument 2get, set, add
clearslot / grant / revoke / list / reset / inspect / resync argument 2, level argument 3Online player names
grant / revoke argument 3All skill ids
clearslot argument 3Slots 0~8
level argument 4All skill ids
level set/add argument 51, 2, 5, 10

Permissions ​

PermissionDefaultDescription
emakiskills.usetrueAllows basic skill usage, GUI access, cast mode switching, and casting; also the command registration permission
emakiskills.reloadopAllows reloading configuration
emakiskills.adminopAllows level management, slot clearing, resync, and acts as an administrative fallback for basic features
emakiskills.debugopAllows debug output

Which command first ​

SymptomRun firstPurpose
A player wants to view or bind skills/eskills guiOpen the skill interface
An active skill cannot be cast/eskills inspect [player]Check whether the profile is loaded and which trigger each slot has bound
Skills did not refresh after an equipment change/eskills resync <player>Re-scan skill sources
A skill level looks wrong/eskills level get <player> <skill>Confirm the stored level
A slot is bound to a deleted skill/eskills clearslot <player> <slot>Clear that slot
You need to grant or revoke a skill directly/eskills grant / /eskills revokeWrite or remove the player's manually learned skills
Skills, resources, or GUI files changed/eskills reloadReload the runtime configuration

Common operations ​

Open the skill GUI ​

text
/eskills gui

Once the skill GUI is open, you can see unlocked skills, skill levels, slot bindings, the upgrade entry, and the trigger-selection entry

Toggle cast mode ​

text
/eskills castmode toggle
/eskills castmode on
/eskills castmode off

Cast mode decides whether active skills can trigger. In the default configuration you press the F key to enter or leave cast mode; whether the state survives a rejoin is controlled by cast_mode.restore_last_state_on_join

Manage skill levels ​

text
/eskills level get Steve fireball
/eskills level set Steve fireball 3
/eskills level add Steve fireball 1

Level changes feed straight into skill parameters, resource costs, script variables, and upgrade checks. Levels are clamped into [1, max_level]; a skill without upgrades enabled has a maximum of 1. Run inspect afterwards to confirm the stored value

Grant and revoke skills ​

text
/eskills grant Steve fireball
/eskills revoke Steve fireball

grant writes the skill into the player's manual learned set and revoke takes it back out. Both require the target skill id to be defined (a YAML skill under skills/ or an externally registered definition), otherwise they reply skill.not_found. The result is persisted to manual_skill_ids in data/<uuid>.yml

List a player's learned skills ​

text
/eskills list
/eskills list Steve

Read-only listing of the player's learned (manually unlocked) skills and slot bindings; omit the player to target yourself

Reset manually learned skills ​

text
/eskills reset Steve

This clears only the player's manually learned skills, touching just manual_skill_ids; slot bindings stay as they are, so reach for clearslot when you need to clear a slot

Clear a slot ​

text
/eskills clearslot Steve 1

Reach for this command when a slot points at a deleted skill, a trigger conflicts, or the GUI cannot unbind. An invalid slot is rejected by the state service and reports failure

Resync skill sources ​

text
/eskills resync Steve

Run it in these situations:

  • Equipment-provided skills did not refresh after an equipment change
  • EmakiItem set or item effects changed
  • An external module granted or removed a skill source
  • Online players need a refresh after a config reload
text
/eskills debug
/eskills debug status
/eskills debug on
/eskills debug off
/eskills debug player Steve
/eskills debug module cast
SubcommandDescription
statusPrint the current debug state and tracked players. debug with no arguments prints the same status, and any unrecognized subcommand falls back to it
on / offEnable or disable all debug output
player <player>Track debug output for one player
module <module>Toggle a single debug module. Skill modules are cast, unlock, upgrade, and slot; shared modules are action, item_operation, variables, placeholder, gui, and chat_input

Note: the in-game help text prints debug <status|player|module|all> [...]; the subcommands above are the actual ones

Troubleshooting ​

  • Skills do not appear: check that the definition loaded, that you own a skill source, and that the level is greater than 0
  • A skill cannot be cast: check cast mode, trigger binding, cooldowns, the global forced delay, resource costs, and conditions
  • Passive skills do not fire: check trigger_type: passive, passive_triggers, and that the passive trigger is enabled globally
  • Binding fails in the GUI: check whether the trigger is disabled, conflicts with an existing binding, or the slot index is invalid
  • A MythicMobs skill has no effect: check that MythicMobs is installed, the skill ID is correct, and the script mode is mythic or hybrid
  • Players see no failure reason: messages come from lang/<language>.yml; confirm that key exists instead of editing the internal reason key