Recalling from Chapter 2, Behavior Trees and Blackboards, a Decorator is a conditional node (which can also be seen as a gate) that controls the execution flow of the sub-branch that it is attached to (if the execution would enter in the sub-branch in the first place).
In a similar fashion on how we extended/created a Task, we can extend/create a Decorator. Once again, we will first dive into how to do it in Blueprint, and then move on to how to extend it in C++.