What's the practice for spawning replicated Actors with parameter variables?

I think in your situation, RepNotify is your best choice. I understand that if you don’t want the colour to change later, then you have to write extra code, but in most cases, I don’t see why you wouldn’t want it to be mutable. If you don’t want it to be changed, then don’t tell the server to change it.

Just to make this clear as I had to learn this out myself, the initial replication happens after AActor::BeginPlay has been executed. Any logic in BeginPlay but before AActor::BeginPlay (usually Super::BeginPlay) is the only place where the client can do stuff to the Actor before replication. (Useful for subscribing to events that rely on replicated values).

I do not believe OnConstruction/ConstructionScript is ever called on clients on a replicated actor. It is only called when the actor is ‘created’, and it’s the server (or the Editor) who is responsible for creating it.