best way to time simple and frequent actions?

The game starts, the player walks around the environment, no matter where he is or what he is doing, I want to trigger an action two minutes from the start of the game. This action finishes, then I want to wait three minutes and start another action. Then wait minute and start another action. And so on. What is technically the best and cleanest way to run things like this in Level Blueprint? Would “Delay” node be enough? Or “Set Timer by Event”?

In my opinion:

  • An actor that manages the events could be sufficient.
  • The events could be either actors or UObjects (if purely logic-based) that are spawned when the timer runs out.
  • The timer could simply be a float that is decremented on tick.