Can't move or change actor's visibility if the game is later paused despite tickable when paused

If not mistaken the runtime needs another frame for the game to teleport the character but it can’t because you already paused the game, all what you need to do here is place a Delay before the pause I think even a Delay of 0.01 will be alright.

Hmm, actually weird first I checked it on my end and I can’t replicate what you having my character teleports immediately(I am working in higher version maybe they fixed it here). Don’t know if it will help but try to change the teleport in set actor location. Ps: Place Print string after pause maybe the code isn’t even running, or try to place the same code to a button press see if that changes anything.

I’m creating a simple game in which, when the character dies, I want to show an actor with a widget component attached. So the way I handle loss state is just a simple overlap check with the obstacles and if it occurs, I pause the game, set the widgets text boxes to reflect the score and high score, and allow the player to play again. This all worked fine before I changed the way the widget works - it used to be a child of camera and now it’s its own entity, a component on an actor I called Endgame Billboard. So it is outside of the game view and I want to move it somewhere inside after the loss - here’s the blueprint for that:

Click image for larger version Name: pausedProblem.PNG Views: 0 Size: 93.3 KB ID: 1682841
And the weird thing is, the things after the pause work correctly, while this simple location change - even though it’s done before - doesn’t. I’ve also tried just doing Toggle Visibility instead of SetActorLocation as this would suit me as well but to no avail either. If I disconnect the edge going to pause, thus not pausing the game, the location setter works correctly.

Why is that so? The endgame billboard is allowed to tick during pause, so is the character blueprint, so I see no reason why this wouldn’t work - especially considering that the things that come after the pausing node work correctly…

Tried this now and regretfully it doesn’t help :frowning: I even did a one second delay to see what’s up but it still doesn’t work :confused: What’s weird is that it seems to sometimes work once for some reason, the first run of the game after making the change, and then it does not on any subsequent one.

@DDemon Yep it does, that’s the weird part! For example, later down the thread from Pause, I have a toggle of one visual element in the level (a simple actor with a sprite attached) and it works 100% of the time, regardless of whether I pause before it, after it, do a delay, don’t do a delay (and it doesn’t even have “tick when paused” checked!) - it never fails and always toggles the visibility correctly:

The widget billboard actor though - does not…I’ve tried attaching this actor’s set location to a button but it doesn’t work either if the pause happens :confused: Seems like the problem has something to do with this actor containing the widget? Maybe there’s something else I may have to change in it?

@DDemon OK, I tried reparenting the widget to a different object (used to be a scene component) and went with a cube - the hierarchy looks like this:

291838-pausehierarchy.png

As it turns out, the actor itself is correctly teleported before the pause (even without the delay) cause the cube appears in the right spot! The problem, though, is that the widget does not - which is weird, it being its child. This indicates that the widget is probably problematic… Why do you think that may be?

@DDemon thanks for helping mate, really appreciate it! So setting world location on the widget directly regretfully did not help… The curious thing is, at the end of all the nodes connected to the overlap event, long after the pause, I added two prints, showing the EndgameWidgetBillboard location+rotation and its component Widget world location+rotation and they are both correct, ie. {370, -230, 80} for location and maintaining the correct rotation…

The widget doesn’t have anything in its graph so it’s not that :confused: But I did found one peculiarity! My whole game is taking place inside a cylindrical room and if the billboard with the widget is placed inside this cylinder, it… works. It jumps to the correct spot and shows like it should. As soon as I move it outside (which is what I was trying to do the whole time cause I only want it to jump to the correct spot after the character dies) - the parent cube of the actor appears inside but the widget does not. No idea why this may be… The collision settings were set to UI for the widget but I tried and changed them to NoCollision both for the Cube and the Widget - but still, to no avail. If they’re inside and just have to jump to a new place when the pause occurs - everything’s fine. If they’re outside - no dice.

Do you have some ideas what may the problem be, in that case? :frowning:

Try to detach the billboard from parent maybe that will help or attach it to some other actor or object if the component detached from the source it cand do this kind of problem teleport the component to see if its that, or check if there is something that forces a location on the billboard. But it’s still really weird, why only in pause and why a delay doesn’t work and when there is no pause it’s working. If that doesn’t work you have two more options close and reopen the program(be surprised but it did fix me few issues) the second one is creating a new billboard step by step and see when the problem appears if at all.

I don’t know to say the truth, but try to Set World Location for the widget directly
Ps: I try to do the same thing on my end with widgets see whats going on
Pss: I really can’t replace what you having, show the inside of the widget maybe there something there…

No, not really, set actor location should work no matter where you are. Maybe you using some kinds of volumes… are you be accident sending the widget under the map where is by default a kill volume located?.. No that shouldn’t be it eighter kill volume located at -1000… still uncheck the Enable World Bounds Checks in world settings maybe that will help…

@DDemon nope, I was barely putting it outside the cylinder, no way it was outside any default kill volume :frowning: But I unchecked the Enable World Bounds Checks as per your suggestion - regretfully, didn’t help :frowning: It’s so weird that the actor gets teleported correctly, its cube component does too, all the coordinates seem OK and yet the widget component does not appear…

Sorry mate can’t really help here, again I tried to create a widget and do the same steps you are doing and it always worked fine for me, maybe you should try to create a copy of your project and open it on the newer ue4 version that the only thing I still think that can work.

@DDemon yeah no worries, thanks for all the help anyway! Very peculiar things are happening there cause now I see that after I hacked through the problem by having the widget always inside the cylinder (which makes the teleport now work correctly), now suddenly the values which it shows only update correctly like 50% of the time, on other occasions leaving placeholders there as if the updating function didn’t fire… Really peculiar behaviour, this segment with a pause is somehow cursed, haha! Hopefully I’ll glue together something that works out of it. Thanks a lot again mate!