Hi so I am wondering if anyone has any insight on this setup. I have the logic to create a widget hooked to " event begin play " so when game starts the widget will be on screen (which it does do). Then on widget button , the " on clicked " logic for load game , I have the load logic , which also works but it will not close the widget when I click the " load " button. I think it keeps firing the widget again. Part of the load logic has open level node in it. If that node is removed the game does not load correctly , but the widget will then close when I click the " load " button. This is what the code looks like on the play bp,
The line coming up is from event begin play , then the load logic on the widget button is like this.
in text:
set game mode - to game.
show mouse cursor to false
remove all widgets
and you should be able to just remove all widgets since in normal setups the widgets that are needed will be re-created by the load process.
Thanks for reply , well one thing is the rest of the project uses a certain game mode, also there are other widgets that will get removed from screen that need to be on there. , But I did test it with remove all widgets , but it still don’t go away. Its like at the end of the load logic , it loops back to event begin play and recreates it. Something to do with the " open level" node in the load logic, because if I take that out of the chain , then it breaks the load , but it does then remove the widget correctly when I click the load button. I think the " open level" node causes it to loop back to event begin play. just like opening the level the first time. I’m gonna try to use remove all widgets again and see what happens.
So i just tried it like this with the remove all widgets , and it still will not remove the widget. Frustrating
If i click continue on the widget the game will play on and the correct game will be loaded , but I am hoping for the widget to remove automatically when I click the load button instead of having to click " continue" again. I put print string on event begin play saying " hello" , then on load logic after the " open level" node saying “hello again” , Then at the end of the load logic saying " 3rd time" after all the remove from parent or remove all widgets, and I get back >>>>> " Hello " — " 3rd time " ------- " Hello again " . So even though the " Hello again " is just after the " open level " node , before the remove widget stuff , I still get it after the end of the logic , " 3rd time".
I’m basically just trying to have the widget show the first time the level starts , (event begin play) . Then have the widget automatically close and go into the game when I click the " load " button on the widget.
You are unloading everything before the code can complete - open level immediately kills everything and loads the new level.
Simply move the delay+open level nodes at the end of the whole line.
Since I’m at it. The rest of your logic seems off.
Click Load > Does Save Game Exist? > true > Load Game From Slot > Cast to (on the slot result) > Remove all widgets > Set Inpuit mode > show Cursor > Remove pause > Load Level - possibly pass parameters needed to instance the data from the save.
Ok thanks, let me look at what you are saying and try it out. So on the bottom you are saying that would be the whole chain of logic for loading?
Ok so I moved the delay and open level node to the end , It changed things but still off. I click load and the widget clears and game comes up , but character is just kind of frozen there for about 30 seconds , then the widget comes back up on screen. Also when i click the load button the game comes up almost immediately , where before it took a short bit to load the game. And its like when the game screen comes up , i have a short bit of mouse axis movement before it freezes. But it is some progress . So glad to see that widget clear.
Its really late here , work early in morning , but any help is appreciated. thanx
Well, if the widget goes away and comes back it can only mean one thing.
you are somehow re-creating it when the new level loads in.
Regardin the difference in time, well if you moved the delay node that makes sense no? The delay is now after the level loading (as it should probably be. Why delay loading which can already be slow on its own?).
Anyway, the question becomes:
what are you loading and when?
Normally you have a main menu level, in which you spawn the start menu.
this then will usually load a new level with a load or new game level.
Within the level though, you won’t have a menu come up at all
unless the user calls it up with escape/select.
The process by which you implement the menu opening is important to avoid things like the menu coming back up.
yea I tried making a widget on a blank level , then on the start button , I have open level , then create widget and add to viewport , so it load the character to the game level but does not bring up the pause menu widget.