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

# Proposals and the Embrace

Ring proposals in the RedM Wedding & Marriage System: the rings, the kneeling pose with a ring box, answering, cooldowns and the synchronised two-player embrace after a yes.

Every marriage starts with a ring. A player uses a ring item beside the one they love, writes a few words and goes down on one knee with the ring box held out. The other player watches the kneel, then the question opens on their screen. A yes makes the couple engaged, and the two of them embrace.

## The rings

Four rings are included. Any of them can be used to propose:

| Item            | Name                |
| --------------- | ------------------- |
| `ring_diamond`  | Diamond Solitaire   |
| `ring_gold`     | Golden Wedding Band |
| `ring_platinum` | Platinum Band       |
| `ring_chain`    | Golden Chain Ring   |

The script does not sell rings. Stock them in your jeweller or general store, or hand them out however suits your server. See [Configuration](/script-documentation/cas-wedding/configuration.md#rings) to add your own.

## Proposing

1. Stand within **2.5 m** of the player you want to ask. The script picks the nearest player.
2. Use a ring from your satchel. The proposal window opens with both names and the ring.
3. Write your words, up to 240 characters, or leave the placeholder.
4. Choose **Kneel & Propose**. Your character turns to face them and kneels with the ring box in the right palm.

Everyone within 80 m sees the kneel and the ring box.

The one being asked watches the proposer go down on one knee. **5 seconds** later the question opens on their screen, with the message and the ring. They have **45 seconds** to answer.

| Answer                 | What happens                                                                                   |
| ---------------------- | ---------------------------------------------------------------------------------------------- |
| **Accept**             | The couple is engaged. The ring moves from the proposer to the partner, and the embrace begins |
| **Deny**               | The proposer stands up and keeps the ring                                                      |
| **No answer**          | The proposal lapses after 45 seconds. The proposer keeps the ring                              |
| **Closing the window** | Counts as a denial                                                                             |

The proposer can press **Backspace** at any time to stand up and withdraw the proposal. The ring stays with them.

### Who can propose

A proposal cannot be made when:

* either of them is already engaged or married,
* either of them divorced less than 7 days ago (`Config.Divorce.RemarryCooldownDays`),
* either of them is already in a proposal,
* the proposer asked the same person in the last 30 seconds and was turned down, withdrew, or got no answer.

The reason is shown to the proposer.

Accepting checks again that both are still free and within 7.5 m of each other. If the ring has left the proposer's satchel in the meantime, the proposal fails.

### Where the ring goes

```lua
Config.Proposal.GiveRingToPartner = true
```

With `true`, an accepted ring moves to the partner's satchel. If their satchel is full, it stays with the proposer. With `false`, the proposer keeps it.

## The kneeling pose

The pose is Rockstar's own proposal animation, held on the kneeling frame, with a custom ring box model (`cas_wed_ringbox01x`) in the proposer's hand. After a yes the proposer rises straight into the embrace. Otherwise they get up and put the box away.

`/propose` plays the same pose as an emote, without a ring and without asking anyone. It is useful for photos. Press **Backspace** or use the command again to stand.

## The embrace

After a yes the couple embraces. It is a custom two-person animation made for this script, not a pair of single-player clips placed side by side:

1. Both players are moved into place facing each other, between where they were standing. Their controls are locked.
2. A short countdown runs, then both play the embrace on one timeline set by the server. Each client keeps its own character in step with it, so the two stay together even with lag.
3. After about 7 seconds they let go and the controls return.

```lua
Config.Proposal.Embrace = {
    Enabled = true,
    HoldLoops = 0,
}
```

| Setting     | Effect                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Enabled`   | `false` skips the embrace entirely                                                                                                               |
| `HoldLoops` | `0` lets go right after the embrace. Each `1` holds it 6 seconds longer. With holds, **Backspace** lets go early, at the end of the current hold |

The embrace's clips are a man's part and a woman's part, so it plays for a couple made of one male and one female character. Other couples are engaged just the same and skip the embrace.

It also needs room. If the two cannot line up, or the ground under them differs by more than 30 cm, the embrace is skipped and both see why:

* *The ground is too uneven here to embrace. Try a flatter spot.*
* *You could not line up to embrace. Leave a little room around you and try again.*

Staff can try the embrace without a proposal with `/hug`, next to another player.

## After the engagement

The couple is now engaged. Their marriage records (`/marriage`) show who they are promised to, since when and with which ring. From here:

* [Book a ceremony](/script-documentation/cas-wedding/booking.md) at the county clerk.
* [Make invitations](/script-documentation/cas-wedding/invitations.md) for the guests.
* Or break the engagement off from the marriage records. The ring stays where it is. A couple with a ceremony booked must cancel the booking first.
