Skip to content

SubsystemAuthoring

9 tools. Back to the index.

activate_external_subsystem

Destructive.

Externally activate a Blueprint-authored USubsystem via FSubsystemCollectionBase::ActivateExternalSubsystem. Refuses to toggle native / abstract / base classes.

Parameter Type Required Description
class_name string yes Short class name or /Script/ path of a Blueprint-derived USubsystem

Returns: { class_name: string, activated: bool }

create_subsystem_class_bp

Additive, idempotent.

Create a new USubsystem-derivative Blueprint asset (idempotent on re-run).

Parameter Type Required Description
asset_name string yes Name for the new Blueprint asset
parent_class string yes Parent USubsystem class name
package_path string no Optional content folder; defaults to /Game/MCP

Returns: { asset_name: string, asset_path: string, package_path: string, parent_class: string, lifetime: string, already_exists: bool }

deactivate_external_subsystem

Destructive.

Externally deactivate a Blueprint-authored USubsystem via FSubsystemCollectionBase::DeactivateExternalSubsystem. Refuses to toggle native / abstract / base classes.

Parameter Type Required Description
class_name string yes Short class name or /Script/ path of a Blueprint-derived USubsystem

Returns: { class_name: string, deactivated: bool }

get_subsystem_class_info

Read-only.

Read class metadata and the full USubsystem inheritance chain for a subsystem class.

Parameter Type Required Description
class_name string yes Short class name (e.g. "MyGameInstanceSubsystem") or /Script/ path

Returns: { class_name: string, class_path: string, lifetime: string, parent_class: string, is_native: bool, is_abstract: bool, parent_chain: [{ class_name, class_path, lifetime }] }

get_subsystem_instance

Read-only.

Look up the live instance of a USubsystem by class + lifetime category (Engine/Editor/GameInstance/World/LocalPlayer).

Parameter Type Required Description
class_name string yes Short class name or /Script/ path
lifetime string yes One of "Engine"|"Editor"|"GameInstance"|"World"|"LocalPlayer"

Returns: { class_name: string, lifetime: string, instance_name: string, instance_path: string }

is_subsystem_class_active

Read-only.

Probe whether ONE named USubsystem class currently has a live instance -- the yes/no question, where list_subsystem_instances is the enumeration. It checks every lifetime category (Engine / Editor / GameInstance / World / LocalPlayer) and answers active=true if an instance exists in ANY of them, reporting which collection each one came from.

Parameter Type Required Description
class_name string yes Short class name or /Script/ path

Returns: { class_name, lifetime, active, instances:[{ collection, instance_path }] }

list_subsystem_classes

Read-only.

Enumerate all loaded USubsystem-derived classes (native + Blueprint), optionally filtered by lifetime category.

Parameter Type Required Description
lifetime string no Optional lifetime filter: "Engine"|"Editor"|"GameInstance"|"World"|"LocalPlayer" (case-insensitive)

Returns: { total: int, native: int, blueprint: int, lifetime_filter?: string, classes: [{ class_name, class_path, lifetime, parent_class, is_native }] }

list_subsystem_instances

Read-only.

Enumerate the USubsystem instances live in the EDITOR right now, with each one's class path and lifetime -- use is_subsystem_class_active for a yes/no on a single class. It walks the editor world context only (Engine / Editor / GameInstance / World) and does NOT iterate LocalPlayer subsystems, since a headless editor world has no PIE LocalPlayer; use list_local_player_subsystems for those.

Parameter Type Required Description
lifetime string no Optional filter: "Engine"|"Editor"|"GameInstance"|"World" (case-insensitive)

Returns: { total: int, lifetime_filter?, instances:[{ class_name, class_path, lifetime, instance_name, instance_path }] }

remove_subsystem_class_bp

Destructive, idempotent.

Destroy the Blueprint-authored USubsystem subclass at a package path (mirror of create_subsystem_class_bp). Typed-delete on TWO checks: the asset must be a UBlueprint AND its generated class must derive from USubsystem, so it cannot wipe an unrelated Blueprint the way the generic delete_asset can. Idempotent on missing assets.

Parameter Type Required Description
asset_path string yes Full /Game/.../Name asset path of the subsystem Blueprint.

Returns: { asset_path, deleted, already_existed, asset_class, generated_class_name?, note? }