---
title: Utilities
product: Advanced Framework Pro
version: 1.0
engine: Unreal Engine 5.8
updated: 2026-10-05
canonical: https://docs.human-codeable.com/plugins/utilities.html
---

System

# Utilities

#### What it gives you

—

#### Requires

None

#### Required by

None

15 assets103 API members

Note

Narrative documentation for this plugin is still being written. The API reference below is complete.

## API reference

Every blueprint asset in this plugin. Expand an asset to see its members.

### /

**PCGUtility_LevelToPCG**2 members

extends `AssetActionUtility`

| Kind | Name | Signature | Description |
|---|---|---|---|
| fn | `GetHierarchyDepth` | `(Actor: Actor, InitialDepth: int, out Depth: int)` | — |
| fn | `PCG - Level to PCG Settings` | `()` | — |

### Assemblies/ActorTagger

**ActorTagger**26 members

extends `EditorUtilityWidget`

| Kind | Name | Signature | Description |
|---|---|---|---|
| var | `Add Tag Name`Tags | `name` | — |
| var | `Remove Tag Name`Tags | `name` | — |
| var | `Select Tag Name`Tags | `name` | — |
| var | `Debug Output`Debug | `bool` | — |
| var | `Copy Paste Tags`Tags | `name[]` | — |
| var | `Temp Tags Array`Tags | `name[]` | — |
| var | `Actor Remapping Datatable`Helpers\|Replace Actors | `Object` | — |
| var | `Actor Tagger Folder Path`PCG Settings | `string` | User Preview Folder Path |
| var | `Biome Previews Folder Path`PCG Settings | `string` | User Preview Folder Path |
| var | `Reference Lighting Level Path`PCG Settings | `string` | User Preview Folder Path |
| fn | `ChangeReferenceLightingButtonText`Input | `()` | — |
| fn | `PopulateInternalAssets`Settings | `()` | — |
| fn | `OnKeyDown`Input | `(MyGeometry: Geometry, InKeyEvent: KeyEvent) → EventReply` | Called after a key (keyboard, controller, ...) is pressed when this widget has focus (this event bubbles if not handled) @param MyGeometry The Geometry of the widget receiving the event @param InKeyEvent Key event @return Returns whether the event was handled, along with other possible actions |
| fn | `AddHelper`Helpers\|Generic | `(Helper Class: class<Actor>, Helper Label: string, out SpawnedHelper: Object, Tag to Add: name, out Added Helper Reference: Actor)` | — |
| fn | `ViewPortCameraRayTraceToLandscape`Helpers | `(RayCastDistance: float, Debug Output: bool, out LandscapeHitLocation: Vector, out LandscapeHitNormal: Vector, out LandscapeHitDetected: bool)` | — |
| fn | `AddNullCubeHelper`Helpers\|NullCube | `()` | — |
| fn | `AttachSelectedActors`Helpers\|Hierarchy | `()` | — |
| fn | `PasteCopiedTagsToSelectedActors`Tagging | `()` | — |
| fn | `PasteCopiedTagsToActor`Tagging | `(Actor Reference: Actor)` | — |
| fn | `CopySelectedActorTags`Tagging | `()` | — |
| fn | `CopyActorTags`Tagging | `(ActorReference: Actor)` | — |
| fn | `SelectActorsByTag`Tagging | `(TextTag: string, out SelectedActors: Actor[], out NumSelectedActors: int)` | — |
| fn | `AddTagToSelectedActors`Tagging | `(Transaction: bool)` | — |
| event | `OnMouseEnter`Mouse | `(MyGeometry: Geometry, MouseEvent: PointerEvent)` | The system will use this event to notify a widget that the cursor has entered it. This event is NOT bubbled. @param MyGeometry The Geometry of the widget receiving the event @param MouseEvent Information about the input event |
| event | `OnMouseLeave`Mouse | `(MouseEvent: PointerEvent)` | The system will use this event to notify a widget that the cursor has left it. This event is NOT bubbled. @param MouseEvent Information about the input event |
| event | `ReferenceLightingLevelInstanceChangedValidity` | `(Object: Object, Field: FieldNotificationId)` | — |

