> For the complete documentation index, see [llms.txt](https://docs.easy.gg/scripting/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.easy.gg/scripting/bedwars-scripting/services/inputservice.md).

# InputService

Example usage:

```lua
-- Start a 10 second tornado event whenever the host presses the X key
InputService.registerInputBegan(KeyCode.X, function (player)
    if (player == MatchService.getHost()) then
        DisasterService.startDisaster(DisasterType.TORNADO, 10)
    end
end)

-- Start a 10 second meteors event whenever the host stops pressing the Z key
InputService.registerInputEnded(KeyCode.Z, function (player)
    if (player == MatchService.getHost()) then
        DisasterService.startDisaster(DisasterType.METEORS, 10)
    end
end)
```

### Functions

#### registerInputBegan(keyCode: [KeyCode](broken://pages/rBD6V5rOrL4nMksHQ9tL), function: (player: [Player](/scripting/bedwars-scripting/objects/player.md)) => nil)

Begins tracking the beginning of user input of the key code from all players. The callback function will run every time the key code is pressed.

#### registerInputEnded(keyCode: [KeyCode](broken://pages/rBD6V5rOrL4nMksHQ9tL), function: (player: [Player](/scripting/bedwars-scripting/objects/player.md)) => nil)

Begins tracking the end of user input of the key code from all players. The callback function will run every time the key code is pressed.
