Addon ID

  • salmanshh_virtual_cursor

Info

Statistics

  • Download count26 total downloads
  • Latest download count 14 downloads of latest version
  • Average download count1 downloads per day average

Owners

A list of all Actions, Conditions and Expressions supported in this addon.

Homing

  • Actions

    {my}: Add {0} as homing target

    Registers picked instances as homing targets the cursor steers toward.

    {my}: Clear all homing targets

    Removes all homing targets and resets the in-range state.

    {my}: Remove {0} as homing target

    Removes picked instances of an object from the homing targets list.

    {my}: Set homing {0}

    Enables or disables the homing magnet system.

    {my}: Set homing mode to {0}

    Steer pulls the cursor gently toward the nearest target within the radius; Snap locks it directly on the target within the radius; Snap on collision locks on only while the cursor overlaps the target's collision shape.

    {my}: Set homing radius to {0}

    Sets the homing detection radius in pixels.

    {my}: Set homing strength to {0}

    Sets the pull strength used by Steer mode (0–1). Snap mode ignores this value.

  • Conditions

    {my}: Is in homing range

    True when at least one homing target is within the homing radius.

    {my}: On Homing Snapped

    Fires when the cursor teleports to a homing target in Snap mode.

    {my}: On Homing Target Entered

    Fires when the cursor enters the homing radius of a target.

    {my}: On Homing Target Exited

    Fires when the cursor leaves the homing radius of all targets.

  • Expressions

    CountHomingTargets

    Returns the total number of registered homing targets.

    GetHomingTargetUIDByIndex

    Returns the UID of a registered homing target by index, or -1.

    HomingTargetDist

    Returns distance to the nearest in-range homing target, or -1.

    HomingTargetUID

    Returns the UID of the nearest in-range homing target, or -1.

Hover

  • Actions

    {my}: Set hover mode to {0}

    Chooses how 'Is Hovering' detects hover: Point (cursor's origin point inside the target's collision shape) or Overlap (the cursor's own collision shape overlaps the target's).

  • Conditions

    {my}: Is hovering {0}

    True while the cursor is over an instance of the given object, using the current Hover Detection mode. When several overlap, the front-most (top-layered) one is chosen. Hidden instances and instances on hidden layers are ignored. Records that instance — read HoveredUID and use System → Pick by UID to act on that exact instance. Wrap in System → Trigger once while true for an 'on hover enter' event.

  • Expressions

    HoveredUID

    Returns the UID of the front-most (top-layered) instance the cursor is hovering, as found by the most recent 'Is Hovering' check, or -1 if none. Use with System → Pick by UID to act on that instance (e.g. the item to highlight or grab).

Input

  • Actions

    {my}: Press interact {0}

    Marks the named interact input as held and fires On Interact Pressed. Use a consistent ID string (e.g. "interact", "fire", "jump") to distinguish between multiple buttons.

    {my}: Release interact {0}

    Clears the named interact input held state and fires On Interact Released. The ID must match the one used in Press Interact.

  • Conditions

    {my}: Interact {0} is held

    True while the named interact input is pressed and not yet released. Leave ID empty to check if any interact input is currently held.

    {my}: On interact {0} pressed

    Fires when Press Interact is called for the given ID. Leave ID empty to fire for any interact press.

    {my}: On interact {0} released

    Fires when Release Interact is called for the given ID. Leave ID empty to fire for any interact release.

Movement

  • Actions

    {my}: Set acceleration to {0}

    Sets how fast the cursor speeds up when input is held, in px/s².

    {my}: Set deceleration to {0}

    Sets how fast the cursor slows down when no input is held, in px/s².

    {my}: Set max speed to {0}

    Sets the maximum movement speed in pixels per second.

    {my}: Set position to ({0}, {1})

    Deprecated — use 'Simulate Direct Mouse Position' instead. Instantly teleports the cursor to the given position (and updates velocity when called every tick). Kept so existing projects keep working.

    {my}: Set velocity to ({0}, {1})

    Directly sets the cursor velocity in pixels per second.

  • Conditions

    {my}: Is moving

    True if the cursor has non-zero velocity.

    {my}: On Layout Edge Hit

    Fires when the cursor hits the layout boundary while constrained.

  • Expressions

    Acceleration

    Returns the current acceleration in pixels per second squared.

    AxisX

    Returns the current horizontal axis input value (-1 to 1).

    AxisY

    Returns the current vertical axis input value (-1 to 1).

    CursorX

    Returns the current X position of the cursor object.

    CursorY

    Returns the current Y position of the cursor object.

    Deceleration

    Returns the current deceleration in pixels per second squared.

    MaxSpeed

    Returns the current maximum movement speed in pixels per second.

    MovingAngle

    Returns the current movement angle in degrees based on the cursor's velocity vector.

    Speed

    Returns the cursor's current movement speed in pixels per second.

    VelocityX

    Returns the current horizontal velocity in pixels per second.

    VelocityY

    Returns the current vertical velocity in pixels per second.

