Guide to customizing XP requirements
The amount of XP required to level up skills can be configured in the xp_requirements.yml
file.
Within a section, such as the default
section, you will see an expression
value that contains the expression/equation used to calculate the XP requirements.
The expression can be changed as you wish, but it must be a valid EvalEx expression. You can view the supported operators and functions here.
The result of the expression will always be rounded to the nearest whole number
Variables are also supported in expressions. In order to have a different XP required for each level, you must have the level
variable in the expression somewhere. This variable corresponds to the level that is unlocked upon reaching the required XP. The level
starts at the config.yml start_level+1
and goes up to the maximum level of the skill. For example, the result of the expression when level
is 5 is the XP need to go from level 4 to 5.
Custom variables are also supported, which allow you to label and organize the parts of your expression. Instead of using the numbers directly in the expression, you can turn it into a variable that is specified in its own key. In the default expression shown below, multiplier
and base
are examples of custom variables.
As you can see, the numeric values of multiplier
and base
are specified as keys with the same name as the variable:
You can use any variable name, as long as the value of the variable is defined in a separate key of the same name.
You can create different XP requirements for each skill by adding a skills.[skillName]
section that will override the default
section. The keys and values in the skill section are the same as the default
section.
Here is an example of Alchemy XP requirements that override the default:
Instead of using an equation, XP requirements can be defined using a direct list of values. Create a list called values
under either the default
section or a specific skill section.
Here is an example of XP requirements using a value list:
The first value in the list is the XP required to get from level 1 to level 2.
Guide to item and armor requirements
Requirements allow you to add skill level requirements in order to use an item. For example, you can create a pickaxe that only works when the player reaches Mining 15. There are two types of requirements: item and armor.
Item requirements apply when using the item in the player's hand. Armor requirements only apply when equipping/wearing the item.
There are also two different scopes and ways to add requirements: using commands or global requirements.
Using commands to add requirements only adds the requirement to the specific item you are holding when creating the requirement. Therefore, you must distribute exact copies of that item in order for it to work.
Commands:
The item/armor
below means you only type item
for item requirements and only armor
for armor requirements.
/sk item/armor requirement add <skill> <level> [lore]
- Adds an item/armor requirement to the held item. skill
is the name of the skill that is required. level
is the minimum skill level needed to use the item. lore
is an optional true/false argument that determines whether lore should be added to the item. Lore is completely separate from the functionality of the requirement, so you can change or remove any lore.
/sk item/armor requirement remove <skill> [lore]
- Removes an item/armor requirement from the item held. If lore
is true, the lore that was originally added will be attempted to be removed from the item. This may not work if you added custom lore.
/sk item/armor requirement list
- Lists the item/armor requirements on the item held.
/sk item/armor requirement removeall
- Removes all item requirements from the item held.
Global requirements allow adding skill requirements to all items of a certain type/material. To add global requirements, you must add a global
list to the requirement.item
or requirement.armor
section of config.yml
.
The basic format for an entry in the list is: - MATERIAL SKILL:LEVEL
Here is an example of a global item requirement for diamond swords requiring Fighting 10 to use, including where it is located in the config:
Multiple global requirements on a single item are also supported:
Global requirements do not support custom items
Guide to XP multipliers
Multipliers are a way of increasing the amount of skill XP a player receives without changing the sources config.
Multipliers are permission based, meaning you can add them to individual players or groups of players (such as ranks). If your permissions plugin supports temporary permissions, you can even create temporary XP multiplier events.
To add a multiplier, use your permissions plugin to add a permission in the following format:
auraskills.multiplier.[percent]
Replace [percent] with the percent more XP you want the multiplier to give. For example, the permission auraskills.multiplier.100
will give 100% more or 2x XP. The percent supports decimals using .
(e.g. auraskills.multiplier.10.5
).
Multipliers can also be added to only multiply XP from sources of a specific skill. The format of the permission is auraskills.multiplier.[skill].[percent]
where [skill] is the default English name of the skill in lowercase.
Example permission for 1.5x farming multiplier: auraskills.multiplier.farming.50
If a player has more than one multiplier permission, the multipliers will add together and work as if there was only a single multiplier. For example, 100 (2x) and 50 (1.5x) multipliers will add to 150 (2.5x).
If you want multiplier multipliers that have the same value, you cannot simply use the same permission because inherently permissions must be unique. As a workaround, you can add trailing decimal zeros so that they are technically unique, but have the same value.
For example, auraskills.multiplier.100
will work the same as auraskills.multiplier.100.0
. You can continue adding trailing zeros to add as many duplicates as you like.
The following are examples of adding multipliers using LuckPerms, a popular permissions plugin. If you use a different permissions plugin, use the commands from that plugin to add the multiplier like any other permission.
Adding a 2x multiplier to a player:
Adding a 1.5x multiplier to a rank called vip:
Adding a temporary 3x multiplier to everyone for 12 hours:
Removing a 2x multiplier from a player:
When removing multipliers, you must use the exact text of the permission you added.
Multipliers can also be added to items and armor similar to stat modifiers. Item multipliers increase XP when holding the item. Armor multipliers increase XP when wearing the item. Multipliers can be either global or only for a specific skill.
The commands used for item/armor multipliers:
/sk item/armor multiplier add <target> <value> [lore]
/sk item/armor multiplier remove <target>
/sk item/armor multiplier list
/sk item/armor multiplier removeall
Use either item or armor in the command depending on the type of multiplier you want. Target can be either global or the name of a skill. The value of the multiplier is the percent more XP gained (works the same as permission multipliers).
These multipliers are included in the /sk multiplier command, which can display skill-specific multipliers if they are different from the global multiplier.
Guide to skills and the skills.yml file
Skills are measures of a player's experience or progress in different aspects of the game. As the main feature of AuraSkills, all other features are connected or related to skills. All information about skills is viewed in the skills menu using /skills
. Each skill has a set of sources: specific tasks or actions used to gain XP in that skill. Players level up by reaching the XP requirement for the next level, which increases with higher skill levels.
Upon reaching a new skill level, players can be rewarded with:
Stat levels
Ability unlocks and level-ups
Mana Ability unlocks and level-ups
Other customizable rewards, including:
Commands
Permissions
Items
Money
There are 11 default skills included in the plugin:
Farming
Foraging
Mining
Fishing
Excavation
Archery
Defense
Fighting
Agility
Enchanting
Alchemy
There are 4 skills present in Beta that were merged or removed in default configs. Servers that migrated from Beta or loaded the legacy preset have these additional skills:
Endurance (merged into Agility in default)
Healing (merged into Alchemy in default)
Forging (merged into Enchanting in default)
Sorcery (removed from default)
Skills are configured in the skills.yml
file. Each skill has a section named after its full Namespaced ID (prefixed with auraskills/
for all default skills). Below is an example skill section for Farming with comments explaining each option:
The abilities
key is a list of the abilities attached to the skill (will level up as the skill levels up). The ability name must be a full Namespaced ID. All other configuration for abilities is done in abilities.yml
.
The mana_ability
key is the name (full Namespaced ID) of the mana ability of the skill. This is an optional value, as not all skills have mana abilities. All other configuration for mana abilities is done in mana_abilities.yml
.
enabled
- Whether the skill and all its connected features should be enabled. If set to false, players cannot gain XP in the skill, use the abilities or mana abilities, and the skill will be hidden from menus. Disabling a skill will not reset player levels, so re-enabling a skill will retain previously gained levels.
max_level
- The maximum attainable level of a skill. Lowering this level will not decrease player levels that are already higher than the new max level.
check_cancelled
- Whether source levelers should ignore cancelled events when giving XP. This should not be changed unless you have a specific compatibility issue that requires it.
check_multiplier_permissions
- Whether permission-based multipliers (auraskills.multiplier.*
) should work. If you do not use permission multipliers, setting this to false may improve performance.
spawner_multiplier
- Multiplies the given XP by this value for mobs spawned by a mob spawner block. Set to 0 to disable XP from spawners.
max
- The maximum amount of XP to reward for defense.
min
- The minimum amount of XP required to be rewarded. If the XP is lower than min, no XP will be given.
allow_shield_blocking
- Whether XP should be given when a player is hit while blocking with a shield.
ignore_custom_potions
- If true, potions with custom effects (non-brewable potions) will not work with Alchemy abilities such as Alchemist, Sugar Rush, and Splasher.
The names of skills can be used to directly open the level progression menus for that skill, such as /farming
, /archery
, etc. This can be disabled by setting enable_skill_commands
to false in config.yml
.
Skill levels can be manipulated using the following commands:
/skills skill setlevel <player> <skill> <level>
/skills skill setall <player> <skill> <level>
/skills skill reset <player> [skill]
The skills menu is accessed using /skills
. The design and format of the menu is configured in menus/skills.yml
.
The display names and descriptions of skills can be changed under the skills
section of the messages file.