diff --git a/zone/mob.cpp b/zone/mob.cpp index e48ca6f26..d58ee4b54 100644 --- a/zone/mob.cpp +++ b/zone/mob.cpp @@ -1197,10 +1197,6 @@ void Mob::FillSpawnStruct(NewSpawn_Struct* ns, Mob* ForWho) else ns->spawn.flymode = flymode; - if(IsBoat()) { - ns->spawn.flymode = GravityBehavior::Floating; - } - ns->spawn.lastName[0] = '\0'; strn0cpy(ns->spawn.lastName, lastname, sizeof(ns->spawn.lastName)); diff --git a/zone/npc.cpp b/zone/npc.cpp index e8110580a..13e49d4ea 100644 --- a/zone/npc.cpp +++ b/zone/npc.cpp @@ -230,9 +230,14 @@ NPC::NPC(const NPCType *npc_type_data, Spawn2 *in_respawn, const glm::vec4 &posi adventure_template_id = npc_type_data->adventure_template; flymode = iflymode; + // If server has set a flymode in db honor it over all else. + // If server has not set a flymde in db, and this is a boat - force floating. if (npc_type_data->flymode >= 0) { flymode = static_cast(npc_type_data->flymode); } + else if (IsBoat()) { + flymode = GravityBehavior::Floating; + } guard_anim = eaStanding; roambox_distance = 0;