 Hello there! So, a lot of new users are coming to Godot since it's getting closer and closer to 3.0 release. And I have the feel that instead of a whole walk through the interface, it will be better to talk about how Godot works and its systems, starting by the SYNTree. There are 5 things, in my opinion, that you need to know about Godot SYNTree in order to effectively use it. But first, in order to understand some terminologies, I highly recommend you to watch a video where I introduce SYNTree. It will be linked in the description as well as in a card. So, let's start the list. A node is only processed when it is inside the SYNTree. Ok, this might sound obvious, but sometimes I forget to actually insert a node in the SYNTree and I start trying to fix a bug which doesn't exist. Godot SYNTree only processes nodes which are meant to be processed. We can tell a node is being processed if it is a child of the root node, so if it is a trunk or a singleton and any child of this two. This means that instantiating a node is not enough to start processing it. You need to make it a relative of the root node, that is, inside the hierarchy of your nodes. So, make sure to use add child after instantiating a node or a packaging. Godot even provides to us two signals to handle the event of a node getting inside or outside the SYNTree. Also, since the node isn't processed until it is inside the SYNTree, the ready callback only happens when the node enters it. In other hand, the init callback happens right when the node is instantiated. And beware that a node outside the SYNTree doesn't mean it is deleted. You can kick it from the SYNTree by using node removed child, passing it as argument and bringing it back by adding it as a child of another node being processed. If you want to completely re-remove a node, use queue free instead. In Godot, things happen deterministically. The order of the nodes in the SYNTree matters as it will process them in the same order that they are set. The hierarchy of the SYNTree is how it shall execute each node, in such a way that if you try to make two nodes delete themselves, the first in the hierarchy will be deleted than the second one. So, remember this, the order matters. Children are processed before parent, then the next node is processed following the SYNTree order. Your exception is the tree entered notification, which happens from parent to children. And it isn't an exception at all because a child isn't instantiated before his parent. So after understanding how stuff are processed in Godot, let's talk about how we can pause this process. In Godot, everything you need to do to completely pause a game is to call SYNTree.setPause using true as argument. This will make every node stop being processed by the foe. The way you can change this behavior is by changing the node process mode property. But if foe is set to inherit, which means it will inherit its parent value for this property. This is useful for a pause menu for instance. You can change the control node to be processed, so you can resume the game and make every other node inherit its parent value. So the whole game, but the pause menu, will be paused. Ok, probably your game will have a screen loop and you will use SYNTs to loop through your game. Or at least you will reset your current SYNT if, let's say, your player fails the current challenge. Godot uses a really easy solution for this. The SYNTree has some methods such as changeSyn, changeSyn2, setCurrentSyn and reloadCurrentSyn, in which you can use to branch your game's flow. Beware that these methods affect only the trunk node. I'm telling you this because if you're using singletons, you're safe to say that their data won't be affected by these methods. But since singletons aren't affected by these methods, if you're using a singleton to carry data through SYNTs, make sure to have a way to reset the values if you need to. Last but not least, the SYNTree handles the groups of your game. This is, if there is a group of nodes you want to access, you can use the SYNTree to do so. But not only you can access a list of nodes inside the saved group by calling SYNTree.getNodesInGroup, but you can also do many operations regarding to these saved nodes. For instance, if you want to let's say change the color of our sprite nodes inside the given group, you can use SYNTree.GroupCall passing all the needed arguments for do so. This is useful for updating a bunch of nodes at once, or handling a given behavior like freezing them all at once with a single line of code. Well, that's it. These are my five tips regarding to Godot's SYNTree system. If there is anything you like to add or fix or any doubts regarding to this topic, comment below. Also, there is a link for a project with some of the code used in this video. Check it out. And that's it. That's all for now, guys. Keep developing and until the next time.