You can always try parenting the Gui itself to ReplicatedStorage and only cloning it to the PlayerGuis of those that matched the set requirements.
local replicated = game:GetService('ReplicatedStorage')
local guiFile = 'SelectGun'
local players = game:GetService('Players')
local exempt = BrickColor.new('White')
Edit exempt to TeamColor that should be exempt from distribution (above)
players.PlayerAdded:connect(function (player)
local playerGui = player:WaitForChild('PlayerGui')
local clone = replicated:WaitForChild(guiName)
player.Changed:connect(function (property)
if property == 'TeamColor' then
if (not player[property] == exempt) then
if (not playerGui:FindFirstChild(guiFile)) then
clone:Clone().Parent = playerGui
end
end
end
end)
end)
line 2 = finding or waiting for the player's PlayerGui
line 3 = finding or waiting for the pre-defined "gui" we want to clone
line 4 = fires when a property of player is changed
line 5 = if the changed property is TeamColor then go on
line 6 = if the TeamColor's set value does not equal the pre-defined exempt TeamColor value then go on
line 7 = if the gui doesn't already exist in the player's PlayerGui then go on
line 8 = clone the pre-defined guiFile
done!
4 comments
Thanks a lot! I also really appreciate how you walked me through at the end, I'm just beginning to learn Lua so this is a really big help! Thank you so much!
Sorry for being a bit bothersome too!
Wow that actually makes sense! I just put what i thought was correct. Im also a beginner.
Np