SubRig
The submersible slice of DEADLIGHT. One entity in `scenes.main` carries this component; it builds the vehicle *Nautile* and drives everything the vehicle does for the whole 94 seconds.
SubRig
The submersible slice of DEADLIGHT. One entity in scenes.main carries this
component; it builds the vehicle Nautile and drives everything the vehicle
does for the whole 94 seconds.
local rig = entity.find("SubRig").component.get("SubRig")
rig.status() -- where the vehicle is, what it is doing, what is alive
rig.rebuildRig() -- tear the vehicle down and build it again
What it owns
| name | what it is |
|---|---|
Nautile | the vehicle. Rides Film.subPoseAt(t) exactly. |
NautileLightPort / NautileLightStbd | the two 6,000 K HMI floods |
NautileSpot | the 4,300 K forward spot |
NautileArm | the manipulator base; its joints are NautileArmShoulder, NautileArmElbow, NautileArmWrist |
Everything under Nautile is spawned temporary, so a rebuild leaves nothing
behind and the shared commit gate never sees seventy-odd hull parts.
How it moves
Position is Film.subPoseAt(t) and is never adjusted — the camera is framed
against those keys. The performance is entirely in rotation: heading from the
path (level and slowly turning through movement I, because a ballasted descent
hangs level rather than flying), bank from the turn rate, trim wobble on top.
deadlight.sub.drive holds all of it as pure functions of film time.
The lamps are the film's lighting model
Below 200 m there is no other light. Each lamp is a SpotLight on a pan/tilt
pivot plus a particle beam cone — the suspended matter the light scatters
off, drawn rather than marched. Through the shots that are about what the
light finds, the pivots are aimed at a world point that moves, which is what
"the two cones slide over the bridge front like a finger reading a page" is.
Those shots also narrow the cone and open the throw, so a flood that works at
four metres reads as a searchlight at forty.
On the way down only the forward spot runs: that is the ONE hard cone raking the void in shot 4. The floods come up as the floor arrives.
Its clock is the film's
The five emitters (three beam cones, the thruster wash, the ballast bubbles)
are stepped BY HAND, one Film.DT per film frame, from update /
editorUpdate. Nothing here runs on wall time, and a held frame is the same
picture twice. A seek runs thousands of film frames inside one rendered frame,
so the emitter debt is capped at CATCH_UP frames — catching up is worth about
two particle lifetimes and dispatching the full backlog wedges the frame loop.
Fields
| field | what it does |
|---|---|
floodBeamRate | particles/second in one HMI flood's cone |
spotBeamRate | particles/second in the forward spot's cone |
Scoped to this part · feeds back into the world's score.