Class
GuiObject
NotCreatableNotBrowsable
An abstract class for all 2D user interface objects.
GuiObject is an abstract class (much like BasePart) for a 2D
user interface object. It defines all the properties relating to the display
of a graphical user interface (GUI) object such as Size
and Position. It also has some useful read‑only
properties like AbsolutePosition,
AbsoluteSize, and
AbsoluteRotation.
To manipulate the layout of GUI objects in special ways, you can use a layout structure such as list/flex or grid, and you can style them beyond their core properties through appearance modifiers.
Although it's possible to detect mouse button events on any GUI object using
InputBegan and
InputEnded, only ImageButton and
TextButton have convenient dedicated events such as
Activated to detect click/press.
Properties 30#
Activeboolean | Determines whether this UI element sinks input.ReadSafe |
AnchorPointVector2 | Determines the origin point of a GuiObject, relative to its
absolute size.ReadSafe |
AutomaticSizeAutomaticSize | Determines whether resizing occurs based on child content.ReadSafe |
BackgroundColorBrickColor | Determines the color of the GuiObject background.ReadSafeDeprecatedHiddenNotReplicated |
BackgroundColor3Color3 | Determines the GuiObject background color.ReadSafe |
BackgroundTransparencyfloat | Determines the transparency of the GuiObject background and
border.ReadSafe |
BorderColorBrickColor | Determines the color of the GuiObject border.ReadSafeDeprecatedHiddenNotReplicated |
BorderColor3Color3 | Determines the color of the GuiObject border.ReadSafe |
BorderModeBorderMode | Determines in what manner the GuiObject border is laid out
relative to its dimensions.ReadSafe |
BorderSizePixelint | Determines the pixel width of the GuiObject border.ReadSafe |
ClipsDescendantsboolean | Determines if descendant GuiObjects outside of the
bounds of a parent GUI element should render.ReadSafe |
Draggableboolean | Determines whether a GuiObject (and its descendants) can be
dragged around the screen.ReadSafeDeprecated |
GuiStateGuiState | Determines whether the player's mouse is being actively pressed on the
GuiObject or not.ReadSafeReadOnlyNotReplicated |
InputSinkInputSink | Controls whether, and how, the GuiObject sinks input that occurs
over it.ReadSafeNotReplicated |
Interactableboolean | Determines whether the GuiButton can be interacted with or not, or
if the GuiState of the GuiObject is changing or
not.ReadSafe |
LayoutOrderint | Controls the sort order of the GuiObject when used with a
UIGridStyleLayout.ReadSafe |
NextSelectionDownGuiObject | Sets the GuiObject which will be selected when the gamepad
selector is moved downward.ReadSafe |
NextSelectionLeftGuiObject | Sets the GuiObject which will be selected when the gamepad
selector is moved to the left.ReadSafe |
NextSelectionRightGuiObject | Sets the GuiObject which will be selected when the gamepad
selector is moved to the right.ReadSafe |
NextSelectionUpGuiObject | Sets the GuiObject which will be selected when the gamepad
selector is moved upward.ReadSafe |
PositionUDim2 | Determines the pixel and scalar position of the GuiObject.ReadSafe |
Rotationfloat | Determines the number of degrees by which the GuiObject is
rotated.ReadSafe |
Selectableboolean | Determine whether the GuiObject can be selected by a gamepad.ReadSafe |
SelectionImageObjectGuiObject | Overrides the default selection adornment used for gamepads.ReadSafe |
SelectionOrderint | The order of GuiObjects selected by the gamepad UI
selection.ReadSafe |
SizeUDim2 | Determines the pixel and scalar size of the GuiObject.ReadSafe |
SizeConstraintSizeConstraint | Sets the Size axes that the GuiObject will
be based on, relative to the size of its parent.ReadSafe |
Transparencyfloat | A mixed property of
BackgroundTransparency and
TextTransparency.ReadSafeDeprecatedHiddenNotReplicated |
Visibleboolean | Determines whether the GuiObject and its descendants will be
rendered.ReadSafe |
ZIndexint | Determines the order in which a GuiObject renders relative to
others.ReadSafe |
Active: boolean#
ReadSafe
This property determines whether the GuiObject will sink input to
3D space, such as underlying models with a ClickDetector class
like DragDetector.
For GuiButton objects (ImageButton and
TextButton), this property determines whether
Activated fires
(AutoButtonColor will still work for
those as well). The events InputBegan,
InputChanged, and
InputEnded work as normal no matter the value
of this property.
AnchorPoint: Vector2#
ReadSafe
This property determines the origin point of a GuiObject, relative
to its absolute size. The origin point determines from where the element
is positioned (through GuiObject.Position) and from which the
rendered GuiObject.Size expands.
See here for illustrated diagrams and details.
AutomaticSize: AutomaticSize#
ReadSafe
This property is used to automatically size parent UI objects based on the size of its descendants. You can use this property to dynamically add text and other content to a UI object at edit or run time, and the size will adjust to fit that content.
When AutomaticSize is set to an
AutomaticSize value to anything other than
None, this UI object may resize depending on its
child content.
For more information on how to use this property and how it works, please see here.
BackgroundColor: BrickColor#
HiddenNotReplicatedDeprecatedReadSafeDeprecated
Deprecated. This property is deprecated in favor of the Color3 property
GuiObject.BackgroundColor3, which should be used in new work
instead.
Determines the color of the GuiObject background.
BackgroundColor3: Color3#
ReadSafe
This property determines the color of a GuiObject background (the
fill color). If your element contains text, such as a TextBox,
TextButton, or TextLabel, make sure the color of your
background contrasts the text's color.
Another property that determines the visual properties of the background
is GuiObject.BackgroundTransparency; if this is set to 1,
neither the background nor the border will render.
See also BorderColor3.
BackgroundTransparency: float#
ReadSafe
This property determines the transparency of the GuiObject
background and border. It does not, however, determine the transparency of
text if the GUI is a TextBox, TextButton, or
TextLabel; text transparency is determined
TextBox.TextTransparency, TextButton.TextTransparency, and
TextLabel.TextTransparency respectively.
If this property is set to 1, neither the background nor the border will
render and the GUI background will be completely transparent.
BorderColor: BrickColor#
HiddenNotReplicatedDeprecatedReadSafeDeprecated
Deprecated. This property is deprecated in favor of the Color3 property
BorderColor3, which should be used in new work instead.
Determines the color of the GuiObject border.
BorderColor3: Color3#
ReadSafe
Determines the color of the GuiObject rectangular border (also
known as the stroke color). This is separate from the object's
GuiObject.BackgroundColor3. You will not be able to see the
object's border if its GuiObject.BorderSizePixel property is set
to 0.
Note that the UIStroke component allows for more advanced border
effects.
BorderMode: BorderMode#
ReadSafe
This property determines in what manner the GuiObject border is
laid out relative to its dimensions using the enum of the same name,
BorderMode.
Note that UIStroke can override this property and allow for more
advanced border effects.
BorderSizePixel: int#
ReadSafe
ClipsDescendants: boolean#
ReadSafe
This property determines if the GuiObject will clip (make
invisible) any portion of descendant GUI elements that would otherwise
render outside the bounds of the rectangle.
Rotation Behavior#
When StarterGui.ClipsDescendantsSupportsRotation is enabled,
clipping works correctly for rotated shapes. However, clipping by
rotated shapes (when the clipping parent itself is rotated) or by rounded
corners (UICorner) is not supported.
When StarterGui.ClipsDescendantsSupportsRotation is not
enabled and this GuiObject or any ancestor GuiObject has a
non‑zero Rotation, this property is
ignored and descendant GUI elements will render regardless of this
property's value.
Draggable: boolean#
DeprecatedReadSafeDeprecated
Deprecated. This property is deprecated. Use UIDragDetector instead, as it
supports more input types and can be better customized.
This indicates whether a GuiObject (and its descendants) can be
dragged around the screen.
GuiState: GuiState#
ReadOnlyNotReplicatedReadSafe
When the player's finger is being tapped and held on the
GuiObject, the GuiState of the
GuiObject will be set to Press. Similarly,
When the player's finger is being released from the GuiObject, the
GuiState of the GuiObject will be set
to Idle, and when
Interactable is turned off on the
GuiObject, the GuiState of the GuiObject will be
set to NonInteractable.
InputSink: InputSink#
NotReplicatedReadSafe
Controls whether, and to what degree, the GuiObject sinks input
that occurs over it, using InputSink. Sinking input prevents it
from passing through to objects behind the element, including 3D objects
in the world such as those with a ClickDetector or
DragDetector. It defaults to InputSink.None, except on
GuiButton objects (ImageButton and TextButton),
where it defaults to InputSink.Activate.
InputSink.None— the object does not sink input on its own.InputSink.Activate— the object sinks the mouse-button and touch press/release input used to activate it, but lets other input (such as mouse movement) pass through.InputSink.All— the object sinks all input that occurs over it.
This property is a more granular successor to the boolean
Active property, which can only sink all input or
none. The InputBegan,
InputChanged, and
InputEnded events fire regardless of this
property's value.
Interactable: boolean#
ReadSafe
Determines whether the GuiButton can be interacted with or not, or
if the GuiState of the GuiObject is changing or
not.
On a GuiButton:
- When the
Interactablesetting on theGuiButtonis set tofalse, theGuiButtonwill no longer be able to be pressed or clicked, and theGuiStatewill be constantly set toNonInteractable. - When the
Interactablesetting on theGuiButtonis set totrue, theGuiButtonwill behave normally again and theGuiStatewill behave normally.
On a GuiObject:
- When the
Interactablesetting on theGuiButtonis set tofalse, theGuiStatewill be constantly set toNonInteractable. - When the
Interactablesetting on theGuiButtonis set totrue, theGuiStatewill behave normally again.
LayoutOrder: int#
ReadSafe
This property controls the sorting order of the GuiObject when
using a UIGridStyleLayout (such as UIListLayout or
UIPageLayout) with SortOrder
set to SortOrder.LayoutOrder. It has no functionality if the object
does not have a sibling UI layout structure.
GuiObjects are sorted in ascending order where lower
values take priority over higher values. Objects with equal values fall
back to the order they were added in.
If you are unsure if you'll need to add an element between two existing
elements in the future, it's a good practice to use multiples of 100
(0, 100, 200, etc.). This ensures a large gap of layout order values
which you can use for elements ordered in-between other elements.
See also ZIndex which determines the object's
rendering order instead of sorting order.
NextSelectionDown: GuiObject#
ReadSafe
This property sets the GuiObject selected when the user moves the
gamepad selector downward. If this property
is empty, moving the gamepad downward will not change the selected GUI.
Moving the gamepad selector downward sets the
GuiService.SelectedObject to this object unless the GUI is not
Selectable. Note that this property can be
set to a GUI element even if it is not
Selectable, so you should ensure that the
value of a GUI's selectable property matches your expected behavior.
See also NextSelectionUp,
NextSelectionLeft, and
NextSelectionRight.
NextSelectionLeft: GuiObject#
ReadSafe
This property sets the GuiObject selected when the user moves the
gamepad selector to the left. If this
property is empty, moving the gamepad to the left will not change the
selected GUI.
Moving the gamepad selector to the left sets the
GuiService.SelectedObject to this object unless the GUI is not
Selectable. Note that this property can be
set to a GUI element even if it is not
Selectable, so you should ensure that the
value of a GUI's selectable property matches your expected behavior.
See also NextSelectionUp,
NextSelectionDown, and
NextSelectionRight.
NextSelectionRight: GuiObject#
ReadSafe
This property sets the GuiObject selected when the user moves the
gamepad selector to the right. If this
property is empty, moving the gamepad to the right will not change the
selected GUI.
Moving the gamepad selector to the right sets the
GuiService.SelectedObject to this object unless the GUI is not
Selectable. Note that this property can be
set to a GUI element even if it is not
Selectable, so you should ensure that the
value of a GUI's selectable property matches your expected behavior.
See also NextSelectionUp,
NextSelectionDown, and
NextSelectionLeft.
NextSelectionUp: GuiObject#
ReadSafe
This property sets the GuiObject selected when the user moves the
gamepad selector upward. If this property is
empty, moving the gamepad upward will not change the selected GUI.
Moving the gamepad selector upward sets the
GuiService.SelectedObject to this object unless the GUI is not
Selectable. Note that this property can be
set to a GUI element even if it is not
Selectable, so you should ensure that the
value of a GUI's selectable property matches your expected behavior.
See also NextSelectionDown,
NextSelectionLeft,
NextSelectionRight.
Position: UDim2#
ReadSafe
This property determines the GuiObject pixel and scalar position
using a UDim2. Position is centered around the object's
GuiObject.AnchorPoint.
The scalar position is relative to the size of the parent GUI element, if any.
The pixel portions of the UDim2 value are the same regardless
of the parent GUI's size. The values represent the position of the object
in pixels. An object's actual pixel position can be read from the
GuiBase2d.AbsolutePosition property.
Rotation: float#
ReadSafe
This property determines the number of degrees by which the
GuiObject is rotated. Rotation is relative to the center of
the object, not the AnchorPoint, meaning
you cannot change the point of rotation. Additionally, this property is
not compatible with ClipsDescendants.
Selectable: boolean#
ReadSafe
This property determines whether the GuiObject can be selected
when navigating GUIs using a gamepad.
If this property is true, a GUI can be selected. Selecting a GUI also
sets the GuiService.SelectedObject property to that object.
When this is false, the GUI cannot be selected. However, setting this to
false when a GUI is selected will not deselect it nor change the value
of the GuiService.SelectedObject property.
Add GuiObject.SelectionGained and GuiObject.SelectionLost
will not fire for the element. To deselect a GuiObject, you must change
the GuiService.SelectedObject property.
This property is useful if a GUI is connected to several GUIs via
properties such as this GuiObject.NextSelectionUp,
GuiObject.NextSelectionDown, NextSelectionRight,
or NextSelectionLeft. Rather than change all of the
properties so that the Gamepad cannot select the GUI, you can disable its
Selectable property to temporarily prevent it from being selected. Then,
when you want the gamepad selector to be able to select the GUI, simply
re-enable its selectable property.
SelectionImageObject: GuiObject#
ReadSafe
This property overrides the default selection adornment used for gamepads.
Note that the chosen
SelectionImageObject overlays the
selected GuiObject with the Size of the
image. For best results, you should size the custom SelectionImageObject
via the scale UDim2 values to help ensure that the object
scales properly over the selected element.
Changing the SelectionImageObject
for a GuiObject element only affects that element. To affect all
of a user's GUI elements, set the PlayerGui.SelectionImageObject
property.
To determine or set which GUI element is selected by the user, you can use
the GuiService.SelectedObject property. The player uses the
gamepad to select different GUI elements, invoking the
NextSelectionUp,
NextSelectionDown,
NextSelectionLeft, and
NextSelectionRight events.
SelectionOrder: int#
ReadSafe
GuiObjects with a lower SelectionOrder are selected earlier than
GuiObjects with a higher SelectionOrder when starting the gamepad
selection or calling GuiService:Select() on an ancestor. This
property does not affect directional navigation. Default value is 0.
Size: UDim2#
ReadSafe
This property determines the GuiObject scalar and pixel size using
a UDim2.
The scalar size is relative to the size of the parent GUI element, if any.
The pixel portions of the UDim2 value are the same regardless
of the parent GUI's size. The values represent the size of the object in
pixels. An object's actual pixel size can be read from the
GuiBase2d.AbsoluteSize property.
If the GuiObject has a parent, its size along each axis is also
influenced by the parent's
SizeConstraint.
SizeConstraint: SizeConstraint#
ReadSafe
Transparency: float#
HiddenNotReplicatedDeprecatedReadSafeDeprecated
Deprecated. This property is deprecated and indexing it will return
BackgroundTransparency.
A mixed property of
BackgroundTransparency and
TextTransparency.
Visible: boolean#
ReadSafe
This property whether the GuiObject and its descendants will be
rendered.
The rendering of individual components of a GuiObject can be
controlled individually through transparency properties such as
GuiObject.BackgroundTransparency,
TextLabel.TextTransparency and
ImageLabel.ImageTransparency.
When this property is false, the GuiObject will be ignored by
layout structures such as UIListLayout, UIGridLayout, and
UITableLayout. In other words, the space that the element would
otherwise occupy in the layout is used by other elements instead.
ZIndex: int#
ReadSafe
This property determines the order in which a GuiObject renders
relative to others.
By default, GuiObjects render in ascending priority
order where those with lower ZIndex values are
rendered under those with higher values. You can change the render order
within a ScreenGui, SurfaceGui, or BillboardGui by
changing the value of its
ZIndexBehavior.
If you are unsure if you'll need to add an element between two existing
elements in the future, it's a good practice to use multiples of 100
(0, 100, 200, etc.). This ensures a large gap of render order values
which you can use for elements layered in-between other elements.
See also LayoutOrder which controls the
sorting order of a GuiObject when used with a layout structure
such as UIListLayout or UIGridLayout.
Methods 3#
| TweenPosition | Smoothly moves a GUI to a new UDim2.Deprecated |
| TweenSize | Smoothly resizes a GuiObject to a new UDim2.Deprecated |
| TweenSizeAndPosition | Smoothly moves a GUI to a new size and position.Deprecated |
TweenPosition(endPosition: UDim2, easingDirection: EasingDirection = Out, easingStyle: EasingStyle = Quad, time: float = 1, override: boolean = false, callback: Function = nil): boolean#
DeprecatedDeprecated
Deprecated.
This function is deprecated in favor of using TweenService, which
allows for better customization using an object-oriented and event-based
approach.
- The
easingDirection,easingStyle, andtimeparameters are handled by aTweenInfo - The
overrideparameter is no longer relevant; tweens always override previous tweens on the same property. - The
callbackparameter is better suited by theTween.Completedevent. ThePlaybackStateenum passed by that event provides a more detailed description of the tween's completion state.
Smoothly moves a GUI to a new UDim2 position in the specified
time using the specified EasingDirection and EasingStyle.
This function will return whether the tween will play. It will not play if
another tween is acting on the GuiObject and the override
parameter is false.
See also GuiObject:TweenSize() and
GuiObject:TweenSizeAndPosition().
| Name | Type | Default | Description |
|---|---|---|---|
endPosition | UDim2 | Where the GUI should move to. | |
easingDirection | EasingDirection | Out | The direction in which to ease the GUI to the endPosition. |
easingStyle | EasingStyle | Quad | The style in which to ease the GUI to the endPosition. |
time | float | 1 | How long, in seconds, the tween should take to complete. |
override | boolean | false | Whether the tween will override an in-progress tween. |
callback | Function | nil | A callback function to execute when the tween completes. |
Returns
boolean— Whether the tween will play.
TweenSize(endSize: UDim2, easingDirection: EasingDirection = Out, easingStyle: EasingStyle = Quad, time: float = 1, override: boolean = false, callback: Function = nil): boolean#
DeprecatedDeprecated
Deprecated.
This function is deprecated in favor of using TweenService, which
allows for better customization using an object-oriented and event-based
approach.
- The
easingDirection,easingStyle, andtimeparameters are handled by aTweenInfo - The
overrideparameter is no longer relevant; tweens always override previous tweens on the same property. - The
callbackparameter is better suited by theTween.Completedevent. ThePlaybackStateenum passed by that event provides a more detailed description of the tween's completion state.
Smoothly resizes a GuiObject to a new UDim2 in the
specified time using the specified EasingDirection and
EasingStyle.
This function will return whether the tween will play. Normally this will
always return true, but it will return false if another tween is
active and override is set to false.
See also GuiObject:TweenSize() and
GuiObject:TweenSizeAndPosition().
| Name | Type | Default | Description |
|---|---|---|---|
endSize | UDim2 | The size that the GUI should resize. | |
easingDirection | EasingDirection | Out | The direction in which to ease the GUI to the endSize. |
easingStyle | EasingStyle | Quad | The style in which to ease the GUI to the endSize. |
time | float | 1 | How long, in seconds, the tween should take to complete. |
override | boolean | false | Whether the tween will override an in-progress tween. |
callback | Function | nil | A callback function to execute when the tween completes. |
Returns
boolean— Whether the tween will play.
TweenSizeAndPosition(endSize: UDim2, endPosition: UDim2, easingDirection: EasingDirection = Out, easingStyle: EasingStyle = Quad, time: float = 1, override: boolean = false, callback: Function = nil): boolean#
DeprecatedDeprecated
Deprecated.
This function is deprecated in favor of using TweenService, which
allows for better customization using an object-oriented and event-based
approach.
- The
easingDirection,easingStyle, andtimeparameters are handled by aTweenInfo - The
overrideparameter is no longer relevant; tweens always override previous tweens on the same property. - The
callbackparameter is better suited by theTween.Completedevent. ThePlaybackStateenum passed by that event provides a more detailed description of the tween's completion state.
Smoothly resizes and moves a GUI to a new UDim2 size and
position in the specified time using the specified EasingDirection
and EasingStyle.
This function will return whether the tween will play. Normally this will
always return true, but it will return false if another tween is
active and override is set to false.
See also GuiObject:TweenSize() and
GuiObject:TweenSizeAndPosition().
| Name | Type | Default | Description |
|---|---|---|---|
endSize | UDim2 | The size that the GUI should resize. | |
endPosition | UDim2 | Where the GUI should move to. | |
easingDirection | EasingDirection | Out | The direction in which to ease the GUI to the endSize and endPosition. |
easingStyle | EasingStyle | Quad | The style in which to ease the GUI to the endSize and endPosition. |
time | float | 1 | How long, in seconds, the tween should take to complete. |
override | boolean | false | Whether the tween will override an in-progress tween. |
callback | Function | nil | A callback function to execute when the tween completes. |
Returns
boolean— Whether the tween will play.
Events 18#
| DragBegin | Fired when a player begins dragging the object.Deprecated |
| DragStopped | Fired when a player stops dragging the object.Deprecated |
| InputBegan | Fired when a user begins interacting via a Human-Computer Interface device (Mouse button down, touch begin, keyboard button down, etc). |
| InputChanged | Fired when a user changes how they're interacting via a Human-Computer Interface device (Mouse button down, touch begin, keyboard button down, etc). |
| InputEnded | Fired when a user stops interacting via a Human-Computer Interface device (Mouse button down, touch begin, keyboard button down, etc). |
| MouseEnter | Fires when a user moves their mouse into a GUI element. |
| MouseLeave | Fires when a user moves their mouse out of a GUI element. |
| MouseMoved | Fires whenever a user moves their mouse while it is inside a GUI element. |
| MouseWheelBackward | Fires when a user scrolls their mouse wheel back when the mouse is over a GUI element. |
| MouseWheelForward | Fires when a user scrolls their mouse wheel forward when the mouse is over a GUI element. |
| SelectionGained | Fired when the GuiObject is being focused on with the Gamepad selector. |
| SelectionLost | Fired when the Gamepad selector stops focusing on the GuiObject. |
| TouchLongPress | Fires when the player starts, continues and stops long-pressing the UI element. |
| TouchPan | Fires when the player moves their finger on the UI element. |
| TouchPinch | Fires when the player performs a pinch or pull gesture using two fingers on the UI element. |
| TouchRotate | Fires when the player performs a rotation gesture using two fingers on the UI element. |
| TouchSwipe | Fires when the player performs a swipe gesture on the UI element. |
| TouchTap | Fires when the player performs a tap gesture on the UI element. |
DragBegin(initialPosition: UDim2)#
DeprecatedDeprecated
Deprecated. This property is deprecated. Use UIDragDetector instead, as it
supports more input types and can be better customized.
This event fires when a player begins dragging the object.
See also GuiObject.DragStopped.
DragStopped(x: int, y: int)#
DeprecatedDeprecated
Deprecated. This property is deprecated. Use UIDragDetector instead, as it
supports more input types and can be better customized.
This event fires when a player stops dragging the object.
See also GuiObject.DragBegin.
| Name | Type | Default | Description |
|---|---|---|---|
x | int | The mouse's X screen location in pixels, relative to the top left corner of the screen. | |
y | int | The mouse's Y screen location in pixels, relative to the top left corner of the screen. |
InputBegan(input: InputObject)#
This event fires when a user begins interacting with the GuiObject
via a Human-Computer Interface device (Mouse button down, touch begin,
keyboard button down, etc).
The UserInputService has a similarly named event that is not
restricted to a specific UI element: UserInputService.InputBegan.
This event will always fire regardless of game state.
See also GuiObject.InputEnded and GuiObject.InputChanged.
| Name | Type | Default | Description |
|---|---|---|---|
input | InputObject | An InputObject, which contains useful data for querying user
input such as the type of input,
state of input, and
screen coordinates of the input. |
InputChanged(input: InputObject)#
This event fires when a user changes how they're interacting via a Human-Computer Interface device (Mouse button down, touch begin, keyboard button down, etc).
The UserInputService has a similarly named event that is not
restricted to a specific UI element:
UserInputService.InputChanged.
This event will always fire regardless of game state.
See also GuiObject.InputBegan and GuiObject.InputEnded.
| Name | Type | Default | Description |
|---|---|---|---|
input | InputObject | An InputObject, which contains useful data for querying user
input such as the type of input,
state of input, and
screen coordinates of the input. |
InputEnded(input: InputObject)#
The InputEnded event fires when a user stops interacting via a Human-Computer Interface device (Mouse button down, touch begin, keyboard button down, etc).
The UserInputService has a similarly named event that is not
restricted to a specific UI element: UserInputService.InputEnded.
This event will always fire regardless of game state.
See also GuiObject.InputBegan and GuiObject.InputChanged.
| Name | Type | Default | Description |
|---|---|---|---|
input | InputObject | An InputObject, which contains useful data for querying user
input such as the UserInputType, UserInputState, and
InputObject.Position. |
MouseEnter(x: int, y: int)#
The MouseEnter event fires when a user moves their mouse into a
GuiObject element.
Please do not rely on the x and y arguments passed by this event as a
fool-proof way to determine where the user's mouse is when it enters a
GUI. These coordinates may vary even when the mouse enters the GUI via the
same edge - particularly when the mouse enters the element quickly. This
is due to the fact the coordinates indicate the position of the mouse when
the event fires rather than the exact moment the mouse enters the GUI.
This event fires even when the GUI element renders beneath another element.
If you would like to track when a user's mouse leaves a GUI element, you
can use the GuiObject.MouseLeave event.
See Also#
| Name | Type | Default | Description |
|---|---|---|---|
x | int | The mouse's X screen coordinate in pixels, relative to the top left corner of the screen. | |
y | int | The mouse's Y screen coordinate in pixels, relative to the top left corner of the screen. |
MouseLeave(x: int, y: int)#
The MouseLeave event fires when a user moves their mouse out of a
GuiObject element.
Please do not rely on the x and y arguments passed by this event as a
fool-proof way to determine where the user's mouse is when it leaves a
GUI. These coordinates may vary even when the mouse leaves the GUI via the
same edge - particularly when the mouse leaves the element quickly. This
is due to the fact the coordinates indicate the position of the mouse when
the event fires rather than the exact moment the mouse leaves the GUI.
This event fires even when the GUI element renders beneath another element.
See Also#
| Name | Type | Default | Description |
|---|---|---|---|
x | int | The mouse's X screen coordinate in pixels, relative to the top left corner of the screen. | |
y | int | The mouse's Y screen coordinate in pixels, relative to the top left corner of the screen. |
MouseMoved(x: int, y: int)#
Fires whenever a user moves their mouse while it is inside a
GuiObject element. It is similar to Mouse.Move, which
fires regardless whether the user's mouse is over a GUI element.
Note, this event fires when the mouse's position is updated, therefore it will fire repeatedly while being moved.
The x and y arguments indicate the updated screen coordinates of the
user's mouse in pixels. These can be useful to determine the mouse's
location on the GUI, screen, and delta since the mouse's previous position
if it is being tracked in a global variable.
The code below demonstrates how to determine the Vector2 offset
of the user's mouse relative to a GUI element.
AbsolutePosition is measured inside the
screen's GUI inset, while the x and y arguments of this event are
screen coordinates that include it, so the sample calls
GetGuiInset() to reconcile the two spaces
instead of assuming a fixed inset size.
local Players = game:GetService("Players")
local GuiService = game:GetService("GuiService")
local CustomScrollingFrame = script.Parent
local SubFrame = CustomScrollingFrame:FindFirstChild("SubFrame")
local mouse = Players.LocalPlayer:GetMouse()
local function getPosition(X, Y)
local topLeftInset = GuiService:GetGuiInset()
local gui_X = CustomScrollingFrame.AbsolutePosition.X
local gui_Y = CustomScrollingFrame.AbsolutePosition.Y
local pos = Vector2.new(math.abs(X - gui_X), math.abs(Y - gui_Y - topLeftInset.Y))
print(pos)
end
CustomScrollingFrame.MouseMoved:Connect(getPosition)Note that this event may not fire exactly when the user's mouse enters or
exits a GUI element. Therefore, the x and y arguments may not match up
perfectly to the coordinates of the GUI's edges.
See Also#
| Name | Type | Default | Description |
|---|---|---|---|
x | int | The mouse's X screen coordinate in pixels, relative to the top left corner of the screen. | |
y | int | The mouse's Y screen coordinate in pixels, relative to the top left corner of the screen. |
MouseWheelBackward(x: int, y: int)#
The WheelBackward event fires when a user scrolls their mouse wheel back
when the mouse is over a GuiObject element. It is similar to
Mouse.WheelBackward, which fires regardless whether the user's
mouse is over a GUI element.
This event fires merely as an indicator of the wheel's backward movement.
This means that the x and y mouse coordinate arguments don't change as
a result of this event. These coordinates only change when the mouse
moves, which can be tracked by the GuiObject.MouseMoved event.
See Also#
| Name | Type | Default | Description |
|---|---|---|---|
x | int | The mouse's X screen coordinate in pixels, relative to the top left corner of the screen. | |
y | int | The mouse's Y screen coordinate in pixels, relative to the top left corner of the screen. |
MouseWheelForward(x: int, y: int)#
The WheelForward event fires when a user scrolls their mouse wheel forward
when the mouse is over a GuiObject element. It is similar to
Mouse.WheelForward, which fires regardless whether the user's
mouse is over a GUI element.
This event fires merely as an indicator of the wheel's forward movement.
This means that the X and Y mouse coordinate arguments do not
change as a result of this event. These coordinates only change when the
mouse moves, which can be tracked by the GuiObject.MouseMoved
event.
See Also#
| Name | Type | Default | Description |
|---|---|---|---|
x | int | The mouse's X screen coordinate in pixels, relative to the top left corner of the screen. | |
y | int | The Y coordinate of the user's mouse. |
SelectionGained()#
This event fires when the Gamepad selector starts focusing on the
GuiObject.
If you want to check from the Gamepad select stops focusing on the GUI
element, you can use the GuiObject.SelectionLost event.
When a GUI gains selection focus, the value of the
SelectedObject property also changes to
the that gains selection. To determine which GUI gained selection, check
the value of this property.
SelectionLost()#
This event fires when the Gamepad selector stops focusing on the
GuiObject.
If you want to check from the Gamepad select starts focusing on the GUI
element, you can use the GuiObject.SelectionGained event.
When a GUI loses selection focus, the value of the
SelectionObject property changes either
to nil or to the GUI element that gains selection focus. To determine
which GUI gained selection, or if no GUI is selected, check the value of
this property.
TouchLongPress(touchPositions: Array, state: UserInputState)#
This event fires after a brief moment when the player holds their finger
on the UI element using a touch-enabled device. It fires with a table of
Vector2 that describe the relative screen positions of the
fingers involved in the gesture. In addition, it fires multiple times:
UserInputState.Begin after a brief delay,
UserInputState.Change if the player moves their finger during the
gesture, and finally UserInputState.End. The delay is platform
dependent; in Studio it is a little longer than one second.
| Name | Type | Default | Description |
|---|---|---|---|
touchPositions | Array | An array of Vector2 that describe the relative
positions of the fingers involved in the gesture. | |
state | UserInputState | A
|
TouchPan(touchPositions: Array, totalTranslation: Vector2, velocity: Vector2, state: UserInputState)#
This event fires when the player moves their finger on the UI element
using a touch-enabled device. It fires shortly before
GuiObject.TouchSwipe would, and does not fire with
GuiObject.TouchTap. This event is useful for allowing the player
to manipulate the position of UI elements on the screen.
This event fires with a table of Vector2 that describe the
relative screen positions of the fingers involved in the gesture. In
addition, it fires multiple times: UserInputState.Begin after a
brief delay, UserInputState.Change when the player moves their
finger during the gesture, and finally with UserInputState.End.
| Name | Type | Default | Description |
|---|---|---|---|
touchPositions | Array | A Luau array of Vector2 objects, each indicating the
position of all the fingers involved in the gesture. | |
totalTranslation | Vector2 | Indicates how far the pan gesture has gone from its starting point. | |
velocity | Vector2 | Indicates how quickly the gesture is being performed in each dimension. | |
state | UserInputState | Indicates the UserInputState of the gesture. |
TouchPinch(touchPositions: Array, scale: float, velocity: float, state: UserInputState)#
This event fires when the player uses two fingers to make a pinch or pull
gesture on the UI element using a touch-enabled device. A pinch
happens when two or more fingers move closer together, and a pull
happens when they move apart. This event fires in conjunction with
GuiObject.TouchPan. This event is useful for allowing the player
to manipulate the scale (size) of UI elements on the screen, and is most
often used for zooming features.
This event fires with a table of Vector2 that describe the
relative screen positions of the fingers involved in the gesture. In
addition, it fires multiple times: UserInputState.Begin after a
brief delay, UserInputState.Change when the player moves a finger
during the gesture, and finally with UserInputState.End. It should
be noted that the scale should be used multiplicatively.
| Name | Type | Default | Description |
|---|---|---|---|
touchPositions | Array | A Luau array of Vector2 objects, each indicating the
position of all the fingers involved in the pinch gesture. | |
scale | float | A float that indicates the difference from the beginning of the pinch gesture. | |
velocity | float | A float indicating how quickly the pinch gesture is happening. | |
state | UserInputState | Indicates the UserInputState of the gesture. |
TouchRotate(touchPositions: Array, rotation: float, velocity: float, state: UserInputState)#
This event fires when the player uses two fingers to make a pinch or pull
gesture on the UI element using a touch-enabled device. Rotation occurs
when the angle of the line between two fingers changes. This event fires
in conjunction with GuiObject.TouchPan. This event is useful for
allowing the player to manipulate the rotation of UI elements on the
screen.
This event fires with a table of Vector2 that describe the
relative screen positions of the fingers involved in the gesture. In
addition, it fires multiple times: UserInputState.Begin after a
brief delay, UserInputState.Change when the player moves a finger
during the gesture, and finally with UserInputState.End.
| Name | Type | Default | Description |
|---|---|---|---|
touchPositions | Array | A Luau array of Vector2 objects, each indicating the
position of all the fingers involved in the gesture. | |
rotation | float | A float indicating how much the rotation has gone from the start of the gesture. | |
velocity | float | A float that indicates how quickly the gesture is being performed. | |
state | UserInputState | Indicates the UserInputState of the gesture. |
TouchSwipe(swipeDirection: SwipeDirection, numberOfTouches: int)#
This event fires when the player performs a swipe gesture on the UI element using a touch-enabled device. It fires with the direction of the gesture (Up, Down, Left or Right) and the number of touch points involved in the gesture. Swipe gestures are often used to change tabs in mobile UIs.
| Name | Type | Default | Description |
|---|---|---|---|
swipeDirection | SwipeDirection | A SwipeDirection indicating the direction of the swipe gesture
(Up, Down, Left or Right). | |
numberOfTouches | int | The number of touch points involved in the gesture (usually 1). |
TouchTap(touchPositions: Array)#
This event fires when the player performs a tap gesture on the UI element
using a touch-enabled device. A tap is a quick single touch without any
movement involved (a longer press would fire
GuiObject.TouchLongPress, and moving during the touch would fire
GuiObject.TouchPan and/or GuiObject.TouchSwipe). It fires
with a table of Vector2 objects that describe the relative
positions of the fingers involved in the gesture.
| Name | Type | Default | Description |
|---|---|---|---|
touchPositions | Array | An array of Vector2 that describe the relative
positions of the fingers involved in the gesture. |
Inherited members#
Inherited from GuiBase2d 12
Properties (11)
AbsolutePosition, AbsoluteRotation, AbsoluteSize, AutoLocalize, Localize, RootLocalizationTable, SelectionBehaviorDown, SelectionBehaviorLeft, SelectionBehaviorRight, SelectionBehaviorUp, SelectionGroup
Events (1)
Inherited from Instance 58
Properties (10)
Archivable, archivable, Capabilities, IsInSandbox, Name, Parent, PredictionMode, RobloxLocked, Sandboxed, UniqueId
Methods (39)
AddTag, children, ClearAllChildren, Clone, clone, Destroy, destroy, FindFirstAncestor, FindFirstAncestorOfClass, FindFirstAncestorWhichIsA, FindFirstChild, findFirstChild, FindFirstChildOfClass, FindFirstChildWhichIsA, FindFirstDescendant, GetActor, GetAttribute, GetAttributeChangedSignal, GetAttributes, GetChildren, getChildren, GetDebugId, GetDescendants, GetFullName, GetStyled, GetStyledPropertyChangedSignal, GetTags, HasTag, IsAncestorOf, IsDescendantOf, isDescendantOf, IsPropertyModified, QueryDescendants, Remove, remove, RemoveTag, ResetPropertyToDefault, SetAttribute, WaitForChild
Subclasses 11#
CanvasGroup, Frame, GuiButton, GuiLabel, InputActionLabel, ScrollingFrame, TextBox, TextChannelWindow, VideoDisplay, VideoFrame, ViewportFrame