local admins = {2428180234, 2428233997, game.CreatorId} --UserId of the admins
local reason = game:GetService("ReplicatedStorage"):WaitForChild("SoftShutdown")
script.Parent.MouseButton1Click:Connect(function(Caller)
local caller = Caller.UserId
if table.find(admins, caller) then
if reason.SoftShutdownReason.Value=="" then
script.Parent.Text="Enter Reason"
elseif reason.SoftShutdownReason.Value~="" then
reason:FireServer()
end
end
end)
Is script.Parent a UI object?
If so, you should get the player from game.Players.LocalPlayer instead.
You are clearly meant to be in a local script, so do it the suggested way instead.
Replace that with:
local caller = game.Players.LocalPlayer.UserId
Also, you should handle the authorization on the server. Otherwise, exploiters can shutdown the server. Do not trust the client.