diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index 7a70076cf8..58a79a8126 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -705,10 +705,11 @@ void EntityTree::deleteEntitiesByID(const std::vector& ids, bool f entity = _entityMap.value(id); } if (entity) { - if (entity->isDomainEntity()) { + bool isServerless = isServerlessMode(); + if (entity->isDomainEntity() && !isServerless) { // domain-entity deletes must round-trip through entity-server domainEntitiesIDs.push_back(id); - } else if (force || entity->isLocalEntity() || entity->isMyAvatarEntity()) { + } else if (force || entity->isLocalEntity() || entity->isMyAvatarEntity() || isServerless) { entitiesToDelete.push_back(entity); entity->collectChildrenForDelete(entitiesToDelete, sessionID); } diff --git a/libraries/physics/src/PhysicalEntitySimulation.cpp b/libraries/physics/src/PhysicalEntitySimulation.cpp index 27e0a463cf..7678ad9cd6 100644 --- a/libraries/physics/src/PhysicalEntitySimulation.cpp +++ b/libraries/physics/src/PhysicalEntitySimulation.cpp @@ -186,10 +186,10 @@ void PhysicalEntitySimulation::processDeadEntities() { if (motionState) { _entitiesToRemoveFromPhysics.insert(entity); } - if (entity->isDomainEntity()) { + if (entity->isDomainEntity() && !getEntityTree()->isServerlessMode()) { // interface-client can't delete domainEntities outright, they must roundtrip through the entity-server _entityPacketSender->queueEraseEntityMessage(entity->getID()); - } else if (entity->isLocalEntity() || entity->isMyAvatarEntity()) { + } else { entitiesToDeleteImmediately.push_back(entity); entity->collectChildrenForDelete(entitiesToDeleteImmediately, sessionID); }