UI (Blueprint)
The three UMG layers of the cheat overlay — menu, row, argument widget — and how to subclass each.
The cheat overlay is composed of three UMG layers, all of which can be subclassed and replaced as Blueprint widgets:
Blueprint Cheats Menu Widget Base ← whole overlay (one instance)
└── Blueprint Cheat Script Menu Item Base ← one row per enabled cheat
└── Blueprint Cheat Argument Widget Base ← one widget per argumentOverride at any level — replace the entire menu, just the row, or just the per-argument widgets — without touching the rest.
Blueprint Cheats Menu Widget Base
The whole overlay. Configured via Project Settings → Blueprint Cheats → Cheats Menu Class.
Default asset: /BlueprintCheats/UI/WBP_BlueprintsCheats_Menu.
Required widgets (BindWidget)
Your widget Blueprint must contain widgets with these exact names and types — UMG won't let the widget compile without them:
| Name | Type | Purpose |
|---|---|---|
CheatsListView | Scroll Box | Container the subsystem populates with cheat rows. |
CloseButton | Button | Closes the menu. |
Events you can override
- Set Cheat Scripts — receives the array of enabled scripts when
the subsystem opens the menu. Default behavior: walks the array,
calls Build Widget on each script, and adds the resulting row to
CheatsListView. Override (and call Parent: Set Cheat Scripts) for grouping, search, or custom sorting. - On Menu Closed — fires when the user presses the close button. Default broadcasts the close-menu delegate, which the subsystem listens on to tear the menu down.
Delegate
On Cheat Menu Closed — the delegate the subsystem uses to remove the menu. Don't unbind it; the subsystem manages the lifecycle.
Blueprint Cheat Script Menu Item Base
The row used per enabled cheat. Configured per-cheat via the cheat asset's Widget Class field.
Default asset: /BlueprintCheats/UI/WBP_BlueprintsCheats_MenuItem.
Required widgets (BindWidget)
| Name | Type | Purpose |
|---|---|---|
TitleTextBlock | Text Block | Displays the script's display name. |
ControlsContainer | Horizontal Box | Container the row populates with one argument widget per argument. |
ExecutionButton | Button | The "run" button. |
State exposed to the widget
| Variable | Type | Purpose |
|---|---|---|
Related Script | Blueprint Cheat Script | The cheat this row represents. |
Script Cheat Arguments | Map<Name, Blueprint Cheat Argument> | The arguments to be filled in. |
Argument Widgets | Array of argument widgets | The widgets generated into ControlsContainer. |
Events you can override
- Set Related Script — caches the script, copies its expected
arguments into
Script Cheat Arguments, builds an argument widget per entry via Build Widget For Argument, and adds each toControlsContainer. Override for custom layouts. - On Execution Button Clicked — walks the argument widgets calling Commit Value on each, then asks the subsystem to execute via Execute Script.
Blueprint Cheat Argument Widget Base
The base for the per-argument editor widget. There is one default implementation per argument type:
| Argument | Default widget |
|---|---|
| Bool argument | WBP_BlueprintCheats_BoolArgument |
| Int argument | WBP_BlueprintCheats_IntArgument |
| Float argument | WBP_BlueprintCheats_FloatArgument |
| Double argument | WBP_BlueprintCheats_DoubleArgument |
| String argument | WBP_BlueprintCheats_StringArgument |
| Enum argument | WBP_BlueprintCheats_EnumArgument |
The mapping lives in Project Settings → Blueprint Cheats → Argument Type To Widget Map (under Advanced). Override entries to swap defaults, or add entries for custom argument subclasses.
Required widgets (BindWidget)
| Name | Type | Purpose |
|---|---|---|
ArgumentDisplayNameBlock | Text Block | Shows the argument's display name. |
State exposed to the widget
| Variable | Type | Purpose |
|---|---|---|
Expected Argument | Blueprint Cheat Argument | The argument this widget is editing. |
Events to implement
- On Expected Argument Set (BlueprintImplementableEvent) — fires after the row binds the argument. Read the argument's configuration here (defaults, min/max, enum options) using the argument-library nodes and populate your control accordingly.
- Commit Value (BlueprintImplementableEvent) — fires on the row's execute button. Push your control's current value into the argument using the setter nodes.
Authoring a custom argument widget
- Create a new Widget Blueprint deriving from Blueprint Cheat Argument Widget Base.
- Add an
ArgumentDisplayNameBlockText Block (required). - Add your editor controls (spinner, slider, dropdown, etc.).
- Implement On Expected Argument Set to read configuration from
Expected Argument. - Implement Commit Value to write your control's current value back to the argument.
- Register the widget in Argument Type To Widget Map for the argument class it edits.