---
title: "Input Profile"
description: "`InputProfileComponent` is the sole authored input contract for a controllable entity."
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-profile/
---
# Input Profile

`InputProfileComponent` is the sole authored input contract for a controllable entity.

Each action declares its key, value type, active contexts, trigger/processor policy, prediction mode,
effect system, and its own bindings. Because bindings are nested under the owning action, an
action/binding key mismatch cannot be stored. The profile `version` is the structural revision used
by runtime admission, replay, rebinding, and stale-command rejection.

The initial runtime context is `gameplay`. Menus and other local UI layers push and pop temporary
contexts in the client dispatcher; they are view/runtime state and are not persisted in ECS.

Supported source devices are keyboard, mouse, gamepad, and touch. A source is not considered wired
until at least one binding exists under the action. Server action policy remains authoritative even
when prediction is enabled.

Legacy `InputActionDeclarationComponent`, `InputBindingSetComponent`, and
`InputContextStackComponent` records are accepted only by the registered component-map migration,
which atomically produces one profile before canonical validation. New authoring must never emit the
legacy triad.
