UMIPExchangeDataAsset
Overview
UMIPExchangeDataAsset defines exchange offers for an NPC exchange tag: PersonalExchangeItems (character-scoped) and AccountExchangeItems (account-scoped). Each entry is FMIPExchangeItemInfo (output item tag, amount, required items, currency/action limits). The exchange manager resolves this asset from the interactable and runs server-side exchanges.
All paths below are relative to Plugins/ModularInventoryPlus/Source/ModularInventoryPlus/.
Key Classes & Files
| Class |
File |
UMIPExchangeDataAsset |
Public/DataAsset/MIPExchangeDataAsset.h |
FMIPExchangeItemInfo |
Public/Exchange/MIPExchangeTypes.h |
ValidateExchangeItems (static in cpp) |
Private/DataAsset/MIPExchangeDataAsset.cpp |
IsDataValid |
Same file |
Properties
| Property |
Type |
Description |
PersonalExchangeItems |
TArray<FMIPExchangeItemInfo> |
Offers for the current character. |
AccountExchangeItems |
TArray<FMIPExchangeItemInfo> |
Offers shared across the account. |
Editor validation
| Severity |
Condition |
Message |
| Warning |
Both arrays empty |
Both PersonalExchangeItems and AccountExchangeItems are empty. |
For each list name PersonalExchangeItems or AccountExchangeItems, and each index i:
| Severity |
Condition |
Message |
| Error |
ItemTag invalid |
%s[%d]: ItemTag is not set. |
| Error |
Amount <= 0 |
%s[%d]: Amount must be > 0. Got: %d |
| Error |
RequiredItems[j] invalid (!Req.IsValid()) |
%s[%d]: RequiredItems[%d] has invalid ItemTag or Amount <= 0. |
Implementation: Private/DataAsset/MIPExchangeDataAsset.cpp (#if WITH_EDITOR).
Integration