A sitting emote and a chair interaction solve different problems
A sitting animation can put a character into a pose without identifying a chair. A chair interaction also needs a target, placement and an exit path. Choose the behavior you need before installing a second animation or target resource.
For ordinary players, use the server’s documented controls and supported seating. Installing a script is a server-owner task. A guide cannot add a missing chair interaction to a community you do not administer.
Match the pinned wp-seats configuration to your server
This example reviews Waypoint Seats commit d0326739c735676d25d3cc05e53c8db7e90ad19b. Its manifest identifies version 1.0.2 and GTA V. The ox_lib initializer is commented out, with a note to enable it when using ox integrations. Match the actual dependencies to your chosen configuration.
The config separates Framework, Notify and Target. Its reviewed defaults are qb for all three. Selecting a different target integration is not the same as changing the framework; verify each adapter against the resources your server actually runs.
Config.Seats holds model-specific entries with a scenario and offsets. Config.SitScenarioTimeout defaults to 6000 milliseconds. Some entries use skipTarget, which is relevant when another resource owns the interaction. Do not copy an entry without checking its complete options.
Why a chair in a custom MLO may have no sit target
Waypoint’s README distinguishes separate chair props from chairs baked into an MLO. Its model-target workflow may work with the former and not the latter. That is a map construction distinction, not proof that the targeting resource has failed.
For one failing seat, first identify whether there is a separate entity and record the actual model name or hash. Compare it with an ordinary supported chair. If the chair is part of a larger mesh, ask the map or script author for a supported location-based seating method instead of repeatedly registering the larger building model.
The README also describes an optional Waypoint Placeables integration for movable chairs. Follow that resource’s actual configuration if you need player-placed furniture; placing a decorative object does not automatically register a seating action.
Separate a missing target from a bad sitting position
Use the first visible failure to choose the next check. If the target option never appears, changing the animation offset is unlikely to repair target registration. If the option appears and the character sits in the wrong place, registration has already progressed further.
| Symptom | Check next |
|---|---|
| No sit option on any supported chair | Target resource, selected adapter and first startup error |
| Only one model has no option | Actual model identity, Config.Seats entry and skipTarget ownership |
| Character sits too high or low | The model’s placement and z offset with the actual ped |
| Character faces the wrong way | Configured heading offset and the chair’s entity heading |
| Character cannot approach the chair | Obstructions, scenario path and timeout behavior |
| Seat stays unavailable after exit | Occupancy release through the actual exit or interruption path |
Tune one model’s offsets with a reproducible scene
In the reviewed client, x and y offsets are added directly to the chair coordinates; the heading uses the entity heading plus a configured heading offset, defaulting to 180 degrees. Do not assume those coordinate additions behave like a rotated local-axis transform.
Use one supported chair model in an open staging area. Record the entity heading, character model and starting approach. Change one offset at a time, then repeat with a rotated instance of the same chair. A correction that looks right in one orientation may need a different implementation for arbitrary rotations.
Test the actual seating pose with the ped models your community supports. Keep a short before-and-after record rather than applying a global height correction to every chair. A stool, bench and office chair need not share the same origin or seat height.
Understand the blocked-approach fallback
The README describes a timeout that places the character into the chair when the walking approach is obstructed. The config also permits a per-seat timeout override. This behavior can matter for chairs close to tables or walls.
Test a clear approach and a deliberately obstructed approach on staging. Confirm where the character lands and whether the exit returns them to accessible ground. Extending a timeout does not remove a collision obstruction, while shortening it can change when the fallback occurs.
Keep the timeout decision separate from seat alignment. If the character reaches the chair but clips into the table, inspect placement and collision rather than treating the delay as the only problem.
Verify occupancy and exits with two players
The reviewed client checks an isOccupied statebag before sitting and sets occupancy during its seating flow. That code path is not a guarantee against simultaneous access or every disconnect scenario. Test the behavior rather than treating one successful sit as multiplayer proof.
Have two staging players approach the same seat, then verify ordinary stand-up, an interrupted animation and a reconnect. Record whether the seat becomes available again and whether either character retains unwanted tasks. These are proposed checks; Magnate has not run this revision in FiveM.
Use the emote guide for pose/menu controls and the target guides for interaction registration. This source review does not establish GTA VI compatibility or a universal solution for beds, multi-seat benches or every custom map.
Questions, answered.
Why does a chair inside an MLO have no sit option?
It may be baked into the map rather than a separate targetable prop. Check entity identity and model registration before changing animation offsets.
Does standalone mean wp-seats needs no target resource?
No. The README still requires a targeting script. Match the selected target adapter and any optional integration dependencies.
Can I use the same offset for every chair?
Do not assume so. Check the actual model, heading and ped pose, and test a rotated chair before applying a correction broadly.
Sources & editorial notes
Source review: November 7, 2026. Platform announcements can change. This guide separates published facts from Magnate’s original analysis and preparation advice.
- Waypoint Seats — pinned README.md Map construction, target requirements, optional placeables and timeout documentation.
- Waypoint Seats — pinned shared/config.lua Integration defaults, seat model options and timeout value.
- Waypoint Seats — pinned fxmanifest.lua Version, game target and optional ox_lib initializer.
- Waypoint Seats — pinned client.lua Placement and occupancy logic; source review, not a gameplay test.
Published by an independent editorial brand. Read our editorial standards.