# sm.projectile.shapeFire

Creates and fires a projectile from a [Shape](../Game-Script-Environment/Userdata/Shape.md).

**Kind:** Function

**Environments:** Game

## Game

### Overload 1

``` { .lua .api-signature }
sm.projectile.shapeFire( shape, name, position, velocity, delay? )
```

[Open the full Game reference](../Game-Script-Environment/Static-Functions/sm.projectile.md#shapefire-shape-string-vec3-vec3-integer-optional)

**Availability:** Server only

> **Deprecated:**
> Name is deprecated, use uuid instead
>

**Parameters:**

| Name | Type | Description |
| --- | --- | --- |
| `shape` | [Shape](../Game-Script-Environment/Userdata/Shape.md) | The shape. |
| `name` | string | The projectile's name. |
| `position` | [Vec3](../Game-Script-Environment/Userdata/Vec3.md) | The start position. |
| `velocity` | [Vec3](../Game-Script-Environment/Userdata/Vec3.md) | The direction and velocity. |
| `delay` *(optional)* | integer | The number of ticks before firing. (Defaults to 0) |

### Overload 2

``` { .lua .api-signature }
sm.projectile.shapeFire(
    shape,
    uuid,
    position,
    velocity,
    delay?,
    projectileAmount?
)
```

[Open the full Game reference](../Game-Script-Environment/Static-Functions/sm.projectile.md#shapefire-shape-uuid-vec3-vec3-integer-optional-integer-optional)

**Availability:** Server only

**Parameters:**

| Name | Type | Description |
| --- | --- | --- |
| `shape` | [Shape](../Game-Script-Environment/Userdata/Shape.md) | The shape. |
| `uuid` | [Uuid](../Game-Script-Environment/Userdata/Uuid.md) | The projectile's uuid. |
| `position` | [Vec3](../Game-Script-Environment/Userdata/Vec3.md) | The start position. |
| `velocity` | [Vec3](../Game-Script-Environment/Userdata/Vec3.md) | The direction and velocity. |
| `delay` *(optional)* | integer | The number of ticks before firing. (Defaults to 0) |
| `projectileAmount` *(optional)* | integer | The amount of shots that will be fired. Uses projectile amount from json if not set (Optional, range of 0-255) |
