-
Notifications
You must be signed in to change notification settings - Fork 23
seats
Shadowsun™ edited this page Sep 20, 2026
·
1 revision
Cinema includes a lightweight seat system so players can sit on chairs, sofas and benches that belong to a theater map.
- The module ships a large table
ChairOffsetsthat maps model paths to one or more seat offsets (Pos+ optionalAng). - When a player presses use on a prop whose model is in that table, the gamemode creates a temporary seat entity at the correct offset and puts the player into it.
- Leaving the seat (jump / use again) removes the temporary entity.
No Hammer entities are required for the basic “sit on this prop” behaviour.
Edit (or override) the seats module:
cinema_modded/gamemode/modules/seats/sh_seats.lua
Add an entry:
ChairOffsets["models/path/to/your_chair.mdl"] = {
{ Pos = Vector(0, 0, 20), Ang = Angle(0, -90, 0) },
-- more seats for multi-seat models
{ Pos = Vector(0, 30, 20), Ang = Angle(0, -90, 0) },
}Tips for finding good offsets:
- Spawn the model in Sandbox.
- Noclip to the approximate sitting position.
- Use
lua_run print(LocalPlayer():GetPos())(or a measuring tool) relative to the prop origin. - Test in-game; small Z adjustments (±2–5) are common.
The seats module also contains a simple editor (cl_editor.lua) used during map development.
It is mainly intended for internal use when defining new offsets; most mappers just edit ChairOffsets directly.
-
sv_init.luahandles the actual “use → sit” logic and cleanup. - Seats are not networked entities that persist; they exist only while a player is sitting.
- Admins / owners are not given special privileges for ordinary seats.
- Theater locations still determine whether a player is “in” a theater while seated.
- Portable TVs / projectors are separate entities and are not part of the seat system.