# Sandbox.BaseCombatWeapon.ShootBullets

```csharp
static SceneTraceResult[] ShootBullets(Scene scene, Ray ray, int count, Vector2 spread, float distance, float radius, float damage, float force, GameObject attacker, GameObject weapon, GameObject ignore = null, TagSet tags = null)
```

Fires a volley of bullets - one trace per pellet, each randomly deflected within
`spread`, resolved through [Sandbox.BaseCombatWeapon.ShootBullet](/api/Sandbox.BaseCombatWeapon/ShootBullet)
(GMod's `FireBullets`). A pure utility like ShootBullet - damage and impulse apply on the
host only. Returns every pellet's trace so the caller can drive tracers and impacts.

### Parameters

- `scene` (`Scene`): Scene to trace in.
- `ray` (`Ray`): Origin and direction the volley is centred on.
- `count` (`int`): How many pellets to fire.
- `spread` (`Vector2`): Spread cone in degrees - x wide, y tall.
- `distance` (`float`): How far each pellet travels.
- `radius` (`float`): Pellet radius - 0 for a thin ray, higher to be forgiving.
- `damage` (`float`): Damage dealt by each pellet.
- `force` (`float`): Impulse applied by each pellet to the hit physics body.
- `attacker` (`GameObject`): Who fired this - credited for the damage and ignored by the traces.
- `weapon` (`GameObject`): The weapon GameObject, recorded on the damage.
- `ignore` (`GameObject`), default `null`: Hierarchy to ignore. Defaults to `attacker`.
- `tags` (`TagSet`), default `null`: Optional damage tags (e.g. "bullet").

### Returns

`SceneTraceResult[]`

Declared in [Sandbox.BaseCombatWeapon](/api/Sandbox.BaseCombatWeapon).
Assembly: `Sandbox.Engine`.
