Any Advice for somone wishing to make a multiplayer game with blueprints?

I have watched the official tutorials that have been released by epic however i have not found them useful enough.
Me and a friend are wishing to work on a multiplayer game but are struggling to get simple things such as muzzle flash, timeline animations (involving the character) to work on both server and client.I know it would be hard for any advice on these matters without looking at our blueprints thoroughly but any advice on the matter would be greatly appreciated.I am using to my best knowledge Replicated functions variables and actors appropriately, same thing goes for switch on authenticate.

Sorry if this isn’t a great explanation but i hope someone can throw some guidance my way,

Thanks.

I think this was already covered in the blueprint networking tutorials, but visual details such as particle effects are not replicated. You should fire a reliable multicast event from your server when it is appropriate - for example, when a bullet is shot, on the server, fire a custom event called Play Muzzle Flash which has multicast replication with reliable ticked. Whatever you put inside the event will be executed for every client (and the server too), so spawn your particle effect here. It’s important to remember not run any gameplay related logic on the client (such as damage or actors spawning in the world, unless those actors are for visuals only of course).

I really appreciate the reply, i tried what you said and now its giving me the same problem i had before where as i can see the servers muzzle flash from the client, but the server cannot see the clients muzzle flash.
What should i do?

Sorry for the late reply, what do you mean by the client’s muzzle flash? The server shouldn’t play a client’s muzzle flash, the client should tell the server that it’s shooting a bullet, the server should handle all the logic for that (check ammo, trace shot, deal damage, etc) and multicast the muzzle flash event to all clients. Is this what you’re doing?

If you are doing this, check that the server is actually acknowledging when a client fires because it might not be receiving the input from the client.