single player or multiplayer?
its kinda just a quest system really, id have the GameState or GameMode track time and call time based events.
and id create a UObject base for task/quests each UObject can bind to world events (interact with actor x) and time events.
then create a UObject subclass for each quest and add them as a list to your player