Sitting on Chairs
Walk up to a chair, bench or stool and stand still — the prompt only appears once you stop moving. When you are close enough a prompt group headed Chair appears with E — Sit.
Once you are seated
| Key | Action |
|---|---|
X | Stand up |
E | Change style |
← → | Hold to rotate |
The prompt header shows the style you are currently in — "Smoke", "Play the banjo" and so on.
The 19 sitting styles
Pressing E cycles through the styles your character can use and wraps around to the start.
Female characters have 10 of the 19 available; the remaining 9 are male only. That is a property of the underlying scenarios, not a setting.
Not every style works on every chair
If a style does not take, you get "You cannot use this style on this chair" and stand back up. Try a different chair or a different style.
Rotation
Hold ← or → while seated to turn through a full 360 degrees. The heading is kept when you change style.
If a scenario refuses the heading you asked for, the seat is re-anchored once when you release the key.
When you get stood up automatically
- You take damage and lose the animation
- The chair disappears
- You end up more than 5 metres from it
When you stand up normally you are returned to the spot you were standing in before you sat down.
While seated, X only stands you up
The global stop-emote key is suppressed while you are on a chair so that X reaches the stand-up prompt instead. This is deliberate, not a conflict.
The sit prompt is hidden while the emote menu is open and during adjust mode.
The 82 chair props
The whitelist lives in shared/seats.lua as RM.Seats.chairs and covers 82 models — benches, stools, couches, rocking chairs, barber and doctor chairs, piano stools, wicker chairs, footlockers, trunks, hay bales and a few oddities:
RM.Seats.chairs = {
'p_ambchair01x', 'p_barberchair01x', 'p_barberchair03x',
'p_bench06x', 'p_bench08bx', 'p_bench09x', 'p_bench15x', 'p_bench17x',
-- ...74 more
'p_windsorchair03x', 'p_woodenchair01x', 's_footlocker02x',
's_footlocker06x', 'mp005_s_posse_trad_chair01x',
}Adding your own is a one-line edit — append the model name to that table and restart the resource. shared/*.lua stays editable in both editions.
Settings
All of these are in shared/seats.lua, not config.lua:
| Key | Default | What it does |
|---|---|---|
RM.Seats.enabled | true | Master switch for the whole sitting system |
RM.Seats.detectRadius | 2.0 | Chair scan radius, metres |
RM.Seats.promptRadius | 1.5 | Distance at which the sit prompt appears |
RM.Seats.rotate | true | Whether holding the arrow keys turns the pose |
RM.Seats.rotateStep | 1.5 | Degrees per frame while held |
RM.Seats.default | 'MP_LOBBY_PROP_HUMAN_SEAT_CHAIR' | The scenario used when first sitting down |
And the keys:
| Key | Default | Action |
|---|---|---|
sit | 0x41AC83D1 (E) | Sit down |
stand | 0x7DA48D2A (X) | Stand up |
style | 0x41AC83D1 (E) | Next sitting style while seated |
rotLeft / rotRight | 'INPUT_FRONTEND_LEFT' / 'INPUT_FRONTEND_RIGHT' | Rotate |
Note that sit and style are the same key by design — E sits you down, then E cycles.
sit, stand and style must be numeric hashes
All three go straight to the prompt as control values, so an input name such as 'INPUT_DYNAMIC_SCENARIO' is never resolved here. Only rotLeft and rotRight go through a helper that takes either form, and they fall back to INPUT_FRONTEND_LEFT / INPUT_FRONTEND_RIGHT — unlike RM.Adjust.keys, which accepts names throughout.
Change these values — do not delete the lines
keys.sit, keys.stand, keys.style, RM.Seats.styles and RM.Seats.default are read with no fallback, so removing a line errors rather than switching a feature off. The three key reads happen when the prompts are built at resource start, and that thread runs even with enabled = false. styles errors the moment a player sits; default errors on the sit press.
Only enabled, rotate, detectRadius, promptRadius and rotateStep are safe to remove, and deleting enabled or rotate leaves that feature on — both are tested against the literal false.
Running another sitting resource
RedM Emotes registers its own RedM prompt on all 82 props, so players see two "Sit" prompts if another chair resource is also running.
Turn this one off and keep the other:
-- shared/seats.lua
RM.Seats = {
enabled = false,
-- leave the rest of the table as shipped
}The scan does not run while you are moving
This is the single most common "sitting is broken" report. The chair scan is gated on standing still, so walking past a bench shows nothing. Stop, wait about two seconds, and the prompt appears.