You can add a check in the server script if the player that fires the remote event is the player that owns the sign
Here is the example:
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Chat = game:GetService("Chat")
local Event = ReplicatedStorage:WaitForChild("ChangeTextSign")
Event.OnServerEvent:Connect(function(player, text)
-- Returns end if the player that fires the event is not the one that owns the gear
if(script.Parent.Parent.Parent.Parent.Name ~= player.Name) then return end
local TextSign = script.Parent
local Filter = Chat:FilterStringForBroadcast(text, player)
TextSign.Text = Filter
end)
I hope this helps