# Parameter Identity Repair is a UE 5.8 editor plugin that finds material parameters sharing one ExpressionGUID and gives each its own

**URL:** <https://forums.unrealengine.com/t/parameter-identity-repair-is-a-ue-5-8-editor-plugin-that-finds-material-parameters-sharing-one-expressionguid-and-gives-each-its-own/2851500>\
**Category:** UE Marketplace\
**Tags:** unreal-engine\
**Created:** [November 6, 2026, 1:44pm UTC](https://forums.unrealengine.com/t/parameter-identity-repair-is-a-ue-5-8-editor-plugin-that-finds-material-parameters-sharing-one-expressionguid-and-gives-each-its-own/2851500 "2026-11-06T13:44:34Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![OneFreeMan1337](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@OneFreeMan1337](https://forums.unrealengine.com/u/OneFreeMan1337)\
**Post date:** [November 6, 2026, 1:44pm UTC](https://forums.unrealengine.com/t/parameter-identity-repair-is-a-ue-5-8-editor-plugin-that-finds-material-parameters-sharing-one-expressionguid-and-gives-each-its-own/2851500/1 "2026-11-06T13:44:34Z")

</div>

Every material parameter carries an ExpressionGUID you never see. Material instances bind their overrides to it, and the engine uses it to migrate an override when a parameter is renamed.

Duplicating a material function keeps the original’s GUIDs. That is by design: `UMaterialExpression::PostDuplicate` skips the regeneration so the Material Editor’s working copy does not change every GUID on each edit. So if you duplicate `MF_Rough`, edit the copy and rename its parameter, two different parameters now share one identity. One can shadow the other, renaming either migrates the other’s instance overrides, and instance values can vanish with nothing in the log. Pasting a node does not cause it in 5.8, because `PostEditImport` forces a new GUID. The causes are asset duplication and assets carried over from older engine versions.

`MaterialParams.Repair` scans and writes nothing. It produces an HTML sheet that grades every shared identity as Critical, Serious or Latent and names the assets and overrides involved.

`MaterialParams.Repair -Apply` fixes Serious and Critical groups by default. In each group the holder with the most instance overrides keeps the identity, and every other holder gets a new GUID through the engine’s own `UpdateParameterGuid`, which keeps cooks deterministic. Overrides are then bound again by name, and anything ambiguous is refused and reported. No parameter is renamed and no override value is read or written. An undo journal is written to disk before the first package is saved, and a commandlet with stable exit codes runs it in CI.

Known limit: static switch and component mask overrides are reported but not bound again in 1.0.0.

Built and run on UE 5.8 on Windows only, C++ source included. The code and the store art are AI generated. It is $14.99 on itch: [Parameter Identity Repair — Unreal 5 Material Parameter GUID Collisions, Found and Fixed by CSAF — Core Systems Asset Factory](https://csaf.itch.io/parameter-identity-repair)
