Remaining Documentation Plan¶
This plan covers everything left to document after the component docs (87 components under Source/ModularInventoryPlus/). It groups remaining work by category, estimates scope, and suggests an order of execution.
Already done:
- 87 components (ActorComponent/SceneComponent) → docs/components/
- ActionLimit, UMIPEquipmentGE
Not yet documented (this plan):
- Core framework (Actors, GameMode, GameState, PC, Pawn)
- Actors (NPC, Mob, Pickup, Gate, Loot, Interactables, Spawners, Damage/Projectiles, AI, Camera)
- Data assets and definitions
- Interfaces
- Structs and key types
- Widgets (UUserWidget)
- Ability system (GAS) beyond UMIPEquipmentGE
- Exchange / Vendor system
- Cooldown decorators and relays (UObject, not components)
- Subsystems, settings, BPFLs
- Save game and load/save types
- Other modules (MIPChatSystem, etc.) and editor
1. Core framework (GameMode, GameState, PC, Pawn, Character)¶
| Class | File | Notes |
|---|---|---|
| AMIPBaseGameMode | GameFramework/MIPBaseGameMode.h | Extends chat SIO GameMode; IMIPCommonGameModeComponentsInterface |
| AMIPBaseGameState | GameFramework/MIPBaseGameState.h | IMIPCommonGameStateComponentsInterface |
| AMIPBasePlayerController | GameFramework/MIPBasePlayerController.h | Extends chat SIO PC; ICharacterClassTagInterface |
| AMIPBasePlayerState | GameFramework/MIPBasePlayerState.h | IAbilitySystemInterface |
| AMIPBasePlayerCharacter | GameFramework/MIPBasePlayerCharacter.h | IAbilitySystemInterface, IMIPCombatInterface, IMIPCursorHittableInterface |
| AMIPClientAuthGameMode | ClientAuth/MIPClientAuthGameMode.h | AGameModeBase (minimal) |
| AMIPDefaultServerGameMode | DefaultServer/MIPDefaultServerGameMode.h | AGameModeBase |
| AMIPCharSelectionGameMode | CharSelection/MIPCharSelectionGameMode.h | AGameModeBase |
| AMIPWaitSessionInstanceTravelGameMode | CharSelection/MIPWaitSessionInstanceTravelGameMode.h | AGameModeBase |
| AMIPCharSelectionCharacter | CharSelection/MIPCharSelectionCharacter.h | ACharacter |
| AMIPWorldSettings | Setting/MIPWorldSettings.h | World settings |
| AMIPPlayerCameraManager | Camera/MIPPlayerCameraManager.h | APlayerCameraManager |
| AMIPDefaultPlayerStart | Gate/MIPDefaultPlayerStart.h | APlayerStart |
Doc: docs/framework/CoreFramework.md (one doc or split GameMode/GameState, PC/Pawn/Character). Describe how components attach and how common interfaces are used.
Priority: High (foundation for all other docs).
2. Actors (non-player)¶
2.1 NPC¶
| Class | File |
|---|---|
| AMIPBaseInteractable | Interaction/Interactable/MIPBaseInteractable.h |
| AMIPOnlyOwnerInteractableInitially | Interaction/Interactable/MIPOnlyOwnerInteractableInitially.h |
| AMIPBaseNPC | NPC/MIPBaseNPC.h |
| AMIPBaseNPCWithStorage | NPC/MIPBaseNPCWithStorage.h |
| UMIPBaseNPCInteractableComponent | NPC/Component/MIPBaseNPCInteractableComponent.h |
Doc: docs/actors/NPC.md – NPC hierarchy, interaction, storage, nameplate. Reference NPC data assets and dialogue.
2.2 Mob and spawners¶
| Class | File |
|---|---|
| AMIPBaseMob | Mob/MIPBaseMob.h |
| AMIPSimpleMob | Mob/MIPSimpleMob.h |
| AMIPBaseMobSpawner | Mob/Spawners/MIPBaseMobSpawner.h |
| AMIPBaseAreaMobSpawner | Mob/Spawners/MIPBaseAreaMobSpawner.h |
| AMIPBaseWaveMobSpawner | Mob/Spawners/MIPBaseWaveMobSpawner.h |
| AMIPBaseTriggerableMobSpawner | Mob/Spawners/MIPBaseTriggerableMobSpawner.h |
| AMIPRespawnableAreaMobSpawner | Mob/Spawners/MIPRespawnableAreaMobSpawner.h |
| AMIPKillTriggeredWaveMobSpawner | Mob/Spawners/MIPKillTriggeredWaveMobSpawner.h |
| AMIPEndlessWaveMobSpawner | Mob/Spawners/MIPEndlessWaveMobSpawner.h |
| AMIPBaseMobSpawnerTrigger | Mob/Triggers/MIPBaseMobSpawnerTrigger.h |
| AMIPBaseAIController | AI/MIPBaseAIController.h |
| AMIPSimpleAIController | AI/MIPSimpleAIController.h |
Doc: docs/actors/MobAndSpawners.md – Mob lifecycle, spawner types, triggers, AI. Link to Health, ServerComponents (scaling), LootDefinition.
2.3 Pickup, loot, interactables¶
| Class | File |
|---|---|
| AMIPBaseItemPickup | Pickup/Actors/MIPBaseItemPickup.h |
| AItemPickupWithStaticMesh | Pickup/Actors/ItemPickupWithStaticMesh.h |
| AMIPBaseLootable | GameObjects/MIPBaseLootable.h |
| AMIPAnyoneLootable | GameObjects/MIPAnyoneLootable.h |
| AMIPLootBox | GameObjects/MIPLootBox.h |
| AMIPLockedLootBox | GameObjects/MIPLockedLootBox.h |
| AMIPModeRewardLockedLootBox | GameObjects/MIPModeRewardLockedLootBox.h |
| AMIPBaseGatherable | Gatherings/MIPBaseGatherable.h |
| AMIPGoToQuestOverlapper | GameObjects/MIPGoToQuestOverlapper.h |
Doc: docs/actors/PickupAndLoot.md – Pickup flow (already in component Pickup), lootable variants, gatherable, quest overlapper.
2.4 Gate and other actors¶
| Class | File |
|---|---|
| AMIPGate | Gate/MIPGate.h |
| AMIPSpawnByPlayerControllerActor | GameObjects/MIPSpawnByPlayerControllerActor.h |
| AMIPItemEffectActor | GameObjects/MIPItemEffectActor.h |
| AMIPBaseInventoryExpansionActor | Inventory/MIPBaseInventoryExpansionActor.h |
| AMIPOwningCharacterRenderTarget | Character/MIPOwningCharacterRenderTarget.h |
Doc: Either fold into existing component docs (Gate, Inventory) or docs/actors/OtherActors.md.
2.5 Ability system actors (damage, projectiles)¶
| Class | File |
|---|---|
| AMIPBaseDamageApplierActor | AbilitySystem/DamageApplier/MIPBaseDamageApplierActor.h |
| AMIPRadiusDamageApplierActor | AbilitySystem/DamageApplier/MIPRadiusDamageApplierActor.h |
| AMIPDelayedRadiusDamageApplierActor | AbilitySystem/DamageApplier/MIPDelayedRadiusDamageApplierActor.h |
| AMIPMobDelayedRadiusDamageApplierActor | AbilitySystem/DamageApplier/MIPMobRadiusDamageApplierActor.h |
| AMIPBaseProjectile | AbilitySystem/Projectiles/MIPBaseProjectile.h |
| AMIPMobBaseProjectile | AbilitySystem/Projectiles/MIPMobBaseProjectile.h |
| AMIPBaseRadiusDamageApplierWithProjectileMovement | AbilitySystem/Projectiles/... |
Doc: docs/ability/DamageAndProjectiles.md – Damage applier pattern, projectiles, homing/spline helpers. Link to GAS and Health.
3. Data assets and definitions¶
Scope: 30+ data assets under DataAsset/, Inventory/DataAsset/, Inventory/Definitions/, AbilitySystem/DataAsset/.
Group by domain:
| Group | Examples | Doc |
|---|---|---|
| Item / inventory | MIPItemDefinition, MIPBaseItemPieceAsset, MIPEquipmentPieceAsset, MIPUsablePieceAsset, MIPClassRestrictorAsset | docs/data/ItemAndInventoryData.md |
| Player / class | MIPPlayerClassSettingsDataAsset, MIPPlayerClassDataInfoDataAsset, MIPPlayerClassFriendlyInfoDataAsset | docs/data/PlayerClassData.md |
| Interaction / NPC | MIPInteractionInstanceDefinitionAsset, MIPInteractionInstancesDefinitionAsset, MIPNPCInfoAsset, MIPNPCSecondaryActionAsset | docs/data/InteractionAndNPCData.md |
| Mob / combat / loot | MIPMobInfoDataAsset, MIPCombatMobInfoDataAsset, MIPMobCombatDataAsset, MIPLootDefinitionAsset, MIPMobSpawnerCombatInfoDataAsset, MIPWaveMobSpawnerInfoDataAsset | docs/data/MobAndLootData.md |
| Quest | MIPQuestDataAsset | docs/data/QuestData.md (or in Quest system doc) |
| Exchange / vendor | MIPExchangeDataAsset, MIPVendorDataAsset | docs/data/ExchangeAndVendorData.md |
| Ability / GE | MIPDataDrivenAbilityDataAsset, MIPCommonGameplayEffectsDataAsset, MIPAbilityStaticFriendlyInfoDataAsset, MIPAbilityLevelUpInfoDataAsset, MIPGameplayEffectFriendlyInfoAsset | docs/data/AbilityData.md |
| Equipment / item systems | MIPEquipmentSetDataAsset, MIPItemRepairDefinitionAsset, MIPItemEnhanceDefinitionAsset, MIPItemCurrentDurabilityRepairDefinitionAsset, ItemPropertyDataAsset | docs/data/EquipmentAndItemSystemsData.md |
| Level / input / UI | MIPLevelBasedFeaturesDefAsset, MIPInputConfigAsset, MIPInGameESCMenuItemAsset | docs/data/LevelAndConfigData.md |
Priority: Medium–high; data assets are touched by designers and many systems.
4. Interfaces¶
Scope: 20+ UINTERFACE / I* classes.
| Interface | Purpose | Doc |
|---|---|---|
| ISaveableLoadableObjectInterface, ISaveIdentifierInterface | Save/load | docs/interfaces/SaveInterfaces.md (or in SaveLoad) |
| IMIPWithPendingFunctionsInterface | Deferred execution | docs/interfaces/PendingFunctions.md |
| IInteractInterface, IMIPInteractableComponentInterface | Interaction | docs/interfaces/InteractionInterfaces.md |
| IMIPCursorHittableInterface | Cursor hit / targeting | docs/interfaces/CursorHittable.md |
| ICircularInteractionSphereInterface | Circular interaction UI | docs/interfaces/CircularInteractionSphere.md |
| IMIPCommonGameModeComponentsInterface, IMIPCommonGameStateComponentsInterface, IMIPCommonPlayerStateComponentsInterface | Framework component access | docs/interfaces/CommonComponentsInterfaces.md |
| IMIPCurrencyFeeInterface | Fee (currency) checks | docs/interfaces/CurrencyFee.md |
| IMIPExchangeInterface, IMIPVendorInterface | Exchange / vendor | docs/interfaces/ExchangeVendorInterfaces.md |
| IMIPStorageAssetInterface | Storage asset (e.g. NPC) | docs/interfaces/StorageAsset.md |
| IMIPTemporalDurationInterface, IMIPTemporalDurationObjectInterface | Cooldown / duration | docs/interfaces/TemporalDuration.md |
| ICharacterClassTagInterface | Player class tag | docs/interfaces/CharacterClass.md |
| IAbilitySystemInterface | GAS (engine + MIP) | Reference only or short note |
| IMIPCombatInterface | Combat | docs/interfaces/Combat.md |
| IMIPPlayerDamageReceivableActorInterface | Damage receiver (floating text, etc.) | docs/interfaces/DamageReceivable.md |
| IOutliningInterface | Outline stencil | docs/interfaces/Outlining.md |
| IMIPDroppableOnScreenInterface, IMIPPopupWidgetInterface | Widget drag/drop, popup | docs/interfaces/WidgetInterfaces.md |
| IMIPIsMobInterface | Mob identification | docs/interfaces/IsMob.md |
| IMIPMobSpawnerTriggerInterface | Spawner trigger | docs/interfaces/MobSpawnerTrigger.md |
| IAdditionalDynamicPieceInterface | Item piece | docs/interfaces/AdditionalDynamicPiece.md |
Doc: Either one docs/interfaces/README.md with a table and short descriptions, or one file per logical group above.
Priority: Medium; clarifies contracts between systems.
5. Structs and key types¶
Scope: Important USTRUCT and shared types (e.g. FMIPItemEntry, FMIPCurrencyFeeStruct, FMIPItemAddedNotification, quest/ability structs). Many live next to the classes that use them.
Approach: Do not document every struct in isolation. Instead:
- Core inventory/item: Document in a single “Inventory and item types” doc: FMIPItemEntry, item piece types, FMIPItemAddedNotification, FMIPRemovedItemInfo, equipment/durability structs. Reference from Inventory.
- Currency: FMIPCurrencyEntry, FMIPCurrencyFeeStruct in Currency or a short
docs/types/CurrencyTypes.md. - Quest: Quest instance and task structs in Quest system doc.
- Ability: MIPAbilityInfo, MIPGameplayEffectFriendlyInfo*, damage info structs in Ability system doc.
- Interaction: FInteractionTypeStruct, FCircularInteractionSphereAttachmentStruct in Interaction/Circular doc.
- Cooldown: FMIPTemporalDurationDecoratorContainer, MIPCooldownTypes in Cooldown doc.
Doc: docs/types/README.md as index; add sections to existing system docs where it makes sense.
Priority: Medium; do when expanding system docs.
6. Widgets (UUserWidget)¶
Scope: 60+ widget classes (UMIPBaseUserWidget, slot widgets, popups, tooltips, dialogue, quest, status effect, etc.).
Approach: Group by area; avoid 60 separate files.
| Group | Examples | Doc |
|---|---|---|
| Base | UMIPBaseUserWidget, UMIPBaseToggleableWidget, UMIPContainerBaseWidget, UMIPBaseItemSlotWidget, UMIPBasePopupWidget | docs/widgets/BaseWidgets.md |
| Slots and containers | UMIPItemSlotWidget, UMIPInventoryContainerWidget, UMIPEquipmentContainerWidget, UMIPStorageContainerWidget, UMIPQuickBar* | docs/widgets/SlotsAndContainers.md |
| Popups | UMIPBasePopupWidget, UMIPConfirmationPopupWidget, UMIPMessagePopupWidget, UMIPNumericPopupWidget, UMIPItemListPopupWidget | docs/widgets/Popups.md |
| Tooltips | UMIPItemTooltipWidget, UMIPItemTooltipContainerWidget, UMIPItemStatWidget, UMIPItemDurabilityWidget, status effect tooltips | docs/widgets/Tooltips.md |
| Dialogue / NPC | UMIPNPCDialogueItemWidget, UMIPNPCQuestItemWidget, UMIPNPCSecondaryDialogueActionsWidget | docs/widgets/DialogueAndNPC.md |
| Quest / abilities / player | UMIPQuestItemWidget, UMIPPlayerAbilityTooltipWidget, UMIPPlayerExpBarWidget, UMIPPlayerAttributesSectionWidget | docs/widgets/QuestAbilitiesPlayer.md |
| Enhance / repair / apply item | UMIPEnhanceWidget, UMIPRepairWidget, UMIPItemEnhancementLevelWidget | docs/widgets/EnhanceRepairApplyItem.md |
| Other | UMIPDeathWidget, UMIPMainWidget, UMIPLoadingScreenWidget, UMIPWorldInfoWidget, UMIPFloatingDamageText*, UMIPCircularInteractionSphereWidget | docs/widgets/OtherWidgets.md or merge into feature docs |
Priority: Medium; useful for UI and blueprint authors.
7. Ability system (GAS) beyond UMIPEquipmentGE¶
Scope: Attribute sets, gameplay abilities (base, player, mob, active, passive, data-driven), exec calcs, damage execution, projectiles, data-driven objects, ASC.
| Topic | Files / classes | Doc |
|---|---|---|
| Attribute sets | MIPBaseAttributeSet, MIPWithPrimaryAttributeSet, MIPWithDerivedAttributeSet, MIPBaseMobAttributeSet | docs/ability/AttributeSets.md |
| ASC | MIPAbilitySystemComponent, MIPPlayerAbilitySystemComponent, MIPPlayerAbilitySystemComponentManager | docs/ability/AbilitySystemComponents.md (or extend Health/Character) |
| Abilities | MIPBaseGameplayAbility, MIPBasePlayerGameplayAbility, MIPBaseMobGameplayAbility, MIPBaseActiveGameplayAbility, MIPBasePassiveGameplayAbility, MIPBaseDataDrivenAbility, MIPBaseItemPassiveGameplayAbility | docs/ability/GameplayAbilities.md |
| Exec calcs | ExecCal_BaseDamage, ExecCal_PlayerToMobDamage, ExecCal_MobDamage, ExecCal_ApplyEquipmentStats | docs/ability/ExecutionCalculations.md |
| Damage and projectiles | (see Actors §2.5); damage applier, projectiles, homing/spline | docs/ability/DamageAndProjectiles.md |
| Data-driven | MIPDataDrivenAbilityDataAsset, MIPBaseDataDrivenObject, DD* objects | docs/ability/DataDrivenAbilities.md |
Priority: High; core for combat and items (UMIPEquipmentGE already documented).
8. Exchange and vendor system¶
Scope: Exchange/vendor managers (PC components), exchange UI widgets, vendor data assets. Some may already be referenced in Inventory/Currency.
| Class | File |
|---|---|
| UMIPBaseExchangeManager | Exchange/MIPBaseExchangeManager.h |
| UMIPBaseInteractableExchangeManager | Exchange/MIPBaseInteractableExchangeManager.h |
| UMIPPlayerExchangeManager | Exchange/MIPPlayerExchangeManager.h |
| UMIPPlayerVendorManager | Vendor/MIPPlayerVendorManager.h |
| Exchange/vendor widgets | Widget/Exchange/, Widget/Vendor/ |
Doc: docs/systems/ExchangeAndVendor.md – Flow, action limits, currency, interaction. Link to ActionLimit, Currency, Inventory, data assets.
Priority: High if your game uses vendors/exchanges heavily; otherwise medium.
9. Cooldown decorators and relays (UObject)¶
Scope: Temporal duration decorators and client relays (used by cooldown components but are UObject, not components).
| Class | File |
|---|---|
| UMIPTemporalDurationDecorator | Cooldown/Decorator/MIPTemporalDurationDecorator.h |
| UMIPBaseExpiringItemDurationDecorator | Cooldown/Decorator/MIPBaseExpiringItemDurationDecorator.h |
| UMIPItemCooldownDecorator | Cooldown/Decorator/MIPItemCooldownDecorator.h |
| UMIPExpiringItemDurationDecorator | Cooldown/Decorator/MIPExpiringItemDurationDecorator.h |
| UMIPVendorExpiringItemDurationDecorator | Cooldown/Decorator/MIPVendorExpiringItemDurationDecorator.h |
| UMIPClientCooldownRelay | Cooldown/MIPClientCooldownRelay.h |
| UItemPiece_Cooldown | Inventory/Pieces/TempDuration/ItemPiece_Cooldown.h (if in this module) |
Doc: Extend Cooldown with a “Decorators and relays” section, or docs/systems/CooldownDecoratorsAndRelays.md.
Priority: Low–medium.
10. Subsystems, settings, BPFLs¶
| Class | File | Doc |
|---|---|---|
| UMIPDefinitionsReaderSubsystem | System/MIPDefinitionsReaderSubsystem.h | docs/subsystems/DefinitionsReader.md |
| UMIPAPIUrlSubsystem | API/Subsystem/MIPAPIUrlSubsystem.h | docs/subsystems/APIUrl.md |
| UMIPAPIUrlSettings | API/Settings/MIPAPIUrlSettings.h | (with APIUrl or settings) |
| UMIPSettings | Setting/MIPSettings.h | docs/settings/MIPSettings.md (item selection mapping, etc.) |
| UMIPEditorSettings | Setting/MIPEditorSettings.h | Editor-only; optional |
| UMIPBPFL | BPFL/MIPBPFL.h | docs/bpfl/MIPBPFL.md (or list in a single BPFL doc) |
| UMIPEditorDevLoginBPFL | BPFL/MIPEditorDevLoginBPFL.h | Editor; optional |
| UBaseAsyncAPITask | API/BaseAsyncAPITask.h | docs/api/AsyncAPITask.md if used |
Priority: Medium for DefinitionsReader and MIPSettings; lower for editor and API helpers.
11. Save game and load/save types¶
Scope: UMIPBaseSaveGame, UMIPClientSaveGame, save operation handlers, item save op, etc. (headers under SaveLoadBase, SaveLoadClient, SaveLoadServer).
Doc: Extend SaveLoad with “Save game classes and operations” (or a separate docs/systems/SaveGameTypes.md).
Priority: Medium.
12. Inventory pieces and item instance¶
Scope: UMIPItemPiece, UMIPItemPieceDynamic, UMIPItemPieceDynamicTemp, piece types (equipment, durability, usable, expiring, etc.), UMIPItemInstance. Core to inventory but not components.
Doc: docs/inventory/ItemPiecesAndInstance.md – Piece hierarchy, save/load, how they attach to FMIPItemEntry. Reference from Inventory.
Priority: High for anyone extending items or debugging saves.
13. Other modules and editor¶
| Area | Scope | Doc |
|---|---|---|
| MIPChatSystem | Chat, nameplate, player info (in Source/MIPChatSystem/) | docs/modules/MIPChatSystem.md (overview + key classes) or leave to that module’s README |
| MIPChatSystemWithSocketIO | SocketIO chat, friends (Source/MIPChatSystemWithSocketIO/) | docs/modules/MIPChatSystemWithSocketIO.md |
| ModularInventoryPlusEditor | Editor module | docs/editor/README.md (optional) |
| Third-party | Agones, VaRest, etc. | Reference only or link to upstream |
Priority: Low unless you need cross-module or editor docs.
14. Execution order (suggested)¶
- Core framework (§1) – one doc or small set.
- Interfaces (§4) – one index or a few grouped docs.
- Ability system (§7) – attribute sets, ASC, abilities, exec calcs, damage/projectiles.
- Actors (§2) – NPC, Mob and spawners, Pickup and loot, Gate/other, damage/projectile actors.
- Exchange and vendor (§8).
- Data assets (§3) – by domain.
- Inventory pieces and item instance (§12).
- Structs/types (§5) – as part of system docs or a small types index.
- Widgets (§6) – by group.
- Cooldown decorators (§9), Save game types (§11), Subsystems/settings/BPFLs (§10).
- Other modules / editor (§13) if needed.
15. Deliverables¶
- docs/REMAINING-DOCS-PLAN.md – this file.
- New folders as needed:
docs/framework/,docs/actors/,docs/data/,docs/interfaces/,docs/types/,docs/widgets/,docs/ability/,docs/systems/,docs/inventory/,docs/subsystems/,docs/settings/,docs/bpfl/,docs/api/,docs/modules/,docs/editor/. - One or more doc files per section above; link from docs/components/README.md and from a top-level docs index.
- Optional: add a “Documentation” section to the plugin’s main README that links to both component docs and this remaining-docs plan.
16. Summary table¶
| Category | Est. docs | Priority |
|---|---|---|
| Core framework | 1–2 | High |
| Interfaces | 1 or ~10 short | Medium |
| Ability system | 4–6 | High |
| Actors (NPC, Mob, Pickup, Gate, Damage) | 4–5 | High |
| Data assets | 8–10 | Medium–High |
| Exchange / vendor | 1 | High (if used) |
| Item pieces / instance | 1 | High |
| Structs / types | Index + in-place | Medium |
| Widgets | 6–8 | Medium |
| Cooldown UObjects, save types, subsystems | 3–5 | Low–Medium |
| Other modules / editor | 0–2 | Low |
Total is on the order of 35–55 new doc files (depending on how much you merge or split). Doing framework, interfaces, ability system, and main actors first gives the biggest benefit; the rest can be phased by need.