Category: Multiplayer / Networking β Quest State Replication
Severity: High β drops player into an impossible quest state that cannot be resolved in-game. Blocks main quest, recipe unlocks, item rewards, follow-ups.
Summary
On a dedicated coop server, Player A's quest state ends up in an inconsistent limbo: the world treats the quest as completed (boss dead, door open, NPCs say "we already talked"), but A's R5BLPlayer save still says the quest is on its first step. A is not disconnected and can keep playing freely β only this one quest is broken in two opposite directions at once. Early shared facts replicate to both saves; partway through, the server stops sending A's save any further Quest.Main.LostCargo.* updates while world-side script execution continues. Every later step (key 03, ship search, boss kill, post-boss flags, recipe unlocks, item drops) only lands on Player B. NPCs refuse dialogue, world progression is consumed, but A's journal stays pinned to an early step. Persists across client and server restarts.
Environment
- Game version: 0.10.0.4.268-9d2ca277 (server + both clients identical)
- Dedicated server: Windows Server 2025; clients: Windows / Steam
- Coop, 2 players, neither is host (dedicated only)
- Quest where it manifested:
Quest.Main.LostCargo(UI: "Needle in a Haystack")
Reproduction (observed)
- Both players start and progress the quest together.
- Early facts replicate to both (
KeyCollect.01/02.WasCollected = true). - Mid-quest, A's save silently stops receiving further quest updates β no error, both still in session, gameplay otherwise fine.
- B continues; boss is killed (once with A dead, once with A alive β neither replicates to A).
- End state: quest is simultaneously "done" (world) and "not started" (A's save). Hard softlock.
Evidence (save diff, same coop session)
| Tag | A (limbo) | B (normal) |
|---|---|---|
Quest.Main.LostCargo.QuestState |
1 | 6 |
Quest.Main.LostCargo.Core |
2 | 130 |
Quest.Main.LostCargo.Sub1 |
2 | 8 |
Quest.Main.LostCargo.Sub2-5 |
missing | 8 |
Quest.Main.LostCargo.Sub6 |
missing | 2 |
Fact.KeyCollect.01/02.WasCollected |
true | true |
Fact.KeyCollect.03 / FindHLTable / ShipWasSearched |
missing | true |
11x RecipeLootUnlock.* / RecipePaperUnlock.* / ItemItemUnlock.* (boss-tied) |
all missing | all 8 |
Early facts replicated; everything from mid-quest onward did not.
Log evidence (A's client, hundreds/min)
R5LogAccountTracker: TrackedItem is invalid. Character nullptr,
PlayerState nullptr, Controller nullptr, Account nullptr,
LastIsNotReadyReport !Ship->GetShipView().
[R5DkAccountTracker.cpp:195]
Expected: All quest progression generated in a coop session reliably replicates to every participating player's save, keeping world state and per-player save state consistent.
Actual: Per-player quest replication can silently stop mid-quest while world execution continues. The two diverge until the player save is in a state the game logic considers impossible β neither completable nor restartable.
Workaround: Manual save edit injecting the missing Quest.Main.LostCargo.* tags + facts into A's RocksDB. Once present, the server accepts the player and follow-ups (Forgotten Relics) trigger normally β confirming quest data is fine, only per-player replication fails.
Notes
- May correlate with death/respawn or mid-session disconnect.
- Writing
Quest.Marker.HL.BossArena.Point = trueclient-side caused severe replication breakage on next login (AI ships: nullptr PlayerState/Controller). Markers appear server-authoritative.
Full R5.log available on request.