-
Notifications
You must be signed in to change notification settings - Fork 110
Attributes
Attributes provide a flexible way to control various stats which the player can invest points into. Each class can have base amounts, skills can modify them, and items can have lore which provides extra attributes.
Attributes are disabled by default. To enable them, edit the config.yml and change "attributes-enabled" under "Classes" to true.
This is the main config file for attributes. You can completely customize them, changing which ones are available and what they do. The available options are:
- The name of the attribute
- The max amount of points a player can invest
- The icon used to represent the attribute in the GUI
- What dynamic skill settings they affect
- The stats they effect
Vitality | +1 HP |
Spirit | +1 Mana and +2.5% Regen |
Intelligence | +2.5% Skill Damage |
Strength | +2.5% Physical Damage |
Dexterity | +2.5% Skill Range |
Attributes can directly modify certain stats. The format for these is the following:
<stat>: '<formula>'
The <stat> part is the stat to modify, which can be one of these stats:
armor | [PREM, 1.9+] Vanilla damage mitigation |
armor-toughness | [PREM, 1.9+] Secondary vanilla damage mitigation |
attack-speed | [PREM, 1.9+] Weapon recharge time |
cooldown | [PREM] Modifies skill cooldowns |
defense-<type> | [PREM] Reduces damage taken from various damage sources. See the DamageCause docs to see supported types. Use lower-case versions of it, such as "defense-block_explosion". |
exp | [PREM] increases all class experience gained |
health | The max health of the player |
hunger | [PREM] Increases how long hunger lasts. This attribute is always based off of a base value of 1. A resulting value of 2 would double how long the hunger bar lasts, for example. |
hunger-heal | [PREM] Increases how much you heal while satiated |
knockback-resist | [PREM, 1.9+] Probability of resisting knockback as a decimal (1.0 is 100% change to resist) |
luck | [PREM, 1.9+] loot table chances |
mana | The max mana of the player |
mana-regen | The amount of mana regeneration the player has |
move-speed | The movement speed of the player |
physical-damage | The amount of damage done by physical (basic or projectile) attacks |
physical-defense | The amount of damage taken by physical (basic or projectile) attacks |
skill-damage | The amount of damage done by skills |
skill-damage-<classification> | [PREM] The amount of damage done by skills with the specified classification |
skill-defense | The amount of damage taken by skills |
skill-defense-<classification> | [PREM] The amount of damage taken by skills with the specified classification |
____________________________________ |
Attributes can modify the settings for dynamic skills. They are organized by their category (Mechanic, Target, or Condition) and have the following format:
<componentName>-<valueKey>: '<formula>'
An example which raises damage by 2% per attribute point:
Damage-value: 'a*0.02+1*v'
And another which causes more particle projectiles to be fired out:
Particle Projectile-amount: 'a*0.5+v'
You can add conditions to affect certain samples as well. Here's an example that only changes damage when the component has an Icon Key set to "example":
Damage-value: 'a*0.05+1*v:icon-key=example'
You can add multiple statements as well to target different groups. This example increases damage by 5% if the Icon Key is "example", and 2% for all other skills:
Damage-value: 'a*0.05+1*v:icon-key=example|a*0.02+1*v'
For details on how formulas work, see this page:
a*<num>+v where <num>is the amount to change by per attribute point
v(a*<num>+1) where <num> is the pertentage as a decimal (e.g. 0.01 for 1%)