diff --git a/src/modules/PlayerbotV2/Session/BotSessionMgr.cpp b/src/modules/PlayerbotV2/Session/BotSessionMgr.cpp index baa9307f8c..34a7196583 100644 --- a/src/modules/PlayerbotV2/Session/BotSessionMgr.cpp +++ b/src/modules/PlayerbotV2/Session/BotSessionMgr.cpp @@ -106,7 +106,13 @@ bool BotSessionMgr::LogoutBot(ObjectGuid playerGuid) bot->RemovePet(pet, PET_SAVE_AS_DELETED, false); if (bot->GetGroup()) bot->RemoveFromGroup(); - sess->LogoutPlayer(false); + // save=true so quest status / progress pushed this session persists + // across logout. `false` here skipped SaveToDB entirely — a recently + // pushed quest (and its progression) was lost unless a 15-min + // autosave happened to fire first, which broke quest chains: bots + // couldn't complete the quest the player finished, so the follow-up + // quest couldn't be pushed. + sess->LogoutPlayer(true); } // else: login in flight — removing from sessions_ is enough to abort tracking return true;