Skip to content

All-Docs Plan: Component Documentation

This file is the master plan for documenting every component in the ModularInventoryPlus plugin.

What's next: After components, see REMAINING-DOCS-PLAN.md for framework (GameMode/PC/Pawn), actors (NPC/Mob/Pickup/Gate), data assets, interfaces, widgets, ability system, exchange/vendor, and more. It inventories all components under Plugins/ModularInventoryPlus/Source/ModularInventoryPlus/, groups them by domain, and defines where and how each doc should be written.

Scope: 87 UCLASS components (ActorComponent / SceneComponent) under the path above. Subsystems, non-component UCLASSes, and components in other modules (e.g. MIPChatSystem) are out of scope unless the plan is extended later.

Reference existing docs: docs/ActionLimit.md (system-level) and docs/UMIPEquipmentGE.md (class + integration). Follow their structure and depth where applicable.


1. Doc layout and naming

Convention Location / name
Root All component/system docs live under repo-root docs/.
System docs docs/<SystemOrFeature>.md when several components form one system (e.g. ActionLimit.md, SaveLoad.md).
Component / domain docs docs/components/<Domain>.md or docs/components/<ComponentName>.md (e.g. docs/components/Cooldown.md, docs/components/MIPCursorComponent.md).
Paths in docs All file paths in docs are relative to Plugins/ModularInventoryPlus/Source/ModularInventoryPlus/.
Index Update docs/README.md or add docs/components/README.md to link to every component/system doc.

2. Full component inventory (87 components)

Paths and class names below are relative to Source/ModularInventoryPlus/. Use this list for traceability when writing each doc.

ActionLimit (4) — Already documented

File Class
Public/ActionLimit/MIPActionLimitManagerComponent.h UMIPActionLimitManagerComponent
Public/ActionLimit/MIPBaseActionLimitComponent.h UMIPBaseActionLimitComponent
Public/ActionLimit/MIPCharacterActionLimitComponent.h UMIPCharacterActionLimitComponent
Public/ActionLimit/MIPFamilyActionLimitComponent.h UMIPFamilyActionLimitComponent

Doc: docs/ActionLimit.md. Optional: minor updates only.


API (1)

File Class
Public/API/MIPFrontendPopupManager.h UMIPFrontendPopupManager

Doc: docs/components/API.md or single-component page.


BaseComponents (8)

File Class
Public/BaseComponents/AutoSave/MIPBaseSaveableComponent.h UMIPBaseSaveableComponent
Public/BaseComponents/MIPBaseGameModeComponent.h UMIPBaseGameModeComponent
Public/BaseComponents/MIPBaseGameStateComponent.h UMIPBaseGameStateComponent
Public/BaseComponents/MIPBasePawnComponent.h UMIPBasePawnComponent
Public/BaseComponents/MIPBasePlayerStateComponent.h UMIPBasePlayerStateComponent
Public/BaseComponents/Player/MIPClientPlayerControllerComponent.h UMIPClientPlayerControllerComponent
Public/BaseComponents/Player/MIPBasePlayerControllerComponent.h UMIPBasePlayerControllerComponent
Public/BaseComponents/Player/LevelFeature/MIPBasePlayerLevelBasedFeatureComponent.h UMIPBasePlayerLevelBasedFeatureComponent

Doc: docs/components/BaseComponents.md (one doc for the base framework).


Character (3)

File Class
Public/Character/MIPAdvNameplateCreatorComponent.h UMIPAdvNameplateCreatorComponent
Public/Character/MIPCharacterMovementComponent.h UMIPCharacterMovementComponent
Public/Character/MIPHeroComponent.h UMIPHeroComponent

Doc: docs/components/Character.md.


CircularInteractionSphere (2)

File Class
Public/CircularInteractionSphereComponent/MIPCircularInteractionSphereComponent.h UMIPCircularInteractionSphereComponent
Public/CircularInteractionSphereComponent/MIPCirculationInteractionSphereWidgetComponent.h UMIPCirculationInteractionSphereWidgetComponent

