> For the complete documentation index, see [llms.txt](https://code-after-sex.gitbook.io/script-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://code-after-sex.gitbook.io/script-documentation/cas-shooting-range/targets-and-weapons.md).

# Targets and Weapons

Target types and the 19 weapons of the RedM Shooting Range & Competition script: bottles, cans, wooden boards, hanging and moving targets, precision coins, magazine sizes, reload times and weapon rule

## Target types

| Target                | Hits to break | Hit radius | How it is set up                                                            |
| --------------------- | ------------- | ---------- | --------------------------------------------------------------------------- |
| **Glass Bottles**     | 1             | 0.35 m     | Whiskey bottles on fence posts                                              |
| **Tin Cans**          | 1             | 0.30 m     | Cans stacked on crates                                                      |
| **Wooden Targets**    | 2             | 0.60 m     | Painted boards standing on the ground                                       |
| **Hanging Targets**   | 1             | 0.40 m     | Lanterns hanging 1.9 m above the ground                                     |
| **Moving Targets**    | 1             | 0.30 m     | Apples and cans floating 1.3 m up, always moving                            |
| **Precision Targets** | 1             | 0.22 m     | Shot glasses and coins on fence posts                                       |
| **Mixed Set**         | varies        | varies     | Cycles through bottles, cans, hanging, precision and moving targets in turn |

A wooden target shows as **Cracked** after the first hit.

### Layout

* **Count:** 1 to 20 targets per lane (`Config.Limits.MinTargets` and `MaxTargets`).
* **Distance:** from 5 yards up to the range's maximum, set per range (`maxDist`).
* **Spacing:** Tight (2 ft), Standard (3 ft) or Wide (5 ft).
* **Movement:** Stationary, or Moving, which sets every target swaying along the line of fire.

Targets are set out five to a row. Extra rows stand 1.4 m further back and are staggered, so every target stays visible.

### How hits are counted

Each target is a real prop. When a shooter damages one, the hit is sent to the server with the target and the lane. The server checks the shooter is in their lane, the target is still standing, the shot is not faster than the minimum gap between shots, and the shooter is not locked out, then counts it. A shot that hits nothing counts as a miss. A broken prop that the server still counts as standing is put back after 1.5 seconds.

Change the models, heights and hit radius per target in `Config.Targets`. See [Configuration](/script-documentation/cas-shooting-range/configuration.md#targets).

## Weapons

| Weapon                  | Class    | Per load | Reload |
| ----------------------- | -------- | -------- | ------ |
| Cattleman Revolver      | Revolver | 6        | 2.4 s  |
| Schofield Revolver      | Revolver | 6        | 1.9 s  |
| Double-Action Revolver  | Revolver | 6        | 2.6 s  |
| LeMat Revolver          | Revolver | 9        | 3.1 s  |
| Navy Revolver           | Revolver | 6        | 2.8 s  |
| Volcanic Pistol         | Pistol   | 8        | 2.9 s  |
| Mauser Pistol           | Pistol   | 10       | 2.2 s  |
| Semi-Automatic Pistol   | Pistol   | 8        | 1.6 s  |
| Carbine Repeater        | Repeater | 7        | 2.7 s  |
| Litchfield Repeater     | Repeater | 14       | 3.4 s  |
| Lancaster Repeater      | Repeater | 14       | 3.2 s  |
| Springfield Rifle       | Rifle    | 1        | 1.4 s  |
| Bolt-Action Rifle       | Rifle    | 5        | 2.5 s  |
| Varmint Rifle           | Rifle    | 16       | 3.6 s  |
| Rolling Block Rifle     | Rifle    | 1        | 1.8 s  |
| Double-Barreled Shotgun | Shotgun  | 2        | 2.0 s  |
| Pump-Action Shotgun     | Shotgun  | 5        | 3.0 s  |
| Repeating Shotgun       | Shotgun  | 4        | 2.8 s  |
| Sawed-Off Shotgun       | Shotgun  | 2        | 1.7 s  |

The magazine size and reload time are what the server uses in a match, and what the menu and HUD show.

### Weapon rules

The host sets these on the **Weapons** tab when creating a match:

* **Same weapon for all.** Everyone shoots the match weapon the host picked.
* **Own choice per shooter.** The host ticks the weapons that are allowed. Each shooter uses the allowed weapon they are holding when they ready up. A shooter holding none of them gets the host's match weapon.
* **Supplied Match Weapon.** A shooter who does not own the weapon is lent one for the match and it is taken back at the end. A player's own weapon is never taken.
* **Player-Owned Weapon.** Shooters must bring their own. With the same weapon for all, every shooter must own the match weapon. With own choice, each shooter must be holding one of the allowed weapons when they ready up.

During a match the gun never runs out of real ammunition. The server counts the magazine instead, so every shooter gets exactly the cartridges the rules allow. When a player is shooting, firing is only allowed with the match weapon in hand.

### Changing the weapon list

The list lives in `Config.Weapons`:

```lua
Config.Weapons = {
    schofield = { hash = 'WEAPON_REVOLVER_SCHOFIELD', mag = 6, reload = 1.9 },
    -- ...
}
```

* Change `mag` or `reload` to rebalance a weapon.
* Remove a line to take a weapon out of the menu and the server.
* Weapon names are in the language file as `data.weapon.<id>`.

{% hint style="info" %}
Adding a brand new weapon id also needs an entry in the menu's weapon list in `web/src/data/mock.js` (icon, class and ammo label) and a rebuild of the interface. See [Editing the Interface](/script-documentation/cas-shooting-range/interface.md). Changing or removing the included weapons needs no rebuild.
{% endhint %}
