diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index ef19375e4a..c3b4716ccf 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -1508,6 +1508,12 @@ 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); + bumpTimestamp(properties); + } + // 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 +2476,4 @@ bool EntityTree::removeMaterialFromOverlay(const QUuid& overlayID, graphics::Mat return _removeMaterialFromOverlayOperator(overlayID, material, parentMaterialName); } return false; -} \ No newline at end of file +}