Risecode - Cursor Follower UI

Bring your UI to life with Cursor Follower UI – a versatile component that lets you assign any widget, set the number of instances, and have them smoothly follow the cursor with natural, physics-inspired motion.

🎥Video Presentation: >>> HERE <<<

🛠️Support (Discord): >>> HERE <<<

📄Documentation: >>> HERE <<<

📣Check other systems📣https://www.fab.com/sellers/Risecode?listing_types=game-system

⚙️ Core Mechanics:

  • Velocity-Based Movement

    Instead of instantly snapping to the cursor, each widget has a velocity (CurrentVelocity). Every frame, its position is updated based on this velocity.

  • Direction Calculation

    The desired direction is calculated from the difference between the widget’s current position and the mouse position. This direction is normalized and multiplied by a maximum speed to get the TargetVelocity.

  • Smooth Acceleration

    The widget’s CurrentVelocity is interpolated toward the TargetVelocity using Vector2D Interp To, controlled by an Acceleration value. This creates a feeling of gradual acceleration and deceleration.

  • Magnet Effect

    (Toggleable)If bEnableMagnetEffect is true and the cursor is within MagnetEffectRange, the widget is attracted to the cursor. Otherwise, it may continue to drift or come to a stop depending on the inertia.

  • Inertia and Damping

    When the widget is close to the cursor (within a small threshold), it doesn't immediately stop. Instead, it continues to move in its current direction and slowly decelerates using a damping function (like multiplying velocity by 0.95 or interpolating to zero). This creates a physically believable "braking" effect.

💥If you're looking for an extra touch of WOW 💥

https://www.fab.com/listings/23648e5d-8519-41e2-8772-db20bc74f2a4

Hi, is it possible to start with static objects/widgets that dont move at start and only interact when dragged by mouse through left clicking and still have effects like inertia etc?

It’s possible, but you’d need to modify the system a bit, as it’s not currently supported. I might add this feature in a future update.