Skip to content

Equipment Enhancement Component

Overview

UMIPEquipmentEnhancementComponent is a level-based feature that enhances equipment using materials: it extends UMIPApplyItemOnEquipmentComponent (item selection, fee, interaction, action progress bar) and implements enhancement logic (boost/penalty, PreEnhanceCheck, per-material tag info). It opens the enhance widget on interaction and runs ServerDoThisFeature → DoThisFeature with item and material validation.

Key traits:

  • Base: UMIPApplyItemOnEquipmentComponent (→ UMIPBasePlayerLevelBasedFeatureComponent, IMIPCurrencyFeeInterface, IMIPInteractableComponentInterface).
  • Overrides: OnUseItem (material application), CheckIfValidMaterial, PreCheckForErrorsForCurrentItem, DoThisFeature, ClientOnAppliedInternal; OnInteractedClient/OnEndInteractedClient for widget open/close.
  • Enhancement: Uses UItemPiece_Enhanceable, UItemPiece_EnhanceDefinition, UMIPBaseItemEnhancePenaltyEffect; per-material tag info for success/penalty; broadcast via UMIPEquipmentEnhancementBroadcaster/Receiver.

All paths below are relative to Plugins/ModularInventoryPlus/Source/ModularInventoryPlus/.


Key Classes & Files

Class File
UMIPEquipmentEnhancementComponent Public/Enhancement/MIPEquipmentEnhancementComponent.h

UMIPEquipmentEnhancementComponent

  • Flow: Interaction with NPC/tag → show enhance widget; user selects item (item selection) and materials; fee check; DoThisFeature (server) applies enhancement, updates item piece (MIPItemEnhanceStruct), ClientOnAppliedInternal broadcasts result.
  • Integration: UMIPPlayerServerIMC (item), UMIPCurrencyComponent (fee), UMIPClientWidgetsManagerComponent (enhance widget), UMIPItemSelectionComponent (select item to enhance).