### Assemblies/ActorTagger/BiomePreviews

**BP_ActorTagger_Preview**2 members

extends `Actor`

| Kind | Name | Signature | Description |
|---|---|---|---|
| var | `Can Override PCGGraph` | `bool` | — |
| fn | `RefreshGraph`PCG Graph Variables | `(PreviewRefresh: bool)` | — |

### Assemblies/ActorTagger/Debug/BP

**ASM_Preview_Helper**0 members

extends `Actor`

No editor-visible members; this asset configures defaults only.

### Assemblies/ActorTagger/Widgets

**Widget_AssemblyPreviewSave**11 members

extends `EditorUtilityWidget`

| Kind | Name | Signature | Description |
|---|---|---|---|
| var | `Preview Loaded`Preview\|Controls | `bool` | — |
| var | `Preview Level Instance`Preview\|Controls | `LevelStreamingDynamic` | — |
| var | `BPActor Tagger Preview`Preview\|Controls | `BP_ActorTagger_Preview` | — |
| fn | `ChangeStatePreviewButtonText`UI | `()` | — |
| fn | `UpdateOnMapChanged`Init | `()` | — |
| fn | `SaveLevelToPCGDataAsset`PCGData Asset | `(out Success: bool)` | — |
| fn | `CreatePCGDataAsset`PCGDataAsset | `(AssetName: string, PackagePath: string, Level: SoftWorldReference, out Return Value: Object, out Success: bool)` | — |
| fn | `PopulateDropDownfromFolder`Init | `(ComboBoxString: ComboBoxString, FolderPath: string)` | — |
| fn | `PopulateInternalAssets`Init | `()` | — |
| event | `Update` | `(MapChangeEventFlags: int)` | — |
| event | `IsPreviewLevelInstanceValid` | `(Object: Object, Field: FieldNotificationId)` | — |

**Widget_InputBlank**3 members

extends `EditorUtilityWidget`

| Kind | Name | Signature | Description |
|---|---|---|---|
| var | `Formatted Tag` | `string` | — |
| fn | `FormatTagValue` | `()` | — |
| fn | `CleanUp` | `()` | — |

**Widget_InputClassDefaultObject**4 members

extends `EditorUtilityWidget`

| Kind | Name | Signature | Description |
|---|---|---|---|
| fn | `GetActorClassDefaultObject`CDO | `(Tag: string, ActorObjectReference: Actor)` | — |
| fn | `FindPartialTag`Tag | `(out TagsToSearch: name[], TagText: string, RemoveFoundTags: bool, AllowTagsWithoutColons: bool, out ReturnedTags: name[], out PartialTagFound: bool)` | — |
| fn | `FormatTagValue`Result | `(Tag: string, ActorObjectReference: Actor, out TagResult: string)` | — |
| fn | `CleanUp`Destruct | `()` | — |

**Widget_InputFloat**4 members

extends `EditorUtilityWidget`

| Kind | Name | Signature | Description |
|---|---|---|---|
| var | `Input Value` | `string` | — |
| fn | `SetInputValue` | `(FloatValue: float)` | — |
| fn | `FormatTagValue`Result | `(Tag: string, ActorObjectReference: Actor, out TagResult: string)` | — |
| fn | `CleanUp`Destruct | `()` | — |

**Widget_InputSoftObjectPath**4 members

extends `EditorUtilityWidget`

| Kind | Name | Signature | Description |
|---|---|---|---|
| var | `Output Tag`SOP | `string` | — |
| var | `Soft Object Path`UI\|SOP | `string` | — |
| fn | `FormatTagValue`Result | `(Tag: string, ActorObjectReference: Actor, out TagResult: string)` | — |
| fn | `CleanUp`Destruct | `()` | — |

**Widget_InputString**2 members

extends `EditorUtilityWidget`

| Kind | Name | Signature | Description |
|---|---|---|---|
| fn | `FormatTagValue`Result | `(Tag: string, ActorObjectReference: Actor, out TagResult: string)` | — |
| fn | `CleanUp`Destruct | `()` | — |

