that amount of FireClient() is unnecessary, you would only need to fire it once, then have the client do the rest.
ReplicatedStorage.Remotes.Events.Effects:FireClient(oplay, "do the thing")
if event == "do the thing" then
--Character.LeftHand ~~~ RocketBlasterRemove
--Character.HumanoidRootPart ~~~ Explosion
Correct me if I’m wrong but FireAllClients shouldn’t start to cause ping issues, unless you’re firing it over and over in the duration of under a second.
In your code you seem to have three ‘FireAllClients’ lined up. Is it possible you can merge them all into one? This would help with performance.
In the code that receives the RemoteEvent being fired, you could make a custom function. Like instead of having 3 of the FireClients at the top, turn it all into one just for that specifically. You can keep the other remotes but merging those into one would help a lot.
you’re firing the same event like 5 separate times, all in one setting in your script. Which makes it no different if you just use FireClient() once, and have the client do the checking and whatever then perform the whatever its going to do.