# WorldClass.server_onProjectile

Called when a projectile hits something in this world.

**Kind:** Callback

**Environments:** Game

## Game

**Callback side:** Server

``` { .lua .api-signature }
WorldClass:server_onProjectile(
    position,
    airTime,
    velocity,
    projectileName,
    shooter,
    damage,
    customData,
    normal,
    target,
    uuid
)
```

[Open the full Game reference](../Game-Script-Environment/Classes/WorldClass.md#server_onprojectile)

> **Note:**
> If the shooter is destroyed before the projectile hits, the shooter value will be nil.

**Parameters:**

| Name | Type | Description |
| --- | --- | --- |
| `self` | table | The class instance. |
| `position` | [Vec3](../Game-Script-Environment/Userdata/Vec3.md) | The position in world space where the projectile hit. |
| `airTime` | number | The time, in seconds, that the projectile spent flying before the hit. |
| `velocity` | [Vec3](../Game-Script-Environment/Userdata/Vec3.md) | The velocity of the projectile at impact. |
| `projectileName` | string | The name of the projectile. (Legacy, use uuid instead) |
| `shooter` | [Player](../Game-Script-Environment/Userdata/Player.md)/[Unit](../Game-Script-Environment/Userdata/Unit.md)/[Shape](../Game-Script-Environment/Userdata/Shape.md)/[Harvestable](../Game-Script-Environment/Userdata/Harvestable.md)/nil | The shooter. Can be a [Player](../Game-Script-Environment/Userdata/Player.md), [Unit](../Game-Script-Environment/Userdata/Unit.md), [Shape](../Game-Script-Environment/Userdata/Shape.md), [Harvestable](../Game-Script-Environment/Userdata/Harvestable.md) or nil if unknown. |
| `damage` | integer | The damage value of the projectile. |
| `customData` | any | A Lua object that can be defined at shoot time using [sm.projectile.customProjectileAttack](../Game-Script-Environment/Static-Functions/sm.projectile.md#customprojectileattack) or an other custom version. |
| `normal` | [Vec3](../Game-Script-Environment/Userdata/Vec3.md) | The normal at the point of impact. |
| `target` | [Character](../Game-Script-Environment/Userdata/Character.md)/[Shape](../Game-Script-Environment/Userdata/Shape.md)/[Harvestable](../Game-Script-Environment/Userdata/Harvestable.md)/[Lift](../Game-Script-Environment/Userdata/Lift.md)/nil | The hit target. Can be a [Character](../Game-Script-Environment/Userdata/Character.md), [Shape](../Game-Script-Environment/Userdata/Shape.md), [Harvestable](../Game-Script-Environment/Userdata/Harvestable.md), [Lift](../Game-Script-Environment/Userdata/Lift.md) or nil if terrain or unknown. |
| `uuid` | [Uuid](../Game-Script-Environment/Userdata/Uuid.md) | The uuid of the projectile. |
