Skip to content
Back
This page's table of contents

User guide

SimpleBPInheritFix User Manual

Complete English product manual for SimpleBPInheritFix

Supported Unreal Engine versions: 5.2–5.8

Fix component pollution in Actor Blueprint inheritance chains with one click.

⚠️ This plugin modifies multiple Blueprints in the inheritance chain. Changes are conservative, but check that automatically checked-out files match expectations before submitting to version control.


  1. Install the plugin and compile successfully
  2. In the Content Browser, right-click any affected Actor Blueprint, whether ancestor, self, or descendant
  3. Select Component Repair → Fix Inheritance Pollution
  4. Open the Output Log and filter LogSBIF to monitor execution
  5. The editor shows a save dialog — save the Blueprints marked dirty to finish

The scan returns 0 findings despite visible corruption?
You may have a problem outside this plugin’s scope (rare). Paste the complete LogSBIF log for diagnosis.

What if CheckOut fails?
The plugin continues repairing in memory, but you must resolve checkout manually before saving (p4 edit / git lfs lock / svn lock). Common causes include another user’s lock, an unreachable server, or a mapping that excludes the file.

Which Blueprint should be the anchor?
Choose any — ancestors, self, and descendants are scanned, yielding the same result.

Can I use it without Perforce?

  • Git: CheckOut is effectively a no-op; files are writable by default
  • Git LFS: Sends an LFS lock request
  • SVN: Runs svn lock
  • No version control: Skips the CheckOut stage

  • Handles only the specific component pollution covered by this plugin; other Blueprint issues are outside its scope
  • Does not scan components created dynamically in Construction Script

Open Edit → Project Settings, go to SimpleBPInheritFix settings, and set Language to English or Chinese. English is the default. User-facing interfaces, prompts, notifications, and functional logs update immediately without restarting the editor; public API names and module startup/shutdown logs always remain in English.

For usage questions or collaboration inquiries, visit the contact page.

SimpleBPInheritFix handles specific component-state anomalies in Actor Blueprint inheritance chains.

See the SimpleBPInheritFix work page for its purpose and use cases.

Actor Blueprint inheritance can exhibit these component anomalies:

  • Cut / Delete is disabled in the parent Blueprint even though the component belongs to that parent.
  • A child Blueprint’s property changes write back to the parent: Even toggling a bool can affect the parent template rather than creating an isolated child override.

UE’s UActorComponent records how a component was created in CreationMethod:

ValueMeaning
NativeCreated in a C++ constructor
SimpleConstructionScriptAdded through the Blueprint editor’s Components panel; the normal Blueprint component case
UserConstructionScriptCreated dynamically in ConstructionScript nodes
InstanceAdded to a particular Actor instance; it should not describe these Blueprint component templates

The anomaly examined here occurs when a component template’s CreationMethod is incorrectly set to Instance. The editor no longer treats it as a component defined by the Blueprint. Cut / Delete follows a different branch and becomes disabled; child property changes are treated as instance changes and written to the parent template rather than producing a child override.

The triggering operations have not formed a stable reproduction path. Similar symptoms alone cannot establish the cause; check the component template’s CreationMethod. Once present, the anomaly may persist and does not repair itself when saved.

Repair restores abnormal CreationMethod values to SimpleConstructionScript, but several locations need checking:

  1. Components can appear in both SCS nodes and ICH records; both locations need attention.
  2. Multiple Blueprints in the inheritance chain may be affected; changing one may be insufficient.
  3. Descendant Blueprints may also be affected.
  4. Source-controlled files can be read-only and need individual checkout.

The property panel cannot edit this field directly. Scripted repair requires knowing where Blueprint component records are stored.

  1. Install the plugin and compile successfully
  2. Right-click any affected Actor Blueprint in the Content Browser
  3. Select Component Repair → Fix Inheritance Pollution
  4. Open the Output Log, filter LogSBIF, and review execution
  5. When the editor shows the save dialog, save the Blueprints marked dirty to finish

