Skip to content
Games by Hyper
Sign Up / Login
Games by Hyper

Generic

  • QuickStart
  • Support
  • Purchase Options
  • Roadmap
  • FAQ
  • Learning
  • For Professional Studios

Templates

  • Template Logic and flexibility

Shared Infrastructure

  • Gameplay Tags
  • Datamanagement
  • Folder Structure
  • Object Pooler

Item Management

  • Inventory
  • Jigsaw Inventory
  • List Inventory
  • Respawn Actor Manager
  • Hotbar
  • Crafting
  • Item Allocator
  • Vendor
  • Icon Creator
  • Interactive Foliage

Interaction and Feedback

  • Interaction System
  • Outliner System

UI

  • Main Menu
  • HUD
  • Information Prompt

Locomotion

  • Animation Framework
  • Extended Movement Component
  • Leader Posing
  • Custom-Skeletal-Meshes

Combat

  • Attribute Manager
  • Team Affiliation
  • Equipment Manager
  • Ragdoll System
  • Ability System
  • Target Locking
  • Weapon Attachment System
  • Combat-framework
  • Actor Health
  • Lootable Corpse

Construction and Survival Mechanics

  • Building System
  • Mineable Rocks
  • Tree Cutting
  • Farming System
  • Fishing System
  • Swimming System
  • Bury Storage
  • Skinning System

Game Management

  • Global Save System
  • Respawn System
  • Session Manager
  • Game Mode System
  • Spectate System
  • Player Manager
  • Team Manager
  • Score Manager
  • Permission Manager
  • Level Instance Manager

Multiplayer

  • Online Multiplayer Framework
  • Replication Subsystem
  • Chat System
  • Console Command Manager

AI

  • Routine Driven NPC Framework
  • Perception System

Exploration and Narrative

  • Dialogue System
  • Memory System
  • Quest Manager
  • Map System
  • Teleport System
  • Guide System
  • Event Manager
  • Visual Novel System
  • Region Manager
  • Inspection System
  • Sequence Manager

Progression and Leveling

  • Level Manager
  • Unlock System
  • Reputation System

Character and Player Systems

  • Mount System
  • Emote System

Environmental Control and Immersion

  • Time and Day Night Cycle management
  • Weather System
  • Background Music System
  • Footstep System

Environment Building

  • Mesh to Actor Swap System
  • Forest-Basic
  • Level Instances
View Categories
  • Home
  • Docs
  • Level Instance Manager

Level Instance Manager

8 min read

Level instance manager #

Technical documentation based on the supplied Blueprint manager, structs, demo trigger, and example level flow.

Scope: This document describes the Level Instance Manager implementation and demo usage shown in the supplied screenshots. It focuses on the Blueprint behavior visible in the manager, listener flow, trigger actor, and example village swap setup.

CONTENTS


Introduction #

The Level Instance Manager is a Blueprint-driven world streaming system used to dynamically load, unload, and swap level instances during gameplay. The supplied demo shows it being used for staged world-state transitions, such as replacing an intact village with a destroyed version when a trigger fires.

Instead of rebuilding every world state directly into one persistent map, the system packages those states as modular level instances and loads only the version required at that moment. This makes narrative transitions cleaner, keeps demo flows reusable, and also helps control what content is streamed for each player.

  • Supports dynamic world swaps driven by gameplay triggers, quest stages, or event tags.
  • Tracks loaded streaming instances at runtime so they can be matched and unloaded later.
  • Provides multiplayer-aware filtering so updates can be sent to everyone or only selected controllers.
  • Caches required load instructions so late-joining clients can catch up with the current streamed world state.
  • Fits both direct trigger-driven setups and event-listener driven integrations.

Overview board from the supplied demo level.

Demo flow board summarising quest-driven and trigger-driven world changes.


Core Asset Overview #

The central implementation asset shown in the supplied screenshots is AC_GS_LevelInstanceManager. This manager owns the runtime load/unload logic, stores the live instance references, registers itself as a listener when using the event-manager path, and exposes the core Blueprint functions used by the rest of the demo.

Area

Purpose in the implementation

Manager Blueprint

Owns the streamed level instance lifecycle: load, unload, caching for late join, and live tracking.

EventGraph / BeginPlay

Registers the manager as a listener and replays cached level-instance loads when a client joins.

On Event

Receives gameplay-tagged environment events and routes them into the manager functions.

Demo Trigger Actor

Provides a gameplay-facing overlap example that calls the manager’s multicast wrappers.

Struct Payloads

Encapsulate all data needed to perform a load or unload request without hardcoding values in every graph.

EventGraph section showing unload and load entry points plus the direct manager call.

