# Is this an appropriate use of Game Instance?

**URL:** <https://forums.unrealengine.com/t/is-this-an-appropriate-use-of-game-instance/2582771>\
**Category:** Blueprint\
**Tags:** gameinstance, unreal-engine, Blueprint, question\
**Created:** [June 28, 2025, 3:05am UTC](https://forums.unrealengine.com/t/is-this-an-appropriate-use-of-game-instance/2582771 "2025-06-28T03:05:32Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![e7de84f7c71249dc8a21a7d1f05899f3](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/e7de84f7c71249dc8a21a7d1f05899f3/32/1063469_2.png) [@e7de84f7c71249dc8a21a7d1f05899f3](https://forums.unrealengine.com/u/e7de84f7c71249dc8a21a7d1f05899f3)\
**Post date:** [June 28, 2025, 3:05am UTC](https://forums.unrealengine.com/t/is-this-an-appropriate-use-of-game-instance/2582771/1 "2025-06-28T03:05:32Z")

</div>

I’m designing a story-driven game in Unreal Engine using Blueprints. To manage story progression, I’m planning to use the **Game Instance** to track and control the current state of the narrative.

Here’s how I envision the system:

1. The player, using a third-person character, interacts with an NPC to start a conversation.
2. When the conversation ends, an **interface call** sends a notification to the **Game Instance** , informing it that the dialogue is complete.
3. The Game Instance then updates the story state and activates the next objective — for example, enabling interaction with three items placed in the level.
4. Once the player collects all three items, the **items communicate back** (again via interface or direct call) to the Game Instance to confirm completion.
5. The Game Instance then triggers the next event in the story, such as making another NPC interactable or unlocking a door.

This setup means the Game Instance acts like a **story state manager** — receiving updates from various actors (like the player character or item pickups), and then controlling what becomes interactable next.

I’m wondering:

- **Is this an appropriate use of Game Instance?**
- The communication between Game Instance and various actors (player, NPCs, item Blueprints) will increase — is this an expected architecture for story/event progression in Blueprint?

---

<div class="post-metadata">

**Author:** ![Rev0verDrive](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rev0verdrive/32/907214_2.png) [@Rev0verDrive](https://forums.unrealengine.com/u/Rev0verDrive)\
**Post date:** [June 28, 2025, 5:59am UTC](https://forums.unrealengine.com/t/is-this-an-appropriate-use-of-game-instance/2582771/2 "2025-06-28T05:59:50Z")

</div>

Game State would be where you handle the “states” of the game.

---

<div class="post-metadata">

**Author:** ![e7de84f7c71249dc8a21a7d1f05899f3](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/e7de84f7c71249dc8a21a7d1f05899f3/32/1063469_2.png) [@e7de84f7c71249dc8a21a7d1f05899f3](https://forums.unrealengine.com/u/e7de84f7c71249dc8a21a7d1f05899f3)\
**Post date:** [June 28, 2025, 9:52am UTC](https://forums.unrealengine.com/t/is-this-an-appropriate-use-of-game-instance/2582771/3 "2025-06-28T09:52:41Z")

</div>

What BP is typically used to manage story progression?

---

<div class="post-metadata">

**Author:** ![Countsie](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/countsie/32/1194632_2.png) [@Countsie](https://forums.unrealengine.com/u/Countsie)\
**Post date:** [June 28, 2025, 5:59pm UTC](https://forums.unrealengine.com/t/is-this-an-appropriate-use-of-game-instance/2582771/4 "2025-06-28T17:59:30Z")

</div>

GameState works well for this but not the only solution. Personally I use a custom BP “Director” with a StateTree that drives the story line. You could use statetree events to do what you’re outlining with dialogue/etc. Building tasks is pretty easy and modular. I use the GameState for more over-arching game world tracking but it could also be extended with a statetree to the same effect.

---

<div class="post-metadata">

**Author:** ![Countsie](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/countsie/32/1194632_2.png) [@Countsie](https://forums.unrealengine.com/u/Countsie)\
**Post date:** [June 28, 2025, 6:09pm UTC](https://forums.unrealengine.com/t/is-this-an-appropriate-use-of-game-instance/2582771/5 "2025-06-28T18:09:50Z")

</div>

For clarity the Director is literally a clean blank Actor BP with a StateTree component I named “Director”. This gets placed into my level and ticks along during gameplay.

To track story state, I create variables in this Director that are available for use in the state tree and tasks once I set it up as the Context Actor

Some Links:

> **[State Tree in Unreal Engine | Unreal Engine 5.6 Documentation | Epic...](https://dev.epicgames.com/documentation/en-us/unreal-engine/state-tree-in-unreal-engine)**
>
> StateTree is a general-purpose hierarchical state machine that combines the Selectors from behavior trees with States and Transitions from state machines.

> **[Your First 60 Minutes with StateTree | Tutorial](https://dev.epicgames.com/community/learning/tutorials/lwnR/unreal-engine-your-first-60-minutes-with-statetree)**
>
> A practical guide to understanding and working with StateTree as it relates to AI. It covers key concepts, terminology, and execution flow for StateTree...

If you go this route, pay close attention to ‘transitions’ as this is where most of missteps occur. Also I got hung up on when/where to use EndTask when building custom tasks so keep an eye out for that. Other than that works really well for story driven stuff and is very easy to track what is going on using the debugger.
