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.
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 OnlyandShow Mouse Cursorso the player can only interact with the UI and not the rest of the game during the choice.
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 Cursor→ FalseSet Input Mode Game Only→ to return control to the gameRemove from Parent→ to destroy the widget- I also use a flag variable called
IsShowMessageto track if the message window is visible. CurrentPageresets the DataTable to page 1 to restart the dialogue.
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.
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.
WASD works fine (movement is OK).
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.
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?






