I seem to be having a strange issue, the first script doesn't seem to be able to cause changed to InfoValue, even though the print statements state otherwise. Also, it seems that during the countdown, the local script can't read the changes. Also, filtering enabled is off when I tested it.
local Players1 = {} local Sniper = "" local rs = game:GetService('ReplicatedStorage') local IntermissionGUI = rs:WaitForChild('InfoValue').Value local GameInProgress = false local function RandomSniper() local Random = math.random(1,#Players1) Sniper = Players1[Random] print("# Of Player1 Array objects: " .. #Players1) print("Random Number: "..tostring(Random)) print("Sniper chosen: " .. tostring(Sniper)) table.remove(Players1, Random) end local function CountDown() local Sound = Instance.new("Sound",game.Workspace) Sound.SoundId = "http://www.roblox.com/asset/?id=134641113" for i = 10,0,-1 do print("Countdown: " .. tostring(i)) IntermissionGUI = tostring("Intermission: " .. i) if game.ReplicatedStorage.InfoValue ~= nil then print(IntermissionGUI) end Sound:Play() wait(1.5) Sound:Stop() end Sound:Remove() end local function PlayerToNumber() local Players = game.Players:GetPlayers() print("Players being indexed into an array.") for i, v in pairs(Players) do table.insert(Players1,i,v.Name) print(Players1[i]) end return true end local function SniperToPosition() local Sniper1 = game.Players:FindFirstChild(Sniper) Sniper1.TeamColor = BrickColor.new("Really red") print("Sniper's Name during the teleportation: "..Sniper1.Name) if Sniper1.Character.Torso ~= nil then Sniper1.Character.Torso.CFrame = game.Workspace.SpawningPart.CFrame print("Sniper Teleport Successful!") local Gun = game.ServerStorage.Sniper:Clone() Gun.Parent = Sniper1.Backpack end end local function PlayersToPosition() for _, v in pairs(Players1) do game.Players:FindFirstChild(v).TeamColor = BrickColor.new("Really blue") game.Players:FindFirstChild(v).Character.Torso.CFrame = game.Workspace.PlayerSpawningPart.CFrame print("Players being Teleported:" .. v) end end local function TouchRestartTheGame(Player) print("Game Restarting!") local humanoid = Player.Parent:FindFirstChild("Humanoid") if humanoid then if game.Players:GetPlayerFromCharacter(Player.Parent) then print("Character Found!") if game.Players:GetPlayerFromCharacter(Player.Parent).TeamColor == BrickColor.new("Really blue") then print("Player Team Detected!") if humanoid.Health > 0 then if GameInProgress then print("Restart Complete!") for _, v in pairs(game.Players:GetChildren()) do local character = v.Character if character then local torso = character.Torso if torso then torso.CFrame = game.Workspace.SpawnLocation.CFrame v.TeamColor = BrickColor.new("White") end end end GameInProgress = true CountDown() PlayerToNumber() RandomSniper() SniperToPosition() PlayersToPosition() end end end end end end function RestartTheGame() print("Game Restarting!") wait(3) for _, v in pairs(game.Players:GetChildren()) do local character = v.Character local Humanoid = character:WaitForChild("Humanoid") if character ~= nil then local torso = character:FindFirstChild("Torso") if torso then torso.CFrame = game.Workspace.SpawnLocation.CFrame v.TeamColor = BrickColor.new("White") end end end if game.Players.NumPlayers > 1 then GameInProgress = true CountDown() PlayerToNumber() RandomSniper() SniperToPosition() PlayersToPosition() end end game.Players.PlayerRemoving:Connect(function(LeavingPlayer) for i,v in pairs(Players1) do if v == LeavingPlayer.Name then table.remove(Players1, i) if #Players1 < 2 then for _, v in pairs(game.Players:GetChildren()) do local character = v.Character local Humanoid = character:WaitForChild("Humanoid") if character ~= nil then local torso = character:FindFirstChild("Torso") if torso then torso.CFrame = game.Workspace.SpawnLocation.CFrame end end end GameInProgress = false end end end end) game.Workspace.WinBlock.Touched:connect(TouchRestartTheGame) game:GetService("Players").PlayerAdded:connect(function(NewPlayer) NewPlayer.CharacterAdded:connect(function(Character) Character:WaitForChild("Humanoid").Died:connect(function() print("Dead Player: " .. NewPlayer.Name) if GameInProgress == true then if #Players1 > 0 then for i,v in pairs(Players1) do if v == NewPlayer.Name then table.remove(Players1,i) if #Players1 < 1 then GameInProgress = false wait(5) IntermissionGUI = tostring(Sniper .. ", the Sniper, has won the game!!!") RestartTheGame() end end end end else wait(5) IntermissionGUI = tostring(Sniper .. ", the Sniper, has won the game!!!") GameInProgress = false RestartTheGame() end end) end) if game.Players.NumPlayers > 1 and GameInProgress == false then print("Game In Progress: " ..tostring(GameInProgress)) GameInProgress = true print("Game In Progress: " ..tostring(GameInProgress)) CountDown() PlayerToNumber() RandomSniper() SniperToPosition() PlayersToPosition() end end)
local ReplicatedStorage = game:GetService('ReplicatedStorage') local status = ReplicatedStorage:WaitForChild('InfoValue') script.Parent.Text = status.Value status.Changed:connect(function() print("InfoValue Change!") script.Parent.Text = status.Value end)