Doc: docs/components/CircularInteractionSphere.md.


Cooldown (2)

File Class
Public/Cooldown/MIPBaseCooldownComponent.h UMIPBaseCooldownComponent
Public/Cooldown/MIPClientCooldownRelayHandler.h UMIPClientCooldownRelayHandler

Doc: docs/components/Cooldown.md.


Currency (1)

File Class
Public/Currency/MIPCurrencyComponent.h UMIPCurrencyComponent

Doc: docs/components/Currency.md or docs/components/MIPCurrencyComponent.md.


Cursor (1)

File Class
Public/Cursor/MIPCursorComponent.h UMIPCursorComponent

Doc: docs/components/MIPCursorComponent.md or docs/components/Cursor.md.


Equipment (2)

File Class
Public/Equipment/MIPBaseEquipmentAttributesApplierComponent.h UMIPBaseEquipmentAttributesApplierComponent
Public/Equipment/MIPBaseEquipmentMeshesManager.h UMIPBaseEquipmentMeshesManager

Doc: Equipment attributes are covered by docs/UMIPEquipmentGE.md. Add docs/components/Equipment.md for meshes manager and high-level equip flow.


Enhancement (1)

File Class
Public/Enhancement/MIPEquipmentEnhancementComponent.h UMIPEquipmentEnhancementComponent

Doc: docs/components/Enhancement.md.


FloatingDamageText (1)

File Class
Public/FloatingDamageText/MIPFloatingDamageTextWidgetComponent.h UMIPFloatingDamageTextWidgetComponent

Doc: docs/components/FloatingDamageText.md.


Gate (1)

File Class
Public/Gate/MIPGateManager.h UMIPGateManager

Doc: docs/components/Gate.md.


GameModes (5)

File Class
Public/GameModes/MIPBaseModeComponent.h UMIPBaseModeComponent
Public/GameModes/MIPEndlessColosseumMode.h UMIPEndlessColosseumMode
Public/GameModes/MIPSessionDungeonMode.h UMIPSessionDungeonMode
Public/GameModes/MIPSoulHuntMode.h UMIPSoulHuntMode
Public/GameModes/MIPWaveBasedMode.h UMIPWaveBasedMode

Doc: docs/components/GameModes.md (one system doc).


GameObjects (1)

File Class
Public/GameObjects/MIPSessionDungeonEndTriggerComponent.h UMIPSessionDungeonEndTriggerComponent

Doc: docs/components/GameObjects.md or fold into Dungeon/Session docs.


Health (4)

File Class
Public/Health/MIPBaseHealthComponent.h UMIPBaseHealthComponent
Public/Health/MIPMobHealthComponent.h UMIPMobHealthComponent
Public/Health/MIPPlayerHealthComponent.h UMIPPlayerHealthComponent
Public/Health/MIPPlayerHealthWidgetComponent.h UMIPPlayerHealthWidgetComponent

Doc: docs/components/Health.md.


Input (2)

File Class
Public/Input/MIPEnhancedInputComponent.h UMIPEnhancedInputComponent
Public/Input/MIPPlayerInputManagerComponent.h UMIPPlayerInputManagerComponent

Doc: docs/components/Input.md.


Interaction (1)

File Class
Public/Interaction/MIPInteractionComponent.h UMIPInteractionComponent

Doc: docs/components/Interaction.md.


Inventory (8)

File Class
Public/Inventory/MIPBaseInventoryManagerComponent.h UMIPBaseInventoryManagerComponent
Public/Inventory/MIPAdvancedChatItemLinkerComponent.h UMIPAdvancedChatItemLinkerComponent
Public/Inventory/ItemSelection/MIPItemSelectionComponent.h UMIPItemSelectionComponent
Public/Inventory/PlayerInventory/MIPPlayerServerIMC.h UMIPPlayerServerIMC
Public/Inventory/Storage/MIPStoragesManagerComponent.h UMIPStoragesManagerComponent
Public/Inventory/Storage/MIPStorageIMC.h UMIPStorageIMC
Public/Inventory/Storage/MIPDynamicStorageIMC.h UMIPDynamicStorageIMC
Public/Inventory/Storage/MIPNPCStorageIMC.h UMIPNPCStorageIMC

