Skip to main content
Glama

unregister_input_key_mapping

Destructive

Revert a player's input key mapping to its default key by name and slot, clearing the runtime override. Updates Enhanced Input user settings without deleting the mapping row.

Instructions

Resets a player input mapping back to its default key at runtime via UEnhancedInputUserSettings::UnMapPlayerKey (EnhancedInputUserSettings.h). Inverse of register_input_key_mapping; locates the mapping by name + slot and clears the player override (does not need new_key, does not delete the row). The call fails when the engine refuses it, with its reasons in failure_tags.

Returns: { applied: bool, mapping_name: string, slot: string, failure_tags: [string] }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
slotNo"First" | "Second" | "Third" | "Fourth" (default "First"); EPlayerMappableKeySlot enum
mapping_nameYesFName of the source mapping inside an already-mapped IMC (required)
player_indexNoOptional local player index used to resolve the PlayerController (default 0).
player_controller_nameNoOptional editor-world APlayerController actor name (defaults to first local player)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real context beyond the annotations: it clarifies that the row is not deleted, that only the player override is cleared, that this is a runtime operation, and that failure surfaces with reasons in failure_tags. Annotations already flag destructiveHint=true; the description is consistent with that and enriches it. Minor tension exists between "clears the override" and idempotentHint=false, but it is not a contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose, then the inverse/parameter-location detail, then the failure mode, then the return shape. Every sentence carries information; it is dense but not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully supplies the return shape { applied, mapping_name, slot, failure_tags }, covers the required parameters, and explains the failure path. Reasonably complete for a runtime reset tool, though it could say more about what the failure_tags values mean.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning by explaining how the mapping is located (name + slot combined) and that new_key is not required. This clarifies the roles of the required and optional parameters beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Resets a player input mapping back to its default key") and names the underlying engine API. It explicitly positions itself against the sibling register_input_key_mapping as its inverse, so an agent can distinguish the two without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The inverse relationship to register_input_key_mapping gives clear selection context, and the runtime scoping is stated. Boundary conditions are also noted (does not need new_key, does not delete the row), though it stops short of an explicit 'use this instead of X when Y' rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools