> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinemation.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Launch Projectile

> Release an arrow, spear, or flare at the right moment in the character animation.

`BP_AnimNotify_Survival_LaunchProjectile` calls the equipped item's `OnThrowItem` event. Use it to release a projectile when the character lets go of an arrow, spear, or flare.

You can find the notify in `Survival_FPS_Pack/Blueprints/Notifies`.

## Place the notify

1. Open the character's release animation. The spear example uses `A_FP_Spear_Throw_Release`, played by `AM_FP_Spear_Throw_Release`.
2. Scrub to the frame where the hand releases the item.
3. Right-click a **Notifies** track and add `BP_AnimNotify_Survival_LaunchProjectile`. It appears on the track as **Launch Projectile**.
4. Save the animation and test the throw in **Play** mode.

![A\_FP\_Spear\_Throw\_Release with Launch Projectile on the Notifies track](https://mintcdn.com/kinemation/ZGatOp3ICUy8H4tB/survival-pack/unreal/images/survival-pack_launch-projectile-notify-on-montage-example-spear.png?fit=max\&auto=format\&n=ZGatOp3ICUy8H4tB\&q=85\&s=2c345a3c513c3cf600ec3ff664142b1a)

The spear release sequence places Launch Projectile on the character animation's Notifies track.

Place the notify on the character animation. Its mesh owner must be the character so it can find the equipped item. If you add the notify to a sequence used by a montage, keep a single release event for that playback.

## What it runs

The notify's `Received_Notify` function:

1. Gets the owner of `MeshComp`, the mesh playing the animation.
2. Calls `GetEquippedItem` through `BPI_Gameplay_Character`.
3. Sends `OnThrowItem` to that item through `BPI_Survival_Ranged`.
4. Returns `true`.

![Launch Projectile Received Notify graph calling Get Owner, Get Equipped Item, and On Throw Item](https://mintcdn.com/kinemation/ZGatOp3ICUy8H4tB/survival-pack/unreal/images/BP_AnimNotify_Survival_LaunchProjectile_Received_Notify_00000.png?fit=max\&auto=format\&n=ZGatOp3ICUy8H4tB\&q=85\&s=730474c9350d96412db01d84c1283ab3)

The notify finds the character's equipped item and sends OnThrowItem to it.

The item creates and launches the projectile. The notify has no projectile class, speed, or gravity settings of its own.

## Spear and bow examples

`BP_Spear.OnThrowItem` hides the held `StaticItemMesh`, spawns `BP_Survival_Projectile_Spear` at the item's transform, and assigns the mesh selected by `AC_Survival_RangedWeapon`. It then calls the spawned actor's `LaunchProjectile` function.

`BP_HX2.OnThrowItem` spawns `BP_Survival_Projectile_Arrow` at `ArrowProjectileSocket` on `ItemMesh`. It assigns the selected arrow mesh and launches it along the socket's right vector.

| Launch setting | Spear | HX2 arrow |
| - | - | - |
| Speed | `1000` | `4000` |
| Gravity scale | `1` | `1` |
| Rotate with velocity | Enabled | Enabled |
| Bounce | Disabled | Disabled |
| Life span | `15` seconds | `15` seconds |

These are values on the example items' launch calls. Change them in your copied item Blueprint when you need different flight behavior.

`BP_Flare` uses the same notify and ranged interface to release `BP_Survival_Flare`. See [Tools](https://docs.kinemation.xyz/survival-pack/unreal/general/items/tools.md#signal-flare) for activation and held effects.

## Check a replacement animation

Test that one release creates one projectile and that the held model disappears at the correct moment. If nothing launches, check the notify's mesh owner, the equipped item, and its `BPI_Survival_Ranged` implementation. If two projectiles appear, check for duplicate notifies or an additional spawn call in the item.

See [Create an item](https://docs.kinemation.xyz/survival-pack/unreal/tutorials/create-an-item.md#projectile-items) to adapt the spear or bow setup.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.