Recently I have been trying to make a billboard gui appear on all the players in the game but yourself to make it so the players can simply click on the player they want to mute. Because the billboard gui has buttons on, it needs to be in the PlayerGui, therefore I need to adornee a different billboard gui to all the players UpperTorso’s.
I have tried many different approaches to this, such as remote events, and looping through all the players in a local script to asign the billboard gui to the different players. However whenever I test it there are always a few players without anything asigned to them.
The closest I have got to this working was with a remote event. When testing with 8 players in studio, 2/8 players had no issues but the other 6 clients had 1 player without a billboard gui asigned to them, instead the gui that was supposed to be on the player was located in the middle of the baseplate. Here is an example image: https://doy2mn9upadnk.cloudfront.net/uploads/default/optimized/4X/9/a/3/9a3f289f1441c43d6a06354171ee7a2a378fb819_2_626x500.jpeg
this is the code I used: (Server Script)
local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local individualMute = ReplicatedStorage:WaitForChild("individualMute") local function onPlayerAdded(player) individualMute:FireAllClients(player) end Players.PlayerAdded:Connect(onPlayerAdded)
(Local Script)
local Players = game:GetService("Players") local player = Players.LocalPlayer local playerGui = player.PlayerGui local ReplicatedStorage = game:GetService("ReplicatedStorage") local individualMute = ReplicatedStorage:WaitForChild("individualMute") local muteGui = ReplicatedStorage:WaitForChild("muteGui") local muteGuiFolder = playerGui:WaitForChild("individualMute") local function onInduvidualMute() for i, otherPlayers in pairs(Players:GetChildren()) do if otherPlayers ~= player then local muteGuiClone = muteGui:Clone() muteGuiClone.Name = otherPlayers.Name muteGuiClone.Frame.Visible = true muteGuiClone.Parent = muteGuiFolder local character = otherPlayers.Character if not character or not character.Parent then character = player.CharacterAdded:wait() end muteGuiClone.Adornee = character.UpperTorso end end end individualMute.OnClientEvent:Connect(onInduvidualMute)