Skip to content

Creating a New Map

This guide walks through everything needed to add a new map — open-world zone or instanced dungeon — to a MIP project.


Step 1 — Create the Level

Create a new level however you prefer (File → New Level, duplicate an existing one, etc.).
Once the level is open, go to World Settings and locate the GameMode Override field.

Set it based on the map type:

Map type GameMode Override
Open-world / town / field BP_MIP_GM
Instanced dungeon BP_MIP_SessionDungeon_GM

Why does it matter?

BP_MIP_GM handles standard player connections and persistence.
BP_MIP_SessionDungeon_GM layers on session allocation, party syncing, dungeon-end conditions, and the fee/requirement gate checked before travel.


Step 2 — Add a Player Start

Players need a spawn point. MIP ships its own Player Start actor that integrates with the respawn and character-class systems.

  1. Open the Place Actors panel (Shift+1 or Window → Place Actors).
  2. In the search field, type mip def (or the full name MIP Default Player Start). The list shows MIPDefault Player Start — that is the same actor.

    Place Actors: search for mip def and pick MIPDefault Player Start

  3. Drag MIPDefault Player Start into the level wherever you want the initial spawn location to be.

You can place multiple MIP Default Player Starts — the framework will choose among them using the standard Unreal player-start selection logic.


Step 3 — Register the Map in the Map Data Table

Every map the server can travel to must have a row in the DefaultMapDataDataTable configured in MIP Settings (Project Settings → ModularInventoryPlus → DataTables).

Add a new row (type FMIPMapData) for this level. The row name is used as the map identifier and referenced by FDataTableRowHandle throughout the system.


Step 4 — Dungeon-Only: Configure Entry Requirements

Skip this step for non-dungeon maps.

Open Project Settings → ModularInventoryPlus → DataTables | Map and find InteractionTagAndEnterDungeonInfoMap.

Each entry maps an Interaction Tag (the tag fired when the player interacts with a dungeon-entrance actor in the world, e.g. a portal) to an FMIPEnterDungeonInfo struct that defines who is allowed in and what it costs.

If the entry for your dungeon's tag is left empty (no FMIPEnterDungeonInfo row added), there is no fee and no requirement — anyone can enter. It is still recommended to set at least LevelRequirement to prevent under-leveled characters from entering.

FMIPEnterDungeonInfo Fields

Field Type Description
MapData FDataTableRowHandle Points to the FMIPMapData row for this dungeon. This tells the system which level to allocate and travel to.
LevelRequirement int32 Minimum player level required to enter. 0 = no requirement.
RequiredTags FGameplayTagContainer The player's tag container must include all of these tags. Use this to gate access behind quest completion, titles, access passes, or other flag-style conditions.
ActionLimitRequirement FMIPActionLimitRequirement Ties entry to an Action Limit budget (e.g. "can enter this dungeon 10 times per day"). The ActionTag (ActionLimit.*) must be configured in the Action Limits system. Leave the tag empty to skip the limit check.
Fee FMIPCurrencyFeeStruct Currency fee deducted on entry. See sub-table below.

FMIPCurrencyFeeStruct (the Fee sub-struct)

A fee is only active when all three fields are filled in. IsValidFee() returns false if any field is missing, so a partially configured fee silently skips the charge.

Field Type Description
CurrencyTag FGameplayTag (Inventory.Currency.*) Which currency to charge (e.g. Inventory.Currency.Gold).
StorageTag FGameplayTag (Storage.*) Which storage to deduct from (defaults to Storage.Personal.PlayerInventory).
FeeAmount int64 Amount to deduct. Must be > 0 for the fee to be valid.

Error types returned on failed entry

UMIPPlayerDungeonManager::CheckDungeonRequirementAndReturnError outputs one of:

EDungeonRequirementErrorType Cause
NotEnoughFee Player doesn't have enough currency in the specified storage.
LevelDoesnotMet Player level is below LevelRequirement.
DoesNotHaveRequiredTags Player is missing one or more RequiredTags.
ExceedLimit Player has exhausted the ActionLimitRequirement budget.

Step 5 — Add Mob Spawn Triggers (Optional)

To populate the level with mobs, place Mob Spawn Triggers in the world. MIP provides a ready-made sphere-shaped trigger:

ModularInventoryPlus/Content/Mob/Trigger/BP_MST_Sphere

BP_MST_Sphere is a sphere collision actor — mobs inside its radius are managed by the attached spawner component. When no player is nearby the trigger deactivates its spawner to save performance.

Place one or more BP_MST_Sphere actors in the level and configure the spawner settings (mob data asset, count, respawn delay, etc.) on each one.

If your project uses triggerable mob spawners (for example BP_TriggerableMobSpawner), set Editables → Spawning Mob Class to the mob blueprint you want that spawner to spawn:

Details: Spawning Mob Class set to a mob blueprint

Trigger Actors controls what activates the spawner. To fire when the player enters a sphere trigger, add your BP_MST_Sphere actor to Trigger Actors (the editor uses a nested array — expand each index until you can pick the sphere from the level):

Trigger Actors on a spawner referencing BP_MST_Sphere

You can also chain spawners: set Trigger Actors to another spawner actor so the next wave starts when the previous spawner’s condition is met (for example, after it is cleared):

Trigger Actors referencing another BP_TriggerableMobSpawner

Spawner details

See Mobs & Spawners for full spawner configuration and loot override options.


Summary

Step Action
1 Create level → set GameMode Override (BP_MIP_GM or BP_MIP_SessionDungeon_GM)
2 Place MIPDefault Player Start from the Place Actors panel (search mip def)
3 Add an FMIPMapData row to DefaultMapDataDataTable
4 (Dungeons only) Add an entry to InteractionTagAndEnterDungeonInfoMap in MIP Settings
5 (Optional) Place BP_MST_Sphere mob spawn triggers

See Also

What Link
Map data table structure Settings & BPFL
Action Limits system Action Limits
Mob spawner reference Mobs & Spawners
Gate / portal actors Gate