five-on-it / packages/sim/src/world / SimWorld
Interface: SimWorld
Defined in: packages/sim/src/world.ts:131
One simulation world.
Properties
bank
bank:
Map<number,number>
Defined in: packages/sim/src/world.ts:182
Each player's bank balance ($), by client id (bank.ts): what the cash machines keep and the fines never take.
bodies
bodies: (
RigidBody|undefined)[]
Defined in: packages/sim/src/world.ts:139
Rigid body per entity id.
c
c:
object
Defined in: packages/sim/src/world.ts:135
Component arrays of this world.
Camera
Camera:
object
A security camera of the level (cameras.ts): its index in the level, on, off or destroyed, its hit points, and the ticks an EMP's pulse keeps it off (ordnance.ts).
Camera.dark
dark:
Uint16Array<ArrayBuffer>
Camera.health
health:
Uint8Array<ArrayBuffer>
Camera.index
index:
Uint16Array<ArrayBuffer>
Camera.state
state:
Uint8Array<ArrayBuffer>
Character
Character:
object
A person: a player's character or a pedestrian.
Character.act
act:
Uint8Array<ArrayBuffer>
What it last did with its hands, for the renderers (acts.ts): an index into ACTS.
Character.actSeq
actSeq:
Uint8Array<ArrayBuffer>
A counter of its acts (0 to 3), so the same act twice reads as two.
Character.actTicks
actTicks:
Uint8Array<ArrayBuffer>
Ticks left showing that act; 0 = it is over.
Character.aim
aim:
Float32Array<ArrayBuffer>
Where the character aims (rad, 0 faces +z).
Character.armour
armour:
Uint8Array<ArrayBuffer>
Body armour left (gear.ts): 0 to 200 points, spent before health on a bullet, a blow, half a blast.
Character.boardCar
boardCar:
Int16Array<ArrayBuffer>
The vehicle it is getting in (meaningful while boarding or entering is above 0; -1 on a client's twin).
Character.boardDoor
boardDoor:
Uint8Array<ArrayBuffer>
Which door it gets in by (an index into the doors boarding.ts lets it use for the seat).
Character.boarding
boarding:
Uint8Array<ArrayBuffer>
Ticks left to reach the door of the seat it is getting in (boarding.ts); 0 = not on its way to one.
Character.boardSeat
boardSeat:
Uint8Array<ArrayBuffer>
The seat it is getting in.
Character.body
body:
Uint8Array<ArrayBuffer>
Its body (character.ts' BODIES): 0 a person's, 1 a dog's (lower, lighter, quicker); set when it is spawned.
Character.by
by:
Uint16Array<ArrayBuffer>
The client id of the player who last hit it (a shot, a punch, a dart, a car); 0 for none.
Character.captive
captive:
Uint8Array<ArrayBuffer>
Held up (captives.ts): an index into CAPTIVE_STATES, 0 free, 1 its hands up, 2 kneeling, 3 restrained.
Character.captor
captor:
Uint16Array<ArrayBuffer>
The client id of the player who held it up or restrained it (0 nobody).
Character.climbing
climbing:
Uint8Array<ArrayBuffer>
The ladder it climbs (ladders.ts): its index in the level's ladders plus one; 0 when it climbs none.
Character.cooking
cooking:
Uint8Array<ArrayBuffer>
Ticks a grenade has been held with its pin out (0 = none); it goes off at the fuse.
Character.cooldown
cooldown:
Uint16Array<ArrayBuffer>
Ticks before another enter, exit or reset is accepted.
Character.cover
cover:
Uint8Array<ArrayBuffer>
Cover: 0 in the open, 1 hidden behind cover (cannot shoot or be shot), 2 popped up out of it.
Character.coverHeld
coverHeld:
Uint8Array<ArrayBuffer>
The cover key was held last tick (taking cover needs a fresh press).
Character.coverLow
coverLow:
Uint8Array<ArrayBuffer>
The cover is low (a car's hood, a low wall): hidden means crouching.
Character.coverYaw
coverYaw:
Float32Array<ArrayBuffer>
Direction into the cover (rad, 0 faces +z): the character moves across it and peeks past its end.
Character.cower
cower:
Uint8Array<ArrayBuffer>
Cowering where it hides (a target safe in its refuge): crouched in plain sight, 1 while it does.
Character.dart
dart:
Uint16Array<ArrayBuffer>
Ticks before a tranquilizer dart puts it to sleep (status.ts); 0 = none in it.
Character.down
down:
Uint16Array<ArrayBuffer>
Ticks left lying knocked down as a tumbling box; 0 = on its feet.
Character.draggedBy
draggedBy:
Uint16Array<ArrayBuffer>
Who drags it, plus one; 0 nobody.
Character.dragging
dragging:
Uint16Array<ArrayBuffer>
The body it drags (drag.ts), plus one; 0 none.
Character.drain
drain:
Uint16Array<ArrayBuffer>
Ticks its taser still owes its battery (weapons.ts): each shot adds a charge's worth, it pays one back a tick.
Character.entering
entering:
Uint8Array<ArrayBuffer>
Ticks left getting in at the door, facing it, before it is seated; 0 = not getting in.
Character.exiting
exiting:
Uint8Array<ArrayBuffer>
Ticks left standing at the door it just got out of, facing out; 0 = free to go.
Character.fallSpeed
fallSpeed:
Float32Array<ArrayBuffer>
The fastest it has fallen since it last stood (m/s, downward): what a landing hurts by (character.ts).
Character.gassed
gassed:
Uint16Array<ArrayBuffer>
Ticks left gassed (zones.ts): coughing, its aim swaying; 0 = clear.
Character.gear
gear:
Uint8Array<ArrayBuffer>
What it wears (gear.ts' GEAR_MASK, GEAR_SUIT): a bit field; 0 nothing.
Character.ghost
ghost:
Uint16Array<ArrayBuffer>
Ticks left as a ghost after respawning (griefing.ts): it passes through cars and people and takes no harm; 0 = solid.
Character.grounded
grounded:
Uint8Array<ArrayBuffer>
Standing on something.
Character.health
health:
Uint8Array<ArrayBuffer>
Hit points left; 0 = dead, lying down until it respawns.
Character.hiddenIn
hiddenIn:
Uint16Array<ArrayBuffer>
The dumpster its body was hidden in (drag.ts), plus one; 0 none.
Character.hold
hold:
Uint16Array<ArrayBuffer>
Ticks it has held the interaction key at what it works (a car's lock, a device: holds.ts); 0 = holding nothing.
Character.holdKind
holdKind:
Uint8Array<ArrayBuffer>
What it does there: an index into HOLD_KINDS (hold-kinds.ts).
Character.holdLatch
holdLatch:
Uint8Array<ArrayBuffer>
1 once a hold's work is done, until the key is let go: the next hold needs a new press.
Character.holdNeed
holdNeed:
Uint16Array<ArrayBuffer>
Ticks the work takes: done once hold reaches it.
Character.holdOn
holdOn:
Int16Array<ArrayBuffer>
What it works while hold is above 0: the car whose lock it picks, the device, the safe, the car it repairs.
Character.hostile
hostile:
Uint8Array<ArrayBuffer>
An enemy: a chaser the AI runs (drawn in its own colour), not a bystander.
Character.indoors
indoors:
Uint8Array<ArrayBuffer>
Gone indoors (a schedule's home): out of the world, its body disabled, 1 while there.
Character.inside
inside:
Int16Array<ArrayBuffer>
Vehicle entity it sits in, or -1.
Character.invincible
invincible:
Uint8Array<ArrayBuffer>
Shrugs off every hit (a debug switch); so does the car it drives.
Character.jackCar
jackCar:
Int16Array<ArrayBuffer>
The vehicle it is carjacking (meaningful while jackTicks is above 0; -1 on a client's twin).
Character.jackTicks
jackTicks:
Uint8Array<ArrayBuffer>
Ticks left of a carjack's beat before it takes the wheel (carjack.ts); 0 = not carjacking.
Character.jumpHeld
jumpHeld:
Uint8Array<ArrayBuffer>
The jump key was held last tick (a jump needs a fresh press).
Character.marksman
marksman:
Uint8Array<ArrayBuffer>
A police marksman (marksman.ts): its rifle reaches and hits as a sniper's, and pops a tyre.
Character.maxHealth
maxHealth:
Uint8Array<ArrayBuffer>
Its full hit points, set by a debug switch (setMaxHealth); 0 for its kind's.
Character.opened
opened:
Int16Array<ArrayBuffer>
The container (a crate, a locker, a car for its trunk, a body for its pockets) it has open, or -1 (interaction.ts).
Character.party
party:
Uint8Array<ArrayBuffer>
Its party (0 = none; the server numbers a room's parties): a party member is never carjacked nor put out of the car, and under rivals never hurt.
Character.peek
peek:
Uint8Array<ArrayBuffer>
Popped up out past the end of tall cover (leaning out of it): 1 while there.
Character.police
police:
Uint8Array<ArrayBuffer>
A police officer the AI runs (@foi/ai's police): drawn as police, and hurting one is a worse crime.
Character.pose
pose:
Uint8Array<ArrayBuffer>
What it is told to do where it stands (acts.ts' POSES: smoking, dancing, leaning…), an index; 0 nothing.
Character.ragdollTicks
ragdollTicks:
Uint16Array<ArrayBuffer>
Ticks it tumbles when a car knocks it down without killing it.
Character.role
role:
Uint8Array<ArrayBuffer>
What it is for (GAME_DESIGN §5.4): 0 nothing in particular, 1 a contact (interactables.ts' ROLE_CONTACT), who says "Talk" to the interaction key.
Character.rush
rush:
Uint16Array<ArrayBuffer>
Ticks left of an adrenaline shot (gear.ts): faster, no stun, no blur; 0 = none.
Character.seat
seat:
Uint8Array<ArrayBuffer>
Seat index while inside (0 = driver).
Character.sitting
sitting:
Int16Array<ArrayBuffer>
The seat it sits on (sitting.ts: its index among the level's spots), or −1.
Character.slot
slot:
Uint8Array<ArrayBuffer>
The selected slot of its inventory: the weapon it holds, what the use and drop keys act on (items.ts).
Character.spin
spin:
Uint8Array<ArrayBuffer>
Ticks the held weapon has spun up (a minigun's barrels, weapons.ts); 0 = still.
Character.status
status:
Uint8Array<ArrayBuffer>
Why it lies down (status.ts): stunned, knocked out or asleep; 0 (awake) for any other fall.
Character.stays
stays:
Uint8Array<ArrayBuffer>
Dead, it stays where it fell instead of coming back (a level's guard, whose body can be found).
Character.stepping
stepping:
Uint8Array<ArrayBuffer>
Ticks left held level after stepping up a kerb or a stair (character.ts): its stride carries the capsule over the edge before it settles.
Character.swimming
swimming:
Uint8Array<ArrayBuffer>
Swimming (water.ts): in water over its chest, afloat; 1 while it swims.
Character.weapon
weapon:
Uint8Array<ArrayBuffer>
The weapon it holds, an index into the weapon table: the selected slot's item's (weapons.ts' heldWeapon).
Character.weaponCooldown
weaponCooldown:
Uint8Array<ArrayBuffer>
Ticks before the weapon fires again.
Character.yaw
yaw:
Float32Array<ArrayBuffer>
Facing (rad, 0 faces +z): the aim.
Container
Container:
object
A crate or a locker (items.ts): its kind's index, and whether it is locked.
Container.kind
kind:
Uint8Array<ArrayBuffer>
Container.locked
locked:
Uint8Array<ArrayBuffer>
Device
Device:
object
A device a mission puts down (devices.ts): its kind's index (DEVICE_KINDS), its state (DEVICE_STATES), the ticks left on a bomb's fuse, its blast's size (an index of BLAST_SIZES), the reach of a fuse box's power (m), the ticks working it takes (0: its kind's), and whether the item its lock asks for is used up working it (a bomb planted).
Device.fuse
fuse:
Uint16Array<ArrayBuffer>
Device.hold
hold:
Uint16Array<ArrayBuffer>
Device.kind
kind:
Uint8Array<ArrayBuffer>
Device.radius
radius:
Float32Array<ArrayBuffer>
Device.size
size:
Uint8Array<ArrayBuffer>
Device.spend
spend:
Uint8Array<ArrayBuffer>
Device.state
state:
Uint8Array<ArrayBuffer>
Door
Door:
object
A door of the level (doors.ts): its index in the level, open (0 shut, 1 or 2 swung either way), locked (1 by a key's tag, 2 by a keypad's code); a gate's or a barrier's opening for a car (1 while it stands open by itself, to shut once the way is clear) and the ticks the way has been clear.
Door.auto
auto:
Uint8Array<ArrayBuffer>
Door.clear
clear:
Uint16Array<ArrayBuffer>
Door.index
index:
Uint16Array<ArrayBuffer>
Door.locked
locked:
Uint8Array<ArrayBuffer>
Door.open
open:
Uint8Array<ArrayBuffer>
Flyer
Flyer:
object
Something that flies (flyers.ts): its class (FLYER_CLASSES), its hit points, its state (flying, downed and falling, a wreck on the ground) and the ticks it has been in it, whether it is the police's; its input (the horizontal velocity it asks for, m/s, and the height it asks to fly at, m); where it faces (rad) and how it moves (m/s). A helicopter's searchlight (flyers.ts): its hit points (0 shot out, or none), whether it is on, where its pool of light is on the ground (m) and where its input asks for it (whether it asks at all); its door gun: whether its input asks for a shot, at what point (m), and the ticks before it can fire again.
Flyer.aimX
aimX:
Float32Array<ArrayBuffer>
Flyer.aimY
aimY:
Float32Array<ArrayBuffer>
Flyer.aimZ
aimZ:
Float32Array<ArrayBuffer>
Flyer.cls
cls:
Uint8Array<ArrayBuffer>
Flyer.fire
fire:
Uint8Array<ArrayBuffer>
Flyer.gunCooldown
gunCooldown:
Uint16Array<ArrayBuffer>
Flyer.health
health:
Uint8Array<ArrayBuffer>
Flyer.light
light:
Uint8Array<ArrayBuffer>
Flyer.lightOn
lightOn:
Uint8Array<ArrayBuffer>
Flyer.lightX
lightX:
Float32Array<ArrayBuffer>
Flyer.lightZ
lightZ:
Float32Array<ArrayBuffer>
Flyer.police
police:
Uint8Array<ArrayBuffer>
Flyer.state
state:
Uint8Array<ArrayBuffer>
Flyer.ticks
ticks:
Uint16Array<ArrayBuffer>
Flyer.vx
vx:
Float32Array<ArrayBuffer>
Flyer.vy
vy:
Float32Array<ArrayBuffer>
Flyer.vz
vz:
Float32Array<ArrayBuffer>
Flyer.wantLight
wantLight:
Uint8Array<ArrayBuffer>
Flyer.wantLightX
wantLightX:
Float32Array<ArrayBuffer>
Flyer.wantLightZ
wantLightZ:
Float32Array<ArrayBuffer>
Flyer.wantVx
wantVx:
Float32Array<ArrayBuffer>
Flyer.wantVz
wantVz:
Float32Array<ArrayBuffer>
Flyer.wantY
wantY:
Float32Array<ArrayBuffer>
Flyer.yaw
yaw:
Float32Array<ArrayBuffer>
NailStrip
NailStrip:
object
A nail strip laid across a road (nails.ts; its pose is its centre, turned to the heading it stops): its length now and in full (m), how fast it unrolls (m/s; negative reeled in, 0 still), the end that stays put (ax, az, m) and the way it unrolls from there (a unit vector across the road); what it is (kind: 0 nails, 1 an oil slick a car's dispenser dropped, mods.ts) and the ticks it lies there before it is gone (ttl, 0 for as long as whoever laid it leaves it).
NailStrip.ax
ax:
Float32Array<ArrayBuffer>
NailStrip.az
az:
Float32Array<ArrayBuffer>
NailStrip.full
full:
Float32Array<ArrayBuffer>
NailStrip.kind
kind:
Uint8Array<ArrayBuffer>
NailStrip.length
length:
Float32Array<ArrayBuffer>
NailStrip.rate
rate:
Float32Array<ArrayBuffer>
NailStrip.ttl
ttl:
Uint16Array<ArrayBuffer>
NailStrip.ux
ux:
Float32Array<ArrayBuffer>
NailStrip.uz
uz:
Float32Array<ArrayBuffer>
NetOwner
NetOwner:
object
Which client owns the entity (0 = nobody).
NetOwner.clientId
clientId:
Uint16Array<ArrayBuffer>
Pedestrian
Pedestrian:
object
A pedestrian's wandering state (server only).
Pedestrian.ahead
ahead:
Float32Array<ArrayBuffer>
Where a dog on its lead ranges to, in its walker's frame (m): ahead of the walker, and to its left.
Pedestrian.base
base:
Uint16Array<ArrayBuffer>
Its own node: a commuter's and a jogger's start, a shopkeeper's door's.
Pedestrian.commute
commute:
Uint8Array<ArrayBuffer>
A commuter going one way only, in at its goal (1: to work, 2: home); 0 walks back and forth.
Pedestrian.dirX
dirX:
Float32Array<ArrayBuffer>
Walking direction (zero while standing).
Pedestrian.dirZ
dirZ:
Float32Array<ArrayBuffer>
Pedestrian.dog
dog:
Uint8Array<ArrayBuffer>
What a dog is doing, an index into DOG_MODES (dogs.ts).
Pedestrian.face
face:
Float32Array<ArrayBuffer>
The way it faces at its place (a vendor's, a queuer's: the yaw).
Pedestrian.flee
flee:
Uint16Array<ArrayBuffer>
Ticks left running away from gunfire (0 = not fleeing).
Pedestrian.follow
follow:
Int16Array<ArrayBuffer>
The person a stray follows (its entity), or −1.
Pedestrian.from
from:
Uint16Array<ArrayBuffer>
The pavement node it came from.
Pedestrian.goal
goal:
Uint16Array<ArrayBuffer>
The pavement node it is headed for (a commuter's destination, a jogger's next corner); a shopkeeper's door (an index into the doors).
Pedestrian.homeX
homeX:
Float32Array<ArrayBuffer>
Where it was spawned: it respawns there, and a range dummy never leaves it.
Pedestrian.homeY
homeY:
Float32Array<ArrayBuffer>
Pedestrian.homeZ
homeZ:
Float32Array<ArrayBuffer>
Pedestrian.idle
idle:
Uint16Array<ArrayBuffer>
Ticks a dog's walker has stood still: it sits after a while.
Pedestrian.lead
lead:
Uint8Array<ArrayBuffer>
A dog on its lead (1), or off it.
Pedestrian.loopA
loopA:
Uint16Array<ArrayBuffer>
A jogger's loop: its two other corners.
Pedestrian.loopB
loopB:
Uint16Array<ArrayBuffer>
Pedestrian.mode
mode:
Uint8Array<ArrayBuffer>
What it is doing, an index into PEDESTRIAN_MODES.
Pedestrian.node
node:
Uint16Array<ArrayBuffer>
The pavement node it walks to, or NO_NODE off the pavements (wandering as it likes).
Pedestrian.owner
owner:
Int16Array<ArrayBuffer>
A dog's walker (its entity), or −1: kept both ways with the walker's pet (dogs.ts).
Pedestrian.pet
pet:
Int16Array<ArrayBuffer>
A dog walker's dog (its entity), or −1.
Pedestrian.roam
roam:
Uint8Array<ArrayBuffer>
Wanders (1) or stands at its post as a range dummy (0).
Pedestrian.role
role:
Uint8Array<ArrayBuffer>
Its role, an index into PEDESTRIAN_ROLES (pedestrians.ts): its look, its walk, its fright.
Pedestrian.side
side:
Float32Array<ArrayBuffer>
Pedestrian.spot
spot:
Int16Array<ArrayBuffer>
A vendor's stand, a queuer's stop, a sitter's seat: an index into the level's spots; −1 none.
Pedestrian.stuck
stuck:
Uint8Array<ArrayBuffer>
Ticks spent walking without getting anywhere.
Pedestrian.taut
taut:
Uint8Array<ArrayBuffer>
Ticks a sniffing dog's lead has been taut.
Pedestrian.toX
toX:
Float32Array<ArrayBuffer>
What a dog makes for (m, in the world): the thing it sniffs at, the way it bolts.
Pedestrian.toZ
toZ:
Float32Array<ArrayBuffer>
Pedestrian.until
until:
Uint16Array<ArrayBuffer>
Ticks until the next decision.
Pickup
Pickup:
object
Items lying on the ground (items.ts): which item of the room's table, how many.
Pickup.count
count:
Uint16Array<ArrayBuffer>
Pickup.item
item:
Uint16Array<ArrayBuffer>
Piece
Piece:
object
A light piece of the level (breakables.ts).
Piece.loose
loose:
Uint8Array<ArrayBuffer>
Knocked loose (1) or planted (0).
Piece.placement
placement:
Uint16Array<ArrayBuffer>
Its placement's index in the level.
PlayerInput
PlayerInput:
object
The input applied on the current tick; persists until overwritten. A player's input lands on their character and is forwarded to the vehicle they drive. The fields are those of VehicleInputLike, its flags stored as 0 or 1.
PlayerInput.action
action:
Uint8Array<ArrayBuffer>
PlayerInput.aim
aim:
Float32Array<ArrayBuffer>
PlayerInput.aimDistance
aimDistance:
Float32Array<ArrayBuffer>
PlayerInput.boost
boost:
Uint8Array<ArrayBuffer>
PlayerInput.cover
cover:
Uint8Array<ArrayBuffer>
PlayerInput.dispense
dispense:
Uint8Array<ArrayBuffer>
PlayerInput.drop
drop:
Uint8Array<ArrayBuffer>
PlayerInput.expose
expose:
Uint8Array<ArrayBuffer>
PlayerInput.fire
fire:
Uint8Array<ArrayBuffer>
PlayerInput.handbrake
handbrake:
Uint8Array<ArrayBuffer>
PlayerInput.interact
interact:
Uint8Array<ArrayBuffer>
PlayerInput.nextClass
nextClass:
Uint8Array<ArrayBuffer>
PlayerInput.nitro
nitro:
Uint8Array<ArrayBuffer>
PlayerInput.phone
phone:
Uint8Array<ArrayBuffer>
PlayerInput.reset
reset:
Uint8Array<ArrayBuffer>
PlayerInput.resetLevel
resetLevel:
Uint8Array<ArrayBuffer>
PlayerInput.run
run:
Uint8Array<ArrayBuffer>
PlayerInput.service
service:
Uint8Array<ArrayBuffer>
PlayerInput.siren
siren:
Uint8Array<ArrayBuffer>
PlayerInput.slot
slot:
Uint8Array<ArrayBuffer>
PlayerInput.steer
steer:
Float32Array<ArrayBuffer>
PlayerInput.target
target:
Uint8Array<ArrayBuffer>
PlayerInput.throttle
throttle:
Float32Array<ArrayBuffer>
PlayerInput.transfer
transfer:
Int16Array<ArrayBuffer>
PlayerInput.use
use:
Uint8Array<ArrayBuffer>
Projectile
Projectile:
object
A rocket in flight or a thrown grenade.
Projectile.dx
dx:
Float32Array<ArrayBuffer>
Flight direction of a rocket (unit, horizontal).
Projectile.dz
dz:
Float32Array<ArrayBuffer>
Projectile.kind
kind:
Uint8Array<ArrayBuffer>
Weapon index that fired it.
Projectile.on
on:
Uint16Array<ArrayBuffer>
The vehicle a charge rides.
Projectile.owner
owner:
Uint16Array<ArrayBuffer>
Client id of the shooter (for colouring).
Projectile.ox
ox:
Float32Array<ArrayBuffer>
Where on it (m, in its frame).
Projectile.oy
oy:
Float32Array<ArrayBuffer>
Projectile.oz
oz:
Float32Array<ArrayBuffer>
Projectile.shooter
shooter:
Uint16Array<ArrayBuffer>
Entity id of the shooter (its body is never hit by its own rocket).
Projectile.stuck
stuck:
Uint8Array<ArrayBuffer>
Where a charge stuck (ordnance.ts): 0 in flight, 1 on the ground where it landed, 2 on the vehicle on, riding it at ox, oy, oz in its frame.
Projectile.ttl
ttl:
Uint16Array<ArrayBuffer>
Ticks left before it blows up.
Terminal
Terminal:
object
A terminal (interactables.ts): its kind's index, and what the interaction key says at it (0 use, 1 hack).
Terminal.kind
kind:
Uint8Array<ArrayBuffer>
Terminal.verb
verb:
Uint8Array<ArrayBuffer>
Trailer
Trailer:
object
A trailer: the vehicle towing it.
Trailer.tractor
tractor:
Int16Array<ArrayBuffer>
Transform
Transform:
object
World pose, mirrored from Rapier after each step (or written by the projectile system).
Transform.qw
qw:
Float32Array<ArrayBuffer>
Transform.qx
qx:
Float32Array<ArrayBuffer>
Transform.qy
qy:
Float32Array<ArrayBuffer>
Transform.qz
qz:
Float32Array<ArrayBuffer>
Transform.x
x:
Float32Array<ArrayBuffer>
Transform.y
y:
Float32Array<ArrayBuffer>
Transform.z
z:
Float32Array<ArrayBuffer>
Twin
Twin:
object
A client's twin of a server entity: a proxy (1) is placed by the snapshots and never simulated (proxy.ts); 0 on the server, and for what a client predicts.
Twin.proxy
proxy:
Uint8Array<ArrayBuffer>
Vehicle
Vehicle:
object
A drivable vehicle: its class, its trailer entity (-1 for none), its paint (0 its class's or driver's colour, 1 and up a respray's, garages.ts), who owns it (an index into OWNER_KINDS, locks.ts: nobody, a player, an NPC, a mission) and which one (a player's client id, an NPC's entity), whether it is locked, and whether it has the pursuit tune (1: an interceptor's engine, vehicle-classes.ts' PURSUIT_TUNE).
Vehicle.cls
cls:
Uint8Array<ArrayBuffer>
Vehicle.locked
locked:
Uint8Array<ArrayBuffer>
Vehicle.owner
owner:
Uint8Array<ArrayBuffer>
Vehicle.ownerId
ownerId:
Uint16Array<ArrayBuffer>
Vehicle.paint
paint:
Uint8Array<ArrayBuffer>
Vehicle.pursuit
pursuit:
Uint8Array<ArrayBuffer>
Vehicle.trailer
trailer:
Int16Array<ArrayBuffer>
VehicleState
VehicleState:
object
Per-vehicle driving state (trailers use the contact, tyre and speed fields).
VehicleState.actionCooldown
actionCooldown:
Uint16Array<ArrayBuffer>
Ticks before another reset or class change is accepted.
VehicleState.boost
boost:
Float32Array<ArrayBuffer>
Boost meter, 1 = full; drains while boosting, refills otherwise.
VehicleState.boosting
boosting:
Uint8Array<ArrayBuffer>
Boosting this tick.
VehicleState.boostSpent
boostSpent:
Uint8Array<ArrayBuffer>
The meter ran dry while the boost was still held; cleared once the key is let go of.
VehicleState.charges
charges:
Uint8Array<ArrayBuffer>
VehicleState.derelict
derelict:
Uint8Array<ArrayBuffer>
A derelict (a wreck spawner's, spawners.ts): wrecked from the start, it never catches fire by itself, only from a shot, a blast or a neighbour's fire (fire.ts).
VehicleState.dispenser
dispenser:
Uint8Array<ArrayBuffer>
Its rear dispenser (mods.ts): what it drops (0 none, 1 caltrops, 2 oil) and the charges left.
VehicleState.dormant
dormant:
Uint8Array<ArrayBuffer>
Dormant (dormant.ts): 1 while it dozes, a still body the step does not simulate until something touches it, hurts it or gets in; 0 awake. A trailer's is its tractor's.
VehicleState.dozes
dozes:
Uint8Array<ArrayBuffer>
Whether it dozes when left alone: 0 never (a car always simulated), 1 when it has stood still, empty and not burning with no player near for a while, 2 freshly parked by a dormant spawner, dozing as soon as it has settled.
VehicleState.fallSpeed
fallSpeed:
Float32Array<ArrayBuffer>
Largest downward speed seen since the wheels last left the ground (m/s).
VehicleState.fire
fire:
Uint8Array<ArrayBuffer>
Its fire (fire.ts): 0 none, 1 burning, 2 blown up and still burning, 3 a burnt-out wreck.
VehicleState.fireBy
fireBy:
Uint16Array<ArrayBuffer>
The client id of whoever set it alight (0 nobody's doing): its blast is theirs.
VehicleState.flood
flood:
Float32Array<ArrayBuffer>
How flooded a wrecked boat is (boat.ts): 0 afloat to 1 gone under, its buoyancy failing as it rises.
VehicleState.fuelled
fuelled:
Uint16Array<ArrayBuffer>
Ticks left of a fill-up's faster boost (fuel.ts): it recharges twice as fast; 0 none.
VehicleState.fuse
fuse:
Uint16Array<ArrayBuffer>
Ticks of the fire's fuse left (burning), or of the wreck's blaze (blown up).
VehicleState.grappler
grappler:
Uint8Array<ArrayBuffer>
The Grappler (C3, grappler.ts): a cruiser's bumper net fitted (1); a car its net holds by a rear wheel (hooked 1) and the car that holds it (hookedBy, −1: none, or a client's twin that does not know), and the ticks its driver has pulled hard in reverse.
VehicleState.gripFront
gripFront:
Float32Array<ArrayBuffer>
Front axle side grip.
VehicleState.gripRear
gripRear:
Float32Array<ArrayBuffer>
Rear axle side grip.
VehicleState.handbrake
handbrake:
Uint8Array<ArrayBuffer>
Handbrake held this tick.
VehicleState.health
health:
Uint8Array<ArrayBuffer>
Hit points left; 0 = wrecked (the car no longer answers its driver).
VehicleState.hooked
hooked:
Uint8Array<ArrayBuffer>
VehicleState.hookedBy
hookedBy:
Int16Array<ArrayBuffer>
VehicleState.hookPull
hookPull:
Uint8Array<ArrayBuffer>
VehicleState.idle
idle:
Uint16Array<ArrayBuffer>
Ticks it has been left alone (see dozes): it dozes once they reach the doze time.
VehicleState.jetPressure
jetPressure:
Uint8Array<ArrayBuffer>
Ticks its water jet has built up pressure with the trigger held (jets.ts): it sprays once full.
VehicleState.jetting
jetting:
Uint8Array<ArrayBuffer>
VehicleState.jetYaw
jetYaw:
Float32Array<ArrayBuffer>
VehicleState.landing
landing:
Float32Array<ArrayBuffer>
Seconds of dulled control left after a hard landing.
VehicleState.limp
limp:
Uint16Array<ArrayBuffer>
Ticks left of a run-flat's limp (a tyre a strip would have popped), and of traction lost to an oil slick.
VehicleState.mods
mods:
Uint8Array<ArrayBuffer>
Its upgrades from a garage (mods.ts' MOD bits: run-flats, a bull bar, armour plating).
VehicleState.nitro
nitro:
Uint8Array<ArrayBuffer>
Nitro charges left (mods.ts), and the ticks left of the burn of one fired (0 none).
VehicleState.nitroTicks
nitroTicks:
Uint8Array<ArrayBuffer>
VehicleState.oiled
oiled:
Uint16Array<ArrayBuffer>
VehicleState.parked
parked:
Uint8Array<ArrayBuffer>
The parking brake: 0 driven, 1 parked (nobody has driven it since it was spawned or left), 2 parked and held where it came to rest (parkX, parkY, parkZ).
VehicleState.parkX
parkX:
Float32Array<ArrayBuffer>
Where a parked car's locked tyres hold it (m).
VehicleState.parkY
parkY:
Float32Array<ArrayBuffer>
VehicleState.parkZ
parkZ:
Float32Array<ArrayBuffer>
VehicleState.pendingNextClass
pendingNextClass:
Uint8Array<ArrayBuffer>
VehicleState.pendingReset
pendingReset:
Uint8Array<ArrayBuffer>
A reset or a class change asked for during the cooldown, applied when it ends.
VehicleState.pvx
pvx:
Float32Array<ArrayBuffer>
Last tick's velocity: a sudden change is an impact that costs hit points.
VehicleState.pvy
pvy:
Float32Array<ArrayBuffer>
VehicleState.pvz
pvz:
Float32Array<ArrayBuffer>
VehicleState.siren
siren:
Uint8Array<ArrayBuffer>
The siren wails (a class with a siren, its driver asking for it).
VehicleState.slip
slip:
Float32Array<ArrayBuffer>
Rear-axle lateral slip (m/s).
VehicleState.soaked
soaked:
Uint16Array<ArrayBuffer>
VehicleState.speed
speed:
Float32Array<ArrayBuffer>
Signed forward speed (m/s).
VehicleState.stalled
stalled:
Uint16Array<ArrayBuffer>
Ticks its engine stays dead after an EMP's pulse (ordnance.ts); 0 = it runs.
VehicleState.steer
steer:
Float32Array<ArrayBuffer>
Smoothed steering, -1..1.
VehicleState.tank
tank:
Float32Array<ArrayBuffer>
Its water jet's tank (jets.ts), 1 full; the jet sprays this tick (1) at jetYaw (rad); ticks left of a soaking that keeps it from catching fire.
VehicleState.tracked
tracked:
Uint8Array<ArrayBuffer>
A GPS tag stuck on the car (C4): the police know where it is.
VehicleState.tyres
tyres:
Uint8Array<ArrayBuffer>
Bitmask of flat tyres, bit i = wheel i.
VehicleState.wear
wear:
Float32Array<ArrayBuffer>
What an armoured vehicle's hits left of a hit point, carried over to the next (damage.ts).
VehicleState.wheelContact
wheelContact:
Uint8Array<ArrayBuffer>
Bitmask of wheels in contact with the ground.
VehicleState.wheelspin
wheelspin:
Float32Array<ArrayBuffer>
How hard the driven tyres spin, 0..1.
Velocity
Velocity:
object
World velocities, mirrored from Rapier after each step.
Velocity.vx
vx:
Float32Array<ArrayBuffer>
Velocity.vy
vy:
Float32Array<ArrayBuffer>
Velocity.vz
vz:
Float32Array<ArrayBuffer>
Velocity.wx
wx:
Float32Array<ArrayBuffer>
Velocity.wy
wy:
Float32Array<ArrayBuffer>
Velocity.wz
wz:
Float32Array<ArrayBuffer>
Zone
Zone:
object
An area that acts over time (zones.ts): its kind's index (ZONE_KINDS: tear gas, smoke, foam, a ground fire), its full reach (m), the ticks it has lived and lives in all, and the client id of whoever made it (0 for nobody's, an NPC's, the police's).
Zone.age
age:
Uint16Array<ArrayBuffer>
Zone.kind
kind:
Uint8Array<ArrayBuffer>
Zone.life
life:
Uint16Array<ArrayBuffer>
Zone.owner
owner:
Uint16Array<ArrayBuffer>
Zone.radius
radius:
Float32Array<ArrayBuffer>
cameras
cameras:
number[]
Defined in: packages/sim/src/world.ts:175
The security cameras' entities by their index in the level (cameras.ts).
cash
cash:
Map<number,number>
Defined in: packages/sim/src/world.ts:180
Each player's Cash ($), by client id (cash.ts): the one purse missions pay into, cash picked up adds to, and garages, resprays, shops and fines take from.
clock
clock:
RoomClock
Defined in: packages/sim/src/world.ts:190
The room clock (@foi/shared's clock.ts): the time of day as a function of the tick.
colliders
colliders: (
Collider|undefined)[]
Defined in: packages/sim/src/world.ts:143
Collider per character entity id (excluded from the character's own ground probe) and per light piece.
controllers
controllers: (
DynamicRayCastVehicleController|undefined)[]
Defined in: packages/sim/src/world.ts:141
Vehicle controller per entity id.
doors
doors:
number[]
Defined in: packages/sim/src/world.ts:167
The doors' entities by their index in the level (doors.ts).
ecs
ecs:
World
Defined in: packages/sim/src/world.ts:133
The bitECS world.
events
events:
SimEvent[]
Defined in: packages/sim/src/world.ts:157
Shots, blasts, hits and carjacks of the current tick (cleared at the start of each step).
generations
generations:
Uint8Array
Defined in: packages/sim/src/world.ts:147
Each entity id's life, turned over whenever the id is freed (lifetimes.ts): what tells one entity from the next under one id.
hospitals
hospitals:
SpawnPoint[]
Defined in: packages/sim/src/world.ts:188
Where players come back after going down under a game's respawn: hospital, when the level or the game marks such places; the players' spawn points otherwise.
items
items: readonly
ItemDef[]
Defined in: packages/sim/src/world.ts:161
The room's items (items.ts): the common ones, then the game's; a stack names an item by its index here.
joints
joints: (
ImpulseJoint|undefined)[]
Defined in: packages/sim/src/world.ts:149
The hitch joint per trailer entity id.
level
level:
LevelData
Defined in: packages/sim/src/world.ts:151
The level this world was built from.
lifts
lifts:
RigidBody[]
Defined in: packages/sim/src/world.ts:198
The lifts' platforms by their index in the level (lifts.ts).
locks
locks: (
string|undefined)[]
Defined in: packages/sim/src/world.ts:165
The tag that unlocks each locked door or container, and each car's key, by entity id.
movingGround
movingGround:
Map<number,MovingGround>
Defined in: packages/sim/src/world.ts:200
The ground that moves, by collider handle: a lift's platform, an escalator's slope (lifts.ts).
physics
physics:
World
Defined in: packages/sim/src/world.ts:137
The Rapier physics world.
pieces
pieces:
Map<number,number>
Defined in: packages/sim/src/world.ts:145
The light pieces' entities by their placement's index (breakables.ts).
respawns
respawns: (
SpawnPoint|undefined)[]
Defined in: packages/sim/src/world.ts:169
Where a player's character comes back after lying dead, by entity id, when the server set a place (griefing.ts' setRespawn); the nearest spawn point otherwise.
rng
rng: () =>
number
Defined in: packages/sim/src/world.ts:155
Seeded random numbers in [0, 1).
Returns
number
rules
rules:
SimRules
Defined in: packages/sim/src/world.ts:159
The game's rules.
sky
sky:
SkyNow
Defined in: packages/sim/src/world.ts:194
The weather this tick, as the systems read it (weather.ts's skySystem).
slots
slots: (
ItemStack[] |undefined)[]
Defined in: packages/sim/src/world.ts:163
What each entity holds, by entity id: a character's inventory, a container's, a car's trunk (created when first used).
spawners
spawners:
SpawnerState[]
Defined in: packages/sim/src/world.ts:173
The level's vehicle spawners at work, by their index in the level: the server's alone (spawners.ts).
spotTaken
spotTaken:
Map<number,number>
Defined in: packages/sim/src/world.ts:184
Who sits on each seat, by its index among the level's spots (sitting.ts).
stock
stock: (
ShopStock|undefined)[]
Defined in: packages/sim/src/world.ts:186
What each shop's counter sells, by entity id (interactables.ts): the items and their prices.
stored
stored:
Map<number,StoredCar[]>
Defined in: packages/sim/src/world.ts:171
Each player's cars kept in the garages, by client id, oldest first (garages.ts).
substeps
substeps:
number
Defined in: packages/sim/src/world.ts:196
The physics steps the last tick took (substeps.ts, setPhysicsSubsteps).
tick
tick:
number
Defined in: packages/sim/src/world.ts:153
Number of steps taken so far.
weather
weather:
RoomWeather
Defined in: packages/sim/src/world.ts:192
The room's weather (@foi/shared's weather.ts): its seed, its climate and a script in force; read at the clock's minutes.