| **[Skill][]** | Executes a meta-skill. The butter for your bread. |
| **[Skill][]** | Executes a meta-skill. The butter for your bread. |
| **[VariableSkill][]** | Executes a meta-skill. Supports placeholders. |
| **[VariableSkill][]** | Executes a meta-skill. Supports placeholders. |
| [Aura][] | Applies an aura to the targeted entity, allowing for skills to be run onStart/onTick/onEnd/Etc which all originate from the target. |
| [Aura][] | Applies an aura to the targeted entity, allowing for skills to be run onStart/onTick/onEnd/Etc which all originate from the target. |
| [Beam][] | Creates a beam of a material between the caster and the target |
| [Beam][] | Creates a beam of a material between the caster and the target |
| [CancelEvent][] | Cancels the Event that triggered the current skill-tree. Only works for certain triggers. |
| [CancelEvent][] | Cancels the Event that triggered the current skill-tree. Only works for certain triggers. |
| [CancelSkill][] | Cancels the execution of the Metaskill when triggered. |
| [CancelSkill][] | Cancels the execution of the Metaskill when triggered. |
| [Cast][] | Applies an [aura] that "Casts" a meta-skill using various advanced options. |
| [Cast][] | Applies an [aura] that "Casts" a meta-skill using various advanced options. |
| [Chain][] | Chains a skill between multiple targets that are near each other. |
| [Chain][] | Chains a skill between multiple targets that are near each other. |
| [ChainMissile][] | A missile that chains between entities. **Premium-Only** mechanic! |
| [ChainMissile][] | A missile that chains between entities. **Premium-Only** mechanic! |
| [Delay][] | Delays execution of the current skill list by a set number of ticks. |
| [Delay][] | Delays execution of the current skill list by a set number of ticks. |
| [DetermineCondition][] | Determines the outcome of a Metaskill that is used as a Condition via the [MetaskillCondition](/Skills/Conditions/MetaskillCondition) condition |
| [DetermineCondition][] | Determines the outcome of a Metaskill that is used as a Condition via the [MetaskillCondition](/Skills/Conditions/MetaskillCondition) condition |
| [EndProjectile][] | Terminates the projectile. Only usable in projectile mechanics. |
| [EndProjectile][] | Terminates the projectile. Only usable in projectile mechanics. |
| [ForEach][] | Executes a metaskill once for each target of the mechanic |
| [ForEach][] | Executes a metaskill once for each target of the mechanic |
| [ForEachValue][] | Executes a metaskill once for each entry or key-value pair in the specified value |
| [ForEachValue][] | Executes a metaskill once for each entry or key-value pair in the specified value |
| [ForEachPin][] | Executes a metaskill once for each pin of a multi-pin |
| [ForEachPin][] | Executes a metaskill once for each pin of a multi-pin |
| [GlobalCooldown][] | Sets the caster's Global Cooldown timer |
| [GlobalCooldown][] | Sets the caster's Global Cooldown timer |
| [Missile][] | Fires a homing projectile towards the target. |
| [Missile][] | Fires a homing projectile towards the target. |
| [ModifyProjectile][] | Modifying the projectile / missile / orbital |
| [ModifyProjectile][] | Modifying the projectile / missile / orbital |
| [OnAttack][] | Applies an [aura][] to the target that triggers skills when they attack |
| [OnAttack][] | Applies an [aura][] to the target that triggers skills when they attack |
| [OnDamaged][] | Applies an [aura][] to the target that triggers skills when they take damage |
| [OnDamaged][] | Applies an [aura][] to the target that triggers skills when they take damage |
| [OnShoot][] | Applies an [aura][] to the target that triggers skills when they shoot a bow |
| [OnShoot][] | Applies an [aura][] to the target that triggers skills when they shoot a bow |
| [OnBlockBreak][] | Applies an [aura][] to the target that triggers skills when they break a block |
| [OnBlockBreak][] | Applies an [aura][] to the target that triggers skills when they break a block |
| [OnBlockPlace][] | Applies an [aura][] to the target that triggers skills when they place a block |
| [OnBlockPlace][] | Applies an [aura][] to the target that triggers skills when they place a block |
| [OnChat][] | Applies an [aura][] to the target that triggers skills when they chat |
| [OnChat][] | Applies an [aura][] to the target that triggers skills when they chat |
| [OnSwing][] | Applies an [aura][] to the target that triggers skills when they swing / left click |
| [OnSwing][] | Applies an [aura][] to the target that triggers skills when they swing / left click |
| [OnInteract][] | Applies an [aura][] to the target that triggers skills when they interact / right click while holding a block or looking at an outlined block (NOT AIR) |
| [OnInteract][] | Applies an [aura][] to the target that triggers skills when they interact / right click while holding a block or looking at an outlined block (NOT AIR) |
| [OnJump][] | Applies an [aura][] to the target that triggers a skill when they jump (PAPER ONLY MECHANIC) |
| [OnJump][] | Applies an [aura][] to the target that triggers a skill when they jump (PAPER ONLY MECHANIC) |
| [OnDeath][] | Applies an [aura][] to the target that triggers a skill when they die |
| [OnDeath][] | Applies an [aura][] to the target that triggers a skill when they die |
| [Orbital][] | Applies an [aura][] that causes a projectile to orbit around the target |
| [Orbital][] | Applies an [aura][] that causes a projectile to orbit around the target |
| [FollowPath][] | Applies an [aura][] that causes the mob to follow a path |
| [FollowPath][] | Applies an [aura][] that causes the mob to follow a path |
| [FormLine][] | Applies an [aura][] that causes the mob to follow a *straight* path |
| [FormLine][] | Applies an [aura][] that causes the mob to follow a *straight* path |
| [Polygon][] | Creates a highly-customizable polygon-shaped pattern that can execute metaskills. |
| [Polygon][] | Creates a highly-customizable polygon-shaped pattern that can execute metaskills. |
| [Projectile][] | Fires a highly-customizable projectile towards the target |
| [Projectile][] | Fires a highly-customizable projectile towards the target |
| [ProjectileVelocity][] | Modifies the velocity of the calling Projectile or Missile |
| [ProjectileVelocity][] | Modifies the velocity of the calling Projectile or Missile |
| [RandomSkill][] | Executes a random skill from a list |
| [RandomSkill][] | Executes a random skill from a list |
| [SetSkillCooldown][] | Sets the given metakill's cooldown to the given value |
| [SetSkillCooldown][] | Sets the given metakill's cooldown to the given value |
| [SetProjectileDirection][]| Sets the calling projectile's movement direction to the given target |
| [SetProjectileDirection][]| Sets the calling projectile's movement direction to the given target |
| [SetProjectileBulletModel][] | Sets the model of the projectile. (DISPLAY bullets only) |
| [SetProjectileBulletModel][] | Sets the model of the projectile. (DISPLAY bullets only) |
| [Shoot][] | Shoots a item-projectile at the target, similar to arrows/eggs/snowballs. |
| [Shoot][] | Shoots a item-projectile at the target, similar to arrows/eggs/snowballs. |
| [Slash][] | Creates a highly-customizable slash pattern that can execute metaskills. |
| [Slash][] | Creates a highly-customizable slash pattern that can execute metaskills. |
| [SudoSkill][] | Makes the target execute a skill |
| [SudoSkill][] | Makes the target execute a skill |
| [Switch][] | Acts as a switch/case |
| [Switch][] | Acts as a switch/case |
| [StatAura][] | Applies an aura to the target that applies a specific stat to them |
| [StatAura][] | Applies an aura to the target that applies a specific stat to them |
| [Totem][] | Creates a static "totem" at a location that can execute other skills |
| [Totem][] | Creates a static "totem" at a location that can execute other skills |
| [Terminable][] | Creates an [aura] that cancels the execution of its onStart metaskill is some conditions are met |
| [Terminable][] | Creates an [aura] that cancels the execution of its onStart metaskill is some conditions are met |
| [Volley][] | Shoots a volley of projectile-items at the target with various options |
| [Volley][] | Shoots a volley of projectile-items at the target with various options |
| [VariableAdd][] | Adds an amount to a numeric variable |
| [VariableAdd][] | Adds an amount to a numeric variable |
| [VariableMath][] | Performs math on a numeric variable |
| [VariableMath][] | Performs math on a numeric variable |
| [SetVariable][] | Sets the value of a variable |
| [SetVariable][] | Sets the value of a variable |
| [SetVariableLocation][] | Sets a variable to the target location |
| [SetVariableLocation][] | Sets a variable to the target location |
| [VariableUnset][] | Unsets the variable |
| [VariableUnset][] | Unsets the variable |
| [VariableSubtract][] | Subtracts an amount from a numeric variable |
| [VariableSubtract][] | Subtracts an amount from a numeric variable |
| [VariableMove][] | Moves an already created variable across names and/or registries |
| [VariableMove][] | Moves an already created variable across names and/or registries |
| [Wait][] | Puts the metaskill on hold until a set of conditions is met |
| [Wait][] | Puts the metaskill on hold until a set of conditions is met |
| [CinematicCamera][] | Plays a cinematic camera path for the target player |
| [CinematicCamera][] | Plays a cinematic camera path for the target player |
| [CinematicCancel][] | Cancels an active cinematic for the target player |
| [CinematicCancel][] | Cancels an active cinematic for the target player |
| [CloseDialog][] | Closes any open dialog for the target player |
| [CloseDialog][] | Closes any open dialog for the target player |
| [OnKeyPress][] | Applies an aura that triggers a skill when the player presses a key |
| [OnKeyPress][] | Applies an aura that triggers a skill when the player presses a key |
| [OnKeyRelease][] | Applies an aura that triggers a skill when the player releases a key |
| [OnKeyRelease][] | Applies an aura that triggers a skill when the player releases a key |
# Universal Attributes
# Universal Attributes
The following attributes are applicable to all mechanics.
The following attributes are applicable to all mechanics.
| cooldown | cd | In seconds. Allows for decimal values. | 0 |
| cooldown | cd | In seconds. Allows for decimal values. | 0 |
| delay | | Delays the execution of the mechanic by a set number of ticks. | 0 |
| delay | | Delays the execution of the mechanic by a set number of ticks. | 0 |
| repeat | | How many times the mechanic should be repeated. If repeatInterval is set to `0`, this becomes the number of executions rather than repetitions | 0 |
| repeat | | How many times the mechanic should be repeated. If repeatInterval is set to `0`, this becomes the number of executions rather than repetitions | 0 |
| repeatInterval | repeatI | How many ticks must elapse between repetitions | 0 |
| repeatInterval | repeatI | How many ticks must elapse between repetitions | 0 |
| targetInterval | targetI | How many ticks must elapse between target selection | 0 |
| targetInterval | targetI | How many ticks must elapse between target selection | 0 |
| origin | | *[PREMIUM]** Change the origin to whatever targeter is supplied. Does not work if more than one target is parsed. `origin=@Forward{f=10}`<br>The targeter of the origin attribute will be parsed separately from the mechanic's targeter, so if you use something like `origin=@targetedlocation` it will not return the mechanic's explicit target, but the metaskill's inherited one | |
| origin | | *[PREMIUM]** Change the origin to whatever targeter is supplied. Does not work if more than one target is parsed. `origin=@Forward{f=10}`<br>The targeter of the origin attribute will be parsed separately from the mechanic's targeter, so if you use something like `origin=@targetedlocation` it will not return the mechanic's explicit target, but the metaskill's inherited one | |
| power | | [Power](/mobs/Power) multiplier | 1 |
| power | | [Power](/mobs/Power) multiplier | 1 |
| fromorigin | fo, sourceisorigin, castfromorigin | Whether to cast the mechanic from origin. This only works with a select few mechanics, and is usually listed as one of their attributes, too | false |
| fromorigin | fo, sourceisorigin, castfromorigin | Whether to cast the mechanic from origin. This only works with a select few mechanics, and is usually listed as one of their attributes, too | false |
| targetisorigin | | Whether to set the target of the mechanic to be the origin | false |
| targetisorigin | | Whether to set the target of the mechanic to be the origin | false |
| splitPower| powersplit, powersplitbetweentargets | Whether to split the power between targets| false |
| splitPower| powersplit, powersplitbetweentargets | Whether to split the power between targets| false |
| faulty | | Whether the mechanic should use the old vector formula | true |
| faulty | | Whether the mechanic should use the old vector formula | true |
| chance | | The chance of the mechanic executing. For instance, 0.1 is a 10% chance | 1 |
| chance | | The chance of the mechanic executing. For instance, 0.1 is a 10% chance | 1 |
| forcesync | sync | Whether to force the mechanic to be run synchroniously with the main Minecraft thread. This *generally* worsens performances (albeit usually in a non-perceptible fashion), but **some mechanics needs this to be set to true***(for instance, the [cancelevent] mechanic, since an event cannot be cancelled if the mechanics comes in "late" and the event has already happened)* | false |
| forcesync | sync | Whether to force the mechanic to be run synchroniously with the main Minecraft thread. This *generally* worsens performances (albeit usually in a non-perceptible fashion), but **some mechanics needs this to be set to true***(for instance, the [cancelevent] mechanic, since an event cannot be cancelled if the mechanics comes in "late" and the event has already happened)* | false |
# Examples
# Examples
```yaml
```yaml
ExampleMob:
ExampleMob:
Type:ZOMBIE
Type:ZOMBIE
Skills:
Skills:
-message{m="This message will only be shown once every 5 seconds!";cooldown=5} @trigger ~onInteract
-message{m="This message will only be shown once every 5 seconds!";cooldown=5} @trigger ~onInteract
-message{m="This one 5 times in a row over 2 seconds!";repeat=4;repeatInterval=10} @trigger ~onInteract
-message{m="This one 5 times in a row over 2 seconds!";repeat=4;repeatInterval=10} @trigger ~onInteract
```
```
<!--
<!--
Upcoming Mechanics
Upcoming Mechanics
------------------
------------------
These mechanics are currently being worked on and will be in future
These mechanics are currently being worked on and will be in future
releases of the plugin. Some mechanics listed here are already included,
releases of the plugin. Some mechanics listed here are already included,