Doc: docs/components/Inventory.md (align with existing inventory-system feature doc).


Mob (5)

File Class
Public/Mob/Components/MIPBaseMobComponent.h UMIPBaseMobComponent
Public/Mob/Components/MIPMobAggroNearbyPlayerSphere.h UMIPMobAggroNearbyPlayerSphere
Public/Mob/Components/MIPMobCharacterMovementComponent.h UMIPMobCharacterMovementComponent
Public/Mob/MIPMobNameplateWidgetComponent.h UMIPMobNameplateWidgetComponent
Public/Mob/Spawners/MIPMobPlayerStartComponent.h UMIPMobPlayerStartComponent

Doc: docs/components/Mob.md.


Notifier (1)

File Class
Public/Notifier/MIPChatNotifierComponent.h UMIPChatNotifierComponent

Doc: docs/components/Notifier.md.


Outline (1)

File Class
Public/Outline/MIPObjectOutlineManager.h UMIPObjectOutlineManager

Doc: docs/components/Outline.md.


Pickup (1)

File Class
Public/Pickup/MIPItemPickupComponent.h UMIPItemPickupComponent

Doc: docs/components/Pickup.md.


Player (3)

File Class
Public/Player/MIPControllerCommonSaveableObjectsComponent.h UMIPControllerCommonSaveableObjectsComponent
Public/Player/MIPExtendedPlayerInfoComponent.h UMIPExtendedPlayerInfoComponent
Public/Player/MIPPlayerClassComponent.h UMIPPlayerClassComponent

Doc: docs/components/Player.md.


PlayerLevel (3)

File Class
Public/PlayerLevel/MIPAbilityPointsLevelComponent.h UMIPAbilityPointsLevelComponent
Public/PlayerLevel/MIPBaseLevelComponent.h UMIPBaseLevelComponent
Public/PlayerLevel/MIPPlayerLevelComponent.h UMIPPlayerLevelComponent

Doc: docs/components/PlayerLevel.md.


PlayerLevelBasedFeatures (2)

File Class
Public/PlayerLevelBasedFeatures/MIPApplyItemOnEquipmentComponent.h UMIPApplyItemOnEquipmentComponent
Public/PlayerLevelBasedFeatures/MIPBasePlayerLevelBasedFeaturesManager.h UMIPBasePlayerLevelBasedFeaturesManager

Doc: docs/components/PlayerLevelBasedFeatures.md.


PopupWidget (1)

File Class
Public/PopupWidget/MIPPopupWidgetManager.h UMIPPopupWidgetManager

Doc: docs/components/PopupWidget.md.


Quest (1)

File Class
Public/Quest/MIPBaseQuestComponent.h UMIPBaseQuestComponent

Doc: docs/components/Quest.md.


QuickBar (1)

File Class
Public/QuickBar/MIPQuickBarComponent.h UMIPQuickBarComponent

Doc: docs/components/QuickBar.md.


Reforge (1)

File Class
Public/Reforge/MIPEquipmentAttributeReforgeComponent.h UMIPEquipmentAttributeReforgeComponent

Doc: docs/components/Reforge.md.


Repair (1)

File Class
Public/Repair/MIPEquipmentRepairComponent.h UMIPEquipmentRepairComponent

Doc: docs/components/Repair.md.


SaveLoad (5)

File Class
Public/SaveLoadBase/MIPBaseLoadComponent.h UMIPBaseLoadComponent
Public/SaveLoadClient/MIPBaseClientLoadComponent.h UMIPBaseClientLoadComponent
Public/SaveLoadClient/MIPClientBaseSaveComponent.h UMIPClientBaseSaveComponent
Public/SaveLoadServer/MIPBaseServerLoadComponent.h UMIPBaseServerLoadComponent
Public/SaveLoadServer/MIPBaseServerSaveComponent.h UMIPBaseServerSaveComponent

