Bribe's starting powerup missing from the feed #37
Labels
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Depends on
#49 JSON Schema for the game-state feed
mintopia/blur
#35 Feed: use and collect events, per-racer totals
mintopia/blur
Reference
mintopia/blur#37
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Racers with the
Bribemod get a starting powerup (BribeModSettings:chance_of_nitro,PickupPercentages,bribe_on_activate_pickups), butpowerupsdoesn't show it. Inexamples/live-timing/sample-race.jsonlremote "Senna" (Bribe) shows[null,null,null]until race_ms 12350.Spike
LAN scenario with Bribe on one instance: snapshot
+0xea0,+0xeac,+0xeb4and entries every 25 ms from race load to lap 1 on both instances, logging channel-9 events. Hypothesis: granted only on the owner's instance (not replicated), or held outside the queue.Acceptance
powerupson the owner's instance from the grant.collectwithinferred: true, #35) and document the limit.Rules
docs/decisions/0019-feed-message-contract.md). Repo data/tools: ADR 0020.BLUR_ENGINE=recomponly.docs/state-websocket.mdandexamples/live-timingfor any feed change.scripts/scenarios (windowed, low settings) once #33 exists.Research findings (static: Blur.exe strings + current src), 2026-10-20.
Multiplayer.Upgrades.Bribe.BribeMeNow(grant trigger).unknown, notnull.null→shuntat 12350 is on a remote racer, so the "owner-instance only" hypothesis fits. World-pickup collection does replicate. Also check+0xea0as an alternative holder.Spike (2-instance LAN, Bribe on instance 0, 25 ms polling of +0xea0/ea4/eac/eb0/eb4): no feed bug. The grant is in the owner's queue (eb4 0->1, entry 0 kind -1 for ~1.1 s, then the real kind; +0xea0 stays -1 until fired). The other instance's queue for that racer never changes, so it is not replicated. Owner feed shows it (unknown ~1 s, then kind) and sends collect; remote only sees an inferred collect when a fireable kind is used (Nitro/Repair emit no use event, so invisible there). Documented in docs/state-websocket.md and ADR 0017. Also fixed scripts/race.py lan host (players feed value is a string). No host code change.
Completed and merged by Harmonic (task 31).