
Dev builds are available here


- Rewards - Add fully custom rewards, like executing commands and giving items on level up.
- Menus - Intuitive and fully configurable menus show players everything they need to know about skills - accessed using /skills.
- Sources - Customize XP sources for each skill, with support for custom blocks and items.
- Loot - Customize loot from any specific block and mob XP source, with support for any item and commands.
- Stat Modifiers - Modify any stat value with commands or while using custom items or armor.
- XP Multipliers - Multiply skill XP with the power of permissions or link multipliers to items.
- Messages - Pre-translated messages for 15+ languages that are fully configurable and user-selectable.
- Item Requirements - Add skill level requirements to use a specific item or all items of a type.
- Placeholders - Numerous provided PlaceholderAPI placeholders, plus widespread placeholder support within the plugin.
- XP Requirements - Configure XP required to level up for each skill with full equation support.
- Developer API - A comprehensive developer API with support for adding custom skills, stats, and abilities.
- SQL - Support for database storage with MySQL for higher performance and cross-server syncing.
- Mana - A mana system used by mana abilities and interactable with commands and placeholders.
- Action/Boss Bar - Configurable action and boss bars for displaying health, mana, and when XP is gained.
- Leaderboards - Skill leaderboards and rankings, including power level and skill average.
- Backups - Automatic backups to protect your user data in case of an emergency.
Supported plugins
- PlaceholderAPI - View the list of placeholders, no e-cloud download needed
- Vault - Money level up rewards
- WorldGuard (1.13+) - Disable XP gain in certain regions, use the aureliumskills-xp-- gain flag
- Holographic Displays and DecentHolograms - Damage indicators with critical hit colors
- LuckPerms - Permission rewards
- Eco series
Dependencies
- AuraSkills has no required plugin dependencies, but Java 17 is required.
- ProtocolLib is an optional dependency.
Incompatibilities
AuraSkills does not support or is not compatible with the following server software:
- CraftBukkit - Action bar will not work
- Modded hybrid servers (Mohist, Magma, CatServer) - Modded environments do not work well with Bukkit plugins in general
Support Discord
Click here to join the Discord server for support, suggestions, announcements, and to join the community!
Wiki and Documentation
Click here to view the Wiki and Documentation
You can find info about Configuration, Messages, Stats, Commands, Permissions, Rewards, and Placeholders on the Wiki.
Messages and language
Change your personal language using /skills lang [language]. Change the default language using the default_language option in config.yml and restarting the server.
Help translate the plugin on Crowdin, if you don't see your language ask on the Discord server for it to be added.
Installation
How to install the plugin:
- Place the jar you downloaded into your plugins folder
- Restart the server (Do not reload)
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
|
R
2.4.0
|
19h ago | 1 | |||
|
R
2.3.12
|
19h ago | 1 | |||
|
R
2.3.11
|
19h ago | 1 | |||
|
R
2.3.10
|
19h ago | 1 | |||
|
R
2.3.9
|
19h ago | 1 | |||
|
R
2.3.8
|
19h ago | 1 | |||
|
R
2.3.7
|
19h ago | 1 | |||
|
R
2.3.6
|
19h ago | 1 | |||
|
R
2.3.5
|
19h ago | 1 | |||
|
R
2.3.4
|
19h ago | 1 | |||
|
R
2.3.3
|
19h ago | 1 | |||
|
R
2.3.2
|
19h ago | 1 | |||
|
R
2.3.1
|
19h ago | 1 | |||
|
R
2.3.0
|
19h ago | 1 | |||
|
R
2.2.8
|
19h ago | 1 | |||
|
R
2.2.7
|
19h ago | 1 | |||
|
R
2.2.6
|
19h ago | 1 | |||
|
R
2.2.5
|
19h ago | 1 | |||
|
R
2.2.4
|
19h ago | 1 | |||
|
R
2.2.3
|
19h ago | 1 | |||
|
R
2.2.2
|
19h ago | 1 | |||
|
R
2.2.1
|
19h ago | 1 | |||
|
R
2.2.0
|
19h ago | 1 | |||
|
R
2.1.5
|
19h ago | 1 | |||
|
R
2.1.4
|
19h ago | 1 | |||
|
R
2.1.3
|
19h ago | 1 | |||
|
R
2.1.2
|
19h ago | 1 | |||
|
R
2.1.1
|
19h ago | 1 | |||
|
R
2.1.0
|
19h ago | 1 | |||
|
R
2.0.9
|
19h ago | 1 | |||
|
R
2.0.8
|
19h ago | 1 | |||
|
R
2.0.7
|
19h ago | 1 | |||
|
R
2.0.6
|
19h ago | 1 | |||
|
R
2.0.5
|
19h ago | 1 | |||
|
R
2.0.4
|
19h ago | 1 | |||
|
R
2.0.3
|
19h ago | 1 | |||
|
R
2.0.2
|
19h ago | 1 | |||
|
R
2.0.1
|
19h ago | 1 | |||
|
R
2.0.0
|
19h ago | 1 | |||
| 19h ago | 1 | ||||
| 19h ago | 1 | ||||
| 19h ago | 1 | ||||
| 19h ago | 1 | ||||
| 19h ago | 1 | ||||
| 19h ago | 1 | ||||
| 19h ago | 1 | ||||
| 19h ago | 1 |
- Add 26.3 support
- Add poplar blocks to Foraging sources
- Add shelf mushroom to Farming sources
- Must be large variant and naturally generated to receive XP
- New loot and reward types:
soundtype to play a soundaction_bartype to send an action bar and pause the idle action bartitletype to send a titlechattype to send a chat message- New loot types:
grouptype to grant multiple other loot types in theentrieslist at the same timemoneytype to give money through Vault, same functionality as the money reward- Add options to delete automatic backups older than a configured number of days
delete_old_backups- Whether old backups are deleted (defaults to false)delete_older_than_days- Backups older than this number of days will be deleted, calculated from the filesystem last modified time- Add
call_block_drop_item_eventoption for Treecapitator and Terraform - Add packetevents support
- Add
min_damageoption to not show damage holograms below a value - Add new parameters to item and armor commands:
- Allow
[player]parameter to allow item/armor commands to target other players - Add
[overwrite]flag to overwrite existing modifiers without having to remove them first - Updated syntax:
skills item|armor modifier|trait|multiplier add <stat|trait|skill> <value> [operation] [lore] [overwrite] [player]skills item|armor requirement add <skill> <level> [lore] [overwrite] [player]skills item|armor modifier|trait|multiplier|requirement remove <stat|trait|skill> [lore] [player]skills item|armor modifier|trait|multiplier|requirement list|removeall [player]- Add new permissions for using the
[player]parameter to target others such asauraskills.command.item.modifier.other - Add
%auraskills_mability_[id]_cost%andcost_intplaceholders - Allow editing of custom modifier names in stat_info menu
- Display names are changed in the
menus.stat_info.custom_namessection of a messages file (not menu file) - Descriptions are changed in the
menus.stat_info.custom_descriptionssection - Use the key
stat_modifier_<modifierName>ortrait_modifier_<modifierName>(replace <modifierName> with the actual modifier name) - Add
check_replace_all_statesoption to block sources to track player block placements for the source regardless of block states
### Changes
- Adventure libraries are no longer bundled in the jar and use plugin.yml libraries
- Permissions for trait commands now use
auraskills.command.item.traitinstead ofauraskills.command.item.modifier(same forarmorpermission) - Treecapitator is now stopped immediately when not holding an axe
### Bug Fixes
- Make the Alchemist ability work with custom effects
- Fix
mana.cooldown_timer_periodoption always using 1 - Fix async chunk retrieval error on Folia
- Fix hp hearts config not reloading
- Fix Sugar Rush adding the wrong effect on potion drink
- Fix error with openmenu command on Folia
- Fix grindstone source to always reject when total enchant level is 0
- Fix progress must be between error with boss bar
- Fix hex colors for skill names in stat_info menu
### API Changes
- Add item registry methods to ItemManager API
- Add support for Paper 26.1.1 version and world format
### Bug Fixes
- Fix resethealth command not working in 26.1+
- Fix FancyHolograms damage holograms not being removed
- Add 26.1 support
- Add {skill_name} placeholder to rewards for skill display name
### Changes
- Job selection now works without an economy plugin
- Update Czech, Polish, and Chinese Simplified messages
### Bug Fixes
- Fix Life Steal ability healing players that are dead
- Add 1.21.11 support
- Add nautilus, zombie nautilus, parched, camel, and camel husk to Fighting and Archery sources
### Bug Fixes
- Fix CustomRegenEvent may only be triggered synchronously
- Fix error when changing some alchemy source menu_item material
- Add
allow_bone_mealoption to block sources - If false, crops that have been fertilized with bone meal will not give skill XP (true by default)
- Only applies to block sources with
interacttrigger like sweet_berry_bush - This reverts default behavior to before 2.3.8
- Support FancyHolograms for damage holograms
- Must be enabled in config with
hooks.FancyHolograms.enabled - Add menu item and template variants
- Variants are a more powerful version of contexts that can show different items for a single template/item
- Variants are defined with a
variantslist of mappings on an item or template - Each variant can have the following filtering keys that match an item to a variant:
- A single
contextor list ofcontextsto filter for templates (if a list, any context can be matched) - A
propertiesmapping with a set of key-value properties to filter for (if multiple, all properties must be matched) - A variant can have the following keys that define the actual item appearance for a given variant:
- Any keys that define a base item, such as
material,key, and meta keys likeenchantments - A
posorgroupandorder - A
display_nameandlore - Allow duplicate of the same template context items using
poslist
### Changes
- Make backup loading and saving async
- Backups load much faster by loading users in parallel
- Remove delayed attribute updates for non-Folia servers introduced in 2.3.8 to fix issues
- Fishing command loot now overrides vanilla item loot, instead of both being given
### Bug Fixes
- Fix SQL migration error on older MySQL versions
- Fix SQL key too long using prefix index for modifiers table
- Fix NPE with Nexo when breaking custom blocks
- Fix damage_reduction trait not disabling correctly
- Fix error removing Fleeting on server shutdown
- Fix loot tables giving XP without skill permission
- Fix level up title not working on newer versions
- Add 1.21.9 and 1.21.10 support
- Add Folia support
- Add
call_block_break_eventoption to Treecapitator - Add
collecttrigger for block sources - Triggers when specific blocks (beehive, beenest, cauldron) are harvested with an applicable tool (shears, bottles, or buckets)
### Bug Fixes
- Fix PlaceholderAPI not being registered on startup sometimes
- Fix
spawner_multiplierfor drowned transformed from zombies
- Add average stat placeholders
- Add average_stat, average_stat_int, and average_stat_1 placeholders for the player's average stat level
- Add options for Treecapitator and Terraform to consume durability
- The
durability_multiplieroption determines how much durability should be decreased per block broken
- The
max_limit_durabilitydetermines if the number of blocks broken should always be equal or less than the item's durability.
max_blocks value to limit blocks broken.### Bug Fixes
- Fix Valor, Stamina, and item modifiers not applying in off-hand
- Fix hide_tooltip not working on items
- Fix some menu items not showing with Nexo
- Add loot requirements to tables, pools, and loot
- The
requirementsoption can be set on the loot table, a pool, or loot entry - Requirements accept the already available Block Requirements types
- The following new requirement types have been added
world,biome,region,item, andenchantment- Each type has specific keys below that must be added to define type behavior. These keys are added in the same indent level as
type. - The
worldtype requires the player to be in the specified world. Keys: world- The name of the world the player is required to be in- The
biometype requires the player to be in the specified biome. Keys: biome- The name of the biome the player is required to be in- The
regiontype requires the player to be in the specified WorldGuard region. Keys: region- The name of the WorldGuard region the player is required to be in- The
itemtype requires the player to hold a specific item. Keys: item- The material name of the item the player is required to hold- The
enchantmenttype requires the player to have a specific enchantment on their held item. Keys: enchantment- The name of the enchantment to add a requirement forlevel- The required enchantment level, either singular or a min-max (optional)- Examples of valid levels are
1and1-3 - Add new options and tags to customize Treecapitator
- Add
trunkstag to the Foraging sources file to configure which sources can activate Treecapitator - Add
treecapitator_applicabletag to the Foraging sources file to configure which sources are broken by Treecapitator - Add
max_blocksoption to block sources to set the max number of blocks Treecapitator can break for this trunk type - Add experimental config options
- Experimental options are not included in the config by default
- Each option you want to enable must be manually added in an
experimentalsection - Add experimental option
experimental.optimize_leaderboard_updating - Whether to enable optimized fetching of user data from the SQL database for leaderboard updates. When enabled, only users updated in the database since the last leaderboard
### Bug Fixes
- Fix Nexo hook
### API Changes
- Add SkillsUser#sendAbiltyMessage
- Fix item loot not stacking with normal items
- Fix Fishing sources that specify loot_pool not working
- Fix item reward amount value not working
- Add 1.21.6/1.21.7 support
- Add chance-based enchantments to loot
- An element in an
enchantmentslist can also now be a mapping instead of a string - This mapping has the following keys:
name- The name of the enchantmentlevel- The level of the enchantment, supports rangeschance- The chance that this enchantment is added to the item, from 0-1 (defaults to 1)- The existing string enchantment format of
unbreaking 3andunbreaking 1-3still works - Add configurable damaged loot
- The
damageoption can be set on an item loot entry to set the ratio of total durability that should be removed from the given item - For example, an item with
damage: 0.4will have 40% less durability than max, or be at 60% of total durability - A random amount of damage can be assigned using the
damage.minanddamage.maxoptions, which will select a random damage ratio between the values every time the loot is dropped - Add skill addlevel command to add to a player's skill level
- Syntax:
/skills skill addlevel <player> <skill> <level> - Add income placeholder to source template in sources menu
- Add option to subtract a percentage of skill XP on death
- Add support for start/end wildcards in source tags
### Changes
- Include item multiplier value in multiplier command
- Change BlockBreakEvent event priority for requirements to lowest
- Improve WorldEdit wand exclusion from Treecapitator
### Bug Fixes
- Fix stat rewards applying when skill permission is negated
- Fix mana not resetting when entering disabled world
- Fix Repairing ability not adding repair cost
- Fix NPE if StatModifier stat is null
- Fix NPE in ArmorModifierListener
- Fix No Debuff ability not working for some effects
- Fix tooltips not hidden on some menu fill items
- Fix requirements being applied in disabled worlds
- Fix languages with country codes not working
- Fix NoSuchFieldError when holding items in 1.20-1.20.3
- Fix NPE when applying modifiers
- Add auraskills.leaderboard.exclude permission to hide players from the leaderboard
- Setting this to online players requires a relog to take effect (leaderboard still takes time to update)
### Bug Fixes
- Remove legacy item conversion to fix item stacking
- Fix stat info menu not opening with disabled traits
- Add menus.stat_info.enabled option to disable stat_info menu in config.yml
### Bug Fixes
- Fix item duplication when auto_convert_from_legacy is true
- The plugin now requires at least Java 21
- Support for Minecraft 1.17-1.19 has been dropped
### New Features
- Add 1.21.5 support
- Add stat_info menu
- This allows players to see exactly how their stat and trait levels are calculated
- Accessed by clicking any of the stat items (glass panes) in the stats menu (/stats)
- The menu is tab-based and shows stat modifiers by default. Trait modifiers can be viewed by clicking on the tab buttons on the right.
- Each tab shows any base value, value from skill rewards, and custom modifiers
- Add percentage-based stat and trait modifiers
- Modifiers now have an operation value that defines how they are applied
- The
add_percentoperation multiplies the stat level by 1+value/100 - For example, a modifier with value 50 multiplies the stat by 1.5
- The values for all
add_percentmodifiers for a stat are added together before multiplying the stat (additive multiplier) - The
multiplyoperation directly multiplies the stat level by the value - For example, a modifier with value 2 doubles the stat level
- Each
multiplymodifier is applied separately (multiplicative modifier) - All existing modifiers use the
addoperation, which is the basic addition to the stat level - All
addmodifiers are applied before anyadd_percentormultiplymodifiers - The following existing commands have been modified to add an operation argument:
/skills modifier add <player> <stat> <name> <value> [operation] [silent] [stack]/skills trait add <player> <trait> <name> <value> [operation] [silent] [stack]/skills item modifier add <player> <stat> <value> [operation] [lore]/skills item trait add <player> <trait> <value> [operation] [lore]/skills armor modifier add <player> <stat> <value> [operation] [lore]/skills armor trait add <player> <trait> <value> [operation] [lore]- The
operationargument is optional and defaults toadd - Add temporary modifiers
- Temporary modifiers are automatically removed after certain amount of time
- Use the following commands to add temporary stat and trait modifiers:
/skills modifier addtemp <player> <stat> <name> <value> <duration> [pauseOffline] [operation] [silent] [stack]/skills trait addtemp <player> <trait> <name> <value> <duration> [pauseOffline] [operation] [silent] [stack]- The
durationargument is in the format[years]y[months]mo[days]d[hours]h[minutes]m[seconds]s - Examples of valid durations are
5s,10m, and4d2m1s - The
pauseOfflineargument defines whether the remaining duration should stop counting down when the player is offline (defaults to false) - Add block requirements
- Block requirements are customizable restrictions on breaking, placing, or harvesting blocks
- Requirements are defined in requirement.blocks.list in config.yml
- Each element in the list can have the following keys:
material- The name of the block to add requirements for (required)allow_break- Whether to ignore requirements on block break (defaults to false)allow_place- Whether to ignore requirements on block place (defaults to false)allow_harvest- Whether to ignore requirements on block harvest (defaults to false)- When none of the above allow options are defined, the block cannot be broken, placed, or harvested when requirements are not met
requirements- A map list of the requirement nodes for this block. Each element in the list can have the following keys:type- The type of requirement, which can beskill_level,permission,excluded_world, orstatmessage- The error message to send to the player when the requirement is not met. Supports MiniMessage and PlaceholderAPI (optional).- Each type has specific keys below that must be added to define type behavior. These keys are added in the same indent level as
type. - The
skill_leveltype requires the player to be at least a specific level in a skill. Keys: skill- The name of the skill to add a level requirement forlevel- The minimum skill level the player must be- The
permissiontype requires the player to have a specific permission node. Keys: permission- The permission node required- The
excluded_worldtype defines a list of worlds that will make the requirement fail if the player is in one of them. Keys: worlds- The list of worlds to not allow the player to be in- The
stattype requires the player to be at least a specific stat level. Keys: stat- The name of the stat to add a level requirement forvalue- The minimum stat value that the player must be- General options related to the block requirement system are in requirement.blocks:
enabled- Whether block requirements are checked at allbypass_in_creative_mode- Whether to ignore block requirements for players in creative mode (defaults to true)bypass_if_op- Whether to ignore block requirements for players that are op (defaults to false)- Add addition protections against removing items from menus
- Enable by setting
menus.removal_protectionin config.yml to true (false by default) - Add
speed_reductionoption to Stun ability - Add translatable messages for command descriptions and update notification
- Add
item_modelsupport in menu and loot items - Add
percent_formatandcurrent_xp_formatoptions to skills menu - Add
xp_formatoption to sources menu - Add
formatoption to stat reward to configure decimals - Add Nexo support
### Changes
- Update Polish, Chinese Simplified, and German messages
- Storing modifiers with SQL has been moved from the key_values table to a new modifiers table
- Existing modifiers will be migrated automatically
- A new schema_migrations table stores previously applied migrations
- Remove Oraxen support
### Bug Fixes
- Fix default item options like glow being saved when updating files
- Fix errors when Anvil Discount is not loaded
- Update French, Russian, and Brazilian Portuguese messages
### Bug Fixes
- Fix Jumper and Runner abilities applying to the wrong skill
- Fix error when parsing some damage source cause values
- Fix idle action bar message not updating on reload
- Fix skull profile missing error when opening leaderboard menu
- Update stats on join on the main thread to fix errors
### API Changes
- Add api methods to load and save offline users
- Use UserManager#loadUser to load a user into memory
- Use SkillsUser#save to save the user to storage asynchronously
- Add 1.21.4 support
- Add pale garden blocks to Foraging sources
- Add support for external items anywhere that accepts an item key
### Changes
- Change MythicDamageEvent priority from high to normal
- Support {color} placeholder in leveled_by component of stats menu
- Make anvil discount trait formula configurable in stats.yml
- Change update checker to use Modrinth with loader and version filters
### Bug Fixes
- Fix slimes and groups of mobs attacking rapidly with no cooldown
- Fix hex colors not working in loot entry message
- Fix xp-gain and custom-loot WorldGuard flags with Fishing loot
- Fix offline player skins not working in leaderboard menu
- Fix double plus in lore when adding some trait modifiers
- Fix IncompatibleClassChangeError on 1.21.1 and below caused by 2.2.5 update
- Add 1.21.3 support
### Changes
- The
{skill}and{skill_key}placeholders can now be used anywhere in the level progression menu
### Bug Fixes
- Prevent errors from abnormal server version strings
- Add more permission nodes with child permissions
- auraskills.* contains permissions for all commands
- auraskills.command.user contains permissions users have by default
- auraskills.skill.* contains permissions to use all skills
- auraskills.command.item.* contains permissions related to item modifier creation
- auraskills.command.armor.* contains permissions related to armor modifier creation
- auraskills.command.admin contains permissions for all admin/op commands
### Changes
- Respect cancelled drops when applying block luck
- Only show loaded skills in profile command
- Update Chinese Simplified, Chinese Traditional, and Indonesian messages
### Bug Fixes
- Fix health value must be between error when changing worlds
- Fix boss bar progress must be between error when max skill level
- Fix NPE when updating leaderboards on MySQL
### API Changes
- SkillsUser#setSkillLevel will now refresh stats, permissions, rewards, and item modifiers
- Add setSkillLevel method with boolean parameter to control whether to refresh stats
- Add CustomManaAbilityBuilder#infoFormats to set the list of menu format names to use in the menu description
- Add new damage source options
- Add excluded_damager/excluded_damagers to prevent XP gain from specific entity types
- Add cooldown_ms to define a delay before XP can be gained again in milliseconds (200 by default)
- Add damagers option to define a list of valid damagers
- Add job selection cooldown option (jobs.selection.cooldown_sec)
### Changes
- Update German, Polish, and Italian messages
- Make all region loading async
### Bug Fixes
- Fix error loading menu on Spigot 1.21
- Fix typos in excavation loot file
- Implement error handling for global requirement material names
- Fix trait_experience_bonus placeholder not working
- Fix boss bar progress must be between error
- Add 1.21.1 support
- Add use_permission_cache option to disable LuckPerms multiplier permission cache
### Bug Fixes
- Fix anti-AFK being force enabled after reload
- Skip sending item give command message if empty
- Fix cannot measure distance error in PositionHandler
- Fix logs table not being created
- Add anti-AFK system for preventing AFK XP gain
- This is an optional feature that detects and blocks repetitive AFK skill XP gain, encouraging active play
- Must be manually enabled with the
anti_afk.enabledoption in the main config - There are 8 types of checks that can block AFK XP gain in the following skills: Farming, Foraging, Mining, Fishing, Excavation, Fighting, Archery, and Defense
- The checks work in one of three ways: detecting identical player coordinates, facing direction (pitch/yaw), or the entity being involved
- Checks are configured in the
anti_afk.checkssection - Specific checks can be toggled with the
enabledoption - The
min_countoption is the number of identical XP gain conditions in a row for the player to be blocked from gaining XP - The
max_distanceoption for some checks is the threshold for which movement below that value is still considered identical - Logging for failing anti-AFK checks can be enabled with the
anti_afk.logging_enabledoption - The
log_thresholdis an expression determining the count of identical conditions required for logging an event. The min_count variable can be used in this expression to reference the min_count in the checks section for a check type. - Logs will be sent to any online player with the auraskills.antiafk.notify permission (op by default)
- Logs are saved to storage can can be viewed for any player with the
/skills antiafk logs <player> [page] [perPage]command (auraskills.command.antiafk.logs permission) - Important disclaimer: A player failing checks and being logged does not necessarily mean they are cheating or using a macro, as false positives can be common for legitmate players, especially if min_count is low. An example is a player using a mob farm manually can still trigger anti-AFK checks. Always check logged players manually before taking any action.
- Add entity loot for fishing loot tables
- The new entity loot type adds the ability to catch entity with fishing
- Defined by a loot entry with
type: entity - The
entitykey defines the type of entity caught - Vanilla entities/mobs are defined by name (e.g.
entity: zombie) - MythicMobs can be used with the
mythicmobs:prefix (e.g.entity: mythicmobs:SkeletonKing) - The
healthkey overrides the entity max health attribute - The
damagekey overrides the entity attack damage attribute - The
levelkey can be used to define the AuraMobs or MythicMobs level - The default vertical and horizontal velocities when caught can be overridden with
velocity.horizontalandvelocity.vertical - The keys
hand,off_hand,feet,legs,chest, andheadare used to define equipment on the spawned entity - The value is a mapping in the same item format as regular item loot (Using keys
material,enchantments, etc.) - Add boss bar animation using delay when upgrading progress
- This allows players to visually see the change in progress when a new boss bar is shown
- Can be toggled with the
boss_bar.animate_progressoption in the main config - Add support for multiple commands on one loot entry
- Use a
commandslist of strings on a command loot entry instead ofcommand
### Changes
- Optimize leaderboard updating for SQL
- Optimize SQL user loading and saving
- A user is now loaded in a single statement with subqueries
- Saving key_values will now utilize batched statements
### Bug Fixes
- Fix disabled abilities still showing in abilities menu
- Fix level up title not working in 1.20.5+
- Fix XP Convert giving extremely high experience values
- Fix boss bar income showing for jobs enabled without economy
### API Changes
- Relocate and create Configurate API wrapper (breaking change)
- ConfigurationNode has been replaced with the ConfigNode wrapper class in api and api-bukkit
- Configurate is no longer included in the api module as a dependency
- Any plugins working with ConfigurationNode in the API will break and must be updated (such as using LootParser, creating custom source types, or ItemManager#parseItem)
- Updating is done by simply renaming ConfigurationNode mentions to ConfigNode, as most methods are copied over exactly
- This change was made to fix critical loading errors with plugins like Nova
- Add trait modifier methods to ItemManager
- Deprecate addModifier, getModifiers, and removeModifier to be replaced by addStatModifier, getStatModifiers, and removeStatModifier
- Add action bar methods to SkillsUser for sending and pausing action bars
- Add Oraxen support
- Oraxen note blocks defined in sources will now give XP properly
- Custom blocks can now be easily defined in sources by prefixing the
blockoption of a block source withoraxen: - For example,
block: oraxen:mythril_orewill automatically register the block state from Oraxen without needing to manually define astate - Oraxen items can be directly used in any source
menu_itemoption using a string key prefixed withoraxen: - For example,
menu_item: oraxen:mythrilwill use the exact item defined in Oraxen, including any NBT - This is defined as a string value directly on the
menu_itemkey rather than the map section used for normal menu items - Custom loot from Oraxen blocks will drop extra items correctly with Luck traits like Mining Luck
- Add requirement.override_global option to main config
- If true, global requirements will be ignored if item-specific requirements are defined
- Add mana.cooldown_timer_period option to main config
- Increasing can help reduce lag caused by TimerCountdown for mana abilities
- Add sql.pool options to main config
- The new options maximum_pool_size, minimum_idle, connection_timeout, max_lifetime, and keepalive_time are used to configure the Hikari connection pool
- These should not be changed unless you have issues with connection stability and know what you are doing
### Bug Fixes
- Fix power leaderboard not adding custom skills
- Fix leaderboard still showing for disabled skills
- Fix global requirements and world options not being updated on skills reload
- Fix roman placeholders with value 0 not working
- Fix ManaAbilityRefreshEvent being called invalidly
- Fix hp keep_full_on_increase not working sometimes
- Fix snow golem and mooshroom not giving XP in 1.20.5+
- Add jobs income batching options to reduce economy lag
- If jobs.income.batching.enabled is true, accumulated income will be given in an interval instead of immediately
- The interval_ms option controls the minimum delay between when money is given
- If display_individual is true, the boss bar will display the original individual income instead of batched
### Changes
- Optimize checking for disabled sources using cache
### Bug Fixes
- Fix XP duplication exploit with land claiming plugins
- Fix resethealth command not working on 1.21
- Fix modifier is already applied error with stun
- Fix NoSuchMethodError on 1.19.4
- Fix PlaceholderAPI not working in level up message
- Fix negative XP gain after negative multipliers
- Minecraft 1.21 support
- Add bogged and breeze to Fighting and Archery sources
- Add new action_bar options to main config
- format_last - If true, parsing of MiniMessage will happen after placeholders are replaced on each send. This makes MiniMessage gradients work at the cost of performance (false by default).
- update_async - If true, the idle action bar will be updated and sent asynchronously. This is an experimental option (false by default).
### Changes
- The option modifier.auto_convert_from_legacy is now false by default
### Bug Fixes
- Fix Lightning Blade attribute modifier not being removed
- Fix backup debug message spam
- Fix disabled traits not being fully disabled sometimes
- Fix hex colors not working in level up title and chat message
- Fix hex colors not working in action bars
- Add roman and int placeholders for abilities (thanks Erik)
%auraskills_[ability]_roman%- Gets ability level as a Roman numeral%auraskills_[ability]_value_int%- Gets ability value rounded to an integer%auraskills_[ability]_value_2_int%- Gets secondary ability value rounded to an integer if it exists%auraskills_mability_[ability]_roman%- Gets mana ability level as a Roman numeral%auraskills_mability_[ability]_value_int%- Gets mana ability value rounded to an integer- Add correct_over_max_level option to main config to prevent skill levels being over max level on join (false by default)
- Add shape option to menu fill items
- Available values are border, top_row, bottom_row, left_column, and right_column
### Changes
- Revert unnecessary AdvancedEnchantments event ignores, fixing compatibility
- Update German and Chinese Simplified messages
### Bug Fixes
- Fix split slimes and magma cubes not applying spawner_multiplier
- Fix double reloading on addStatModifier (thanks Erik)
- This fixes extra health resets with plugins like MMOItems
- Fix Charged Shot not applying damage bonus
- Fix NoSuchFieldError on older versions when using mana abilities
- Fix RoseStacker spawner mobs not working with spawner_multiplier
- Fix armor add command not accepting decimal values
- Fix level progression total page count sometimes being wrong
- Fix food level decreasing at full health with use_custom_delay true
- Add auraskills.jobs.block.[skill] permission to prevent skills from being selected as jobs if set to true (ex: auraskills.jobs.block.mining)
- Add
%auraskils_jobs_active_[skill]%placeholder that returns true/false whether the job is active (ex: %auraskills_jobs_active_farming%)
### Changes
- Support property placeholders in menu placeholder conditions, such as {skill} for the skill name in certain menus
- Slightly tweaked the jobs item lore style in the level_progression menu
### Bug Fixes
- Fix grindstone experience exploit
- Fix NoSuchMethodError on older versions
- Add jobs system
- Jobs is an optional feature that allows players to select skills as jobs to earn money while gaining XP.
- To use jobs, the jobs.enabled option must be set to true in config.yml
- Income for all XP sources is configured under jobs.income
- If use_xp is true, sources will give a multiple of the XP gained based on default.income_per_xp
- If use_expression is true, sources will give XP based on the result of default.expression
- The available variables include xp, base_xp (value without multipliers), level (skill level), power, and skill_average
- If use_final_xp is set to false, the calculation for income_per_xp will exclude all XP multipliers
- Job selection is configured under jobs.selection
- Players select a skill as a job using a new item in the level progression menu of a skill (gold_ingot by default)
- If require_selection is set to false, players will gain income for all skills and selection will be hidden
- The default_job_limit is the maximum number of skills that can be selected as jobs at the same time
- The limit can be changed per-player using the auraskills.jobs.limit.[number] permission node (ex: auraskills.jobs.limit.4)
- The disable_unselected_xp option will block gaining XP in all skills that are not active jobs if set to true
- Income can also be configured per-source inside the sources files
- Keys can be added to both the default section or an individual source
- The following keys can be added to a source:
- income_per_xp - The income to give per XP gained, works the same as the value in config.yml
- income - A fixed decimal value for the money to give
- income_expression - An expression to calculate the income, works the same as the expression in config.yml
- Menu files will automatically update to add the new items and components to show job selection
- However, you must manually add a new line
- component: skill_job_activeto the lore of the skill template in menus/skills.yml under- component: max_level - Everything will still work if this line isn't manually added, players just won't see the "Active Job" displayed in the skills menu
- New jobs commands:
/skills jobs add <job> [user]- Joins a specific job for yourself or a different player/skills jobs remove <job> [user]- Quits a specific job for yourself or a different player/skills jobs removeall [user]- Quits all jobs for yourself or a different player- When user is not specified, these commands use the auraskills.command.jobs permission (op by default)
- To specify a different user, the sender must also have the auraskills.command.jobs.other permission (op by default)
- New jobs PlaceholderAPI placeholders:
%auraskills_jobs_list%- Lists active jobs in a comma separated list of default skill names in all lowercase%auraskills_jobs_list_formatted%- Lists active jobs in a comma separated list with the skill display name of the config default_language%auraskills_jobs_count%- Gets the number of jobs the player currently has active%auraskills_jobs_limit%- Gets the maximum number of jobs the player is allowed to have active at the same time- Add trait commands for adding trait modifiers directly to players
/skills trait add <player> <trait> <name> <value> [silent] [stack]- Adds a trait modifier to a player with the given name/skills trait remove <player> <name> [silent]- Removes a trait modifier from a player with the given name/skills trait list [player] [trait]- Lists trait modifiers of a player/skills trait removeall [player] [trait] [silent]- Removes all trait modifiers from a player- The functionality of these commands is almost identical to the modifier commands for stat modifiers
- These commands use the existing auraskills.command.modifier permission
- Add item and armor trait commands for adding trait modifiers to items
/skills item|armor trait add <trait> <value> [lore]- Adds a trait modifier to the held item, with lore by default/skills item|armor trait remove <trait>- Removes a trait modifier from the item held/skills item|armor trait list- Lists all trait modifiers on the item held/skills item|armor trait removeall- Removes all trait modifiers from the item held- Where item|armor is shown above, only item or armor should be specified, not both
- These commands use the existing auraskills.command.item.modifier or auraskills.command.armor.modifier permissions
- Like stat modifiers, trait modifiers use PDC and do not depend on lore to function
- Add item ignore commands to ignore interactions on specific items
- This allows you to disable mana abilities on custom items to allow separate right-click functionality
/skills item ignore add- Adds the tag that ignores the held item from mana ability interactions/skills item ignore remove- Removes the tag that ignores the held item from mana ability interactions- Add format_title option to menus to allow disabling color and MiniMessage parsing of menu titles
- To use, manually add it to the options section of a menu file (create it if it doesn't exist)
- Add PlaceholderAPI support to level up chat message
- Add
%auraskills_xp_bar_[skill]%placeholder that gets the XP progress bar shown in the menus
### Changes
- Optimize menus to significantly improve performance for idle open menus
- Change the default skills and level_progression menu files to fully use block style YAML syntax
- The default contexts materials of the skill template in the level_progression menu now match the materials in the skills menu
- Add symbol placeholder support to item modifier lore message
- Automatic backups will now be skipped if the server has too many users (uses new max_users config option)
- Add ensure_scaling_disabled option to hp trait in stats.yml to disable health scaling if the trait is disabled (true by default)
- Update Japanese, Polish, and Chinese Simplified messages
### Bug Fixes
- Fix Bleed and Absorption particle errors on 1.20.5+
- Fix mana add command always setting mana to max
- Fix hex colors in ability messages not working
- Fix added contexts sections breaking some level_progression templates
- Fix hp action_bar_scaling not applying to menus and chat
- Fix multiplier permissions set to false not being ignored
- Fix Disenchanter not working when shift clicking to remove an item with a different item on the cursor
- Fix hide_attributes flag not working in 1.20.5+
- Fix Alchemist duration lore stacking on the same potion
### API Changes
- Add job methods to SkillsUser
- Add Trait#getMenuDisplay to get the trait value formatted as shown in the stats menu
- Fix MenuManager#buildMenu not working when called multiple times to extend the same menu
### New Features
- Add menu conditions system
- Conditions on items are used to add requirements for viewing or clicking an item
- View conditions will hide the item if not all conditions are met
- View conditions are added with a
view_conditionskey under an item - Click conditions will prevent click actions or built-in click behavior from running if not all conditions are met
- Click conditions are added using the
on_click_conditionskey, or for a specific button trigger likeon_right_click_conditions - The syntax for any condition key is a map list of conditions that all must be met. This is similar to the click actions syntax.
- Permission condition type:
- Permission conditions check if the player has a permission
- Uses
type: permission(optional due to auto type detection) - Must specify a
permissionkey for the permission node to check - An optional boolean
valuecan be specified (defaults to true) - Placeholder condition type:
- Placeholder conditions compare two values that can contain PlaceholderAPI placeholders
- Uses
type: placeholder(optional due to auto type detection) - Must specify a
placeholderstring key as the left side value to be compared - Must specify a
valuestring key as the right side value to be compared - An optional
comparestring can be specified for the type of comparison operation to perform (defaults to equals) equalschecks for numerical or string equalitygreater_thanchecks ifplaceholderis strictly greater thanvaluegreater_than_or_equalschecks ifplaceholderis greater than or equal tovalueless_thanchecks ifplaceholderis strictly less thanvalueless_than_or_equalschecks ifplaceholderis less than or equal tovalue- Any
compareother thanequalsrequires bothplaceholderandvalueto be evaluated to doubles - Add menu
on_openandon_closeactions for running actions when a menu is opened or closed - These are map lists of actions defined directly in the top-level of the menu file
on_closewill run even if the player switches to a different menu immediately- Add sound menu action
- Plays a sound for a player
- Uses
type: sound(optional due to auto type detection) - Must specify a
soundstring key as the sound type to player. This uses the vanilla names matching the /playsound command. - An optional
categorystring can be specified (defaults to master) - An optional
volumenumber can be specified (defaults to 1) - An optional
pitchnumber can be specified (defaults to 1) - Add syntax to duplicate default menu items with placeholders
- Creating a new item with a name in the format
item_name(1)will replace all the display_name and lore placeholders exactly like the defaultitem_name. - Any number can be used within the parenthesis
- This is useful for duplicating default items across multiple slots with different materials and custom_model_data for resource packs
- Add syntax for duplicating the exact same menu item easily across multiple slots
- Specify a list of slot values with the
poskey instead of a single value
### Changes
- Click action types will now be automatically detected, so specifying a
typeis no longer required
### Bug Fixes
- Fix duplicate source updating for legacy preset
- Fix command actions not working without PlaceholderAPI