Scanning Inheritance Chains and Component Records

Link to “Scanning Inheritance Chains and Component Records” section

Collect Blueprints in both directions:

  • Upward: Follow ParentClass from the anchor Blueprint to gather its Blueprint ancestors.
  • Downward: Use UE’s AssetRegistry.GetDerivedClassNames() to gather derived Blueprint classes.

Merge and deduplicate the sets to establish the inheritance range to inspect.

Inherited component information appears in two locations, both of which must be checked:

  • SCS nodes (SimpleConstructionScript.AllNodes): Components defined directly by the Blueprint.
  • ICH records (InheritableComponentHandler.CreateRecordIterator()): Child overrides of components inherited from a parent.

Scan both locations for each Blueprint to find records with CreationMethod == Instance.

Collect the inheritance chain and identify affected components before checkout, field updates, and saving.

StageAction
1. GatherChainCollect parents, the current Blueprint, and descendants
2. ScanChainScan each Blueprint’s SCS and ICH for CreationMethod=Instance records
3. CheckOutFindingsCheck out the affected uasset files through source control
4. ApplyFindingsChange CreationMethod from Instance to SimpleConstructionScript
5. MarkDirtyMark changed Blueprints dirty and prompt the user to save manually

A complete log looks roughly like this:

[SBIF] ==============================================
[SBIF] Fix Inheritance Pollution started (anchor: BP_MyActor)
[SBIF] ==============================================
[SBIF] -------- Stage 1 / Gather Inheritance Chain --------
[SBIF] Self: BP_MyActor
[SBIF] Ancestor: BP_BaseActor
[SBIF] Descendant: BP_MyActorExt
[SBIF] Total 3 blueprints (ancestors+self 2 / descendants 1)
[SBIF] -------- Stage 2 / Scan Instance-corrupted Nodes --------
[SBIF] [BP_BaseActor / SCS] 'MeshComp' (Template=MeshComp_GEN_VARIABLE)
[SBIF] Scan complete: 1 Instance-corrupted nodes total
[SBIF] -------- Stage 3 / SourceControl CheckOut --------
[SBIF] ✅ [BP_BaseActor] /Content/BP_BaseActor.uasset
[SBIF] -------- Stage 4 / Repair CreationMethod --------
[SBIF] [BP_BaseActor / SCS] 'MeshComp' Instance -> SimpleConstructionScript
[SBIF] -------- Stage 5 / Mark Blueprints Dirty --------
[SBIF] Dirty: BP_BaseActor
[SBIF] 1 blueprints marked dirty, manual save required

When the scan returns 0, use the LogSBIF log to determine whether this is the component-state anomaly handled by this tool.

The plugin still completes in-memory repair, but checkout must be resolved manually before saving. Common causes:

  • The file is locked by another user
  • The source control server is unreachable
  • Workspace mapping does not include the file

Resolve checkout manually first, then return to UE and save.

The repair scope is only the CreationMethod field (Instance → SimpleConstructionScript); no other properties are changed. Check the component state of affected Blueprints before saving.

The entry Blueprint locates the inheritance chain; scanning covers ancestors, the current Blueprint, and descendants.

  • Git: Checkout is essentially a no-op because files are already writable
  • Git LFS: Automatically requests an LFS lock
  • SVN: Runs svn lock
  • No source control: Skips checkout entirely and proceeds to repair

This concerns CreationMethod anomalies in Actor Blueprint component templates, not every Blueprint fault. Components created dynamically in Construction Script need separate assessment; the same repair rules cannot be applied automatically.

  • Handles only the component anomaly covered by this plugin (CreationMethod=Instance pollution); other Blueprint issues are outside its scope
  • Dynamically created Construction Script components are not scanned because they do not use SCS/ICH
  • Supports only Actor Blueprints; non-Actor Blueprints do not have this issue