Executing spawning on the server is exactly correct, but you’ll have to use RepNotify for cosmetic changes as they aren’t replicated themselves.
Unfortunately, I don’t have access to our project right now. Basically, what you have to do is instead of setting the material/color directly on the server, change a variable that’s flagged as RepNotify (e.g. bSetColor or IsActivated or whatever). Then in reaction to the auto-created (client side) OnRep_ event , execute the color change.
In general, I found this video series extremely helpful: