Are tool replication faster than remote event?

Hey there!

I’m currently working on a new game, and while i was coding some visual and sound effects in client side for a character action, the time came to replicate these effects to other clients so everyone can hear and see it.

I don’t need to do server side checks or anyting else for it, i only want to replicate effects from client to all other clients.


So my main question is:
Which one is faster / better, using a RemoteEvent or a (Ghost) Tool ?
Tool client activation are replicating to the server faster than RemoteEvent?


Remote Event

Local Script

--Character do something
Module:PlayEffect() --Play effects on my own side
RemoteEvent:FireServer(LocalPlayer) --Replicate effects on other players side

RemoteEvent.OnClientEvent:Connect(function(Player)
    if not Player == LocalPlayer then
        Module:PlayEffect(Player.Character) --Play other players effects on my own side
    end
end)

Server Script

RemoteEvent.OnServerEvent:Connect(function(OriginalPlayer)
    RemoteEvent:FireAllClients(OriginalPlayer)
end)

Tool

Local Script

--Character do something
Module:PlayEffect() --Play effects on my own side
MyCharacterTool:Activate() --Replicate effects on other players side

PlayerService.PlayerAdded:Connect(function(Player)
    Player.CharacterAdded:Connect(function(Character)
        local CharacterTool = Character:WaitForChild("ActionNameTool")

        CharacterTool.Activated:Connect(function()
            Module:PlayEffect(Character)
        end)
    end)
end)

Both options probably work around the same way, I would personally go for the RemoteEvent-based approach though. It will only need one connection for all players.

The thing is, the game as all other games, will use some other RemoteEvent like for Gui and other things.

So having an additional RemoteEvent only to replicate client effects seem to be useless in my point of view, and increase the chances of exceeding the max RemoteEvent request limits per minute.

Additionaly to this, i don’t need to do anything on server side, so it is annoying to create a script or add this line of code in already existing script only for it.


That’s why i’m asking this question, because doing it using tools would be better as i can handle the whole system only by using one local script, and i need it to be replicated on other clients as fast as possible.

RemoteEvent, when receiving a request, have to check arguments at first then do another request to all clients, while equiped tools is a built-in Roblox system, and are directly connected to the server and then directly replicate to the server when activated on client, and there is no arguments or data the server have to check.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.