To my knowledge, exploiters cannot fire remote events disguising themselves as another player. The first argument sent will always be the local player, if they were to type in another player then it would show up as the second argument rather than the first.
I am using remote function my bad. I’ll edit that. Though you did give me an idea with this reply. What if I simply changed it to events? I forgot that it is automatically set for events to be the player.
Oh, yeah, my bad, didn’t notice that was the change. But yes, if you change it to remote events, it should work perfectly fine without being at any risk of having the players disguise themselves as other players when firing.
The only possible way of this happening is if you are overriding the default player argument of the RemoveFunction.OnServerInvoke callback. By default, both RemoteEvents and RemoteFunctions have a player argument passed. A normal syntax would look something like this
Essentially, you don’t have do (and shouldn’t) pass the game.Players.LocalPlayer object as an argument because the Roblox backend already does that for you!
Edit: I was reading the responses above. Using RemoteEvents or RemoteFunctions will not change the outcome. Both automatically pass the player as a default argument.
Oh alright, I will try this first before I switch all my remote functions to events. This will save me lots of time by making me not have to change as much as I would have had to. Thanks!
Hey, just tested this today, and am just going to let you know, it will only work with events. It seems remote functions don’t send the player. It just returns nil on the server if you don’t send the player from the client(as an actual variable). Buts its all fine, I’ll just change it to events.
Well guess I did something wrong when I try removing sending the player from the clients. I’ll look into. I already changed it into remote events so its solved.