diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h
index 3bc197719f..0a4beed0c3 100644
--- a/libraries/entities/src/EntityScriptingInterface.h
+++ b/libraries/entities/src/EntityScriptingInterface.h
@@ -1100,18 +1100,87 @@ public slots:
*/
Q_INVOKABLE void setKeyboardFocusEntity(const EntityItemID& id);
+
+ /**jsdoc
+ * Emit a {@link Entities.mousePressOnEntity|mousePressOnEntity} event.
+ * @function Entities.sendMousePressOnEntity
+ * @param {Uuid} entityID - The ID of the entity to emit the event for.
+ * @param {PointerEvent} event - The event details.
+ */
Q_INVOKABLE void sendMousePressOnEntity(const EntityItemID& id, const PointerEvent& event);
+
+ /**jsdoc
+ * Emit a {@link Entities.mouseMoveOnEntity|mouseMoveOnEntity} event.
+ * @function Entities.sendMouseMoveOnEntity
+ * @param {Uuid} entityID - The ID of the entity to emit the event for.
+ * @param {PointerEvent} event - The event details.
+ */
Q_INVOKABLE void sendMouseMoveOnEntity(const EntityItemID& id, const PointerEvent& event);
+
+ /**jsdoc
+ * Emit a {@link Entities.mouseReleaseOnEntity|mouseReleaseOnEntity} event.
+ * @function Entities.sendMouseReleaseOnEntity
+ * @param {Uuid} entityID - The ID of the entity to emit the event for.
+ * @param {PointerEvent} event - The event details.
+ */
Q_INVOKABLE void sendMouseReleaseOnEntity(const EntityItemID& id, const PointerEvent& event);
+ /**jsdoc
+ * Emit a {@link Entities.clickDownOnEntity|clickDownOnEntity} event.
+ * @function Entities.sendClickDownOnEntity
+ * @param {Uuid} entityID - The ID of the entity to emit the event for.
+ * @param {PointerEvent} event - The event details.
+ */
Q_INVOKABLE void sendClickDownOnEntity(const EntityItemID& id, const PointerEvent& event);
+
+ /**jsdoc
+ * Emit a {@link Entities.holdingClickOnEntity|holdingClickOnEntity} event.
+ * @function Entities.sendHoldingClickOnEntity
+ * @param {Uuid} entityID - The ID of the entity to emit the event for.
+ * @param {PointerEvent} event - The event details.
+ */
Q_INVOKABLE void sendHoldingClickOnEntity(const EntityItemID& id, const PointerEvent& event);
+
+ /**jsdoc
+ * Emit a {@link Entities.clickReleaseOnEntity|clickReleaseOnEntity} event.
+ * @function Entities.sendClickReleaseOnEntity
+ * @param {Uuid} entityID - The ID of the entity to emit the event for.
+ * @param {PointerEvent} event - The event details.
+ */
Q_INVOKABLE void sendClickReleaseOnEntity(const EntityItemID& id, const PointerEvent& event);
+ /**jsdoc
+ * Emit a {@link Entities.hoverEnterEntity|hoverEnterEntity} event.
+ * @function Entities.sendHoverEnterEntity
+ * @param {Uuid} entityID - The ID of the entity to emit the event for.
+ * @param {PointerEvent} event - The event details.
+ */
Q_INVOKABLE void sendHoverEnterEntity(const EntityItemID& id, const PointerEvent& event);
+
+ /**jsdoc
+ * Emit a {@link Entities.hoverOverEntity|hoverOverEntity} event.
+ * @function Entities.sendHoverOverEntity
+ * @param {Uuid} entityID - The ID of the entity to emit the event for.
+ * @param {PointerEvent} event - The event details.
+ */
Q_INVOKABLE void sendHoverOverEntity(const EntityItemID& id, const PointerEvent& event);
+
+ /**jsdoc
+ * Emit a {@link Entities.hoverLeaveEntity|hoverLeaveEntity} event.
+ * @function Entities.sendHoverLeaveEntity
+ * @param {Uuid} entityID - The ID of the entity to emit the event for.
+ * @param {PointerEvent} event - The event details.
+ */
Q_INVOKABLE void sendHoverLeaveEntity(const EntityItemID& id, const PointerEvent& event);
+ /**jsdoc
+ * Check whether an entity wants hand controller pointer events. For example, a "Web"
+ * {@link Entities.EntityType|EntityType} does but a "Shape"
{@link Entities.EntityType|EntityType} doesn't.
+ * @function Entities.wantsHandControllerPointerEvents
+ * @param {Uuid} entityID - The ID of the entity.
+ * @returns {boolean} true
if the entity wants hand controller pointer events, false
otherwise or
+ * if the entity cannot be found.
+ */
Q_INVOKABLE bool wantsHandControllerPointerEvents(QUuid id);
Q_INVOKABLE void emitScriptEvent(const EntityItemID& entityID, const QVariant& message);
@@ -1289,20 +1358,122 @@ signals:
*/
void canWriteAssetsChanged(bool canWriteAssets);
- // TODO
+
+ /**jsdoc
+ * Triggered when a mouse button is clicked while the mouse cursor is on an entity, or a controller trigger is fully
+ * pressed while its laser is on an entity.
+ * @function Entities.mousePressOnEntity
+ * @param {Uuid} entityID - The ID of the entity that was pressed.
+ * @param {PointerEvent} event - Details of the event.
+ * @returns {Signal}
+ * @example