I wanted to implement a door that can be picked open via UI widgets and function like a basic open/close door. However, the first iteration of the code was bugged in that it would not completely remove the widget, i.e. my interact key would not open and close the door but rather start the timer widget I implemented again, even after I use a “remove all widgets” node. A friend suggested destroying the pickable door BP and spawning my regular door BP instead.
This advice worked, but now the current version of the blueprint does not cause the newly spawned door to execute, as if it’s bugged and does not acknowledge the switching of triggers. Is there something missing from my code, or is it just that the BP has become massively bloated and over-complicated by my friend’s suggestion?
Attached are screenshots of both my door and my first person character BPs for references
Coding’s not my strong point, so I took this friend’s advice at face value. But at the time, I did think there had to be a more efficient way around this.
Thing is, I had to make a workaround to get the widget function properly in the first place since the “remove parent” node didn’t work as intended.
the overlap has “custom event” at the end of the name, so its not actually an overlap event anymore. try deleting and readding it.
Also why exactly are you using event binding? As far as blueprints go, theres generally no reason to do that unless youre communicating with the level blueprint or a widget.
The way you have this setup right now, if the overlap event in the door fires, it will call the overlap event in the player… which has no logic setup so it wont do anything. Instead, in the door bp, add the overlap event, have that have the logic you need.
if you need it to communicate with the widget, you can have a function setup that the overlap event calls, and then have the widget call that on button press. then call remove all widgets.
first of all, your calling add to viewport twice whenever you overlap which is probably causing problems. second, dont use reroute nodes like that, jsut use get progress widget ref wherever you need it. do this instead, Overlap > Create widget > set progress widget ref > Do Once > Add to viewport > Endoverlap > get progress Widget Ref > Remove from Parent > Reset Do once
Well, this has fixed the issue with the progress UI and I managed to get the door to behave like a normal open/close door with the addition of a branch, but I’m still having to deal with the prompt UI persisting after I leave the collision box. That said, it’s a step in the right direction and I thank you for simplifying things for a bumbling idiot like me. I’ll mark my question as provisionally answered
first of all, your calling add to viewport twice whenever you overlap which is probably causing problems. second, dont use reroute nodes like that, jsut use get progress widget ref wherever you need it. do this instead, Overlap > Create widget > set progress widget ref > Do Once > Add to viewport > Endoverlap > get progress Widget Ref > Remove from Parent > Reset Do once
I also managed to get the normal door functionality working by including a branch before the flip flop that controls the movement of the door and setting up my “player picked door” boolean after the custom update timer node