Enemy Radius/Chase AI

Hello there, i wanted to design an AI in C++ using Unreal that would chase the player if the player enters a certain radius around the AI. The AI itself will patrol over a set few points and repeat the patrol route, all versions of the AI must follow the same route to the nearest trigger point and continue in sequence after breaking from the player.

That’s the easy part this is the difficult party,

I want the player and every dynamic object, enemy, moveable, switch, gate to reverse to previous states 6 seconds ago. and then the game will resume, the player and the enemies will revert to the previous location they were 6 seconds ago.

What i’m thinking is an Array to load in all the dynamic objects at the beginning of each level and every 6 seconds update it to their current boolean status and another to store their x,y,z location on the map. Then when the enemy attacks or touches/collides with the player everything that was stored in the array from 6 seconds ago is loaded and all the dynamic objects default to the 6 second location while static objects remain unchanged. Also switches and gates that were closed and then opened during that time will shut off or close.

How would i go about doing this through classes?