> 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-weddingvenue/seats.md).

# Seats

Sitting in CAS Wedding Venue: 92 chairs and bench seats, sitting down, changing pose, table poses and adding seat types.

Every chair and bench in the venue can be sat on: the ceremony rows, the guest tables, the sweetheart table, the musicians' chairs and the stone benches by the fountain. That is 92 seats.

## Sitting down

1. Walk up to a free seat. **Sit Down** appears.
2. Hold **E** to sit.
3. Hold **R** to change the pose.
4. Hold **E** again to stand up.

When you stand up, you step back to where you were before you sat.

The prompt does not appear while you are on horseback, in a wagon, swimming, dead, in a scenario, restrained, or while a menu has the mouse. A seat with another player on it, or one taken by an NPC guest, cannot be taken.

Near the altar, the prompt gives way to the altar when you stand closer to it than to a seat, so a wedding script's own prompt there is never hidden.

## Poses

| Seat             | Poses (R cycles)                                             |
| ---------------- | ------------------------------------------------------------ |
| Chair at a table | Sitting at the table, sitting upright, drinking at the table |
| Chair in a row   | Sitting upright, a relaxed sit                               |
| Bench            | Two bench poses                                              |

Chairs at the guest tables and the sweetheart table use the table poses. Every pose works for male and female characters.

## Settings

```lua
Config.Seating = {
    enabled = true,
    distance = 1.3,
    occupiedRadius = 0.4,
    scenarios = {
        table = { 'GENERIC_SEAT_CHAIR_TABLE_SCENARIO', 'PROP_HUMAN_SEAT_CHAIR', 'PROP_HUMAN_SEAT_CHAIR_TABLE_DRINKING' },
        chair = { 'PROP_HUMAN_SEAT_CHAIR', 'GENERIC_SEAT_BENCH_SCENARIO' },
        bench = { 'GENERIC_SEAT_BENCH_SCENARIO', 'PROP_HUMAN_SEAT_BENCH' },
    },
    tableClusters = { 'GuestTable', 'SweetheartTable' },
    keepClear = {
        { x = -12.5, y = 1.8, radius = 3.0 },
    },
    models = { ... },
}
```

| Setting          | Effect                                                                          |
| ---------------- | ------------------------------------------------------------------------------- |
| `enabled`        | `false` turns sitting off                                                       |
| `distance`       | How close to a seat the prompt appears (m)                                      |
| `occupiedRadius` | Another player this close to a seat means it is taken (m)                       |
| `scenarios`      | The poses for each kind of seat. The first is the one you sit down in           |
| `tableClusters`  | Chairs in these groups of the layout use the table poses                        |
| `keepClear`      | Spots where the prompt gives way, in venue-local metres. The first is the altar |
| `models`         | Which props are seats, and where on them you sit                                |

### Seat points

Each model lists its seat points in the prop's own space: `x` to the right, `y` forward or back, `z` up from the prop's base, and `h` the way you face relative to the prop.

```lua
p_new_stonebench02x = { kind = 'bench', seats = {
    { x = -0.45, y = 0.0, z = 0.5, h = 0.0 },
    { x = 0.45, y = 0.0, z = 0.5, h = 0.0 },
} },
```

To fine-tune a seat, turn on `Config.DevTools`, sit on it and use `/wedding_seat x y z h`. You move on the spot and the new values are printed in the chat, ready to paste into the config.
