UMIPItemEnhanceDefinitionAsset
Overview
UMIPItemEnhanceDefinitionAsset stores per-enhancement-level rules in EnhanceInfoMap: map key is the enhancement level (integer), value is FMIPItemEnhanceInfoStruct containing per-material boost/penalty effects, amounts, and success curves. Used when upgrading equipment through the enhancement pipeline.
All paths below are relative to Plugins/ModularInventoryPlus/Source/ModularInventoryPlus/.
Key Classes & Files
| Class |
File |
UMIPItemEnhanceDefinitionAsset |
Public/DataAsset/MIPItemEnhanceDefinitionAsset.h |
FMIPItemEnhanceInfoStruct |
Public/Inventory/Pieces/Enhancement/MIPItemEnhanceStruct.h |
IsDataValid |
Private/DataAsset/MIPItemEnhanceDefinitionAsset.cpp |
Properties
| Property |
Type |
Description |
EnhanceInfoMap |
TMap<int32, FMIPItemEnhanceInfoStruct> |
Level index → materials and effects for that upgrade step. |
Editor validation
| Severity |
Condition |
Message |
| Error |
EnhanceInfoMap empty |
EnhanceInfoMap is empty — no enhance levels defined. |
| Error |
For a level, Info.PerMaterialTagMap empty |
EnhanceInfoMap[Level %d]: PerMaterialTagMap is empty — no materials defined for this level. |
| Error |
Material key invalid |
EnhanceInfoMap[Level %d]: A material entry has an invalid GameplayTag key. |
| Error |
!MatPair.Value.IsValidMaterial() (no boost and no penalty) |
EnhanceInfoMap[Level %d]: Material tag '%s' has neither a BoostEffect nor a PenaltyEffect set. |
Implementation: Private/DataAsset/MIPItemEnhanceDefinitionAsset.cpp (#if WITH_EDITOR).
Integration