Stats are values that affect all kinds of mechanics across Players, Mobs, Items, Skills, and more.
Stats are values that affect all kinds of mechanics across Players, Mobs, Items, Skills, and more.
While Stats system can be complicated to learn at first, its versatility will enable you to do very advanced things, such as combat changes, technical utilities, and the creation of new game design elements.
While Stats system can be complicated to learn at first, its versatility will enable you to do very advanced things, such as combat changes, technical utilities, and the creation of new game design elements.
Stats are defined in the`stats.yml` file. This file can exist in the root directory of MythicMobs (`/plugins/MythicMobs/`) or in a [Pack](MythicMobs/-/wikis/Packs) folder.
Stats are defined in the`stats.yml` file. This file can exist in the root directory of MythicMobs (`/plugins/MythicMobs/`) or in a [Pack](MythicMobs/-/wikis/Packs) folder.
> **WARNING: To be able to use Stats on Items, [Crucible](/../../../mythiccrucible/-/wikis/home) must be installed**
> **WARNING: To be able to use Stats on Items, [Crucible](/../../../mythiccrucible/-/wikis/home) must be installed**
-[Custom Stat Options](#custom-stat-options)
-[Custom Stat Options](#custom-stat-options)
-[Custom Stat Types](#custom-stat-types)
-[Custom Stat Types](#custom-stat-types)
-[Specific Type Options](#specific-type-options)
-[Specific Type Options](#specific-type-options)
-[Tooltips Formatting](#tooltips-formatting)
-[Tooltips Formatting](#tooltips-formatting)
-[Modifiers](#modifiers)
-[Modifiers](#modifiers)
-[Built In Stats](#built-in-stats)
-[Built In Stats](#built-in-stats)
-[Implementations with Configurations](#implementations-with-configurations)
-[Implementations with Configurations](#implementations-with-configurations)
-[Mobs](#mobs)
-[Mobs](#mobs)
-[Items](#items)
-[Items](#items)
-[Examples](#Examples)
-[Examples](#Examples)
-[Example Custom Stats](#example-custom-stats)
-[Example Custom Stats](#example-custom-stats)
# Custom Stat Options
# Custom Stat Options
Options that can be used in the Stat in order to better customize it
Options that can be used in the Stat in order to better customize it
| AlwaysActive | If the stat is forcefully applied to every registry of every entity |
| AlwaysActive | If the stat is forcefully applied to every registry of every entity |
| Type | The [Type](Stats#custom-stat-types) of the stat |
| Type | The [Type](Stats#custom-stat-types) of the stat |
| Display | The name with which the stat is displayed |
| Display | The name with which the stat is displayed |
| Formatting | How the stat is shown on items. Depends on the Modifier used |
| Formatting | How the stat is shown on items. Depends on the Modifier used |
| ShowInLore | Whether to show the tooltips formatting for each modifier |
| ShowInLore | Whether to show the tooltips formatting for each modifier |
| Priority | The priority with which the stat will take effect, compared to others. *Lower* values make it so the stat will trigger *before* stats with higher values |
| Priority | The priority with which the stat will take effect, compared to others. *Lower* values make it so the stat will trigger *before* stats with higher values |
| MinValue | Minimum value for the stat |
| MinValue | Minimum value for the stat |
| MaxValue | Max value for the stat |
| MaxValue | Max value for the stat |
| Triggers | What triggers the stat effect. Can be any MythicMobs trigger, minus the "on" bit. <br/>(For instance: to use `onAttack`, one needs to write `ATTACK` as a trigger) <br/>As of v.5.4.0, only damaging triggers are available; keep an eye on dev builds for expanded functionality.|
| Triggers | What triggers the stat effect. Can be any MythicMobs trigger, minus the "on" bit. <br/>(For instance: to use `onAttack`, one needs to write `ATTACK` as a trigger) <br/>As of v.5.4.0, only damaging triggers are available; keep an eye on dev builds for expanded functionality.|
| ParentStats | A list of other stats that this stat relies on |
| ParentStats | A list of other stats that this stat relies on |
| TriggerStats | A list of stats that the triggering entity may have and their FormulaKey, separated by a space. The FormulaKey can then be used in other Formulas to fetch its value from the trigger's. [Here is an example](#ice_damage) |
| TriggerStats | A list of stats that the triggering entity may have and their FormulaKey, separated by a space. The FormulaKey can then be used in other Formulas to fetch its value from the trigger's. [Here is an example](#ice_damage) |
| Formula | A formula for the base value if this stat has parent stats |
| Formula | A formula for the base value if this stat has parent stats |
| FormulaKey | A key you can use in formulas, when this stat is the parent of another |
| FormulaKey | A key you can use in formulas, when this stat is the parent of another |
| BaseValue | A static base value if it doesn't have parents |
| BaseValue | A static base value if it doesn't have parents |
| ExecutionPoint | For stats that modify a trigger, can be `PRE` or `POST`. determines whether the stat is evaluated before or after any mechanics |
| ExecutionPoint | For stats that modify a trigger, can be `PRE` or `POST`. determines whether the stat is evaluated before or after any mechanics |
| Skills | The skills that get executed when the stat is activated |
| Skills | The skills that get executed when the stat is activated |
| DamageType | Specify a custom damage type. Use `ALL` to modify the final total damage of the skill |
| DamageType | Specify a custom damage type. Use `ALL` to modify the final total damage of the skill |
| Conditions | Specify conditions which can affect the Modifier |
| Conditions | Specify conditions which can affect the Modifier |
| DamageFormula | Define a formula for how the damage is modified. See [HERE](#fire_resistance) for an example of this<br>Some additional keys the damage formula can use are:<br>- `d` to express the damage's original value<br>- `v` to express the stat's value |
| DamageFormula | Define a formula for how the damage is modified. See [HERE](#fire_resistance) for an example of this<br>Some additional keys the damage formula can use are:<br>- `d` to express the damage's original value<br>- `v` to express the stat's value |
| Additive | The tooltip to show for additive modifiers |
| Additive | The tooltip to show for additive modifiers |
| Multiply | The tooltip to show for multiply modifiers |
| Multiply | The tooltip to show for multiply modifiers |
| Compound | The tooltip to show for compound modifiers |
| Compound | The tooltip to show for compound modifiers |
| Setter | The tooltip to show for setter modifiers |
| Setter | The tooltip to show for setter modifiers |
| Rounding | The amount of numbers after the point in the value of the stat |
| Rounding | The amount of numbers after the point in the value of the stat |
| ShowInItemLore | Whether the tooltips should be shown in an items's lore whenever `{stats-each}` is used. Defaults to true, overridden by the ShowInLore options if they are set |
| ShowInItemLore | Whether the tooltips should be shown in an items's lore whenever `{stats-each}` is used. Defaults to true, overridden by the ShowInLore options if they are set |
| `ADDITIVE_MULTIPLIER`| Adds a multiplier the base value of a stat |
| `ADDITIVE_MULTIPLIER`| Adds a multiplier the base value of a stat |
| `COMPOUND_MULTIPLIER`| Multiplies the base value of a stat, then adds it to the base value |
| `COMPOUND_MULTIPLIER`| Multiplies the base value of a stat, then adds it to the base value |
| `SETTER` | Overrides all modifiers and base values, and forces the stat to be what is defined |
| `SETTER` | Overrides all modifiers and base values, and forces the stat to be what is defined |
Note that stat modifiers can be applied to and by mobs, players, items, enchants, and auras. For example, an item may add to or multiply its wielder's attack speed, while an attack may temporarily apply a COMPOUND MULTIPLIER to half a target's attack speed.
Note that stat modifiers can be applied to and by mobs, players, items, enchants, and auras. For example, an item may add to or multiply its wielder's attack speed, while an attack may temporarily apply a COMPOUND MULTIPLIER to half a target's attack speed.
<!--
<!--
TODO: define mechanics that can manipulate modifiers
TODO: define mechanics that can manipulate modifiers
-->
-->
##
##
#### `ADDITIVE`
#### `ADDITIVE`
The `ADDITIVE` modifiers are straightforward: they add to the base stat.
The `ADDITIVE` modifiers are straightforward: they add to the base stat.
#### `ADDITIVE_MULTIPLIER`
#### `ADDITIVE_MULTIPLIER`
The `ADDITIVE_MULTIPLIER` multiply the value of the base stat by the specified value.
The `ADDITIVE_MULTIPLIER` multiply the value of the base stat by the specified value.
They all pool together (i.e. additive multipliers of 2 and 3 becoming a multiplier of 5, NOT 6) to then multiply the base stat after additives.
They all pool together (i.e. additive multipliers of 2 and 3 becoming a multiplier of 5, NOT 6) to then multiply the base stat after additives.
#### `COMPOUND_MULTIPLIER`
#### `COMPOUND_MULTIPLIER`
Finally, the `COMPOUND_MULTIPLIER` multiplies all the ADDITIVE results afterwards - this is a great place for to apply effect changes such as debuffs, since they would typically be calculated after additive stat additions and multipliers.
Finally, the `COMPOUND_MULTIPLIER` multiplies all the ADDITIVE results afterwards - this is a great place for to apply effect changes such as debuffs, since they would typically be calculated after additive stat additions and multipliers.
##
##
## Stat Calculation
## Stat Calculation
The two `ADDITIVE_MULTIPLIER` and `COMPOUND_MULTIPLIER` modifiers can be easy to mix up; however, this example should make it a bit more clear:
The two `ADDITIVE_MULTIPLIER` and `COMPOUND_MULTIPLIER` modifiers can be easy to mix up; however, this example should make it a bit more clear:
Lets say you have these modifiers:
Lets say you have these modifiers:
``` rb
``` rb
8basevalue
8basevalue
10additive
10additive
2additive
2additive
5multiply
5multiply
3multiply
3multiply
2compound(effectivelyx2)
2compound(effectivelyx2)
0.4compound(effectively-60%)
0.4compound(effectively-60%)
```
```
...the resulting math MythicMobs would calculate this is as follows:
...the resulting math MythicMobs would calculate this is as follows:
Regular multipliers are additive, and compound multipliers are multiplicative. You can think of it as "+10%" for Additive Multipliers vs. "x10%" for Compound Multipliers.
Regular multipliers are additive, and compound multipliers are multiplicative. You can think of it as "+10%" for Additive Multipliers vs. "x10%" for Compound Multipliers.
# Built-In Stats
# Built-In Stats
These stats are inherently supported by MythicMobs, and can be configured in the `stats.yml` file in the plugin's root directory (`/plugins/MythicMobs/`) or inside Pack folders. (`/plugins/MythicMobs/Packs/CoolPack/`)
These stats are inherently supported by MythicMobs, and can be configured in the `stats.yml` file in the plugin's root directory (`/plugins/MythicMobs/`) or inside Pack folders. (`/plugins/MythicMobs/Packs/CoolPack/`)
The player inherits the `BaseValue` of these stats; Mobs also inherit them as defaults, unless overrides are specified in the `Stats:` sub-section of their config.
The player inherits the `BaseValue` of these stats; Mobs also inherit them as defaults, unless overrides are specified in the `Stats:` sub-section of their config.
|[PARRY_CHANCE](#parry_chance) |Chance to mitigate and reflect damage from sources that melee you from the front. Reduced by opponent's [PARRY_NEGATION](#parry_negation). |
|[PARRY_CHANCE](#parry_chance) |Chance to mitigate and reflect damage from sources that melee you from the front. Reduced by opponent's [PARRY_NEGATION](#parry_negation). |
|[PARRY_COUNTERATTACK](#parry_counterattack) |How much damage is returned to the opponent when parrying. |
|[PARRY_COUNTERATTACK](#parry_counterattack) |How much damage is returned to the opponent when parrying. |
|[PARRY_POWER](#parry_power) |How much damage is mitigated by Parry. |
|[PARRY_POWER](#parry_power) |How much damage is mitigated by Parry. |
|[PARRY_NEGATION](#parry_negation) |Reduces the [PARRY_CHANCE](#parry_chance) of the opponent. |
|[PARRY_NEGATION](#parry_negation) |Reduces the [PARRY_CHANCE](#parry_chance) of the opponent. |
| [SCALE](#scale) | The scale of the entity |
| [SCALE](#scale) | The scale of the entity |
| STEP_HEIGHT | The step height attribute |
| STEP_HEIGHT | The step height attribute |
| ARMOR | The armor attribute |
| ARMOR | The armor attribute |
| ARMOR_TOUGHNESS | The armor toughness attribute |
| ARMOR_TOUGHNESS | The armor toughness attribute |
| BURNING_TIME | The burning time attribute |
| BURNING_TIME | The burning time attribute |
| EXPLOSION_KNOCKBACK_RESISTANCE | The explosion knockback resistance attribute |
| EXPLOSION_KNOCKBACK_RESISTANCE | The explosion knockback resistance attribute |
| FALL_DAMAGE_MULTIPLIER | The fall damage multiplier attribute |
| FALL_DAMAGE_MULTIPLIER | The fall damage multiplier attribute |
| GRAVITY | The gravity attribute |
| GRAVITY | The gravity attribute |
| JUMP_STRENGTH | The jump strength attribute |
| JUMP_STRENGTH | The jump strength attribute |
| KNOCKBACK_RESISTANCE | The knockback resistance attribute |
| KNOCKBACK_RESISTANCE | The knockback resistance attribute |
| MOVEMENT_EFFICIENCY | The movement efficiency attribute |
| MOVEMENT_EFFICIENCY | The movement efficiency attribute |
| OXYGEN_BONUS | The oxygen bonus attribute |
| OXYGEN_BONUS | The oxygen bonus attribute |
| SAFE_FALL_DISTANCE | The safe fall distance attribute |
| SAFE_FALL_DISTANCE | The safe fall distance attribute |
| SNEAKING_SPEED | The sneaking speed attribute |
| SNEAKING_SPEED | The sneaking speed attribute |
| WATER_MOVEMENT_EFFICIENCY | The water movement efficiency attribute |
| WATER_MOVEMENT_EFFICIENCY | The water movement efficiency attribute |
| BLOCK_BREAK_SPEED | The block break speed attribute |
| BLOCK_BREAK_SPEED | The block break speed attribute |
| BLOCK_INTERACTION_RANGE | The block interaction range attribute |
| BLOCK_INTERACTION_RANGE | The block interaction range attribute |
| ENTITY_INTERACTION_RANGE | The entity interaction range attribute |
| ENTITY_INTERACTION_RANGE | The entity interaction range attribute |
| FLYING_SPEED | The flying speed of the entity |
| FLYING_SPEED | The flying speed of the entity |
| FOLLOW_RANGE | The follow range of the entity |
| FOLLOW_RANGE | The follow range of the entity |
| LOOT_BIAS | Extra luck towards rare items in a droptable |
# Built-in Stats Breakdown
# Built-in Stats Breakdown
This is a detailed breakdown of the built-in stats provided by MythicMobs. For custom stats, see [Custom Stat Examples](#example-custom-stats).
This is a detailed breakdown of the built-in stats provided by MythicMobs. For custom stats, see [Custom Stat Examples](#example-custom-stats).
#### `DODGE_NEGATION`
Chance for an attack to land damage. Reduces opponent's [DODGE_CHANCE](#dodge_chance).
#### `DODGE_NEGATION`
As shown below, the displayed name and lore elements of a stat can be customized, such as 'Accuracy' instead of 'Dodge Negation'
Chance for an attack to land damage. Reduces opponent's [DODGE_CHANCE](#dodge_chance).
As shown below, the displayed name and lore elements of a stat can be customized, such as 'Accuracy' instead of 'Dodge Negation'
<details><summary>Configuration</summary>
<br>
<details><summary>Configuration</summary>
<br>
```yml
DODGE_NEGATION:
```yml
Enabled:false
DODGE_NEGATION:
AlwaysActive:false
Enabled:false
Display:'Accuracy'
AlwaysActive:false
Formatting:
Display:'Accuracy'
Additive:'+<value>Accuracy'
Formatting:
Multiply:'+<value>Accuracy'
Additive:'+<value>Accuracy'
Compound:'x<value>Accuracy'
Multiply:'+<value>Accuracy'
BaseValue:0
Compound:'x<value>Accuracy'
```
BaseValue:0
```
</details>
</details>
##
#### `ATTACK_DAMAGE`
##
Base Damage Output
#### `ATTACK_DAMAGE`
<details><summary>Configuration</summary>
Base Damage Output
<br>
<details><summary>Configuration</summary>
<br>
```yml
ATTACK_DAMAGE:
```yml
Enabled:true
ATTACK_DAMAGE:
AlwaysActive:false
Enabled:true
Display:'Damage'
AlwaysActive:false
Formatting:
Display:'Damage'
Additive:'+<value>Damage'
Formatting:
Multiply:'+<value>Damage'
Additive:'+<value>Damage'
Compound:'x<value>Damage'
Multiply:'+<value>Damage'
BaseValue:1
Compound:'x<value>Damage'
```
BaseValue:1
```
</details>
</details>
##
#### `ATTACK_SPEED`
##
Attack cooldown frequency. Typically only used for Players.
#### `ATTACK_SPEED`
<details><summary>Configuration</summary>
Attack cooldown frequency. Typically only used for Players.
<br>
<details><summary>Configuration</summary>
<br>
```yml
ATTACK_SPEED:
```yml
Enabled:true
ATTACK_SPEED:
AlwaysActive:false
Enabled:true
Display:'AttackSpeed'
AlwaysActive:false
Formatting:
Display:'AttackSpeed'
Additive:'+<value>AttackSpeed'
Formatting:
Multiply:'+<value>AttackSpeed'
Additive:'+<value>AttackSpeed'
Compound:'x<value>AttackSpeed'
Multiply:'+<value>AttackSpeed'
BaseValue:4.0
Compound:'x<value>AttackSpeed'
```
BaseValue:4.0
```
</details>
</details>
##
#### `BONUS_DAMAGE`
##
Additional Modifier for dealing extra damage
#### `BONUS_DAMAGE`
<details><summary>Configuration</summary>
Additional Modifier for dealing extra damage
<br>
<details><summary>Configuration</summary>
<br>
```yml
BONUS_DAMAGE:
```yml
Enabled:false
BONUS_DAMAGE:
AlwaysActive:false
Enabled:false
Display:'BonusDamage'
AlwaysActive:false
Formatting:
Display:'BonusDamage'
Additive:'+<value>BonusDamage'
Formatting:
Multiply:'+<value>BonusDamage'
Additive:'+<value>BonusDamage'
Compound:'x<value>BonusDamage'
Multiply:'+<value>BonusDamage'
BaseValue:0
Compound:'x<value>BonusDamage'
```
BaseValue:0
```
</details>
</details>
##
#### `CRITICAL_STRIKE_CHANCE`
##
Chance to land a Critical Strike (Chance-based Crit)
#### `CRITICAL_STRIKE_CHANCE`
<details><summary>Configuration</summary>
Chance to land a Critical Strike (Chance-based Crit)
<br>
<details><summary>Configuration</summary>
<br>
```yml
CRITICAL_STRIKE_CHANCE:
```yml
Enabled:false
CRITICAL_STRIKE_CHANCE:
AlwaysActive:false
Enabled:false
Display:'CriticalStrike'
AlwaysActive:false
Formatting:
Display:'CriticalStrike'
Additive:'+<value>CriticalStrike'
Formatting:
Multiply:'+<value>CriticalStrike'
Additive:'+<value>CriticalStrike'
Compound:'x<value>CriticalStrike'
Multiply:'+<value>CriticalStrike'
BaseValue:0
Compound:'x<value>CriticalStrike'
MinValue:0
BaseValue:0
Skills:
MinValue:0
-particles{p=crit;a=50;hS=1;y=1;s=1} @trigger
Skills:
```
-particles{p=crit;a=50;hS=1;y=1;s=1} @trigger
```
</details>
</details>
##
#### `CRITICAL_STRIKE_DAMAGE`
##
Damage dealt via Critical Strike
#### `CRITICAL_STRIKE_DAMAGE`
<details><summary>Configuration</summary>
Damage dealt via Critical Strike
<br>
<details><summary>Configuration</summary>
<br>
```yml
CRITICAL_STRIKE_DAMAGE:
```yml
Enabled:false
CRITICAL_STRIKE_DAMAGE:
AlwaysActive:true
Enabled:false
Display:'CriticalDamage'
AlwaysActive:true
Formatting:
Display:'CriticalDamage'
Additive:'+<value>CriticalDamage'
Formatting:
Multiply:'+<value>CriticalDamage'
Additive:'+<value>CriticalDamage'
Compound:'x<value>CriticalDamage'
Multiply:'+<value>CriticalDamage'
BaseValue:1
Compound:'x<value>CriticalDamage'
```
BaseValue:1
```
</details>
</details>
##
#### `CRITICAL_STRIKE_RESILIENCE`
##
Resistance to Critical Strike
#### `CRITICAL_STRIKE_RESILIENCE`
<details><summary>Configuration</summary>
Resistance to Critical Strike
<br>
<details><summary>Configuration</summary>
<br>
```yml
CRITICAL_STRIKE_RESILIENCE:
```yml
Enabled:false
CRITICAL_STRIKE_RESILIENCE:
Display:'Resilience'
Enabled:false
AlwaysActive:false
Display:'Resilience'
Formatting:
AlwaysActive:false
Additive:'+<value>Resilience'
Formatting:
Multiply:'+<value>Resilience'
Additive:'+<value>Resilience'
Compound:'x<value>Resilience'
Multiply:'+<value>Resilience'
BaseValue:0
Compound:'x<value>Resilience'
```
BaseValue:0
```
</details>
</details>
##
#### `DAMAGE_REDUCTION`
##
Generic damage reduction
#### `DAMAGE_REDUCTION`
<details><summary>Configuration</summary>
Generic damage reduction
<br>
<details><summary>Configuration</summary>
<br>
```yml
DAMAGE_REDUCTION:
```yml
Enabled:false
DAMAGE_REDUCTION:
AlwaysActive:false
Enabled:false
Display:'DamageReduction'
AlwaysActive:false
Formatting:
Display:'DamageReduction'
Additive:'+<value>DamageReduction'
Formatting:
Multiply:'+<value>DamageReduction'
Additive:'+<value>DamageReduction'
Compound:'x<value>DamageReduction'
Multiply:'+<value>DamageReduction'
BaseValue:0
Compound:'x<value>DamageReduction'
```
BaseValue:0
```
</details>
</details>
##
#### `DEFENSE`
##
Defense
#### `DEFENSE`
<details><summary>Configuration</summary>
Defense
<br>
<details><summary>Configuration</summary>
<br>
```yml
DEFENSE:
```yml
Enabled:false
DEFENSE:
AlwaysActive:false
Enabled:false
Display:'Defense'
AlwaysActive:false
Formatting:
Display:'Defense'
Additive:'+<value>Defense'
Formatting:
Multiply:'+<value>Defense'
Additive:'+<value>Defense'
Compound:'x<value>Defense'
Multiply:'+<value>Defense'
BaseValue:0
Compound:'x<value>Defense'
```
BaseValue:0
```
</details>
</details>
##
#### `DODGE_CHANCE`
##
Chance for an attack to fail when attempting to damage. Reduces opponent's [ACCURACY](#accuracy).
#### `DODGE_CHANCE`
<details><summary>Configuration</summary>
Chance for an attack to fail when attempting to damage. Reduces opponent's [ACCURACY](#accuracy).
<br>
<details><summary>Configuration</summary>
<br>
```yml
DODGE_CHANCE:
```yml
Enabled:false
DODGE_CHANCE:
AlwaysActive:false
Enabled:false
Display:'Dodge'
AlwaysActive:false
Formatting:
Display:'Dodge'
Additive:'+<value>DodgeChance'
Formatting:
Multiply:'+<value>DodgeChance'
Additive:'+<value>DodgeChance'
Compound:'x<value>DodgeChance'
Multiply:'+<value>DodgeChance'
BaseValue:0
Compound:'x<value>DodgeChance'
Skills:[]
BaseValue:0
```
Skills:[]
```
</details>
</details>
##
#### `HEALTH`
##
Health values
#### `HEALTH`
<details><summary>Configuration</summary>
Health values
<br>
<details><summary>Configuration</summary>
<br>
```yml
HEALTH:
```yml
Enabled:false
HEALTH:
AlwaysActive:true
Enabled:false
Display:'Health'
AlwaysActive:true
Formatting:
Display:'Health'
Additive:'+<value>Health'
Formatting:
Multiply:'+<value>Health'
Additive:'+<value>Health'
Compound:'x<value>Health'
Multiply:'+<value>Health'
BaseValue:20
Compound:'x<value>Health'
MinValue:1
BaseValue:20
```
MinValue:1
```
</details>
</details>
##
#### `HEALTH_REGENERATION`
##
Rate of Health Regeneration
#### `HEALTH_REGENERATION`
<details><summary>Configuration</summary>
Rate of Health Regeneration
<br>
<details><summary>Configuration</summary>
<br>
```yml
HEALTH_REGENERATION:
```yml
Enabled:false
HEALTH_REGENERATION:
AlwaysActive:false
Enabled:false
Display:'HealthRegeneration'
AlwaysActive:false
Formatting:
Display:'HealthRegeneration'
Additive:'+<value>Regeneration'
Formatting:
Multiply:'+<value>Regeneration'
Additive:'+<value>Regeneration'
Compound:'x<value>Regeneration'
Multiply:'+<value>Regeneration'
BaseValue:0
Compound:'x<value>Regeneration'
MaxValue:1000000
BaseValue:0
MinValue:0
MaxValue:1000000
Frequency:60
MinValue:0
```
Frequency:60
```
</details>
</details>
##
#### `LIFESTEAL_CHANCE`
##
Chance for damage dealt to heal the attacker
#### `LIFESTEAL_CHANCE`
<details><summary>Configuration</summary>
Chance for damage dealt to heal the attacker
<br>
<details><summary>Configuration</summary>
<br>
```yml
LIFESTEAL_CHANCE:
```yml
Enabled:false
LIFESTEAL_CHANCE:
AlwaysActive:false
Enabled:false
Display:'LifestealChance'
AlwaysActive:false
Formatting:
Display:'LifestealChance'
Additive:'+<value>LifestealChance'
Formatting:
Multiply:'+<value>LifestealChance'
Additive:'+<value>LifestealChance'
Compound:'x<value>LifestealChance'
Multiply:'+<value>LifestealChance'
BaseValue:0
Compound:'x<value>LifestealChance'
```
BaseValue:0
```
</details>
</details>
##
#### `LIFESTEAL_POWER`
##
How much healing LifeSteal does.
#### `LIFESTEAL_POWER`
<details><summary>Configuration</summary>
How much healing LifeSteal does.
<br>
<details><summary>Configuration</summary>
<br>
```yml
LIFESTEAL_POWER:
```yml
Enabled:true
LIFESTEAL_POWER:
AlwaysActive:false
Enabled:true
Display:'LifestealPower'
AlwaysActive:false
Formatting:
Display:'LifestealPower'
Additive:'+<value>LifestealPower'
Formatting:
Multiply:'+<value>LifestealPower'
Additive:'+<value>LifestealPower'
Compound:'x<value>LifestealPower'
Multiply:'+<value>LifestealPower'
BaseValue:0.1
Compound:'x<value>LifestealPower'
```
BaseValue:0.1
```
</details>
</details>
##
#### `MOVEMENT_SPEED`
##
Movement Speed.
#### `MOVEMENT_SPEED`
<details><summary>Configuration</summary>
Movement Speed.
<br>
<details><summary>Configuration</summary>
<br>
```yml
MOVEMENT_SPEED:
```yml
Enabled:false
MOVEMENT_SPEED:
AlwaysActive:true
Enabled:false
Display:'MovementSpeed'
AlwaysActive:true
Formatting:
Display:'MovementSpeed'
Additive:'+<value>MovementSpeed'
Formatting:
Multiply:'+<value>%MovementSpeed'
Additive:'+<value>MovementSpeed'
Compound:'x<value>%MovementSpeed'
Multiply:'+<value>%MovementSpeed'
ParentStats:
Compound:'x<value>%MovementSpeed'
-SPEED
ParentStats:
Formula:'0.2+(0.2/(1+e^(-0.005*(SPD-1000))))'
-SPEED
```
Formula:'0.2+(0.2/(1+e^(-0.005*(SPD-1000))))'
```
</details>
</details>
##
#### `PARRY_CHANCE`
##
Chance to mitigate and reflect damage from sources that melee you from the front.
#### `PARRY_CHANCE`
<details><summary>Configuration</summary>
Chance to mitigate and reflect damage from sources that melee you from the front.
<br>
<details><summary>Configuration</summary>
<br>
```yml
PARRY_CHANCE:
```yml
Enabled:false
PARRY_CHANCE:
AlwaysActive:false
Enabled:false
Display:'ParryChance'
AlwaysActive:false
BaseValue:0
Display:'ParryChance'
Priority:0
BaseValue:0
Formatting:
Priority:0
Additive:'+<value>ParryChance'
Formatting:
Multiply:'+<value>ParryChance'
Additive:'+<value>ParryChance'
Compound:'x<value>ParryChance'
Multiply:'+<value>ParryChance'
FrontAngle:180
Compound:'x<value>ParryChance'
UsableMaterials:
FrontAngle:180
-WOODEN_SWORD
UsableMaterials:
-STONE_SWORD
-WOODEN_SWORD
-GOLDEN_SWORD
-STONE_SWORD
-IRON_SWORD
-GOLDEN_SWORD
-DIAMOND_SWORD
-IRON_SWORD
-NETHERITE_SWORD
-DIAMOND_SWORD
Skills:[]
-NETHERITE_SWORD
```
Skills:[]
```
</details>
</details>
##
#### `PARRY_COUNTERATTACK`
##
How much damage is returned to the opponent when parrying.
#### `PARRY_COUNTERATTACK`
<details><summary>Configuration</summary>
How much damage is returned to the opponent when parrying.
<br>
<details><summary>Configuration</summary>
<br>
```yml
PARRY_COUNTERATTACK:
```yml
Enabled:false
PARRY_COUNTERATTACK:
AlwaysActive:false
Enabled:false
Display:'ParryCounterattack'
AlwaysActive:false
BaseValue:1
Display:'ParryCounterattack'
Formatting:
BaseValue:1
Additive:'+<value>ParryCounterattack'
Formatting:
Multiply:'+<value>ParryCounterattack'
Additive:'+<value>ParryCounterattack'
Compound:'x<value>ParryCounterattack'
Multiply:'+<value>ParryCounterattack'
```
Compound:'x<value>ParryCounterattack'
```
</details>
</details>
##
#### `PARRY_NEGATION`
##
Affects and lowers the [PARRY_CHANCE](#parry_chance) of the opponent.
#### `PARRY_NEGATION`
As shown below, the displayed name and lore elements of a stat can be customized, such as 'Expertise' instead of 'Parry Negation'
Affects and lowers the [PARRY_CHANCE](#parry_chance) of the opponent.
<details><summary>Configuration</summary>
As shown below, the displayed name and lore elements of a stat can be customized, such as 'Expertise' instead of 'Parry Negation'
<br>
<details><summary>Configuration</summary>
<br>
```yml
PARRY_NEGATION:
```yml
Enabled:false
PARRY_NEGATION:
AlwaysActive:false
Enabled:false
Display:'Expertise'
AlwaysActive:false
Formatting:
Display:'Expertise'
Additive:'+<value>Expertise'
Formatting:
Multiply:'+<value>Expertise'
Additive:'+<value>Expertise'
Compound:'x<value>Expertise'
Multiply:'+<value>Expertise'
BaseValue:0
Compound:'x<value>Expertise'
```
BaseValue:0
```
</details>
</details>
##
#### `PARRY_POWER`
##
How much damage is mitigated by Parry.
#### `PARRY_POWER`
<details><summary>Configuration</summary>
How much damage is mitigated by Parry.
<br>
<details><summary>Configuration</summary>
<br>
```yml
PARRY_POWER:
```yml
Enabled:false
PARRY_POWER:
AlwaysActive:false
Enabled:false
Display:'ParryPower'
AlwaysActive:false
BaseValue:0.5
Display:'ParryPower'
Formatting:
BaseValue:0.5
Additive:'+<value>ParryPower'
Formatting:
Multiply:'+<value>ParryPower'
Additive:'+<value>ParryPower'
Compound:'x<value>ParryPower'
Multiply:'+<value>ParryPower'
```
Compound:'x<value>ParryPower'
```
</details>
</details>
##
#### `SCALE`
##
The Scale of the entity
#### `SCALE`
<details><summary>Configuration</summary>
The Scale of the entity
<br>
<details><summary>Configuration</summary>
<br>
```yml
SCALE:
```yml
Enabled:false
SCALE:
AlwaysActive:false
Enabled:false
Display:'Scale'
AlwaysActive:false
BaseValue:1
Display:'Scale'
Formatting:
BaseValue:1
Additive:'+<value>Scale'
Formatting:
Multiply:'+<value>Scale'
Additive:'+<value>Scale'
Compound:'x<value>Scale'
Multiply:'+<value>Scale'
```
Compound:'x<value>Scale'
```
</details>
</details>
##
##
# Implementations with Configurations
#### `LOOT_BIAS`
Extra luck to drop rarer items from mythic droptables. This only applies to weighted items!
It's important to be aware that players get all of their base stat values from the `stats.yml` file, while mobs get only some of their base values from the `stats.yml` file: if another value is specified as one of their stats, that is applied.
- Default: 0 - the normal chance to drop rare items
- -100: Only the most common item in a weighted list will be dropped
## Mobs
- 100: rare items are twice as common
This example features `Some_Mob` and three configured stats: `CRITICAL_STRIKE_CHANCE` as configured in the `Stats:` section, but also its `Health` and `Damage`.
- 1000: rare items are 10x as common
The Health and Damage stat types are natively handled in the typical format of a mob's configuration. Other stats that are configured on the mob are: `ATTACK_DAMAGE`, `ATTACK_SPEED`, and `MOVEMENT_SPEED`.
<details><summary>Configuration</summary>
```yml
<br>
Some_Mob:
Health:50
```yml
Damage:10
LOOT_BIAS:
Stats:
Enabled:true
-CRITICAL_STRIKE_CHANCE 0.2
Type:STATIC
```
Display:'LootBias'
BaseValue:0
## Items
MinValue:-100
```yaml
Formatting:
ExampleItem:
Rounding:1
Id:BLAZE_ROD
Additive:'+<value>LootBias'
Display:'Test'
Multiply:'+<value>LootBias'
Stats:
Compound:'x<value>LootBias'
-CRITICAL_STRIKE_CHANCE 0.5 ADDITIVE
```
-CRITICAL_STRIKE_DAMAGE 2.0 ADDITIVE
-HEALTH 20to30 ADDITIVE
</details>
```
> **WARNING: To be able to use Stats on Items, [Crucible](/../../../mythiccrucible/-/wikis/home) must be installed**
##
# Implementations with Configurations
# Examples
It's important to be aware that players get all of their base stat values from the `stats.yml` file, while mobs get only some of their base values from the `stats.yml` file: if another value is specified as one of their stats, that is applied.
## Example Custom Stats
## Mobs
These stats are created by the end user. Included are some examples.
This example features `Some_Mob` and three configured stats: `CRITICAL_STRIKE_CHANCE` as configured in the `Stats:` section, but also its `Health` and `Damage`.
The Health and Damage stat types are natively handled in the typical format of a mob's configuration. Other stats that are configured on the mob are: `ATTACK_DAMAGE`, `ATTACK_SPEED`, and `MOVEMENT_SPEED`.
```yml
#### `ARMOR_GENERIC`
Some_Mob:
Generic Armor based damage reduction. can be applied to gear.
Health:50
```yml
Damage:10
ARMOR_GENERIC:
Stats:
Enabled:false
-CRITICAL_STRIKE_CHANCE 0.2
AlwaysActive:false
```
Type:DAMAGE_MODIFIER
Triggers:
## Items
-DAMAGED
```yaml
ExecutionPoint:PRE
ExampleItem:
Display:'GenericArmor'
Id:BLAZE_ROD
DamageFormula:'d-v'
Display:'Test'
BaseValue:0
Stats:
Formatting:
-CRITICAL_STRIKE_CHANCE 0.5 ADDITIVE
Additive:'+<value>GenericArmor'
-CRITICAL_STRIKE_DAMAGE 2.0 ADDITIVE
Multiply:'+<value>GenericArmor'
-HEALTH 20to30 ADDITIVE
Compound:'x<value>GenericArmor'
```
> **WARNING: To be able to use Stats on Items, [Crucible](/../../../mythiccrucible/-/wikis/home) must be installed**
```
#### `ARMOR_BLUNT`
# Examples
Armor based damage reduction based on the `BLUNT`[DamageType.](https://git.lumine.io/mythiccraft/MythicMobs/-/wikis/skills/conditions/damagetag)
```yml
## Example Custom Stats
ARMOR_BLUNT:
Enabled:false
These stats are created by the end user. Included are some examples.
AlwaysActive:false
Type:DAMAGE_MODIFIER
Triggers:
#### `ARMOR_GENERIC`
-DAMAGED
Generic Armor based damage reduction. can be applied to gear.
ExecutionPoint:PRE
```yml
Display:'BluntArmor'
ARMOR_GENERIC:
DamageType:BLUNT
Enabled:false
DamageFormula:'d-v'
AlwaysActive:false
BaseValue:0
Type:DAMAGE_MODIFIER
Formatting:
Triggers:
Additive:'+<value>BluntArmor'
-DAMAGED
Multiply:'+<value>BluntArmor'
ExecutionPoint:PRE
Compound:'x<value>BluntArmor'
Display:'GenericArmor'
DamageFormula:'d-v'
```
BaseValue:0
#### `ARMOR_SHARP`
Formatting:
Armor based damage reduction based on the `SHARP`[DamageType.](https://git.lumine.io/mythiccraft/MythicMobs/-/wikis/skills/conditions/damagetag)
Additive:'+<value>GenericArmor'
```yml
Multiply:'+<value>GenericArmor'
ARMOR_SHARP:
Compound:'x<value>GenericArmor'
Enabled:false
AlwaysActive:false
```
Type:DAMAGE_MODIFIER
#### `ARMOR_BLUNT`
Triggers:
Armor based damage reduction based on the `BLUNT`[DamageType.](https://git.lumine.io/mythiccraft/MythicMobs/-/wikis/skills/conditions/damagetag)
-DAMAGED
```yml
ExecutionPoint:PRE
ARMOR_BLUNT:
Display:'SharpArmor'
Enabled:false
DamageType:SHARP
AlwaysActive:false
DamageFormula:'d-v'
Type:DAMAGE_MODIFIER
BaseValue:0
Triggers:
Formatting:
-DAMAGED
Additive:'+<value>SharpArmor'
ExecutionPoint:PRE
Multiply:'+<value>SharpArmor'
Display:'BluntArmor'
Compound:'x<value>SharpArmor'
DamageType:BLUNT
DamageFormula:'d-v'
```
BaseValue:0
#### `DAMAGE_BLUNT`
Formatting:
Damage Output for the `BLUNT`[DamageType.](https://git.lumine.io/mythiccraft/MythicMobs/-/wikis/skills/conditions/damagetag)
Additive:'+<value>BluntArmor'
```yml
Multiply:'+<value>BluntArmor'
DAMAGE_BLUNT:
Compound:'x<value>BluntArmor'
Enabled:false
AlwaysActive:false
```
Type:DAMAGE_BONUS
#### `ARMOR_SHARP`
Priority:1
Armor based damage reduction based on the `SHARP`[DamageType.](https://git.lumine.io/mythiccraft/MythicMobs/-/wikis/skills/conditions/damagetag)
Triggers:
```yml
-ATTACK
ARMOR_SHARP:
ExecutionPoint:PRE
Enabled:false
Display:'BluntDamage'
AlwaysActive:false
DamageType:BLUNT
Type:DAMAGE_MODIFIER
BaseValue:0
Triggers:
Formatting:
-DAMAGED
Additive:'+<value>BluntDamage'
ExecutionPoint:PRE
Multiply:'+<value>BluntDamage'
Display:'SharpArmor'
Compound:'x<value>BluntDamage'
DamageType:SHARP
DamageFormula:'d-v'
```
BaseValue:0
#### `DAMAGE_SHARP`
Formatting:
Damage Output for the `SHARP`[DamageType.](https://git.lumine.io/mythiccraft/MythicMobs/-/wikis/skills/conditions/damagetag)
Additive:'+<value>SharpArmor'
Multiply:'+<value>SharpArmor'
```yml
Compound:'x<value>SharpArmor'
DAMAGE_SHARP:
Enabled:false
```
AlwaysActive:false
#### `DAMAGE_BLUNT`
Type:DAMAGE_BONUS
Damage Output for the `BLUNT`[DamageType.](https://git.lumine.io/mythiccraft/MythicMobs/-/wikis/skills/conditions/damagetag)
Priority:2
```yml
Triggers:
DAMAGE_BLUNT:
-ATTACK
Enabled:false
ExecutionPoint:PRE
AlwaysActive:false
Display:'SharpDamage'
Type:DAMAGE_BONUS
DamageType:SHARP
Priority:1
BaseValue:0
Triggers:
Formatting:
-ATTACK
Additive:'+<value>SharpDamage'
ExecutionPoint:PRE
Multiply:'+<value>SharpDamage'
Display:'BluntDamage'
Compound:'x<value>SharpDamage'
DamageType:BLUNT
BaseValue:0
```
Formatting:
#### `FIRE_RESISTANCE`
Additive:'+<value>BluntDamage'
Configured to grant resistance to the FIRE, FIRE_TICK [DamageCause](https://git.lumine.io/mythiccraft/MythicMobs/-/wikis/skills/conditions/DamageCause).
Multiply:'+<value>BluntDamage'
```yml
Compound:'x<value>BluntDamage'
FIRE_RESISTANCE:
Enabled:false
```
AlwaysActive:false
#### `DAMAGE_SHARP`
Display:'FireResistance'
Damage Output for the `SHARP`[DamageType.](https://git.lumine.io/mythiccraft/MythicMobs/-/wikis/skills/conditions/damagetag)
Formatting:
Additive:'+<value>FireResistance'
```yml
Multiply:'+<value>FireResistance'
DAMAGE_SHARP:
Compound:'x<value>FireResistance'
Enabled:false
Type:DAMAGE_MODIFIER
AlwaysActive:false
Triggers:
Type:DAMAGE_BONUS
-DAMAGED
Priority:2
Conditions:
Triggers:
-(damageCause FIRE || damageCause FIRE_TICK)
-ATTACK
ExecutionPoint:PRE
ExecutionPoint:PRE
DamageFormula:'d*(1-v)'
Display:'SharpDamage'
MaxValue:1
DamageType:SHARP
MinValue:0
BaseValue:0
Formatting:
```
Additive:'+<value>SharpDamage'
#### `SPEED`
Multiply:'+<value>SharpDamage'
May be used in the [MOVEMENT_SPEED](#movement_speed) stat calculation to affect speed with a formula.
Compound:'x<value>SharpDamage'
```yml
SPEED:
```
Enabled:true
#### `FIRE_RESISTANCE`
AlwaysActive:false
Configured to grant resistance to the FIRE, FIRE_TICK [DamageCause](https://git.lumine.io/mythiccraft/MythicMobs/-/wikis/skills/conditions/DamageCause).
Type:STATIC
```yml
FormulaKey:'SPD'
FIRE_RESISTANCE:
Formatting:
Enabled:false
Additive:'+<value>Speed'
AlwaysActive:false
Multiply:'+<value>%Speed'
Display:'FireResistance'
Compound:'x<value>%Speed'
Formatting:
```
Additive:'+<value>FireResistance'
#### `ICE_DAMAGE`
Multiply:'+<value>FireResistance'
Here is a more complex example that also involves TriggerStats
Compound:'x<value>FireResistance'
```yaml
Type:DAMAGE_MODIFIER
ICE_DAMAGE:
Triggers:
Enabled:true
-DAMAGED
Type:DAMAGE_MODIFIER
Conditions:
Priority:50
-(damageCause FIRE || damageCause FIRE_TICK)
Triggers:
ExecutionPoint:PRE
-ATTACK
DamageFormula:'d*(1-v)'
ExecutionPoint:PRE
MaxValue:1
Display:'&f֍'
MinValue:0
DamageType:ALL
BaseValue:0
```
TriggerStats:
#### `SPEED`
-LIGHTNING_DEFENSE LD
May be used in the [MOVEMENT_SPEED](#movement_speed) stat calculation to affect speed with a formula.
-AIR_DEFENSE AD
```yml
-EARTH_DEFENSE ED
SPEED:
-FIRE_DEFENSE FD
Enabled:true
-AETHER_DEFENSE AE
AlwaysActive:false
-VOID_DEFENSE VD
Type:STATIC
DamageFormula:'1+d*(LD+AD-ED-FD+0.5*(AE-VD))/100'
FormulaKey:'SPD'
Formatting:
Formatting:
Rounding:2
Additive:'+<value>Speed'
Additive:'&a+<value>'
Multiply:'+<value>%Speed'
Multiply:'&a+<value>%'
Compound:'x<value>%Speed'
Compound:'&ax<value>%'
```
#### `ICE_DAMAGE`
Here is a more complex example that also involves TriggerStats