Skip to content

Settings and Blueprint Function Library

Overview

UMIPSettings is the plugin’s config-driven settings object (EditAnywhere, Config). UMIPAPIUrlSubsystem is a GameInstance subsystem that holds the client auth token and is used by login/API tasks. UMIPBPFL is the main Blueprint Function Library for gameplay helpers (equipment, level, tags, item, notifications, checks).

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


Key classes and files

Class / asset File
UMIPSettings Public/Setting/MIPSettings.h
UMIPAPIUrlSubsystem Public/API/Subsystem/MIPAPIUrlSubsystem.h
UMIPBPFL Public/BPFL/MIPBPFL.h
API URL config Public/API/Settings/MIPAPIUrlSettings.h (referenced by subsystem)

UMIPSettings

  • Base: UObject; config=Game, defaultconfig.
  • Access: UMIPSettings::Get() static.
  • Categories (summary): Accessibility (storage tags), Equipment (slot tags), Currency (shared tags, repurchase factor, icon map), Texture/Border/Rarity, Calculation (equipment stats, loots), DefaultClasses (widgets, popups, pickups, nameplates, etc.), Interaction (NPC/quest/chat instances, tag–widget mapping), Repair, QuickSlot (creator class, index/display name, LMB/Space indices), Collisions, DataTables, Inputs, Loading, Enhancement, Styling, Nameplate, ESC menu, Map/Dungeon, and more.
  • Use: Referenced by save game init, definitions, and many systems that need default widget classes, tags, or gameplay config. Edit in project settings or DefaultEngine.ini / config.

UMIPAPIUrlSubsystem

  • Base: UGameInstanceSubsystem.
  • Access: UMIPAPIUrlSubsystem::Get(WorldContextObject).
  • API: GetClientAuthToken(WorldContextObject) – returns the stored client auth token (set by login/create-family tasks).
  • Usage: Login and create-family async tasks (friends) set ClientAuthToken; other systems read it for authenticated API calls.

UMIPBPFL

  • Base: UBlueprintFunctionLibrary.
  • Categories: Equipment (GetEquipmentSkeletalMesh, AddEquipmentMesh, OnEquippedItemMesh, OnUnEquippedItemMesh), Level (RewardPlayerWithEXPs, GivePlayerEXP, GiveAbilityPointsEXP, GivePlayerEXPRaw), Pickup (SpawnPickupItem), Flavor (IsEditor, IsDevEnv, IsShippingEnv), Tags (GetActorCombinedtags, IsTagTheLastChild, GetLastTagString, GetClassAppropriateTagRandomly, RequestGameplayTagFromString, GetClassSpecificChildStatTag, etc.), Class Restriction (IsClassRestricted, GetRestrictedForClassesString), Item (GetEntryIdentifierString, GetListIdentifierString), Notifications (AddLocalNotificationMessage, AddNotEnoughItemWithNumNotification), Checks (CheckAndHandlePlayerDeadWithNotification, CheckAndHandleInCombatStateWithNotification, CheckLevelRequirementMet, CheckFeeRequirement, CheckAndHandleItemClassRestriction), Character (CheckIsPlayerDeadWithPC, CheckIsPlayerDead, CheckPlayerInCombat), Inventory (GetInventoryManagerComponentByTag), Navigation (GetInteractableMoveGoalLocation2D, IsCharacterAtInteractableSphere2D), Interaction (CheckIfTwoVectorsWithinInteractableRange), Random (GenerateRandomFloatInRange, RandomizeAndCheckSuccessChance), URL (MakeURL).
  • Use: Blueprint and C++ call these for common gameplay and UI logic without duplicating code.

Integration

  • UMIPBaseSaveGame stores a reference to UMIPSettings at init.
  • UMIPAPIUrlSubsystem is created with the Game Instance; auth tasks and any code needing the client token use Get(WorldContextObject).
  • Widgets and systems use UMIPBPFL for tags, notifications, level/currency/class checks, and equipment/UI helpers.