> For the complete documentation index, see [llms.txt](https://enchantedmobs.superiormc.cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://enchantedmobs.superiormc.cn/configs/info-of-abilities/projectiles.md).

# Projectile Abilities

Every registered ability on this page is documented as a complete reference entry. All entries also support the common ability fields from the [Abilities](/configs/info-of-abilities.md) page.

## Registry keys on this page

* `launch_projectile`
* `shulker_bullet`
* `homing_projectile`

***

## `launch_projectile`

**Purpose:** Spawns and configures one or more projectile entities from a living shooter.

**Context:** When `source` is present it selects the shooter; otherwise `target` selects the shooter. `TARGET` remains the aim target.

### Fields

| Field                 | Default | Description                                                          |
| --------------------- | ------- | -------------------------------------------------------------------- |
| `entity-type`         | `ARROW` | Spawnable Bukkit entity type implementing `Projectile`.              |
| `speed`               | `1.5`   | Launch speed.                                                        |
| `extra-y`             | `0`     | Additional Y component.                                              |
| `count`               | `1`     | Projectile count, minimum 1.                                         |
| `spread-degrees`      | `0`     | Maximum fan angle; projectiles are evenly distributed.               |
| `spawn-offset`        | `0`     | Forward offset from shooter eye.                                     |
| `damage`              | unset   | Ability-damage override stored on projectile.                        |
| `inherit-powers`      | `false` | Track projectile for projectile-tick/hit continuation.               |
| `fireball-yield`      | `1.0`   | Yield for explosive projectiles.                                     |
| `fireball-incendiary` | `true`  | Incendiary flag for fireballs.                                       |
| `potion-type`         | unset   | Base potion type for thrown potions.                                 |
| `potion`              | unset   | Single custom effect when `potion-effects` is absent.                |
| `duration`            | `100`   | Single custom-effect duration.                                       |
| `amplifier`           | `0`     | Single custom-effect amplifier.                                      |
| `potion-effects`      | unset   | Map of custom effects with optional potion, duration, and amplifier. |

### Example

```yaml
type: launch_projectile
source: SOURCE
entity-type: SPLASH_POTION
speed: 1.3
count: 3
spread-degrees: 12
inherit-powers: true
potion-effects:
  poison:
    potion: POISON
    duration: 100
    amplifier: 0
```

### Behavior and limits

* A living same-world target is aimed at; otherwise shooter look direction is used.
* Non-projectile spawn results are removed and shulker bullets receive the current target.
* `inherit-powers` captures owner, bow, consumable, hand, force, and exact inherited power IDs for continuation.

***

## `shulker_bullet`

**Purpose:** Compatibility alias of `launch_projectile`.

**Context:** Uses the same shooter selection, aim target, and fields as `launch_projectile`.

### Fields

| Field                 | Default | Description                                                          |
| --------------------- | ------- | -------------------------------------------------------------------- |
| `entity-type`         | `ARROW` | Normally set to `SHULKER_BULLET`.                                    |
| `speed`               | `1.5`   | Launch speed.                                                        |
| `extra-y`             | `0`     | Additional Y component.                                              |
| `count`               | `1`     | Projectile count, minimum 1.                                         |
| `spread-degrees`      | `0`     | Maximum fan angle; projectiles are evenly distributed.               |
| `spawn-offset`        | `0`     | Forward offset from shooter eye.                                     |
| `damage`              | unset   | Ability-damage override stored on projectile.                        |
| `inherit-powers`      | `false` | Track projectile for projectile-tick/hit continuation.               |
| `fireball-yield`      | `1.0`   | Yield for explosive projectiles.                                     |
| `fireball-incendiary` | `true`  | Incendiary flag for fireballs.                                       |
| `potion-type`         | unset   | Base potion type for thrown potions.                                 |
| `potion`              | unset   | Single custom effect when `potion-effects` is absent.                |
| `duration`            | `100`   | Single custom-effect duration.                                       |
| `amplifier`           | `0`     | Single custom-effect amplifier.                                      |
| `potion-effects`      | unset   | Map of custom effects with optional potion, duration, and amplifier. |

### Example

```yaml
type: shulker_bullet
entity-type: SHULKER_BULLET
target: SOURCE
speed: 1.2
```

### Behavior and limits

* The spawned shulker bullet automatically targets the current context target when available.
* All other behavior matches this repository's `launch_projectile` implementation.

***

## `homing_projectile`

**Purpose:** Steers the current projectile toward a locked or newly selected living target.

**Context:** Requires `SKILL` to be a valid projectile; normally used on a projectile-tick trigger.

### Fields

| Field                   | Default | Description                                       |
| ----------------------- | ------- | ------------------------------------------------- |
| `radius`                | `16`    | Maximum target search/lock radius.                |
| `strength`              | `0.2`   | Steering blend, clamped `0.01..1`.                |
| `require-line-of-sight` | `false` | Require line of sight.                            |
| `max-angle`             | `360`   | Maximum cone half-angle around current heading.   |
| `lead`                  | `0`     | Target-motion prediction factor.                  |
| `max-ticks`             | `100`   | Maximum executions; non-positive disables expiry. |
| `remove-on-expire`      | `true`  | Remove projectile when expired.                   |
| `disable-gravity`       | `false` | Disable gravity while homing.                     |

### Example

```yaml
type: homing_projectile
radius: 24
strength: 0.18
max-angle: 90
lead: 0.5
max-ticks: 120
```

### Behavior and limits

* The projectile retains its previous valid target and rescans only when needed.
* Creative and spectator players are ignored.
* Target priority is existing lock, source mob target, then best nearby candidate.
* Expiry returns a cancellation request so projectile tracking can stop.

***
