The user's save was bricked by teleporting to entry 100000304: the client
offers it in the map but NREs in AdventurePhase._EnterStep1_InitializeMapInfo
while loading, and the server had already saved that scene - every login
then replayed the broken scene (stuck on the train-window loading screen).
- loadScene no longer calls SavePersistent; SceneEntityMove's 5s cadence
persists the scene only once the client walks in it (the existing arena
guard already kept challenge scenes out of the save)
- reset persistent to entry 102020107 (proven walkable in the 01:00/01:38
sessions)
The user report: pillars visible on the map but locked, and clicking a
teleport does nothing (client never sends EnterScene).
Root cause: mapDefaultEntranceMap covers only 115 of 371 floors - the
GetSceneMapInfo reply had no unlocked teleports for the missing floors
(mostly new-region 2xxxxx maps), so the client locked the pillars and
never initiated the teleport.
- findEntryForFloor: resolve entry by searching config names P*_F<floor>
directly, with mapDefaultEntranceMap as the first chance
- GetSceneMapInfo: use the new resolver and merge teleports.json keys
into unlocked_teleport_list for every floor
- EnterScene: floor ids resolve through the same path; a teleport id
arriving via scene_identifier (MDAIDPPKOPO.PLIDNBMCIJH) now also
resolves the destination entry
- loadScene: exact teleport position from teleports.json when the res
config has no inline teleport with that id
First real-client session (2026-10-07 01:00) showed the client walking and
attacking but UI interactions stalling: ~120 CsReq dropped with no reply.
- auto-empty responder: any unknown CsReq with a Cmd-enum ScRsp pair now
gets an empty ScRsp, except the danger families (GridFight/ChessRogue/
EvolveBuild/ChimeraDuel/Jukebox/CycleScore) which must stay dropped
(client Sync(nil) NREs on empty, per the Rust lessons)
- GetUnreleasedBlockInfo: the Endgame entry waits on this - 4.6.51 wire is
CsReq 4190 -> ScRsp 4112 retcode tag 14 (the Rust build answered 4130,
an id this client never sends)
- SetClientPaused acked (client pauses itself when opening menus/map)
- explicit handlers: TakeQuestReward, GetFirstTalkNpc, QuitBattle,
GetMapRotationData (Amphoreus teleport pillars), GetPamSkinData,
GetAllServerPrefsData/UpdateServerPrefsData, GetHeartDialInfo, GetPetData,
GetShopList
- SendRaw now logs (dummy/raw replies were invisible in gameserver.log)
- cmdpairs.go: req->rsp id pairs generated from the Cmd enum (865 pairs),
stable across message renames
- smoke test extended: 4190->4112 and SetClientPaused ack verified