# Abilities

Abilities (skills) are used to give extra opportunities for special zombies to have a chance to deal with players.

## Available abilities

* `arrowshooter` - Shoots x amount of arrows at the target player\*
* `bomber` - Spawns TNT above the target player\*
* `confusion` - Makes player blind and random rotate\*
* `eye_catch_fire` - Sets target player on fire for a specific amount of ticks\*
* `fireball` - Launches ghast-like fireball at target player\*
* `freeze` - Temporarily prevent player movement\*
* `lightningstrike` - Strikes lightning at target player\*
* `reinforcements` - Spawns specific amount of reinforcements (zombies)
* `teleporter` - Teleport zombie to target player\*
* `lifestealer` - Zombie absorbs a portion of the player's health\*
* `regeneration` - Occasionally heals the mob by a certain amount over time

{% hint style="info" %}
\*Some abilities only triggered when the zombie has line of sight of at least one player.
{% endhint %}

#### Showcase using `lightningstrike` ability

<figure><img src="/files/M4bT3jBeXSjrIsEAvqAB" alt=""><figcaption></figcaption></figure>

## Configuration

You can find the configuration for abilities in `plugins\RageMode\zombie game\zombie-abilities.yml` file

* `perform-every-seconds` - At what intervals should the abilities be performed, if it met by any chance?
  * Ideal value would be `20-50` seconds, as there can be powerful abilities that players must face to survive
  * If `0`, performing abilities will depend on chance only, which can happen anytime
* `chance` - the chance ranges between `0-100` that this ability can perform

```yml
arrowshooter:
  perform-every-seconds: 20
  chance: 10
  amount: 1
  speed: 4.6
  spread: 12
  damage: 2.0
  custom-effects: []
```

* `amount` - the amount of arrows to shoot
* `speed` - the speed (velocity) of the arrow
* `spread` - the spread of the arrow
* `damage` - the damage of the arrow
* `custom-effects` - the [custom effects](https://minecraft.wiki/w/Effect) attached to the arrow
  * Syntax: `<effectName> [amplifier=value] [particles=logical] [ambient=logical] [icon=logical] [duration=value(seconds)]`
    * ```yml
      custom-effects:
      - 20.5 increase_damage amplifier=1 duration=30 particles=true ambient=false icon=true
      ```
    * `<>` - required
    * `[]` - optional
  * The order how you set the settings of potion effect doesn't matter, effect name should always be the first one

```yml
bomber:
  perform-every-seconds: 20
  chance: 4
  fuse-ticks: 0
  explosion-radius: 4.0
```

* `fuse-ticks` - Set the number of ticks until an explosion happens
* `explosion-radius` - Set the radius affected by this explosive's explosion

```yml
confusion:
  perform-every-seconds: 30
  chance: 8
  duration: 40
  amplifier: 2
```

* `duration` - sets the duration that this ability lasts
* `amplifier` - sets the amplifier of this ability

```yml
eyecatchfire:
  perform-every-seconds: 10
  chance: 20
  fire-ticks: 60
```

* `fire-ticks` - The entity's fire ticks

```yml
fireball:
  perform-every-seconds: 10
  chance: 8
  display-item: ''
```

* `display-item` - Sets the display ItemStack for the fireball, use [custom items](/ragemode-docs/guides/custom-items.md)

```yml
freeze:
  perform-every-seconds: 40
  chance: 15
  freeze-ticks: 60
```

* `freeze-ticks` - Sets the entity's current freeze ticks

```yml
lightningstrike:
  perform-every-seconds: 10
  chance: 60
  amount: 1
  damage: 1.0-2.4
```

* `damage` - The damage that this lightning strike cause to entities
  * Set a randomised value between minimum and maximum starting from 0 `damage: 1.5-5.0`
  * Or a fixed value `damage: 5`

```yml
reinforcements:
  perform-every-seconds: 30
  chance: 10
  spawn-range: 5
  amount: 2-8
  max-total-reinforcements: 20
  zombie-names:
  - zombie
  - slow
```

* `spawn-range` - The range that the specified zombies appear
* `amount` - The x amount to spawn the specified zombies
  * Set a randomised value between minimum and maximum starting from 0 `amount: 3-5`
  * Or a fixed value `amount: 5`
* `max-total-reinforcements` - Maximum total reinforcements to spawn
* `zombie-names` - The list of zombie names to spawn
  * Specify `zombie` for general zombie or the name of the special zombie created in [Special zombies](/ragemode-docs/zombie-game-guide/special-zombies.md)

```yml
teleporter:
  perform-every-seconds: 20
  chance: 10
```

* Teleports the zombie next to the target player

```yml
lifestealer:
  perform-every-seconds: 20
  chance: 15
  value: 0.5-1.5
```

* `value` - The value to steal life from players
  * Set a randomised value between minimum and maximum starting from 0 `value: 1.0-3.2`
  * Or a fixed value `value: 2`

```yml
regeneration:
  perform-every-seconds: 20
  chance: 10
  amount: 0.5-1.0
```

* `amount` - The amount to regenerate the entity
  * Set a randomised value between minimum and maximum starting from 0 `amount: 0.2-3.0`
  * Or a fixed value `value: 3`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mdswork.gitbook.io/ragemode-docs/zombie-game-guide/abilities.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
