Skip to content

UDim2

Supported Datatype

Represents a two-dimensional value where each dimension is composed of a relative scale and an absolute offset.

Description

The UDim2 data type represents a two-dimensional value where each dimension is composed of a relative scale and an absolute offset in logical pixels. It is a combination of two UDim data types representing the X and Y dimensions. The most common usages for UDim2 are setting the Size and Position of GuiObjects.

local guiObject = Instance.new("Frame")
guiObject.Size = UDim2.new(0, 300, 1, 0)  -- 300 logical pixels wide; full height of parent
guiObject.Position = UDim2.new(0, 50, 0, 0)  -- 50 logical pixels from the left
print(guiObject.Size) --> {0, 300}, {1, 0}

Constructors

new Supported Returns a new UDim2 with the coordinates of two zero UDim components representing each axis.
UDim2.new()

Returns a new UDim2 with the coordinates of two zero UDim components representing each axis.

Returns a new UDim2 with both dimensions set to zero — equivalent to UDim2.new(0, 0, 0, 0). All four components (X scale, X offset, Y scale, Y offset) default to 0.

new Supported Returns a new UDim2 given the coordinates of the two UDim components representing each axis.
UDim2.new(xScale: number = 0, xOffset: number = 0, yScale: number = 0, yOffset: number = 0)

Returns a new UDim2 given the coordinates of the two UDim components representing each axis.

Returns a new UDim2 from four numbers that define both axes. Each pair of arguments defines one dimension: xScale and xOffset for the horizontal (X) axis, then yScale and yOffset for the vertical (Y) axis. Scale is a relative fraction of the parent container's size (typically between 0 and 1), while offset is an absolute logical pixel value added after scaling. All parameters default to 0.

-- 50% width + 20 logical pixels padding, full height
local size = UDim2.new(0.5, 20, 1, 0)
new Supported Returns a new UDim2 from the given UDim objects representing the X and Y dimensions, respectively.
UDim2.new(x: UDim, y: UDim)

Returns a new UDim2 from the given UDim objects representing the X and Y dimensions, respectively.

Constructs a UDim2 by composing two UDim values directly. The first argument becomes the horizontal dimension (accessible via .X or .Width) and the second becomes the vertical dimension (accessible via .Y or .Height).

local x = UDim.new(0.5, 10)
local y = UDim.new(1, 0)
local size = UDim2.new(x, y)  -- equivalent to UDim2.new(0.5, 10, 1, 0)
fromScale Not yet Returns a new UDim2 with the given scale components and no offsets.
UDim2.fromScale(xScale: number = 0, yScale: number = 0)

Returns a new UDim2 with the given scale components and no offsets.

Returns a new UDim2 with the given scalar coordinates and no offsets. Equivalent to:

local xScale, yScale = 0.5, 0.25
print(UDim2.fromScale(xScale, yScale) == UDim2.new(xScale, 0, yScale, 0)) --> true
fromOffset Not yet Returns a new UDim2 with the given offset components and no scaling.
UDim2.fromOffset(xOffset: number = 0, yOffset: number = 0)

Returns a new UDim2 with the given offset components and no scaling.

Returns a new UDim2 with the given offset coordinates and no scaling. Equivalent to:

local xOffset, yOffset = 100, 50
print(UDim2.fromOffset(xOffset, yOffset) == UDim2.new(0, xOffset, 0, yOffset)) --> true

Properties

X Supported The X dimension scale and offset of the UDim2.
UDim2.X()

The X dimension scale and offset of the UDim2.

The UDim component for the horizontal axis. The returned UDim has a .Scale (relative fraction) and .Offset (absolute logical pixels). This property is equivalent to UDim2.Width.

local pos = UDim2.new(0.5, 10, 1, 0)
print(pos.X.Scale)   -- 0.5
print(pos.X.Offset)  -- 10
Y Supported The Y dimension scale and offset of the UDim2.
UDim2.Y()

The Y dimension scale and offset of the UDim2.

The UDim component for the vertical axis. The returned UDim has a .Scale (relative fraction) and .Offset (absolute logical pixels). This property is equivalent to UDim2.Height.

local pos = UDim2.new(0.5, 10, 1, 0)
print(pos.Y.Scale)   -- 1
print(pos.Y.Offset)  -- 0
Width Supported The X dimension scale and offset of the UDim2.
UDim2.Width()

The X dimension scale and offset of the UDim2.

A synonym for UDim2.X. Returns the UDim component for the horizontal axis, containing both .Scale and .Offset.

Height Supported The Y dimension scale and offset of the UDim2.
UDim2.Height()

The Y dimension scale and offset of the UDim2.

A synonym for UDim2.Y. Returns the UDim component for the vertical axis, containing both .Scale and .Offset.

Methods

Lerp Not yet Returns a UDim2 interpolated linearly between the value and the given goal.
UDim2:Lerp(goal: UDim2, alpha: number)

Returns a UDim2 interpolated linearly between the value and the given goal.

Returns a UDim2 interpolated linearly between this UDim2 and the given goal. The alpha value should be a number between 0 and 1.

Math operations

+ Check Produces a UDim2 with components that are the sum of the respective components of the two UDim2 objects.
+: UDim2

Produces a UDim2 with components that are the sum of the respective components of the two UDim2 objects.

Adds both the scale and offset of each axis independently: the result's X scale is the sum of both X scales, the result's X offset is the sum of both X offsets, and likewise for Y.

local a = UDim2.new(0.5, 10, 0, 20)
local b = UDim2.new(0.25, 5, 1, 0)
local c = a + b  -- UDim2.new(0.75, 15, 1, 20)
operator
- Check Produces a UDim2 with components that are the difference of the respective components of the two UDim2 objects.
-: UDim2

Produces a UDim2 with components that are the difference of the respective components of the two UDim2 objects.

Subtracts both the scale and offset of each axis independently: the result's X scale is the first X scale minus the second, the result's X offset is the first X offset minus the second, and likewise for Y.

local a = UDim2.new(1, 100, 1, 50)
local b = UDim2.new(0.5, 30, 0, 10)
local c = a - b  -- UDim2.new(0.5, 70, 1, 40)
operator

Nova binding inventory

Library Members
new Height, Width, X, Y

Roblox reference: UDim2