UMG Menu - Level Progess


so I’ve created 15 levels, and I want the player to be able to load a level (say level 5) in the level selection menu, only if he’s finished the level. So locked if he hasn’t finished it yet, open if he’s finished it (to get better scores etc).

Now I have a save system in place, where by pressing “continue” you continue where you left off. So my guess would be that it is connected to a blueprint that recognises your savegame. But how would I go about doing this?

Kind regards

Hey Penhoat,

There are specific nodes for what you are actually looking for.

There is one that Does Save Game Exist which will allow you to determine if there is a save game that even exists. If it does exist, then you can use Load Game from Slot and cast it to get any relevant information from your save (like which is the last level that was unlocked, etc.)

Hope this helps!

Could you give me some insight.

This is what I came up with, but it doesn’t work at all:

Without context of how the game save object is setup, I’m just assuming various things within the Blueprint.

First, your slot name should match the one that exists. Since you are checking for if the slot exists by its name, you would want to load the one that exists.

So all in all, nothing much changed, but it should look like this for it to work:

So I’ve tested this out.

It’s a script working fine for “continue”, as in loading the last save. It doesn’t however load that specific level

If you want it to check and load that specific level, you should check if the string matches the level name.

You can do something as simple as this:

If true, then continue from that level, if false, then do nothing, because it wasn’t the level found.

Oke so I’ve tried it out, didn’t work, so I adjusted it a bit and it did seem to work:

Weird thing is. For example, there shouldn’t be a save checkpoint for my level 9 yet. But if I add level 9, it loads up level 9. Even though I’m doing this from the save system…

Right now, the equation for Current Level Branch is literally getting Level2 == Level2 which is probably not what you want.

You probably want to get Current Level from BP Save Player Progress, feed it into the bottom of the == node and the top just being “Level2”

Your issue is probably the Save Game object, it isn’t saving the Current Level string. Right now, you’re just telling it to set the variable when you get the Save Game Object and reference from there which is probably not the intended function.

How are you saving the Current Level string?