# Enum.UserInputState

Roblox Engine API enum from Roblox Studio 0.744.0.7441077 (version-7aaa6838d36c4448).

- HTML page: https://rapi.sleaze.dev/enums/UserInputState/
- Roblox documentation: https://create.roblox.com/docs/reference/engine/enums/UserInputState

This enum describes the state of an input that is currently or was recently performed.

## Items

| Name | Value | Description |
| --- | --- | --- |
| `Begin` | 0 | Occurs when an [`InputObject`](https://rapi.sleaze.dev/classes/InputObject.md) 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`](https://rapi.sleaze.dev/classes/InputObject.md) 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`](https://rapi.sleaze.dev/classes/InputObject.md) 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`](https://rapi.sleaze.dev/classes/ContextActionService.md). For example, binding two action-handling functions will cause the first to [`Cancel`](https://rapi.sleaze.dev/enums/UserInputState.md) 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. |

## Used by

Each entry lists the class, then the role and names of the members that use this type.

- [ContextActionService](https://rapi.sleaze.dev/classes/ContextActionService.md): method parameter `CallFunction`
- [GuiObject](https://rapi.sleaze.dev/classes/GuiObject.md): event parameter `TouchLongPress`, `TouchPan`, `TouchPinch`, `TouchRotate`
- [InputObject](https://rapi.sleaze.dev/classes/InputObject.md): property `UserInputState`
- [UserInputService](https://rapi.sleaze.dev/classes/UserInputService.md): event parameter `TouchLongPress`, `TouchPan`, `TouchPinch`, `TouchRotate`
