> 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-wedding/commands.md).

# Commands, Controls and Permissions

Every command, key and permission in the RedM Wedding & Marriage System: player commands, staff venue commands, developer tools, prompts and ACE permissions.

## Player commands

| Command     | What it does                                                                                                                               |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `/marriage` | Opens your marriage records: engagement, booking, days married, bond, anniversary gifts, certificate and divorce. Works anywhere           |
| `/propose`  | Kneels with the ring box, as an emote. Press **Backspace** or use it again to stand up. It proposes to no one. To propose, use a ring item |

Both names can be changed:

```lua
Config.LedgerCommand = "marriage"
Config.Proposal.Pose.Command = "propose"
```

## Staff commands

| Command                                                 | What it does                                                                                                                                 |
| ------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `/wedding_venue on` / `off`                             | Shows or hides the venue decoration at the Mayor's Garden for everyone. With no argument, tells you whether it is showing                    |
| `/wedding_crowd all` / `ceremony` / `reception` / `off` | Fills the venue with NPC guests for everyone nearby, or clears them. See [NPC guests](/script-documentation/cas-wedding/venue.md#npc-guests) |
| `/wedding_clap [seconds]`                               | The NPC guests applaud, 8 seconds by default, 60 at most                                                                                     |
| `/wedding_confetti`                                     | Confetti over the nearest altar. `fireworks` adds fireworks, `all` adds fireworks and applause                                               |
| `/weddingcoords`                                        | Prints your position and heading as a `vector4`, in the console and on screen. Handy for moving a clerk or an altar                          |
| `/hug [server id]`                                      | Starts the embrace with the nearest player within 3 m, or with the one given, without a proposal. For testing the embrace                    |

The venue commands also work from the server console. `/weddingcoords` and `/hug` need a player.

`/wedding_venue` and `/wedding_crowd` last until the next restart. After that, the venue and the guests go back to `Config.Venue.EnabledByDefault` and `Config.Venue.Crowd.startMode`.

## Developer tools

These help you fine-tune the venue. They do nothing unless `Config.DevTools = true`. Keep it `false` on a live server.

| Command                            | What it does                                                                                                                                     |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `/wedding_where`                   | Prints your position in venue-local metres and the nearest venue prop. Use it to place NPC guest spots                                           |
| `/wedding_seat [x y z h]`          | While seated on a venue chair or bench, prints that seat's offset, or moves it live                                                              |
| `/wedding_scan`                    | Surveys the ground and objects around the venue and saves `scan_<date>.json` in the resource folder. Needs the `command.wedding_scan` permission |
| `/propose_offset [x y z rx ry rz]` | Prints the ring box's position in the hand, or moves it live                                                                                     |

## Keys and prompts

| Where                      | Key           | Action                                                                                                             |
| -------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------ |
| At the county clerk        | Hold **E**    | Book a Ceremony                                                                                                    |
| At the county clerk        | Hold **G**    | Wedding Invitations                                                                                                |
| At the county clerk        | Hold **R**    | Marriage Records                                                                                                   |
| At the altar, within 3 m   | Hold **E**    | Begin the Ceremony                                                                                                 |
| On a venue chair or bench  | Hold **E**    | Sit Down, then Stand Up                                                                                            |
| While seated               | Hold **R**    | Change Pose                                                                                                        |
| Kneeling with the ring box | **Backspace** | Stand up and withdraw the proposal                                                                                 |
| During the embrace         | **Backspace** | Let go early (when the embrace holds, see [HoldLoops](/script-documentation/cas-wedding/proposals.md#the-embrace)) |
| An opened envelope         | Click         | Break the seal, draw the letter out, turn the card over                                                            |

The prompts do not show while a menu is open, while you are on horseback or while you are seated.

## Permissions

Players need no permission to propose, book, make invitations, marry or divorce.

The staff commands use standard ACE permissions. With `Config.StaffOnlyCommands = true` (the default), a player needs `command.<name>`, or `command`, which covers every command:

```cfg
add_ace group.admin command allow
```

or only the wedding commands:

```cfg
add_ace group.admin command.wedding_venue allow
add_ace group.admin command.wedding_crowd allow
add_ace group.admin command.wedding_clap allow
add_ace group.admin command.wedding_confetti allow
add_ace group.admin command.weddingcoords allow
add_ace group.admin command.hug allow
```

Change `group.admin` to whichever group your staff is in. To give the permission to one person:

```cfg
add_principal identifier.license:YOUR_LICENSE group.admin
```

```lua
Config.StaffOnlyCommands = true
```

Setting it to `false` lets every player use the venue commands and `/weddingcoords`. Use that only while testing. `/hug` always needs the permission.

{% hint style="info" %}
The script checks ACE only. VORP and RSG admin groups are not read directly. If your staff are already in an ACE group such as `group.admin`, the line above is all you need.
{% endhint %}
