If I were to send localplayer through a remote event, could the function called by the remote event in a non-local script then compare the localplayer with a given player? Or is the sent localplayer an entirely separate thing that cannot be used?
yes you can send the localplayer through a remote and compare it with another player object. localplayer is just a reference to the clients player object. generally, you can send anything that was created by the server through a remote event. if it was created by the client the server wouldn’t know it exists and it would end up as nil.
Sending LocalPlayer through a RemoteEvent would be absolutely useless in every situation, especially considering the fact that the first parameter when reading the RemoteEvent is always the player (or, if the client is firing it, the server is seeing said client’s LocalPlayer). I’m sure you COULD do it, but I don’t know why you would WANT to do it.
The player is automatically send through remotes as the first argument, so you don’t need to send the local player through it. The player from the remote and the player object in Players would be equal, as its the same thing.