adding on top of the message above, instead of checking each tick waiting for something to happen look into event dispatchers and binding and unbiding to these events.
For example, when a certain action was done an event dispatcher is called. Then you can have inside the “tutorial” blueprint an custom event that is binded to this event dispatcher and then do some action.
If you have multiple types of blueprints that needs to call an event dispatcher you can have an common interface added to them. If you have only only one blueprint then you don’t need it.
You also just have one event dispatcher that pass a variable so you don’t need to create a different one for each action taken.