What is the Unreal equivalent to Unity's DontDestroyOnLoad?

In Unity3D, there is a function called DontDestroyOnLoad that can target any UnityEngine object. This makes objects persist in-between levels when they’re loaded and unloaded, basically by moving them to a “persistent” scene that is always loaded alongside all other scenes. It’s a go-to method for defining singleton objects like game managers, or for simply keeping around objects and characters that you don’t want to have to re-instantiate and initialize every time you load a scene.

What is the Unreal 4 equivalent to this, if any, and what would be the best practices for using it?

As far as i know you need to use Game Instance to store any kind of information you want to transfer between levels since Game Instance runs until you quit the game.

This I’d heard. I’ve been looking into it today.

I’m also aware of the Persistent Level, but not clear on how it might parallel with this functionality or if it’s even used for the same thing. Seems more relevant to the level streaming system.

You are right, Persistent Level in UE is relevant to level streaming. You get one persistent level, put everything that is supposed to be carried along to other levels in it(i.e. day&night system), and your streaming levels will be contained in that persistent level. So unless your game makes use of level streaming Game Instance is what you are looking for i suppose.

What I’ve read elsewhere concurs with your observation.

Doesn’t seem like that big of a problem, honestly! Unreal’s level loading system handles enough of the paperwork of going from level to level and changing gametypes that I think I can work with this pretty straightforwardly. I’d call that an acceptable answer, if you want to post it as one.