Offset-Based GUI Positioning Bug with UIScale in Roblox Studio

UI Scaling Bug with GuiBase2d Dragging and Resizing

Summary

When drag-moving or resizing any GuiBase2d (e.g., Frame, ImageLabel, TextLabel) under a parent with a UIScale, its Offset values are incorrectly multiplied by the scale factor. The Studio’s drag handles show the correct target values, but the object jumps by (Offset × (Scale − 1)) on mouse-drag. Adding UIPadding further multiplies the starting Offset by the padding value, worsening the issue.


Steps to Reproduce

Setup

  1. Insert a ScreenGui in StarterGui.
  2. Create a Frame named Container inside the ScreenGui.
  3. Add a UIScale to Container and set its Scale to 1.5.
  4. Inside Container, insert a child Frame (or any GuiBase2d) named ** долгиInner**.
  5. In the Properties panel, set Inner’s Position to { X.Scale = 0.2; X.Offset = 100 }, { Y.Scale = 0.2; Y.Offset = 100 }.

Drag to Move

  1. In the viewport, drag the Inner frame by its edges or body.
  2. Observe:
    • Instead of starting at Offset = 100, it jumps to Offset = 100 + (100 × (1.5 − 1)) = 150 and then moves.
    • The drag-handles on the frame outline show the correct Offset = 100, but the object’s pixel position is offset by 50 pixels.

Resize

  1. Drag a corner handle to resize Inner.
  2. Observe:
    • The same multiplication error occurs on the Offset component of Size.

Add Padding

  1. Add a UIPadding to Container.
  2. Observe:
    • The child’s starting Offset is multiplied by the padding values when dragging or resizing begins.

Actual Behavior

  • Position.Offset jumps by (Offset × (Scale − 1)) at drag-start.
  • Size.Offset exhibits the same issue.
  • UIPadding values further multiply the jump.
  • Studio’s drag-handles display the un-jumped values, causing inconsistent UI feedback.

Visual Evidence

Positioning

Resizing

Video Demonstration


System Specs

  • Roblox Version: January 24, 2025
  • OS: macOS 15.5 Beta (issue persists across previous releases)

Thank you for reviewing this bug report! Please let me know if further details or testing are needed.