Unreal Engine is so buggy

You can outright replace bone rotations

You can use anim notifies to add triggers for specific animation frames

External tut regarding anim notify

As for scoped variables in macros they exist. They are the local variables inside of the macro

(right click in a macro and type local to get all of the variants)

You can also access the current time dilation and use it to offset values if you need them to update a variable at “normal speed”, you also have access to world deltatime as well as time passed since the game started (both can be used to execute logic)

As for macro libraries not holding global variables, you could easily inherit your own subsystem to hold these values and split them off from the game instance to not pollute the class with unneeded data.

If you need persistence for that then either save data in a savegame or go the route of writing out the information to flat json file that can be written and read as needed.

As for your crash, you blurred out the information that caused it. Most people who are getting to know unreal usually have problems with null pointer exceptions trying to access variables that have either been destroyed or that were garbage collected (if a property is not marked as a UPROPERTY it will be collected)