U have to either fire the event from the server to all clients⌠or use two remote events (aka remote function) to send a signal from the client, to the server, and back to all of the clients.
When firing a signal to all clients, do
Remotes.GiveTool:FireAllClients()
/\ That would go into a ServerScript. The signal would be intercepted by a LocalScript in StarterPlayerScripts.
If you want to be the only one to get a tool
You have to set an argument for the LocalPlayer when the event is fired from the client.
Letâs say, if you click a GUI button, the LocalScript inside of the button will fire a remote event to the server.
In the ServerScript, u would use the argument âplayerâ inside of âOnServerEventâ. Example:
Remote.GiveTool.OnServerEvent(player)
Use âplayerâ to put the tool into the backpack:
You should try to fire the name of the tool, and retrieve it inside the Server Side, because cloning a tool on a client doesnât show for the server. (Filter Enabled) Just realized lol.
This is very very very vulnerable to exploits. Exploiters can just pass whatever Instance to the server.
To make this safe, you can just pass a string instead then find the tool in Server Storage. Why server storage? Because some tools uses local script and if exploiter cloned it in their inventory, it will run the local script.
@FlashFlame_Roblox Yes, you can. But I donât think even a scripter would do that.