Cheat Scripts (Blueprint)
Editor-side authoring workflow for Blueprint cheat assets — class defaults, the Execute event, and optional override events.
A cheat is a Blueprint asset that subclasses Blueprint Cheat Script. This page covers the editor-side authoring workflow.
Creating a cheat asset
Right-click in the Content Browser → Blueprints → Blueprint Cheat
Script → name it BPCheat_<Something>. Open the asset to edit its
Class Defaults and event graph.
Class Defaults
Every property below is set on the asset's Class Defaults panel. They are grouped here by purpose, not by category in the panel.
Identity
| Field | Notes |
|---|---|
| Script Display Name | Override name shown in the menu. If empty, the class name is used. |
| Help Description | Tooltip in the menu, also used as the console command's help string (help <command>). |
Menu integration
| Field | Notes |
|---|---|
| Add To Menu | When on, the cheat appears in the overlay menu. Default: on. |
| Display Order Priority | Sort order. 0 is the top. Only edited when Add To Menu is on. |
| Widget Class | The UMG row used in the menu. Defaults to WBP_BlueprintsCheats_MenuItem. Override per-cheat for custom row layouts. |
Console integration
| Field | Notes |
|---|---|
| Add Console Command | When on, the cheat registers a console command on level start. |
| Console Command | The command name. If empty, falls back to Script Display Name, then class name. The project-wide Cheats Console Prefix is prepended at registration time. |
Hotkey integration
| Field | Notes |
|---|---|
| Input Action | Optional InputAction asset that fires the cheat directly. |
| Continue Executing With Ongoing Key Press | When on, the cheat re-fires every Enhanced Input "Ongoing" tick while the key is held. Default: on. Turn off for one-shot toggles. |
Arguments
| Field | Notes |
|---|---|
| Named Expected Arguments | Map of argument names to argument instances. See CheatArguments. |
Implementing the cheat body
The cheat's logic lives in the Execute event. Right-click the event graph → Add Event → Execute to add it.
Execute(ExecutingPlayerController, CheatArguments, OutcomeMessage)
└─ ... your logic ...
└─ Return Value (bool)Pins:
| Pin | Type | Purpose |
|---|---|---|
ExecutingPlayerController | PlayerController | The player that triggered the cheat. |
CheatArguments | Map<Name, BlueprintCheatArgument> | The parsed arguments, keyed by the names from Named Expected Arguments. |
OutcomeMessage (out) | Text | Set this for the on-screen and log message. |
Return Value | bool | true for success (green message), false for failure (red). |
To read argument values, use the Get Cheat Argument As ... nodes — see CheatArguments.
Optional events
These are BlueprintNativeEvent-style events you can override on the
asset. Right-click the event graph → Add Event to expose them.
OnEnabled
Fires once when the subsystem enables the cheat (typically on world match start). Use for per-level setup tied to the cheat itself.
Can Execute
Gates execution. Default returns true. Return false (and set
Output Message) to refuse — useful for cheats that require a pawn,
authority, or specific game state. Called from all three trigger
sources before Execute.
Can Execute(ExecutingPlayerController, OutputMessage) -> boolGet Script Display Name
Returns the display name. Defaults to the Script Display Name field. Override only if you need a dynamic name.
Build Widget
Constructs the menu row. Default: instantiates Widget Class. Override only when one cheat needs special construction logic.
Try To Parse String Arguments
Parses raw console tokens into typed arguments. The default
implementation walks the arguments by Position, applying defaults
and respecting Optional. Override only for non-positional parsing
(e.g. --name value).
Execute Raw Arguments
Console / hotkey entry point. Default: parse via Try To Parse String Arguments, then fire the Execute event. Override to skip parsing.
Reset State
Called automatically by the subsystem after a menu-driven execution. Clears argument values back to defaults so the next click sees clean state. Override (and call Parent: Reset State) only if your cheat caches additional transient state on itself.
Execution flow at a glance
Menu click ──► Subsystem.ExecuteScript
├── Can Execute → if false, log and stop
├── Execute(controller, namedArgs, msg)
└── Reset State
Console ──► Subsystem (raw tokens)
├── Can Execute
└── Execute Raw Arguments
├── Try To Parse String Arguments
└── Execute(controller, parsedArgs, msg)
Hotkey ──► same as console with empty rawArgs
(every argument must default or be optional)Enabling the cheat
A cheat asset must be enabled before its menu row, console command, or hotkey is registered. See Settings for the four sources the subsystem unions on world match start.