Multiplayer assigning and changing dynamic material parameters

Before GetGameMode and casting to yours (and after creating your dynamic material instance) do a SwitchHasAuthority with authority pin so you’re on server. As I said before BeginPlay fires on both server and client, and GameMode is server-only, thus at the current state you’ll get a null GameMode client-side and thus a failing cast. I strongly suggest checking this.