local players = game.Players:getPlayers() -- Table is empty on server start. Players joining / removing doesn't add/remove the player to the table.
for _,player in pairs(players) do
player.Character.Chosen.Disabled = false
end -- Won't do anything, because there aren't any players on the server at the start.
-- Also the script isn't located in the player's character if they are fully loaded in.
BindableEvent.Event:Connect(function() -- Do not use RemoteEvent, it's for server-client communication.
for _, Player in pairs(game.Players:GetChildren()) do
Player.PlayerScripts.Chosen.Disabled = false
-- Or if in character: Player.Character:FindFirstChild("Chosen").Disabled = false
end
end)
Step 1: Make a remote event named ChosenEvent and put it in replicated storage.
Step 2: Place a local script into where you need it for the client. Put this code into the local script:
local remote = game:GetService("ReplicatedStorage"):WaitForChild("ChosenEvent")
remote.OnClientEvent:Connect(function()
-- do what ever you need to do on the client
end)
Step 3: Place a normal script into serverscriptservice. Put this code inside:
local remote = game:GetService("ReplicatedStorage"):WaitForChild("ChosenEvent")
remote:FireClient(player) -- Run this code to do the cgosen thing on the client