---
name: UDim2
last_updated: 2026-06-10T23:09:12Z
type: datatype
summary: "Represents a two-dimensional value where each dimension is composed of a relative scale and an absolute offset."
---

# UDim2

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

**Type:** datatype

## Description

The [UDim2](/docs/reference/engine/datatypes/UDim2.md) data type represents a two-dimensional value where each
dimension is composed of a relative scale and an absolute offset in pixels. It
is a combination of two [UDim](/docs/reference/engine/datatypes/UDim.md) data types representing the **X** and
**Y** dimensions. The most common usages for [UDim2](/docs/reference/engine/datatypes/UDim2.md) are setting the
[Size](/docs/reference/engine/classes/GuiObject.md) and [Position](/docs/reference/engine/classes/GuiObject.md) of
[GuiObjects](/docs/reference/engine/classes/GuiObject.md).

```lua
local guiObject = script.Parent
guiObject.Size = UDim2.new(0, 300, 1, 0)  -- 300 pixels wide; full height of parent
guiObject.Position = UDim2.new(0, 50, 0, 0)  -- 50 pixels from the left
```

## Constructors

### UDim2.new

**Signature:** `UDim2.new()`

Returns a new [UDim2](/docs/reference/engine/datatypes/UDim2.md) with the coordinates of two zero [UDim](/docs/reference/engine/datatypes/UDim.md)
components representing each axis.

### UDim2.new

**Signature:** `UDim2.new(xScale?: number, xOffset?: number, yScale?: number, yOffset?: number)`

Returns a new [UDim2](/docs/reference/engine/datatypes/UDim2.md) given the coordinates of the two [UDim](/docs/reference/engine/datatypes/UDim.md)
components representing each axis.

**Parameters:**

| Name | Type | Default | Description |
|------|------|---------|-------------|
| `xScale` | `number` | `0` | The **X** dimension scale. |
| `xOffset` | `number` | `0` | The **X** dimension offset. |
| `yScale` | `number` | `0` | The **Y** dimension scale. |
| `yOffset` | `number` | `0` | The **Y** dimension offset. |

### UDim2.new

**Signature:** `UDim2.new(x: UDim, y: UDim)`

Returns a new [UDim2](/docs/reference/engine/datatypes/UDim2.md) from the given [UDim](/docs/reference/engine/datatypes/UDim.md) objects representing
the **X** and **Y** dimensions, respectively.

**Parameters:**

| Name | Type | Default | Description |
|------|------|---------|-------------|
| `x` | `UDim` |  |  |
| `y` | `UDim` |  |  |

### UDim2.fromScale

**Signature:** `UDim2.fromScale(xScale?: number, yScale?: number)`

Returns a new [UDim2](/docs/reference/engine/datatypes/UDim2.md) with the given scalar coordinates and no offsets.
Equivalent to:

```lua
UDim2.fromScale(xScale, yScale) == UDim2.new(xScale, 0, yScale, 0)
```

**Parameters:**

| Name | Type | Default | Description |
|------|------|---------|-------------|
| `xScale` | `number` | `0` |  |
| `yScale` | `number` | `0` |  |

### UDim2.fromOffset

**Signature:** `UDim2.fromOffset(xOffset?: number, yOffset?: number)`

Returns a new [UDim2](/docs/reference/engine/datatypes/UDim2.md) with the given offset coordinates and no scaling. Equivalent to:

```lua
UDim2.fromOffset(xOffset, yOffset) == UDim2.new(0, xOffset, 0, yOffset)
```

**Parameters:**

| Name | Type | Default | Description |
|------|------|---------|-------------|
| `xOffset` | `number` | `0` |  |
| `yOffset` | `number` | `0` |  |

## Properties

### UDim2.X

**Type:** `UDim`

The **X** dimension scale and offset of the [UDim2](/docs/reference/engine/datatypes/UDim2.md).

### UDim2.Y

**Type:** `UDim`

The **Y** dimension scale and offset of the [UDim2](/docs/reference/engine/datatypes/UDim2.md).

### UDim2.Width

**Type:** `UDim`

The **X** dimension scale and offset of the [UDim2](/docs/reference/engine/datatypes/UDim2.md).

### UDim2.Height

**Type:** `UDim`

The **Y** dimension scale and offset of the [UDim2](/docs/reference/engine/datatypes/UDim2.md).

## Methods

### UDim2:Lerp

**Signature:** `UDim2:Lerp(goal: UDim2, alpha: number): UDim2`

Returns a [UDim2](/docs/reference/engine/datatypes/UDim2.md) interpolated linearly between this
[UDim2](/docs/reference/engine/datatypes/UDim2.md) and the given `goal`. The `alpha` value should be a
number between `0` and `1`.

**Parameters:**

| Name | Type | Default | Description |
|------|------|---------|-------------|
| `goal` | `UDim2` |  |  |
| `alpha` | `number` |  |  |

**Returns:** `UDim2`

## Math Operations

| Operation | Type A | Type B | Returns | Description |
|-----------|--------|--------|---------|-------------|
| `+` | `UDim2` | `UDim2` | `UDim2` | Produces a [UDim2](/docs/reference/engine/datatypes/UDim2.md) with components that are the sum of the respective components of the two [UDim2](/docs/reference/engine/datatypes/UDim2.md) objects. |
| `-` | `UDim2` | `UDim2` | `UDim2` | Produces a [UDim2](/docs/reference/engine/datatypes/UDim2.md) with components that are the difference of the respective components of the two [UDim2](/docs/reference/engine/datatypes/UDim2.md) objects. |