I've been thinking of a way to protect my remotes and I'm not sure if this will do? I made it so it requires a password which changes every second for it to actually fire.
Password Change
while true do
wait()
math.randomseed(tick()%1*1e6)
local pass = ""
for i = 1,32, 1 do
pass = pass .. string.char(math.random(97,122))
end
script.Pass.Value = pass
end
Part of the local script for firing remote
game.ReplicatedStorage.Events.Convert:FireServer
(game.ServerScriptService.RemoteProtection.Pass.Value)
end
Part of the script for getting the change
game.ReplicatedStorage.Events.Convert.OnServerEvent:connect
(function(Player,Pass)
print(Pass)
if Pass == script.Parent.Parent.RemoteProtection.Pass.Value then
print("yes this was sent from server")

1 comment
I just have set up listeners that have a parameter what it wants to do. You could do that.