diff --git a/world/zonelist.cpp b/world/zonelist.cpp index f8d54113c..fdf8dcf39 100644 --- a/world/zonelist.cpp +++ b/world/zonelist.cpp @@ -894,7 +894,8 @@ void ZSList::SendServerReload(ServerReload::Type type, uchar *packet) ServerReload::Type::Commands, ServerReload::Type::PerlExportSettings, ServerReload::Type::DataBucketsCache, - ServerReload::Type::WorldRepop + ServerReload::Type::WorldRepop, + ServerReload::Type::WorldWithRespawn }; // Set requires_zone_booted flag before executing reload logic diff --git a/zone/worldserver.cpp b/zone/worldserver.cpp index 9c0950b47..adb6cd091 100644 --- a/zone/worldserver.cpp +++ b/zone/worldserver.cpp @@ -4663,14 +4663,19 @@ void WorldServer::ProcessReload(const ServerReload::Request& request) case ServerReload::Type::WorldRepop: entity_list.ClearAreas(); parse->ReloadQuests(); - zone->Repop(); + if (zone && zone->IsLoaded()) { + zone->Repop(); + } break; case ServerReload::Type::WorldWithRespawn: - entity_list.ClearAreas(); parse->ReloadQuests(); - zone->Repop(); - zone->ClearSpawnTimers(); + if (zone && zone->IsLoaded()) { + entity_list.ClearAreas(); + zone->Repop(); + zone->ClearSpawnTimers(); + } + break; case ServerReload::Type::ZonePoints: