How to set condition if the player is finish?

I need help. I have a BP_FINISH ACTOR putted in a map level named MAP1. and then once the car overlapped the BP_FINISH ACTOR the GARAGE LEVEL will show. and in the GARAGE LEVEL.

I have a button like this:

So if the player click continue. It will continue on the next map named MAP2. Now here’s the condition. If the player is complete on the MAP1 it will proceed on the MAP2. If it’s not, a widget will popup or a sound effect like failed will play.

And so if the player successfully proceed in the MAP2 and once the player finish the race and overlapped again my BP_FINISH ACTOR. It will go to the garage again. And then the condition will check if the player is done in the MAP1, it will proceed on the MAP3. And if its not a widget will popup or a sound effect like failed will play.

The condition of my BP_FINISH ACTOR

I hope someone will assist me for this problem. Thank you in advance.

Hey there @BeastNectus! Is the question more “How to detect the player has completed the race” or “How to set up the UI” because if it’s the first question, depending on how you handle your track, if you have laps you’d have 2 collision checks, one halfway to the lap marker and one on the lap marker. You have to hit the Lap start one then the MidLap one then back to to the Lap Start to count the laps. Just increment them up until the correct lap count then call your win menu up and set the bool.

If it’s the second question I’d have to see your end race logic, but it looks like you’ve got it for the most part.

Sorry for the bad UML but I hope you get what I mean.

What I want sir is like this:

I can work up a small example of this for you tonight. It won’t be fully featured and you’ll still have to extend it but it will point you in the right direction.

Okay sir thank you in advance

Alright so this adds to the example of the game instance system I showed you before. This contains 2 new events, and 1 function and primarily just 1 new variable, the Level Flags map which holds a bool and name of each of your maps so UI and game logic can check if you’ve completed that race before. Then to use the stuff you either call one of the events or the function.

Now the part to add to the game instance.

This is also added to the game instance but as a function since it needs a return value for UI. You can check this function via your UI that you made to check and see if a level has been completed in this instance. (don’t forget to add this level flags var map to your saving and loading for future uses).

Lastly this is what I added to the Placeholder race handler as an example it calls complete level after the correct number of laps. You still need to open your garage level at some point after all of this, but that’s one node.

Don’t forget to populate the Level Flags map defaults with the names of your levels.

All this logic still needs to be hooked up to a lap system, your end race logic, and then you need to have the UI check the flags with that function.