Skip to content

map: build_player_snapshot_for_login hardcodes active_quests=[] — HasQuest() always false at login; Man0l0 SEQ_005 relog strands the player #197

Description

@swstegall

Symptom

Relogging during Man0l0 SEQ_005 strands the character: the player lands in the boat interior with no armed ENPCs and no route back into the deck-fight content area. Live 2026-07-04 evidence: onBeginLogin emits 0 commands on every relog vs 10 on a fresh login.

Mechanism

build_player_snapshot_for_login hardcodes the login snapshot's quest list —

map-server/src/processor.rs:10289:

active_quests: Vec::new(),

— even though the quest journal is hydrated from the DB. So player:HasQuest(110001) is always false at login and player.lua's zone-193 reconnect branch is dead code. Compounding it, man0l0.lua's SEQ_005 onStateChange branch is empty, so nothing re-arms the sequence on re-entry.

Suggested fix

  1. Populate active_quests from the hydrated journal in the login snapshot.
  2. Decide the intended SEQ_005 relog semantics — re-enter the content instance vs restart the sequence (StartSequence(5) + content re-create) — and implement it in the reconnect branch.

The two test characters in a dev DB parked in zone 193 (Asdf Asdf seq=5/flags=15, Jkl Jkl seq=0) are a ready-made repro.

Found during the Ubuntu opening-quest root-cause investigation (branch feature/ubuntu, commit f6897e5).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Garlemald ServerFor work units related to Garlemald Server.bugSomething isn't working

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions