# InputObject

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
- Memory category: Instances
- HTML page: https://rapi.sleaze.dev/classes/InputObject/
- Roblox documentation: https://create.roblox.com/docs/reference/engine/classes/InputObject

An object created when an input begins that describes a particular user input.

## Properties

### Delta

```luau
InputObject.Delta: Vector3 = Vector3.zero
```

- Tags: Read capabilities: Input

A [`Vector3`](https://rapi.sleaze.dev/index/types/Vector3.md) describing the delta between input movements.

### KeyCode

```luau
InputObject.KeyCode: Enum.KeyCode = Enum.KeyCode.None
```

- Tags: Read capabilities: Input

Contains an Enum that describes the kind of input used.

### Position

```luau
InputObject.Position: Vector3 = Vector3.zero
```

- Tags: Read capabilities: Input

A [`Vector3`](https://rapi.sleaze.dev/index/types/Vector3.md) describing the positional value of this input.

### UserInputType

```luau
InputObject.UserInputType: Enum.UserInputType = Enum.UserInputType.None
```

- Tags: Read capabilities: Input

Describes the kind of input being performed (mouse, keyboard, gamepad, touch, etc.).

### UserInputState

```luau
InputObject.UserInputState: Enum.UserInputState = Enum.UserInputState.None
```

- Tags: Read capabilities: Input

Describes the state of an input being performed, following a specific flow depending on the [`UserInputType`](https://rapi.sleaze.dev/classes/InputObject.md).

## Methods

### IsModifierKeyDown

```luau
InputObject:IsModifierKeyDown(modifierKey: Enum.ModifierKey): boolean
```

- Tags: Capabilities: Input

Returns whether the passed in modifier key is down.

Parameters:

- `modifierKey`: The `ModifierKey` to check.

Returns: `true` if the passed in `modifierKey` is being held down; `false` otherwise.

## 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`
