[1.21.* - 26.1.*] EzSkills - Lightweight RPG Skill & Ability Framework icon

[1.21.* - 26.1.*] EzSkills - Lightweight RPG Skill & Ability Framework -----

Add skill-based XP, leveling, and timed abilities to any plugin with a clean API



████████ ████████ ░███████ ██░░░███ ████████ ██░░░░░░ ██░░░░░░ ░███████
██░░░░░░ ░░░░░███ ███░░░░░ ██░░██░░ ░░██░░░░ ██░░░░░░ ██░░░░░░ ███░░░░░
███████░ ░░░███░░ ██████░░ █████░░░ ░░██░░░░ ██░░░░░░ ██░░░░░░ ██████░░
██░░░░░░ ░███░░░░ ░░░░████ ██░██░░░ ░░██░░░░ ██░░░░░░ ██░░░░░░ ░░░░████
██░░░░░░ ███░░░░░ ░░░░░███ ██░░██░░ ░░██░░░░ ██░░░░░░ ██░░░░░░ ░░░░░███
████████ ████████ ████████ ██░░░███ ████████ ████████ ████████ ████████

Skill progression for any plugin

EzSkills
is a compact RPG progression plugin that layers levelling, XP gain, and timed abilities on top of your server's gameplay. Use it standalone or integrate with plugins like EzTree, EzMine, or your own custom plugins to turn repetitive actions into a rewarding skill loop. EzSkills provides a flexible API for adding new abilities, reacting to level-ups, and controlling how much XP any third-party plugin may award.

[​IMG]
[​IMG]
[​IMG]
[​IMG]

Check our latest project PvPIndex.com

Features

Five built-in skills
  • Woodcutting - award XP for felling trees.
  • Mining - award XP for breaking ores and stone.
  • Fishing - award XP for catching fish.
  • Fighting - award XP for combat with mobs and players.
  • Acrobatics - award XP for jumping, falling, and sprinting.
Every source plugin that calls EzSkillsAPI.addExperience(plugin, ...) is subject to the per-plugin XP multiplier and enabled flag you configure centrally - no changes needed in third-party plugins.

Timed abilities
  • Tree Feller: The built-in ability for Woodcutting. Players prepare, trigger and ride out an auto-expiring TREE_FELLER window.
  • Custom abilities (new in 2.0): Any plugin can register its own ability via EzSkillsAPI.registerAbility(definition). Custom abilities appear in the /abilities GUI automatically.
  • Ability state GUI (new in 2.0): The /abilities command opens an overview showing every registered ability with its current state - Ready (green), Preparing (yellow), or Active (gold).

Progression controls
  • Scaling XP curve: Tune xp-base and xp-multiplier per skill in skills.yml to keep early levels snappy and late-game grindy.
  • Per-plugin overrides (new in 2.0): In config.yml set an xp-multiplier or enabled: false for any third-party plugin and any skill - no code changes needed on their side.

Storage
  • YAML - zero-setup flat file, great for small servers.
  • MySQL - recommended for production; enables leaderboards via /ezskills top.


Core gameplay loop
  1. Configure XP curves in skills.yml and ability timings in abilities.yml.
  2. Earn XP as players break blocks, fish, fight - any event your integration plugin reports.
  3. Level up: SkillLevelUpEvent fires instantly for rewards, rank unlocks or boss-bar announcements.
  4. Prepare and activate an ability within its warm-up window to use a powerful timed effect.
  5. View progress at any time with /skills (levels) and /abilities (ability states).


Commands
Command Description Permission
/skills Open the skill progress overview GUI. ezskills.use
/abilities Open the ability state overview GUI (Ready / Preparing / Active). ezskills.use
/ezskills get <player> <skill> Print a player's level and stored XP for a given skill. ezskills.admin
/ezskills info <player> Print a full skill overview; works for offline players. ezskills.admin
/ezskills addxp <player> <skill> <amount> Grant XP manually; fires level-up events if thresholds are crossed. ezskills.admin
/ezskills setlevel <player> <skill> <level> Force a player's level, resetting stored XP. ezskills.admin
/ezskills reset <player> <skill> Reset one skill to level 1 with zero XP. ezskills.admin
/ezskills resetall <player> Reset all skills to level 1 in a single save. ezskills.admin
/ezskills top <skill> [limit] Show the top players by level (requires MySQL for full leaderboard). ezskills.admin
/ezskills ability <player> <ability> Force-activate an ability for a player, bypassing preparation. ezskills.admin
/ezskills reload Reload all config files without restarting. ezskills.admin



