# GamepadService

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

- Inherits from, nearest first: [Instance](https://rapi.sleaze.dev/classes/Instance.md), [Object](https://rapi.sleaze.dev/classes/Object.md)
- Tags: Not creatable, Not replicated, Service
- Memory category: Instances
- HTML page: https://rapi.sleaze.dev/classes/GamepadService/
- Roblox documentation: https://create.roblox.com/docs/reference/engine/classes/GamepadService

The GamepadService is internally responsible for handling inputs from various controllers, such as Xbox One or PlayStation DualShock controllers.

## Properties

### GamepadCursorEnabled

```luau
GamepadService.GamepadCursorEnabled: boolean = false
```

- Tags: Write: Roblox script security, Read capabilities: Input

The state of the gamepad virtual cursor.

## Methods

### AutoSelectGui

```luau
GamepadService:AutoSelectGui()
```

- Tags: Roblox script security, Capabilities: Input

### DisableGamepadCursor

```luau
GamepadService:DisableGamepadCursor()
```

- Tags: Capabilities: Input

Disables the gamepad cursor, if currently enabled.

### EnableGamepadCursor

```luau
GamepadService:EnableGamepadCursor(guiObject: Instance)
```

- Tags: Capabilities: Input

Enables the gamepad cursor or updates its position.

Parameters:

- `guiObject`: A [`GuiObject`](https://rapi.sleaze.dev/classes/GuiObject.md) to center the virtual cursor on when enabled, or `nil` to use the default cursor position.

### GetGamepadCursorPosition

```luau
GamepadService:GetGamepadCursorPosition(): Vector2
```

- Tags: Roblox script security, Capabilities: Input

### SetGamepadCursorPosition

```luau
GamepadService:SetGamepadCursorPosition(position: Vector2)
```

- Tags: Roblox script security, Capabilities: Input

## Events

### GamepadThumbstick1Changed

```luau
GamepadService.GamepadThumbstick1Changed: RBXScriptSignal<(event: Vector2)>
```

- Tags: Roblox script security, Capabilities: Input

## Inherited members

- From [Instance](https://rapi.sleaze.dev/classes/Instance.md): `Archivable`, `archivable`, `Attributes`, `AttributesReplicate`, `AttributesSerialize`, `HistoryId`, `Name`, `Parent`, `PredictionMode`, `PropertyStatusStudio`, `RobloxLocked`, `SerializedOverrides`, `SourceAssetId`, `Tags`, `UniqueId`, `numExpectedDirectChildren`, `DataCost`, `Capabilities`, `DefinesCapabilities`, `IsInSandbox`, `Sandboxed`, `AddTag`, `ClearAllChildren`, `Clone`, `Destroy`, `FindFirstAncestor`, `FindFirstAncestorOfClass`, `FindFirstAncestorWhichIsA`, `FindFirstChild`, `FindFirstChildOfClass`, `FindFirstChildWhichIsA`, `FindFirstDescendant`, `GetActor`, `GetAttribute`, `GetAttributeChangedSignal`, `GetAttributes`, `GetChildren`, `GetDebugId`, `GetDescendants`, `GetFullName`, `GetStyled`, `GetStyledPropertyChangedSignal`, `GetTags`, `HasTag`, `IsAncestorOf`, `IsDescendantOf`, `IsPropertyModified`, `QueryDescendants`, `RemoveTag`, `ResetPropertyToDefault`, `SetAttribute`, `WaitForChild`, `Remove`, `children`, `clone`, `destroy`, `findFirstChild`, `getChildren`, `isDescendantOf`, `remove`, `AncestryChanged`, `AttributeChanged`, `ChildAdded`, `ChildRemoved`, `DescendantAdded`, `DescendantRemoving`, `Destroying`, `StyledPropertiesChanged`, `childAdded`
- From [Object](https://rapi.sleaze.dev/classes/Object.md): `ClassName`, `className`, `GetPropertyChangedSignal`, `IsA`, `isA`, `Changed`
