---
title: "Input, Runtime, And Scripting Components"
description: "Last verified: 2026-07-09"
engineVersion: v1.0.234
date: 2026-09-28
license: "(c) Gessa, proprietary. Cite with attribution to https://gessa.ai/docs/. Terms: https://gessa.ai/terms/."
canonical: https://gessa.ai/docs/creator/components/input-runtime-and-scripting/
---
# Input, Runtime, And Scripting Components

Last verified: 2026-07-09

## TimerComponent

Use Timer for repeated or one-shot runtime events. Fields control enabled state, timer key, interval seconds, repeating behavior, and maximum firing count.

Gotcha: use a distinct timerKey when scripts need to tell timers apart.

## ScriptComponent

Use Script to attach behavior. Fields control the script reference, enabled state, and typed exposed config payload. The script manifest/IR owns event subscriptions.

Gotcha: ScriptComponent is server-only in replication because scripts are authoritative runtime behavior, not public client state.

## InputProfileComponent

The sole input component. It declares named actions, action policy, prediction mode, and action-owned bindings in one versioned profile.

Gotcha: bindings are nested under their action so an action-key mismatch cannot be represented. Use stable semantic keys such as `player.move`, `player.jump`, or `player.interact`.

The profile is owner-only in replication because bindings can contain player-private input data. Keyboard, mouse, gamepad, and touch are the launch device set.

The initial authored context is `gameplay`. Menus and other local UI contexts are pushed and popped in the client runtime and are not authored ECS state.

## Removed Input Contracts

`InputActionDeclarationComponent`, `InputBindingSetComponent`, and `InputContextStackComponent` exist only as registered migration inputs. New authoring and steady-state runtime code must emit and consume `InputProfileComponent`.
