# Grenade authoring (/docs/guides/grenade-authoring)

Record and save local lineups, reuse them with the helper, and create landing zones.

## Record a lineup [#record-a-lineup]

1. Load the map in CS2 and open **Grenades**.
2. Under **Grenade Features**, enable **Grenade Creator**.
3. Stand at the throw position, equip the grenade, and perform the throw manually.
4. Return to **Grenade Creator** and review **Unsaved Preview Lineup Config**.

Recording begins when you pull the pin. It captures the starting position and view angles, grenade type, crouch and Shift modifiers, movement, throw type, and jump state. Keep the grenade helper's activation key released during recording, because holding it cancels capture.

Review **Title**, **Description**, **Map**, **Grenade Type**, **Throw Position**, **View Angles (P/Y)**, and **Throw Type**. Check **Crouch**, **Sneak (Shift)**, **Jump**, **Movement Key**, and **Movement Ticks** against the throw you intended.

Movement recording uses the first detected movement key and its duration. It does not capture a sequence of direction changes. One recorded movement tick represents `15.625 ms`.

## Save or enter a lineup manually [#save-or-enter-a-lineup-manually]

Click **Save Created Lineup** to append the preview to the local lineup data. Recording alone does not save it. A map must be available in **Map** or from the active game.

To enter a lineup manually, fill the same fields. **Auto Fill Current Position/Angles** copies the current position, view angles, map, and held grenade into the form. Review the throw and movement fields before saving.

Local lineups are stored at `assets/grenades/fgrenade_helper/local_grenades.json` beside the executable. Downloaded lineups use `cloud_grenades.json` in the same directory. Back up the local file to preserve authored lineups across asset replacements.

## Reuse a saved lineup [#reuse-a-saved-lineup]

1. Enable **Grenade Helper** under **Grenade Features**.
2. Equip the matching grenade and stand at the lineup position.
3. Set the helper's **Activation Key** using [Keybinds](/docs/guides/keybinds).
4. Face the lineup's aim direction and hold the activation key.

**Auto Aim** aligns the view when a matching lineup is within **Aim Activation Radius (Units)** and **Auto Aim FOV**. The activation radius measures your distance from the lineup's standing position. **Auto Throw** performs the throw after alignment. Disable either option when you want to perform that part manually.

Input assistance requires access to `/dev/uinput`. Save helper options and bindings through **Config**. The lineup data is saved separately through **Save Created Lineup**.

## Create landing zones [#create-landing-zones]

Landing zones describe target volumes for the solver. They are saved separately from throw lineups.

1. Enable **Grenade Solver**, then **Enable Location Creator** in its section.
2. Set a **Creation Bind**.
3. Aim at three world points and press the creation key once at each point. Map geometry must be available for the point traces.
4. Review **Location Name**, **Min Bound (Mins)**, **Max Bound (Maxs)**, and **Grenade Type**.
5. Click **Save Location** while the map is active.

You can also enter the bounds directly. After three points, the next creation-key press starts a new set. **Show Zones** controls whether the solver displays the saved zones.

Zones are stored at `assets/grenades/landing_zones/landing_zones.json` beside the executable. Back up this file separately from `local_grenades.json` and your configuration profiles.
