I have a script for remapping keyboard inputs, that sets get_tree().paused = true to pause all other game activity while the player redefines the keys.
The process mode of the scene is set to "Always", so that it runs even when the tree is paused.

Everything works fine, including menu navigation which relies on reading Inputs directly, so all is working as intended even in paused mode, except for the _input(event) function, on which the remapping of keys relies.

Is there a way to force func _input(event) to work when the process mode is set to Always?

    cybereality Thanks for your help. I'm getting the same behaviour as with _input(event).
    I'll probably pause the process of the underlying scene manually to bypass the problem somehow.

    zapposh Is there a way to force func _input(event) to work when the process mode is set to Always?

    The description of the SceneTree.paused property implies that _input() will work when the Scene Tree is paused but process mode is set to Always:
    https://docs.godotengine.org/en/latest/classes/class_scenetree.html#class-scenetree-property-paused

    except for the _input(event) function, on which the remapping of keys relies.

    Can you explain that in more detail? Is it possible that you're doing the remapping with a Control whose process mode is not Always?

      DaveTheCoder You have just solved the issue, thanks a lot!

      My node and script were both set to process "Always", leading me to think they would also process when paused, since they do not inherit process behaviour.

      Setting the tree root node also to "Always" now leads to the correct behaviour.

      Ok, so in RC6 this is broken again and the workaround does not work anymore.

      Setting the tree root node also to "Always" now leads to the correct behaviour.

      I didn't understand that solution, but didn't comment because you said it worked.

      Are there any other Control nodes in the tree that might be "paused"?

        DaveTheCoder I'm honestly also surprised it worked in RC4. :-)

        I'm obviously doing something wrong.
        I've attached a screenshot of my project structure.

        The root node, as well as the "game_settings" and "input_remap" nodes have Process set to "Always".
        The ViewportContainer, which contains the actual game under the "scene_manager", has Process set to "Pausable".
        Every other node/scene in the tree is set to "Inherit".

        The concept here is that when I open the game_settings or input_remap at any time during gameplay, the game is paused, using:
        get_tree().paused = true

        This works fine. The gameplay pauses, and I can still navigate the menus and buttons in the two aforementioned panels, and if I close them, the gameplay resumes as expected.

        What does not work within all this, is the
        _input(event)
        function, which seems to get paused too. And as my remapping code relies on these events, it does not work.