Cannot get Camera Controls to work for a controller inside a scene under SubViewport node

Godot Version

v4.6.3.stable.arch_linux.35e80b3a8

Question

Hi, i am using the following setup to have two camera outputs, the ExplorationCanvas is the background, while Arena canvas has transparent background and is layered on top (whenever there is a need for an Arena to appear, it gets instantiated and created temporarily).

Currently I’m having issues with my character controller inside the scene under the ExplorationCanvas Subviewport node. In that scene I’ve tried adding mouse controls, so I could rotate the view inside that scene, however it just does not work. I am unable to neither use left mouse button, nor to rotate the view with mouse controls that I’ve already used in previous projects.
Example left click code that does not work at all

func _input(event: InputEvent) -> void:
	if event.is_action_pressed("Left_Click"):
		Input.mouse_mode = Input.MOUSE_MODE_CAPTURED

I’ve tried searching for solutions and found some posts mentioning that the SubViewport eats up mouse inputs, however none of the fixes work.
I’ve tried the following:

  1. Changing Handle Input Locally to both true and false for the SubViewport node (I’ve also tried attaching a script that changes it manually):

    image

  2. Changing Physics Object Picking to true for the SubViewport node:
    image

  3. Setting Mouse Filter to ignore for the SubViewportContainer node:
    image

You probably set Mouse Filter → Ignore on the wrong SubViewportContainer

Your ArenaCanvas (CanvasLayer) is added after ExplorationCanvas in the scene tree, so its SubViewportContainer sits “on top” in input ordering. With its default Mouse Filter = Stop, it consumes every click before your ExplorationCanvas controller can see it

Fix:

  • ArenaCanvas/SubViewportContainer → Mouse Filter = Ignore
  • ExplorationCanvas/SubViewportContainer → Mouse Filter = Stop

This helped, thank you very much!