Configuration overview
File Controls
config.yml GUI titles, boss-bar notifications, and plugin-overrides (per-plugin XP multipliers and enabled flags).
skills.yml XP base and multiplier per skill (controls the levelling curve).
abilities.yml Preparation window, active duration, and cooldown per ability.
storage.yml Storage backend (YAML or MySQL) and connection details.


Per-plugin XP overrides (new in 2.0):
Code (Text):
# config.yml
plugin-overrides:
  MyPlugin:
    woodcutting:
      enabled: true
      xp-multiplier: 1.5   # 50% bonus Woodcutting XP from MyPlugin
    mining:
      enabled: false        # MyPlugin cannot award Mining XP

API reference

Skills
Method Description
EzSkillsAPI.addExperience(playerId, skill, amount) Award XP directly with no multiplier applied.
EzSkillsAPI.addExperience(plugin, playerId, skill, amount) Award XP with the server-configured multiplier and enabled check for your plugin.
EzSkillsAPI.getSkillLevel(playerId, skill) Return the player's current level.
EzSkillsAPI.getSkillExperience(playerId, skill) Return the player's accumulated XP.
EzSkillsAPI.setSkillLevel(playerId, skill, level) Set a level directly, resetting XP to zero.
EzSkillsAPI.getSkillProfile(playerId) Return the full profile object (null if not cached).


Custom skills
Method Description
EzSkillsAPI.registerSkill(definition) Register a custom skill at runtime; progress is persisted automatically.
EzSkillsAPI.getRegisteredSkills() List all registered custom skill definitions.


Abilities
Method Description
EzSkillsAPI.registerAbility(definition) Register a custom ability; it appears in /abilities automatically.
EzSkillsAPI.getRegisteredAbilities() List all registered ability definitions (built-in + custom).
EzSkillsAPI.prepareAbility(playerId, ability) Enter the preparation (charged) state.
EzSkillsAPI.activateAbility(playerId, ability) Activate the ability immediately.
EzSkillsAPI.deactivateAbility(playerId, ability) Cancel or end the ability early.
EzSkillsAPI.isAbilityActive(playerId, ability) Check whether the ability is currently active.


Events to listen for
  • SkillLevelUpEvent - fired when a player reaches a new level (carries old and new level).
  • EzSkillsAbilityPrepareEvent - fired when an ability enters its warm-up window.
  • EzSkillsAbilityActivateEvent - fired when an ability activates.
  • EzSkillsAbilityDeactivateEvent - fired when an ability ends or is cancelled.

Implementing a custom ability
Code (Text):
public class NightVisionAbility implements AbilityDefinition {
    @Override public String   getName()        { return "NIGHT_VISION"; }
    @Override public String   getDisplayName() { return "Night Vision"; }
    @Override public Material getIcon()        { return Material.ENDER_EYE; } // optional - defaults to NETHER_STAR
    @Override public String   getDescription() { return "See clearly in the dark."; }
    @Override public String   getSkillName()   { return "FIGHTING"; }
}

// In onEnable:
EzSkillsAPI.registerAbility(new NightVisionAbility());

Compatibility
  • Minecraft: 1.21 and 26.1+
  • Server software: Bukkit, Spigot, or Paper.
  • Java: 25+
  • Optional: EzCountdown for boss-bar level-up notifications.


Need help?
Drop a message on the SpigotMC thread or join our Discord server for quick support and integration tips.
Resource Information
Author:
----------
Total Downloads: 74
First Release: Dec 24, 2025
Last Update: May 8, 2026
Category: ---------------
All-Time Rating:
0 ratings
Find more info at ez-plugins.github.io...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings