I’m guessing from what I read you want an object to spawn in the game like a waterbottle, and if the waterbottle is picked up/used/destroyed spawn another water bottle 5 seconds later? If that’s what you meant I would recommend making a generic actor that’s dedicated to spawning objects.
What you might want is to make a spawner whose object it creates has a reference to the actor it spawned from/was created from. This way if the waterbottle actor is destroyed/pickedup, or for example an enemy is destroyed, the spawner recieves input from the object it spawned telling the spawner to create a new one.
Here’s a simple example of a Spawner, and an object spawned from the spawner that tells it to create a new actor when its pickedup function is called. The MaxAliveActors integer variable can be higher than 1 by default, to spawn in more actors if wanted for something like multiple NPCs per spawn point.
Using a counter method, you could expand on this to make it so that the spawner would eventually become exhauted and destroy itself by having another counter that just adds 1 for each actor spawned, and when reach its Max, destroy itself.