**Widget_InputTemplate**2 members

extends `EditorUtilityWidget`

| Kind | Name | Signature | Description |
|---|---|---|---|
| fn | `FormatTagValue`Result | `(Tag: string, ActorObjectReference: Actor, out TagResult: string)` | — |
| fn | `CleanUp`Destruct | `()` | — |

**Widget_InputVector3**2 members

extends `EditorUtilityWidget`

| Kind | Name | Signature | Description |
|---|---|---|---|
| fn | `FormatTagValue`Result | `(Tag: string, ActorObjectReference: Actor, out TagResult: string)` | — |
| fn | `CleanUp`Destruct | `()` | — |

**Widget_MultiClickButton**5 members

extends `UserWidget`

| Kind | Name | Signature | Description |
|---|---|---|---|
| fn | `OnMouseHover`Mouse | `(Hover State: bool)` | — |
| fn | `OnMouseButtonDown`Mouse | `(MyGeometry: Geometry, MouseEvent: PointerEvent) → EventReply` | The system calls this method to notify the widget that a mouse button was pressed within it. This event is bubbled. @param MyGeometry The Geometry of the widget receiving the event @param MouseEvent Information about the input event @return Whether the event was handled along with possible requests for the system to take action. |
| event | `OnMouseEnter`Mouse | `(MyGeometry: Geometry, MouseEvent: PointerEvent)` | The system will use this event to notify a widget that the cursor has entered it. This event is NOT bubbled. @param MyGeometry The Geometry of the widget receiving the event @param MouseEvent Information about the input event |
| event | `OnMouseLeave`Mouse | `(MouseEvent: PointerEvent)` | The system will use this event to notify a widget that the cursor has left it. This event is NOT bubbled. @param MouseEvent Information about the input event |
| event | `Click` | `(MouseButtonState: int)` | — |

**Widget_SearchReplaceActors**12 members

extends `EditorUtilityWidget`

| Kind | Name | Signature | Description |
|---|---|---|---|
| var | `Target Actor Class` | `Object` | — |
| var | `Source Actor Class` | `Object` | — |
| var | `Actor Remapping Datatable` | `Object` | — |
| fn | `SaveLevelToPCGDataAsset`PCGDataAsset | `(LevelReference: Object, UseLevelReference: bool, out Success: bool)` | — |
| fn | `CreatePCGDataAsset`PCGData Asset | `(AssetName: string, PackagePath: string, Level: SoftWorldReference, LevelObject: Object, UseLevelObject: bool, out Return Value: Object, out Success: bool)` | — |
| fn | `PasteCopiedTagsTo SelectedActors`Helpers\|Tagging | `()` | — |
| fn | `CopySelectedActorTags`Helpers\|Tagging | `(UsePredefinedTags: bool)` | — |
| fn | `ReplaceSelectedActors`Helpers\|Replace Actors | `(OnlyCopyPredefinedTags: bool)` | — |
| fn | `PasteCopiedTagsToActor`Helpers\|Tagging | `(Actor Reference: Actor)` | — |
| fn | `CopyActorTags`Helpers\|Tagging | `(ActorReference: Actor)` | — |
| fn | `SearchReplaceActorsInLevelReferences`Helpers\|Replace Actors | `(out LevelReferences: Object[], Export PCG Asset: bool)` | — |
| fn | `ReplaceAllSourceAndTargetActorClasses`Helpers\|ReplaceActors | `(out ActorsToReplace: Actor[], LevelReference: Object)` | — |

**Widget_Tagging**24 members

extends `EditorUtilityWidget`