BeginPlay setup showing listener registration and late-join replay from cached load instructions.

This arrangement keeps the manager as the single source of truth for streamed instances. Other actors only need to build the right payload and call the manager, rather than owning separate streaming logic themselves.


Details Panel / Important Variables #

Two runtime variables are visible in the supplied manager Blueprint and they explain most of the system’s state handling. Together they let the manager separate what should be active for players from what is currently loaded in memory and can be unloaded by reference.

Level Instances To Load is stored as an array of F_Load_Level_Instance.

Loaded Level Instances is stored as a map of Level Streaming Dynamic to Soft World Reference.

Variable

Type

Role in the system

Level Instances To Load

Array

Server-side cache of load instructions that should also be applied for relevant clients. The BeginPlay flow iterates this array so a joining client can recreate already-active streamed content.

Loaded Level Instances

Map

Runtime lookup of every currently loaded streaming instance paired with its source level reference. This map is used when unloading so the manager can find the correct loaded instance and remove it safely.

Why the separation matters: The array represents desired world state for client catch-up, while the map represents the actual loaded runtime objects currently owned by the manager.


Structures Explained #

The manager uses two compact data structs. One describes how to load a level instance, and the other describes how to unload one. This keeps the manager API clean and makes the same payload usable across direct calls, event-listener routing, and multicast wrappers.

F_Load_Level_Instance as supplied in the implementation.

F_Unload_Level_Instance as supplied in the implementation.

F_Load_Level_Instance field

Description

Level

Soft world reference for the level instance asset to be streamed in.

Location

World-space location used when spawning the streamed instance.

Rotation

World rotation applied to the streamed instance.

Optional Level Name Override

Optional explicit instance name used when a custom streamed level name is required.

Optional Level Streaming Class

Optional streaming class override for the loaded instance.

Load As Temp Package

Boolean option forwarded into the load request for temporary package behaviour.

Spawn For Everyone

If true, the update is considered valid for all relevant clients.

Spawn For These Controllers

Optional controller filter used when the load should only be processed for selected players.

F_Unload_Level_Instance field

Description

Level

Soft world reference identifying which loaded level instance should be removed.

Unload For Everyone

If true, the unload request should be processed for all relevant clients.

Unload For These Controllers

Optional controller filter used when only specific players should process the unload.


Functions to Use #

The supplied manager implementation exposes a small but practical function set. These functions cover player filtering, load/unload execution, runtime cleanup, local actor lookup, and event-driven routing.

Function

Purpose

Should Update

Evaluates whether the current local player should process a load or unload request. It returns true when the update is marked for everyone or when the local player controller exists in the supplied controller array.

Load Level Instance

Optionally stores the load request for later clients, evaluates the visibility rules through Should Update, then loads the level by object reference and adds the resulting streaming instance to the runtime map.

Unload Level Instance

Checks whether the local player should process the request, removes the matching cached instruction if needed, finds the corresponding loaded instance in the runtime map, and removes it.

Remove Level From Instances To Load

Scans the cached load-instruction array and removes an entry by matching its soft world reference.

Get all actors from class from level instance

Collects actors of a given class and returns only the actors that belong to the supplied streamed level instance.

Should Update filters requests using the Everyone flag or selected controllers.

Load Level Instance stores the request, checks visibility, loads by reference, and tracks the result.

Unload Level Instance removes cached instructions, finds the loaded instance, and removes it.

Utility flow used to find actors that belong to a streamed level instance.


Event Listener / Replication Flow #

The manager supports both direct function calls and event-driven routing. On BeginPlay, the manager can register itself with the Game State Event Manager and listen for environment load or unload tags. When those tagged events fire, the Event Listener interface routes the payload into the manager’s load or unload functions.

BeginPlay registers the manager as a listener and replays cached loads for joining clients.

On Event switches on gameplay tags and converts the event payload into load or unload calls.

Replication element

Observed behaviour

Multicast_LoadLevelInstance

Reliable multicast wrapper that accepts F_Load_Level_Instance plus a SkipServer boolean. Used to forward a load request across the network without duplicating execution where SkipServer is enabled.

Multicast_UnloadLevelInstance

Reliable multicast wrapper that accepts F_Unload_Level_Instance and forwards the unload request across the network.

Late-join catch-up

The BeginPlay replay loop iterates the cached Level Instances To Load array so a joining client can stream in instances already considered active for other players.

Event-driven path

The interface-based On Event function allows quest logic, world events, or other gameplay-tag-driven systems to request streamed world changes without directly wiring into every manager graph.

Multicast_LoadLevelInstance is configured as a reliable multicast.