Simulate Controls

  • Actions

    {my}: Simulate direct mouse position ({0}, {1})

    Instantly places the cursor at the given position, like a real mouse pointer. When called every tick (e.g. to follow the mouse or a touch point), it also updates the velocity so VelocityX/Y, Speed, MovingAngle and Is Moving reflect the movement.

    {my}: Simulate axis ({0}, {1})

    Intended for analog sticks and virtual joysticks.

    {my}: Simulate control {0}

    Moves the cursor in a direction this tick only. Must be called every tick it should remain held.

    {my}: Simulate interact [{0}]

    Fires On Interact Pressed and On Interact Released for the given ID within the same frame. Does not set the held state. Use Press Interact + Release Interact separately when held state is needed.

    {my}: Simulate mouse at ({0}, {1}) smoothing {2}

    Smoothly moves the cursor toward a target position each tick. Unlike Simulate Direct Mouse Position, uses exponential velocity smoothing for a natural ease-in and ease-out with no sudden stops. Call every tick.

Solids

  • Actions

    {my}: Add {0} as solid

    Registers picked instances as solids the cursor is pushed out of.

    {my}: Clear all solids

    Removes all explicit solids from the solids list.

    {my}: Remove {0} as solid

    Removes picked instances of an object from the solids list.

    {my}: Set allow sliding to {0}

    When enabled, only the velocity component perpendicular to the collision wall is zeroed — the cursor slides along the surface. When disabled, all velocity is zeroed on any solid hit.

    {my}: Set solid collision {0}

    Enables or disables automatic solid collision for all Solid behavior instances.

  • Conditions

    {my}: Was blocked by a solid this tick

    True if the cursor was pushed out of a solid object this tick.

    {my}: On Solid Hit

    Fires when the cursor collides with a solid object and is pushed out.

  • Expressions

    CountSolids

    Returns the total number of registered explicit solids.

    SolidUID

    Returns the UID of the last solid hit this tick, or -1.

State

  • Actions

    {my}: Set bounce {0}

    Chooses which surfaces the cursor reflects off (a lossless bounce, like the Bullet behavior) instead of stopping or sliding. Works on momentum (e.g. Set Velocity); held axis input into a wall overrides it.

    {my}: Set constraint bounds to ({0}, {1}) – ({2}, {3})

    Sets a custom constraint rectangle. Pass all zeros to reset to full layout bounds.

    {my}: Set constrain to layout {0}

    Clamps cursor inside layout bounds and fires On Layout Edge Hit.

    {my}: Set default controls {0}

    Enable or disable the built-in arrow key controls. When disabled, use the Simulate Control action to drive movement from the event sheet.

    {my}: Set direction mode to {0}

    Limits the axes the cursor can move along. Up & Down disables horizontal movement; Left & Right disables vertical movement; 4 Directions snaps to the dominant axis per tick; 8 Directions allows full free movement.

    {my}: Set enabled {0}

    Enables or disables the Virtual Cursor behavior.

    {my}: Set ignoring input {0}

    When enabled, all movement input is ignored — arrow keys are not read and every Simulate action (Simulate Control / Axis / Mouse / Direct Mouse Position / Interact) does nothing. The cursor coasts to a stop while still ticking; direct drives like Set Position and Set Velocity still work. Use it to freeze input for cutscenes or menus.

  • Conditions

    {my}: Is enabled

    True if the Virtual Cursor behavior is currently active.

    {my}: Is ignoring input

    True while movement input is being ignored (set via Set Ignoring Input).

    {my}: On Bounce

    Fires when the cursor reflects off a surface it is set to bounce on — a solid, a custom object, or a constraint edge. Fires once per tick.

  • Expressions

    BounceMode

    Returns which Bounce type is active as a token: "none", "solids", "constraints", or "both" (solids and constraints).

    ConstraintBottom

    Returns the bottom edge of the active constraint region.

    ConstraintLeft

    Returns the left edge of the active constraint region.

    ConstraintRight

    Returns the right edge of the active constraint region.

    ConstraintTop

    Returns the top edge of the active constraint region.