Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How can I make this code neater and fix finding Player's GUI?

Asked by 5 years ago
Edited 5 years ago
local flag1 = game.Workspace.Flags.Flag1
local flag2 = game.Workspace.Flags.Flag2
local flag3 = game.Workspace.Flags.Flag3
local flag4 = game.Workspace.Flags.Flag4

flag1.CurrentOwner.Changed:connect(function()

    if flag1.CurrentOwner.Value == BrickColor.new("Bright blue") then
        game.StarterGui.SpawnGui.Frame.Flag1.BackgroundColor3 = Color3.new(85/255, 170/255, 255/255)
        for i, players in pairs(game.Players:GetPlayers()) do
            players.PlayerGui.SpawnGui.Frame.Flag1.BackgroundColor3 = Color3.new(85/255, 170/255, 255/255)
        end

    elseif flag1.CurrentOwner.Value == BrickColor.new("Bright red") then
        game.StarterGui.SpawnGui.Frame.Flag1.BackgroundColor3 = Color3.new(255/255, 80/255, 80/255)
        for i, players in pairs(game.Players:GetPlayers()) do
            players.PlayerGui.SpawnGui.Frame.Flag1.BackgroundColor3 = Color3.new(255/255, 80/255, 80/255)
        end

    elseif flag1.CurrentOwner.Value == BrickColor.new("Fossil") then 
        game.StarterGui.SpawnGui.Frame.Flag1.BackgroundColor3 = Color3.new(207/255, 207/255, 207/255)
        for i, players in pairs(game.Players:GetPlayers()) do
            players.PlayerGui.SpawnGui.Frame.Flag1.BackgroundColor3 = Color3.new(207/255, 207/255, 207/255)
        end
    end

end)


flag2.CurrentOwner.Changed:connect(function()

    if flag2.CurrentOwner.Value == BrickColor.new("Bright blue") then
        game.StarterGui.SpawnGui.Frame.Flag2.BackgroundColor3 = Color3.new(85/255, 170/255, 255/255)
        for i, players in pairs(game.Players:GetPlayers()) do
            players.PlayerGui.SpawnGui.Frame.Flag2.BackgroundColor3 = Color3.new(85/255, 170/255, 255/255)
        end

    elseif flag2.CurrentOwner.Value == BrickColor.new("Bright red") then
        game.StarterGui.SpawnGui.Frame.Flag2.BackgroundColor3 = Color3.new(255/255, 80/255, 80/255)
        for i, players in pairs(game.Players:GetPlayers()) do
            players.PlayerGui.SpawnGui.Frame.Flag2.BackgroundColor3 = Color3.new(255/255, 80/255, 80/255)
        end

    elseif flag2.CurrentOwner.Value == BrickColor.new("Fossil") then 
        game.StarterGui.SpawnGui.Frame.Flag2.BackgroundColor3 = Color3.new(207/255, 207/255, 207/255)
        for i, players in pairs(game.Players:GetPlayers()) do
            players.PlayerGui.SpawnGui.Frame.Flag2.BackgroundColor3 = Color3.new(207/255, 207/255, 207/255)
        end
    end

end)


flag3.CurrentOwner.Changed:connect(function()

    if flag3.CurrentOwner.Value == BrickColor.new("Bright blue") then
        game.StarterGui.SpawnGui.Frame.Flag3.BackgroundColor3 = Color3.new(85/255, 170/255, 255/255)
        for i, players in pairs(game.Players:GetPlayers()) do
            players.PlayerGui.SpawnGui.Frame.Flag3.BackgroundColor3 = Color3.new(85/255, 170/255, 255/255)
        end

    elseif flag3.CurrentOwner.Value == BrickColor.new("Bright red") then
        game.StarterGui.SpawnGui.Frame.Flag3.BackgroundColor3 = Color3.new(255/255, 80/255, 80/255)
        for i, players in pairs(game.Players:GetPlayers()) do
            players.PlayerGui.SpawnGui.Frame.Flag3.BackgroundColor3 = Color3.new(255/255, 80/255, 80/255)
        end

    elseif flag3.CurrentOwner.Value == BrickColor.new("Fossil") then 
        game.StarterGui.SpawnGui.Frame.Flag3.BackgroundColor3 = Color3.new(207/255, 207/255, 207/255)
        for i, players in pairs(game.Players:GetPlayers()) do
            players.PlayerGui.SpawnGui.Frame.Flag3.BackgroundColor3 = Color3.new(207/255, 207/255, 207/255)
        end
    end

end)


flag4.CurrentOwner.Changed:connect(function()

    if flag4.CurrentOwner.Value == BrickColor.new("Bright blue") then
        game.StarterGui.SpawnGui.Frame.Flag4.BackgroundColor3 = Color3.new(85/255, 170/255, 255/255)
        for i, players in pairs(game.Players:GetPlayers()) do
            players.PlayerGui.SpawnGui.Frame.Flag4.BackgroundColor3 = Color3.new(85/255, 170/255, 255/255)
        end

    elseif flag4.CurrentOwner.Value == BrickColor.new("Bright red") then
        game.StarterGui.SpawnGui.Frame.Flag4.BackgroundColor3 = Color3.new(255/255, 80/255, 80/255)
        for i, players in pairs(game.Players:GetPlayers()) do
            players.PlayerGui.SpawnGui.Frame.Flag4.BackgroundColor3 = Color3.new(255/255, 80/255, 80/255)
        end

    elseif flag4.CurrentOwner.Value == BrickColor.new("Fossil") then 
        game.StarterGui.SpawnGui.Frame.Flag4.BackgroundColor3 = Color3.new(207/255, 207/255, 207/255)
        for i, players in pairs(game.Players:GetPlayers()) do
            players.PlayerGui.SpawnGui.Frame.Flag4.BackgroundColor3 = Color3.new(207/255, 207/255, 207/255)
        end
    end

end)

Error: SpawnGui is not a valid member of PlayerGui

It's inside ServerScriptService

2
This is an issue I've been having trouble with lately as well, the server cannot see the contents of PlayerGui. Only the client can, therefore you will need to use a localscript to change the GUI. CryptoBloodXaos 13 — 5y
0
Ah, I see, that might be a larger problem to me than expected, I'm bad at remote :/ excellentAnarchy 50 — 5y

Answer this question