How does DemoNetDriver and replication works from the inside?

It’s a general question, probably applied to replication as well.
I’d like to understand how does it track, store and reproduce recorded property changes and events?

I’m trying to implement a mechanic that records player actions as precise as possible to then be able to replay them from any given moment.

Sofar I came to a solution that records all inputs from player + axis value changes + transforms + timestamps. But if I need to record a property change that doesn’t directly influenced by player actions, I’m not sure what to do, except for checking if it has changed in tick function and logging it each time it does. I’m not sure if this is the right approach, though.