Running GetWorld()->Tick() multiple times per frame to facilitate rollbacks for netplay

I don’t see why you couldn’t just hook in an existing GGPO library then provide event updates to the regular UE networking model, or manage your own replication and game state for things that matter.

Given the context is “fighting game” all the networking parts not to do with actual combat could revert to the normal UE networking methods.

Usually if the word “rewrite” or “build your own” comes up it’s not the right solution except in a few edge cases, but the context is simple enough that you’re basically replicating a handful of events then resolving logical collisions in your own way. I’d immediately revert back to UE networking for everything else like matchmaking and game state events, background animation replication, etc.

Jamsh’s post above sounds like the best idea though. Using the existing system to do it will mean you’ll gain the most benefit from the wheels that have already been invented.