Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.
UserInputState
The UserInputState enum describes the state of an input that is currently or was recently performed. It is used by the InputObject.UserInputState property of the same name, as well as various UserInputService and GuiObject events.
Depending on the UserInputType, input may follow states differently:
- Simple button and key presses generally follow a simple
BegintoEndflow. Analog gamepad trigger buttons are similar to button presses but will useChangeas the trigger pressure changes. - Mouse movement generally follows
Begin(mouse-over) toChange(mouse movement) toEnd(mouse-leave). - Touch input behaves somewhat similarly to mouse movement.
BeginandEndoccur when the user starts or ends touching the screen, respectively. The sameInputObjectis used for the same touch point. - Gamepad thumbstick controls will cause
Changeto occur each frame the position changes.
Items
| Name | Value | Description |
|---|---|---|
| Begin | 0 | Occurs when an InputObject starts to interact with the experience. For example, a mouse button down, a key down, or when the player begins touching the screen. |
| Change | 1 | Occurs each frame an InputObject has already begun interacting with the experience and part of its state is changing. For example, movement of the mouse position, a gamepad thumbstick movement, an analog gamepad trigger button change, or screen touch point change. |
| End | 2 | Occurs when an InputObject finishes interacting with the experience. For example, a mouse button up, a key up, or when the player stops touching the screen. |
| Cancel | 3 | A special circumstance state that indicates this input is no longer relevant, particularly with ContextActionService. For example, binding two action-handling functions will cause the first to Cancel if an input was already in-progress when the second was bound. |
| None | 4 | A state that should never be seen in an experience; essentially just marks the end of the enum. |
Begin
Occurs when an InputObject starts to interact with the experience. For example, a mouse button down, a key down, or when the player begins touching the screen.
| Field | Value |
|---|---|
| value | 0 |
Change
Occurs each frame an InputObject has already begun interacting with the experience and part of its state is changing. For example, movement of the mouse position, a gamepad thumbstick movement, an analog gamepad trigger button change, or screen touch point change.
| Field | Value |
|---|---|
| value | 1 |
End
Occurs when an InputObject finishes interacting with the experience. For example, a mouse button up, a key up, or when the player stops touching the screen.
| Field | Value |
|---|---|
| value | 2 |
Cancel
A special circumstance state that indicates this input is no longer relevant, particularly with ContextActionService. For example, binding two action-handling functions will cause the first to Cancel if an input was already in-progress when the second was bound.
| Field | Value |
|---|---|
| value | 3 |
None
A state that should never be seen in an experience; essentially just marks the end of the enum.
| Field | Value |
|---|---|
| value | 4 |