Made For Unreal — Docs
Blueprint CheatsAPI ReferenceBlueprint API

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

FieldNotes
Script Display NameOverride name shown in the menu. If empty, the class name is used.
Help DescriptionTooltip in the menu, also used as the console command's help string (help <command>).
FieldNotes
Add To MenuWhen on, the cheat appears in the overlay menu. Default: on.
Display Order PrioritySort order. 0 is the top. Only edited when Add To Menu is on.
Widget ClassThe UMG row used in the menu. Defaults to WBP_BlueprintsCheats_MenuItem. Override per-cheat for custom row layouts.

Console integration

FieldNotes
Add Console CommandWhen on, the cheat registers a console command on level start.
Console CommandThe 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

FieldNotes
Input ActionOptional InputAction asset that fires the cheat directly.
Continue Executing With Ongoing Key PressWhen on, the cheat re-fires every Enhanced Input "Ongoing" tick while the key is held. Default: on. Turn off for one-shot toggles.

Arguments

FieldNotes
Named Expected ArgumentsMap 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:

PinTypePurpose
ExecutingPlayerControllerPlayerControllerThe player that triggered the cheat.
CheatArgumentsMap<Name, BlueprintCheatArgument>The parsed arguments, keyed by the names from Named Expected Arguments.
OutcomeMessage (out)TextSet this for the on-screen and log message.
Return Valuebooltrue 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) -> bool

Get 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.