EmakiSkills is a highly programmable skill framework plugin. It provides three script modes for defining skill behavior, built-in ray casting for precise target selection, expression-based parameters that scale with level, and a fully open API for third-party extensions. From simple single-target damage skills to complex multi-phase combos, everything is achievable through YAML configuration.
Skill Architecture
Active & Passive Skills
- Active Skills — Triggered manually via cast mode. Players press F to enter cast mode, then use bound triggers (left/right click, Shift+click, Q key, number keys) to cast skills in their equipped slots.
- Passive Skills — Triggered automatically by game events. Supports 22 passive triggers including attack hit, damage taken, entity/player kill, bow shoot, arrow hit/land, trident throw/hit/land, block break/place, item drop, hand swap, sneak, teleport, login, timer, and more.
Skill Slots & Cast Mode
- Configurable number of skill slots per player (default 3)
- GUI-based skill equipping and trigger binding
- ActionBar displays real-time slot status and cooldowns during cast mode
- F key toggles cast mode; state persists across re-login
Script System — Three Modes
- Native — 8 built-in script actions, pure config-driven, no external dependencies
- Mythic — Delegates to MythicMobs skill/mechanic system entirely
- Hybrid — Mix Native actions with MythicMobs calls in the same sequence
Script Phases
- cast — Executes immediately on skill use (sounds, particles, ray detection)
- hit — Executes when ray detection hits a target (damage, ignite, effects)
- miss — Executes when ray detection finds no target (miss feedback)
8 Built-in Script Actions
- ray — Ray cast from player's line of sight. Params: range, width, save
- damage — Deal damage. Params: target, amount, damage_type, element
- heal — Restore health. Params: target, amount
- ignite — Set target on fire. Params: target, ticks
- particle — Spawn particles. Params: particle, at, count, speed
- playsound — Play sound. Params: sound, volume, pitch
- sendmessage — Send message (MiniMessage). Params: target, text
- mythic — Call MythicMobs skill. Params: skill, target
Conditional Execution
All actions support
@if='condition' prefix syntax for conditional execution based on level, parameters, or boolean variables.
Skill Parameters
Define level-scaling values with expressions:
- expression — Dynamic calculation using {level} (e.g., "18 + ({level} - 1) * 4")
- constant — Fixed value
- string — Text value
- boolean — True/false
Milestone overrides allow non-linear scaling at specific levels.
Resource Costs
- local-resource — EmakiSkills local resources
- ea-resource — EmakiAttribute resources (consumes)
- ea-attribute-check — EmakiAttribute attribute check (no consumption)
Upgrade System
- Material and economy costs per level
- Per-level success rates
- Milestone nodes for parameter overrides and new effects
- Fully customizable upgrade GUI
Open API
- EmakiSkillsApi — Query skill data from other plugins
- SkillScriptActionRegistry — Register custom script action types
Requirements
- Server: Spigot 1.21+
- Java: 21+
- Hard Dependencies: EmakiCoreLib
- Soft Dependencies: EmakiAttribute, MythicMobs, PlaceholderAPI