Doc: docs/components/SaveLoad.md (one system doc).


ServerComponents (3)

File Class
Public/ServerComponents/MIPItemPickupSpawnerComponent.h UMIPItemPickupSpawnerComponent
Public/ServerComponents/MobScaledInfo/MIPBaseScalableMobInfoComponent.h UMIPBaseScalableMobInfoComponent
Public/ServerComponents/MobScaledInfo/MIPWorldLevelScaledMobInfoComponent.h UMIPWorldLevelScaledMobInfoComponent

Doc: docs/components/ServerComponents.md.


StatusEffect (1)

File Class
Public/StatusEffect/MIPItemEffectApplierComponent.h UMIPItemEffectApplierComponent

Doc: docs/components/StatusEffect.md.


TopDown (2)

File Class
Public/TopDown/MIPTopDownPathFollowingComponent.h UMIPTopDownPathFollowingComponent
Public/TopDown/MIPTopDownPlayerControllerComponent.h UMIPTopDownPlayerControllerComponent

Doc: docs/components/TopDown.md.


Widget (1)

File Class
Public/Widget/Component/MIPClientWidgetsManagerComponent.h UMIPClientWidgetsManagerComponent

Doc: docs/components/Widget.md.


WorldLevel (1)

File Class
Public/WorldLevel/MIPWorldLevelComponent.h UMIPWorldLevelComponent

Doc: docs/components/WorldLevel.md.


3. Doc format checklist (per doc)

Each component or system doc should include (adapt depth to system size):

  • Overview – What the component(s) do and key traits (server authority, replication, save, etc.).
  • Key classes & files – Table: class/struct name, path under Source/ModularInventoryPlus/.
  • Data structures – Enums, config structs, replication/save structs where relevant.
  • Component hierarchy / architecture – Attachment (e.g. to PlayerController, Pawn, GameMode) and how components call each other.
  • Configuration – Config files, data assets, or project settings.
  • Core API – Main Blueprint/C++ functions and their semantics.
  • Delegates / events – What broadcasts and when.
  • Flow – Request/response or gameplay flow (e.g. equip, save, dungeon start).
  • Integration – Where other systems hook in (e.g. ActionLimit requirement, save interface).
  • Save & replication – What is saved, what is replicated, and any RPCs.
  • End-to-end diagram – ASCII or Mermaid where it helps (see project diagram guidelines if present).

4. Execution order (suggested)

Phase Domain Docs
1 – Foundation BaseComponents, SaveLoad, Inventory BaseComponents.md, SaveLoad.md, Inventory.md
2 – Player & character Player, PlayerLevel, Character, Input, Health Player.md, PlayerLevel.md, Character.md, Input.md, Health.md
3 – Gameplay Equipment, Cooldown, Quest, Interaction, Pickup, Mob, GameModes, GameObjects Equipment.md, Cooldown.md, Quest.md, Interaction.md, Pickup.md, Mob.md, GameModes.md, GameObjects.md
4 – UI & polish Widget, PopupWidget, Cursor, Gate, Outline, FloatingDamageText, Notifier, TopDown Widget.md, PopupWidget.md, Cursor.md, Gate.md, Outline.md, FloatingDamageText.md, Notifier.md, TopDown.md
5 – Economy & items Currency, Enhancement, Reforge, Repair, StatusEffect, PlayerLevelBasedFeatures Currency.md, Enhancement.md, Reforge.md, Repair.md, StatusEffect.md, PlayerLevelBasedFeatures.md
6 – Server & world ServerComponents, WorldLevel, CircularInteractionSphere, API ServerComponents.md, WorldLevel.md, CircularInteractionSphere.md, API.md

5. Deliverables

  • docs/ALL-DOCS-PLAN.md – This file (done).
  • docs/README.md or docs/components/README.md – Index linking to every component/system doc (to be added/updated as docs are written).
  • Individual docs created under docs/ and docs/components/ according to the inventory and phases above.

If the project uses a doc generator or GitBook, use docs/ as the source directory and link from the main plugin documentation as needed.