In most games it is desirable to, at some point, interrupt the
game to do something else, such as taking a break or changing options.
However this is not as simple as it seems. The game might be stopped,
but it might be desirable that some menus and animations continue
working.

Implementing a fine-grained control for what can be paused (and what can
not) is a lot of work, so a simple framework for pausing is provided in
Godot.

Before enabling pause, make sure that nodes that must keep working
during pause are white-listed. This is done by editing the “Pause Mode”
property in a node:

By default all nodes have this property in the “Inherit” state. This
means, that they will only process (or not) depending on what this same
property is set on the parent node. If the parent is set to “Inherit” ,
then the grandparent will be checked and so on. Ultimately, if a state
can’t be found in any of the grandparents, the pause state in SceneTree
is used. This means that, by default, when the game is paused every node
will be paused.

So the three possible states for a node are:

Inherit: Process depending on the state of the parent,
grandparent, etc. The first parent that has a non-Inherit state.

Stop: Stop the node no matter what (and children in Inherit
mode). When paused this node will not process.

Process: Process the node no matter what (and children in Inherit
mode). Paused or not this node will process.