# Save game stop working when using level streaming?

**URL:** <https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856>\
**Category:** Programming & Scripting\
**Tags:** savegame, unreal-engine, question\
**Created:** [January 1, 2026, 2:58am UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856 "2026-01-01T02:58:15Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![BlennzFire](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/blennzfire/32/1138932_2.png) [@BlennzFire](https://forums.unrealengine.com/u/BlennzFire)\
**Post date:** [January 1, 2026, 2:58am UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/1 "2026-01-01T02:58:15Z")

</div>

Does anyone know why this happens?

---

<div class="post-metadata">

**Author:** ![Auran131](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Auran131](https://forums.unrealengine.com/u/Auran131)\
**Post date:** [January 1, 2026, 5:22am UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/2 "2026-01-01T05:22:42Z")

</div>

we’d need a lot more info but to guess, when you stream levels the old world/actors may still exist so things like BeginPlay may not be called

---

<div class="post-metadata">

**Author:** ![BlennzFire](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/blennzfire/32/1138932_2.png) [@BlennzFire](https://forums.unrealengine.com/u/BlennzFire)\
**Post date:** [January 1, 2026, 5:18pm UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/3 "2026-01-01T17:18:38Z")

</div>

Well okay so how my save system works is that when a collectable is picked up it gets added to an array and saves and in the save game there is a function to destroy the items in the array which is loaded from the gamemode on begin play. also all my collectables are in a persistent level so no collectable get deloaded which is why im confused.

---

<div class="post-metadata">

**Author:** ![Auran131](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Auran131](https://forums.unrealengine.com/u/Auran131)\
**Post date:** [January 2, 2026, 5:16am UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/4 "2026-01-02T05:16:43Z")

</div>

i’d start debugging by checking your references, put a breakpoint on your save/load events or check things like is the gamemode valid, is the collectable valid etc with a printstring

---

<div class="post-metadata">

**Author:** ![BlennzFire](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/blennzfire/32/1138932_2.png) [@BlennzFire](https://forums.unrealengine.com/u/BlennzFire)\
**Post date:** [January 2, 2026, 5:32am UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/5 "2026-01-02T05:32:52Z")

</div>

I have debugged the collectable to see if its valid which is how i discovered that level streaming messes up my save game but it only messes up the new things that are collected so old collectables will stay destroyed but not new ones which is why i don’t think its a problem with the gamemode. I know what causes it i just don’t know why it causes it and how to fix it.

---

<div class="post-metadata">

**Author:** ![BlennzFire](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/blennzfire/32/1138932_2.png) [@BlennzFire](https://forums.unrealengine.com/u/BlennzFire)\
**Post date:** [January 3, 2026, 4:02am UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/6 "2026-01-03T04:02:49Z")

</div>

I have tried now moving the saving functions into the game instance no luck this is such a odd thing.

---

<div class="post-metadata">

**Author:** ![Auran131](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Auran131](https://forums.unrealengine.com/u/Auran131)\
**Post date:** [January 3, 2026, 5:26am UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/7 "2026-01-03T05:26:45Z")

</div>

> [@BlennzFire](#):
>
> only messes up the new things that are collected

it sounds like theyre not getting saved to the array?

---

<div class="post-metadata">

**Author:** ![BlennzFire](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/blennzfire/32/1138932_2.png) [@BlennzFire](https://forums.unrealengine.com/u/BlennzFire)\
**Post date:** [January 3, 2026, 8:36pm UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/8 "2026-01-03T20:36:32Z")

</div>

How would i debug that too see if they are or arent?

---

<div class="post-metadata">

**Author:** ![BlennzFire](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/blennzfire/32/1138932_2.png) [@BlennzFire](https://forums.unrealengine.com/u/BlennzFire)\
**Post date:** [January 4, 2026, 2:53am UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/9 "2026-01-04T02:53:37Z")

</div>

Actually i was wrong i think it messes up old things that were collected meaning for some reason going into a level streaming bounds then leaving and picking up a collectable i guess breaks the old one

---

<div class="post-metadata">

**Author:** ![Auran131](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Auran131](https://forums.unrealengine.com/u/Auran131)\
**Post date:** [January 4, 2026, 4:07am UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/10 "2026-01-04T04:07:31Z")

</div>

ah so you could be reseting the array, or its not saved.

where is the array and when you add/remove something to it thats where you can debug it

---

<div class="post-metadata">

**Author:** ![BlennzFire](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/blennzfire/32/1138932_2.png) [@BlennzFire](https://forums.unrealengine.com/u/BlennzFire)\
**Post date:** [January 4, 2026, 3:20pm UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/11 "2026-01-04T15:20:46Z")

</div>

Well the array is in the save game file and the thing gets saved inside the collectable it saves it there before its destroyed. I am pretty sure though that the it is writing but again going into streaming bounds i guess corrupts it

---

<div class="post-metadata">

**Author:** ![BlennzFire](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/blennzfire/32/1138932_2.png) [@BlennzFire](https://forums.unrealengine.com/u/BlennzFire)\
**Post date:** [January 8, 2026, 12:11am UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/12 "2026-01-08T00:11:55Z")

</div>

I figured it out. All I had to do was change the way levels load. rather then using level streaming volume it instead uses a load level streaming node.

---

<div class="post-metadata">

**Author:** ![BlennzFire](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/blennzfire/32/1138932_2.png) [@BlennzFire](https://forums.unrealengine.com/u/BlennzFire)\
**Post date:** [January 8, 2026, 12:32am UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/13 "2026-01-08T00:32:06Z")

</div>

nope actually didnt work dammit

---

<div class="post-metadata">

**Author:** ![BlennzFire](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/blennzfire/32/1138932_2.png) [@BlennzFire](https://forums.unrealengine.com/u/BlennzFire)\
**Post date:** [January 15, 2026, 10:59am UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/14 "2026-01-15T10:59:04Z")

</div>

This is so stupid why does this happen and only happen with an array of actors it doesnt happen with like names.

---

<div class="post-metadata">

**Author:** ![pezzott1](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/pezzott1/32/1215068_2.png) [@pezzott1](https://forums.unrealengine.com/u/pezzott1)\
**Post date:** [January 15, 2026, 1:35pm UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/15 "2026-01-15T13:35:51Z")

</div>

> [@BlennzFire](#):
>
> only happen with an array of actors it doesnt happen with like names.

Are you trying to save the array of actors?

Can you share the blueprint?

---

<div class="post-metadata">

**Author:** ![BlennzFire](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/blennzfire/32/1138932_2.png) [@BlennzFire](https://forums.unrealengine.com/u/BlennzFire)\
**Post date:** [January 15, 2026, 9:22pm UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/16 "2026-01-15T21:22:32Z")

</div>

Its abit messy but this is how my collected item is being added to the array in save game. and this is about it there isnt much more code for this atleast related to the array

 ![Skärmbild 2026-01-15 222052](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/a/1/2a120d2031144b22a5575fe273d41d00cdb40d8e.png)

---

<div class="post-metadata">

**Author:** ![pezzott1](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/pezzott1/32/1215068_2.png) [@pezzott1](https://forums.unrealengine.com/u/pezzott1)\
**Post date:** [January 15, 2026, 9:33pm UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/17 "2026-01-15T21:33:12Z")

</div>

Think that is the problem right there: you are saving references to actors, meaning their memory addresses for a specific instance. After the actors are destroyed, those addresses are no longer valid.

What you should do instead is assign an ID (int, FName, FString, enum, etc) to each item and save that ID in a list or container of your choice. On BeginPlay, each actor should check whether its ID exists in that list. If it does, it means the item was already collected in a previous instance and should be destroyed.

You can manually assign the ID and keep track of them in your GDD, or have a system generate and manage it for you.

---

<div class="post-metadata">

**Author:** ![BlennzFire](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/blennzfire/32/1138932_2.png) [@BlennzFire](https://forums.unrealengine.com/u/BlennzFire)\
**Post date:** [January 16, 2026, 5:51pm UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/18 "2026-01-16T17:51:30Z")

</div>

You got any idea on how i would do that in a unreal you know to check if the collectables id is valid and to destroy it?

---

<div class="post-metadata">

**Author:** ![pezzott1](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/pezzott1/32/1215068_2.png) [@pezzott1](https://forums.unrealengine.com/u/pezzott1)\
**Post date:** [January 18, 2026, 11:56pm UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/19 "2026-01-18T23:56:56Z")

</div>

Sorry for late response.

Try this:

- Create an interface to specifically handle communication with you safe game. Something like ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/3/3/6/336b04fe3b01839cb0ee08a7e02e3e0d4a1fdb1a.png)
- Create a game instnace blueprint and set it as your default game instance. Instance your save game class in the game instance and overwrite the interface functions:
  - ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/1/d/3/1d398f14fcd2ef97b1826437f21dc25f1ef11267.png)
  - ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/3/a/e/3ae98f607c2d8f1c973e7a6ae98875887fada276.jpeg)
  - ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/0/f/8/0f8259fd1b291951d17ec5ac81c0c233e4e83ea8.png)

It’s important to limit all interactions with the save game through the interface. If something does not work then you’ll only have one place to check.

- For the item, you can place this in the item class or in a component:

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/9/8/298ffb937e7b0cac356fe4371f134842eed25ecd.jpeg)

* * *

With this, because save game object is in game instance, it will persist for the duration of the aplication and all items will check at their respective begin play.

This should be extended so that the collectible items listen to when a load happens or to be sure that they only check after sve game is ready (don’t use timers or delays for this, always go the event driven route). But first try this and let us know if your issue is solved. All are welcome to share if they have any suggestion or better way to do it in BP.

---

<div class="post-metadata">

**Author:** ![BlennzFire](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/blennzfire/32/1138932_2.png) [@BlennzFire](https://forums.unrealengine.com/u/BlennzFire)\
**Post date:** [January 19, 2026, 9:47am UTC](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856/20 "2026-01-19T09:47:42Z")

</div>

this did help quite abit only one problem. for some reason it doesnt work in a packaged build.

[Next page](https://forums.unrealengine.com/t/save-game-stop-working-when-using-level-streaming/2688856.md?page=2)
