Camera doesn’t respond after closing the widget in my branching dialogue system

Hi! I’m creating a branching dialogue system between the player and NPCs.

When the player interacts with an NPC, a DataTable is read and a widget is shown line-by-line.
When it reaches the last row, the dialogue ends.
Recently, I updated the system so that if the dialogue includes a branch, the last row now triggers a choice widget instead of ending.

:bullseye: What’s happening:

  • In my Blueprint, when a branch is detected (Branch == True), execution goes upward to show the choice widget.
  • The NPC loads to Player Character and displays the branch choice widget.
  • I use Set Input Mode UI Only and Show Mouse Cursor so the player can only interact with the UI and not the rest of the game during the choice.


:brain: Inside the widget:

  • If the player selects “Up”, it sends a BPI event to the NPC: BPI_BranchUp.
  • If the player selects “Down”, it sends BPI_BranchDown.

Before sending the event, I do the following cleanup in the widget:

  • Set Show Mouse CursorFalse
  • Set Input Mode Game Only → to return control to the game
  • Remove from Parent → to destroy the widget
  • I also use a flag variable called IsShowMessage to track if the message window is visible.
  • CurrentPage resets the DataTable to page 1 to restart the dialogue.


:compass: What happens after:

  • The NPC receives the branch info via BPI and loads a new DataTable based on the choice.
  • From there, dialogue continues as usual from a new path.

:warning: The Problem:

Even though I:

  • Remove the widget with Remove from Parent
  • Use Set Input Mode Game Only
  • Hide the cursor

→ The camera doesn’t respond to mouse movement after the dialogue ends.

:green_circle: WASD works fine (movement is OK).
:red_circle: Mouse look does NOT work.

I suspect maybe a UI is still being rendered in the background, but I can’t find any remaining widget or mistake in the logic.


:red_question_mark: Question:

Is there anything wrong with this setup that could cause the camera to stop reacting to mouse movement, even after removing the widget and resetting input mode?

Hello,
Below might indeed be the case.

To verify try running Remove All widgets Node after Input change. You could also try Set Focus to Game Viewport. There is also a node Has Mouse Capture that returns boolean. You could do a dirty check by running Get All Widgets of Class and see if you indeed have one eating the input.

Edit: try running Get All Widget of Class → User Widget. Should return an array, check it’s length. That’s how many widgets you have.

Maybe this will help you narrow down the issue.

1 Like

Thank you.
I tried using Get All Widgets of Class with UserWidget, and the result showed a length of 1.
At first, I wasn’t sure what it was, but it turned out to be the crosshair widget that is always on screen.
So I’ve started to think that the issue might not be with the UI, but rather with the character’s movement or control settings.

The image below shows the Blueprint where, when a conversation starts, it disables movement and camera input.
Then, once the conversation ends, the bottom nodes are executed to re-enable movement and camera control.

It turns out that the way to re-enable Set Ignore Look Input is simply to uncheck the same Set Ignore Look Input node!
I also realized that you can just use Reset Ignore Look Input to achieve the same result.
Thank you so much, everyone, for all your help!

1 Like