NPC fleet
…
Master off pauses the host bot (rows stay). Active count enables the first N miners by id; the rest stay disabled. Haul fill is % of max hold — min = max uses that exact % for every bot (default 10 / 10 → Scout 8000 m³ hauls at 800). A range staggers bots across it. When attacked (default Run): Run = every miner flees to the nearest station bubble and sits (no return fire); Fight = every armed miner locks that attacker and fires until one ship is destroyed; Random = each miner rolls once on first hit — Fight chance % is the chance they fight (else run). A miner with no Battle Laser / rail / missile still runs. Pirates are a separate pool (miner count does not turn them on). They spawn one at a time at the spawn-range km from Lumen Rocks (first spawn is immediate, then every N seconds), hunt flying humans, and keep moving. Cap 0 parks extras. All off does not disable pirates. Takes effect within a few seconds.
Live 5 s (default)
WS RTT —
How often every pilot (players and NPCs) persist pose on the wire, and how often far NPC ships refresh. Event-on-change (warp / dest / mine / dock / fit) still publishes immediately. Edit seconds, milliseconds, or Hertz — the others match. Realtime stores the value and pushes it to all clients. Range 0.01–120 s. Default 5 s (0.2 Hz). Far roster filter stays NPC-only. Meta actual is this browser’s persist heartbeat only (not dest / intent publishes). Each player and bot pings this socket every 5 s; RTT is the round trip. Ghost one-way uses (host RTT + viewer RTT) / 2.
Live 80 ms (~12.5 Hz, default)
How often realtime fans the room roster to human browsers (the ~80 ms push). Lower is more frequent and more bandwidth. Realtime stores the value and the running loop picks it up on the next due-check. Range 10–2000. Default 80. Meta actual is how often this browser receives roster (includes network / skipped frames).
Live 20 Hz (default)
How often host bots and headed-lease brains think (goal / mine / dock). Both poll at 10 ms and think when due (start-to-start; live Hz, no loop restart). Telem follows this clock. Host flight is a separate ~60 Hz loop (same idea as lease rAF). Realtime stores the value and pushes it to all NPCs. Range 5–60. Default 20. Meta actual is host tick cycle time (lease brains are not in that poll).
Host brain
Idle
Safe host bounce: persist last poses, wait for in-flight mine/dock/unload (up to 12 s), then restart the npc-bot process. Headed leases stay with their browsers. Meshes may flicker for a few seconds. Admin only.
Live tuning
Live · all defaults
One pack for remotes feel, warp start/exit, dock waits, and near-human roster. Warp cruise accel is the launch ramp; warp cruise decel is the exit ramp (0 = drop to hull cruise at the ring). Time fields show both units — edit either and the other matches. Realtime stores the values and pushes them to every player and NPC. Save sends all thirteen fields.
NPC fleet assets
…
Totals across ship holds, station lockers, and industrial structure storage (refinery ore / refined / factory). Read-only.
NPC headed lease
| # |
alias |
mode |
goal |
hold |
step |
act |
Lease: off (host owns ACT)
Lease from the Agents table (Perf), Lease next 10 for the next available enabled bots (lowest ids), or Lease all for every enabled bot that is not already leased (no hard cap — browser load is the limit). Leased bots show here — Release / Spectate per row, or Release all. Your browser runs THINK+ACT; host stands down those agents.
NPC spectate
Nav Pilots row Spectate (any range), Agents table Spectate, or banner Exit — swaps HUD / Nav / Mine·Dock onto that ship. Banner Ship is read-only.
NPC tick
…
- Supervisor wall
- —
- Agents meta
- —
- Tick ms cpu
- —
- Updated file
- —
Phases (ms) · window —
| phase |
kind |
latest |
avg |
hi |
note |
Agents · click headers to sort · Hz / cycle = full loop · tick = work only · rtt = socket ping
| # |
act |
Hz |
cycle |
tick |
mode |
rtt |
flight |
presence |
ws |
http |
profile |
hold |
pose |
stuck |
think |
logic |
step |
What do these numbers mean?
Host bot: per-agent loops (~40 Hz each; shared state). File updates at most every 2s; this panel polls ~every 2.5s.
Phase table columns are latest · avg · hi over the last 30 polls.
Highlighted rows are relatively hot in that window. Supervisor wall vs agent-sum section are separated.
Agents table lists the enabled fleet (default: slowest first by window-avg tick; click headers to sort); timing cells are latest ms. rtt is that bot’s own realtime socket ping (not the ws CPU column). Host-ticked rows show live modes; headed-lease stand-downs show mode leased (also listed on the NPC tab). Row act: Lease / Release / Spectate. Pirate step includes km, inbound vs ring, W (thrust), aimed, kph, hull cruise, and whether a flying human is at the rocks.
Kind tags: API HTTP,
DB MySQL,
WS realtime socket,
file host disk,
cpu in-process,
wall loop clock,
meta counts.
- Supervisor wall
- Roster/flush loop only (ms). Not a fleet tick barrier — each agent has its own loop.
- Agents meta
- How many runners have active per-agent loops (batch is CLI-compat only).
- Tick ms cpu
- Avg / max agent tick spent. Max > target period (~25 ms @ 40 Hz) → that agent’s Hz drops (“Hot agent”).
- Updated file
- Age of
tick-status.json when Admin last read it.
Supervisor phases (not a shared agent barrier)
- roster file API
- Read
roster-rev; realtime HTTP /npc/roster on admin bump (or 60s backup).
- runners cpu
- Create/teardown in-process agent runners to match the roster.
- ticks cpu
- Hottest recent agent tick ms (not a fleet barrier — agents loop independently).
- saveFlight WS
- Realtime flight persist (presence
state, in-tick).
- goal WS
- NPC goal/target/channel updates on each bot’s presence WS (writes
pbi_npc_agents). Supervisor phase stays ~0.
- unload WS
- Per-agent hold unload at station/refinery (player-path WebSocket).
- dock WS
- Realtime WS dock (player path, in-tick).
- undock WS
- Realtime WS undock (player path, in-tick).
- mine WS
- Realtime WS mine (player path, in-tick).
- other file
- Leftover wall time (flight-log stamp heartbeat, bookkeeping, timer drift).
Agent sums (inside ticks · parallel · not additive to Loop)
- flight cpu
- Autopilot + physics substeps for each agent.
- presence WS
- Per-agent realtime WebSocket pose publishes (may show pub count).
- ws WS
- Realtime mine/dock/undock/unload RPCs (player-path WebSocket — not PHP API).
- http API
- Loopback HTTP helpers (room map, visual — haul dest is the room-map atlas, not
bot-location-xyz).
- profile API
- Occasional
/game/me / bootstrap profile work.
- hold API
- Hold / inventory refresh work when forced.
- pose cpu
- Origin wipe / DB pose recover.
- stuck cpu
- Stuck-watch recovery plans.
- think cpu
- Goal / nav plan CPU (not WS waits).
- logic
- On slow-agent rows: tick time not attributed to the buckets above.
Telemetry recording
Off
Master switch: turns NPC telemetry and the AP black box on or off together. Use the individual toggles below to control one side only.
NPC black box
Off
Server ring (~5 min @ 40 Hz) under ~/logs/pbi-npc/. No download — ask an agent to fetch when needed.
NPC smoke
Idle
Browser button queues the host test (Ore Runner One, ~8–15 min): mine → Factory unload → station Maintain 5 km. Progress updates here; full telemetry uploads when finished.
AP flight log
Off
Admin-only ~40 Hz (25 ms) ring (~5 min / 12000 samples). Download JSON after a weird Autopilot moment, or upload for analysis.
Each sample also stores Ore Runner One’s rendered pose when present (spx/spy/spz, skph, packet stx…) — spectating not required.
Record all NPCs (off by default) adds every remote NPC ghost + last packet on that sample (npcs) — large files.
Mining laser: lfx…→ltx… beam, ibx/iby/ibz burn flare,
acx/acy/acz + ar/an/lbid rock model, la while beaming.
Session log
0 entries
Errors, warnings, and info from this browser session (console + flight anomalies). Newest first. Download or upload notes without enabling sample recording — agents fetch uploads via fetch-ap-flight-log.php.
Ghost correct
0 entries
When the Prediction ghost jumps or lerps toward the host. Spectate a ship to log its lerps (throttled). Jumps ≥ 5 km always. Stays in this browser until cleared.
NPC trail
0 entries
Live goal / step / action / mine-toast / banner crumbs from NPC presence. Filter to one bot. Stays in this browser until cleared.
Realtime wire
Off · 0 entries
Off by default. When on: inbound WS, outbound WS to realtime, and client /api calls (newest first, last 500). Filter by lane or type — Hide rosters drops the ~80 ms inbound flood. Size is UTF-8 bytes of the real payload. Click a row to expand redacted JSON (tokens / passwords stripped). Copy copies that redacted JSON.
Mission step
Open this tab to load.
Set a pilot back to a step. Already-paid steps stay paid. First haul step 1 seats them at Aurel on their next load. Other pilots see it after they reload or undock / dock / mine / sell.
Prod vs staging
Open this tab to load.
World knobs only (Fit, Mine, NPC fleet, cadence, Live tuning). This-browser debug is omitted.
Columns are always Prod and Staging. You can open this tab on either tree.