diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index ef19375e4a..e5c96d0393 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -1508,6 +1508,11 @@ int EntityTree::processEditPacketData(ReceivedMessage& message, const unsigned c } } + if (isAdd && properties.getLocked() && !senderNode->isAllowedEditor()) { + // if a node can't change locks, don't allow them to create an already-locked entity + properties.setLocked(false); + } + // If we got a valid edit packet, then it could be a new entity or it could be an update to // an existing entity... handle appropriately if (validEditPacket) { @@ -2470,4 +2475,4 @@ bool EntityTree::removeMaterialFromOverlay(const QUuid& overlayID, graphics::Mat return _removeMaterialFromOverlayOperator(overlayID, material, parentMaterialName); } return false; -} \ No newline at end of file +}