| Kind | Name | Signature | Description |
|---|---|---|---|
| var | `UIButtons Data Table`UMG\|UI | `Object` | — |
| fn | `SelectActorsUsingTagSubstring`Tags | `(TagSubstring: string, out ActorSelection: Actor[])` | — |
| fn | `TagExclusivityCheck`Tags | `(out TargetTagArray: string[], out ExclusiveTagsToRemove: name[], out TargetNameTagArray: name[], NameArraysOnly: bool, out FilteredTagArray: string[], out TagsWereChanged: bool, out FilteredNameTagArray: name[])` | — |
| fn | `UpdatePredefinedTagButtonHighlights`UI | `(TypedElementSelectionSet: TypedElementSelectionSet, DebugOutputGroup: string)` | — |
| fn | `PopulateUIButtonsFromDataTable`UI | `(DataTable: Object)` | — |
| fn | `PopulateInternalAssets`UI | `()` | — |
| fn | `PopulateDropDownfromFolder`UI | `(ComboBoxString: ComboBoxString, FolderPath: string)` | — |
| fn | `OnKeyUp`Input | `(MyGeometry: Geometry, InKeyEvent: KeyEvent) → EventReply` | Called after a key (keyboard, controller, ...) is released when this widget has focus @param MyGeometry The Geometry of the widget receiving the event @param InKeyEvent Key event @return Returns whether the event was handled, along with other possible actions |
| fn | `OnKeyDown`Input | `(MyGeometry: Geometry, InKeyEvent: KeyEvent) → EventReply` | Called after a key (keyboard, controller, ...) is pressed when this widget has focus (this event bubbles if not handled) @param MyGeometry The Geometry of the widget receiving the event @param InKeyEvent Key event @return Returns whether the event was handled, along with other possible actions |
| fn | `MultiClickTagging`Input | `(Button: Widget_MultiClickButton, KeyboardModifiers: int)` | — |
| fn | `ButtonTagHighlights`UI | `()` | — |
| fn | `OnMouseButtonDown`Mouse | `(MyGeometry: Geometry, MouseEvent: PointerEvent) → EventReply` | The system calls this method to notify the widget that a mouse button was pressed within it. This event is bubbled. @param MyGeometry The Geometry of the widget receiving the event @param MouseEvent Information about the input event @return Whether the event was handled along with possible requests for the system to take action. |
| fn | `RemoveTagFromActors`Tags | `(Transaction: bool, ActorTagText: string, UseSelectedActors: bool, out ActorArray: Actor[], out SubComponents: string[], out ExclusiveTags: name[], AllowForTagsHavingNumericData: bool)` | — |
| fn | `FindPartialTag`Tags | `(out TagsToSearch: name[], TagText: string, RemoveFoundTags: bool, AllowTagsWithoutColons: bool, out ReturnedTags: name[], out PartialTagFound: bool)` | — |
| fn | `AddTagToSelectedActors`Tags | `(Transaction: bool, ActorTag: string, out SubComponents: string[], out ExclusiveTags: name[], NumericTag: bool)` | — |
| fn | `SelectActorsbyTag`Tags | `(TextTag: string, out SelectedActors: Actor[], out NumSelectedActors: int)` | — |
| fn | `AssetBrowserTagRemove`Tags | `(ActorTag: string, out SubComponents: string[], out ExclusiveTags: name[], TagType: int)` | — |
| fn | `AssetBrowserTagAdd`Tags | `(ActorTag: string, out SubComponents: string[], out ExclusiveTags: name[], TagType: int)` | — |
| event | `ButtonClicked_Dispatcher_Event` | `(Button: Widget_MultiClickButton)` | — |
| event | `OnMouseEnter`Mouse | `(MyGeometry: Geometry, MouseEvent: PointerEvent)` | The system will use this event to notify a widget that the cursor has entered it. This event is NOT bubbled. @param MyGeometry The Geometry of the widget receiving the event @param MouseEvent Information about the input event |
| event | `OnMouseLeave`Mouse | `(MouseEvent: PointerEvent)` | The system will use this event to notify a widget that the cursor has left it. This event is NOT bubbled. @param MouseEvent Information about the input event |
| event | `UpdateTagButtonUI` | `(SelectionSet: TypedElementSelectionSet)` | — |
| event | `UpdateTypedElementSelectionSetReference` | `(MapChangeEventFlags: int)` | — |
| event | `RegisterButton` | `(Button: Widget_MultiClickButton)` | — |
