Skip to content

Client Exports and Globals

rc_extra_seats does not expose formal exports(...) calls on the client side, but it defines several globals in the shared namespace that client-side resources loaded after it can use directly.

SeatLookup

An alias for VehicleRegistry. Both names point to the same table.

lua
-- type: table<number, VehicleSeatConfig>
local cfg = SeatLookup[GetHashKey('SANDKING')]

Populated at resource start from Config.pickupTruckModels. Rebuilt when the editor broadcasts a live model update.

RebuildSeatLookup

lua
RebuildSeatLookup()

Rebuilds VehicleRegistry (and updates SeatLookup to point to the new table) from the current state of Config.pickupTruckModels. Call this after modifying Config.pickupTruckModels at runtime from a client-side resource.

GetSeatConfigForEntity

lua
local cfg = GetSeatConfigForEntity(vehicle)
ParameterTypeDescription
vehiclenumberA vehicle entity handle

Returns: VehicleSeatConfig or nil if the model has no configured seats.

Example:

lua
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local cfg = GetSeatConfigForEntity(vehicle)
if cfg then
    print(('This vehicle has %d extra seats'):format(cfg:count()))
end

VehicleRegistry

See Server Exports — Shared globals. The same class definitions apply on the client.

Seat, VehicleSeatConfig, Occupancy

All three classes from shared/classes.lua are available as globals on the client. See the Server Exports page for method signatures.

On the client, Occupancy is read-only in practice — the client reads the statebag to check seat availability but never writes it. Writes are server-authoritative.

Robicore