Character Movement for spectator

I need character movement for a spectator class in order to get replication (spectators in the game are visible but don’t interact with anything).

However, the GameMode hardcodes spectators to be based off of the ASpectatorPawn class. All kinds of logic like the stuff around bStartPlayersAsSpectators, PlayerState::bOnlySpectator, etc. relies on spectators being subclasses of ASpectatorPawn.

Is there any way to get character movement on a spectator without completely breaking the game framework and reimplementing tons of functionality?

Did you take a look at the Strategy Game example? Strategy Game | Unreal Engine Documentation Granted you have to re-implement a ton of functionality, but at least it’s mostly there.