Multicast_UnloadLevelInstance is configured as a reliable multicast.


Trigger Box / Demo Actor Setup #

The supplied demo also includes a trigger-box actor that shows how a gameplay overlap can drive the manager. This actor is the user-facing example most developers will understand first, because it turns the abstract manager functions into a practical in-level workflow.

Exposed variables on the demo trigger actor.

Overlap entry flow: validate player-controlled pawn, authority, controller, manager, and trigger state.

The trigger supports swap mode and simple load-only or unload-only paths.

Trigger field

Purpose

Triggers To Allow On Overlap

Controls which triggers are currently allowed to execute. Used by the Can trigger and reset logic to prevent accidental repeated execution.

Allow Trigger At Start

Sets whether the trigger begins in an active state.

Unload These Instances

List of level instances that should be force-unloaded before loading a replacement. In the sample, this is used to remove an already-placed village instance.

Should Execute Unload And Load

Enables swap mode so the trigger performs an unload path and then immediately loads the replacement instance.

Load

When not using swap mode, decides whether the trigger is a load-only trigger or an unload-only trigger.

Struct Load Level Instance

Payload used for the load call.

Struct Unload Level Instance

Payload used for the unload call.


Example Flow – Village Swap Using Overlap Triggers #

The clearest supplied use case is the intact-to-destroyed village example. A pre-existing village instance is already in the world, the player overlaps a trigger, the original instance is unloaded, and the replacement version is streamed into the same gameplay space.

Demo board describing the intact-village to destroyed-village swap example.

Destroyed-village trigger sign.

Restore-village trigger sign.

Placed trigger setting

Observed value / meaning

Unload These Instances

LI_HyperVillage_Example is listed so the already-present level instance can be removed first.

Should Execute Unload And Load

Enabled – this trigger runs in swap mode.

Load

Enabled – after unloading, the trigger proceeds into the load path.

Struct Load Level Instance

Configured with a specific transform and set to Load As Temp Package and Spawn For Everyone.

Struct Unload Level Instance

Configured to Unload For Everyone.

Allow Trigger At Start

Enabled – the trigger can execute immediately at the start of play.


Setup Notes / Summary #

From the supplied implementation, the intended workflow is straightforward: build a load or unload payload, send it into the manager either directly or through the event-listener path, and let the manager own the streamed instance lifecycle.

Recommended setup sequence

Why it matters

1. Define the level payloads

Create F_Load_Level_Instance and F_Unload_Level_Instance values so the manager has all required transform, targeting, and player-filter data.

2. Call the manager through the right path

Use direct Blueprint calls for simple setups, multicast wrappers for replicated gameplay actions, or the Event Listener path when the project already uses gameplay-tagged environment events.

3. Cache active world-state loads where required

The manager’s Level Instances To Load array supports the late-join replay behaviour shown on BeginPlay.

4. Use the trigger actor for localised gameplay examples

The demo trigger is a clean example for overlap-driven world swaps, loads, and unloads.

5. Track reversibility deliberately

If a world state can be be restored later, pair the swap trigger with a matching restore trigger and corresponding load/unload payloads.

Overall, the Level Instance Manager is a clean modular Blueprint utility for streaming world-state changes in and out of play. Its biggest strengths in the supplied implementation are: reusable payload structs, centralised instance tracking, reliable multicast wrappers, late-join replay support, and a practical demo trigger that shows how to turn the system into an easy-to-configure gameplay tool.

Best fit use cases: Quest-stage environment swaps, reversible story consequences, modular village or settlement variants, staged gameplay spaces, and multiplayer scenarios where streamed world state must stay consistent for joining players.

What are your Feelings
Still stuck? How can we help?

How can we help?

Table of Contents
  • Level instance manager
  • Introduction
  • Core Asset Overview
  • Details Panel / Important Variables
  • Structures Explained
  • Functions to Use
  • Event Listener / Replication Flow
  • Trigger Box / Demo Actor Setup
  • Example Flow - Village Swap Using Overlap Triggers
  • Setup Notes / Summary

© 2026 Games by Hyper

X Reddit Patreon Discord Linkedin YouTube

Review Cart

No products in the cart.

We noticed you're visiting from Netherlands. We've updated our prices to Euro for your shopping convenience. Use United States (US) dollar instead. Dismiss

  • Hyper Bundle Configurator
  • Shop
    • Game Templates
    • Courses
    • Loyalty Store
    • Survival Modules
    • RPG Modules
    • Environment Building
  • My account
  • Become a Member
  • Cart
  • Get Help
    • FAQ
    • Upgrade your Game Template
    • Documentation
  • About Hyper
  • News & Updates