Update, I finally fixed it!
Here’s what I did:
I created a new BoolValue in ReplicatedStorage called “InRound”. Once the players are loaded in InRound is set to true
Then I created a separate script where I placed the Touched event.
local InRound = game:GetService("ReplicatedStorage").InRound
-- Wait for the flag stands to appear
InRound.Changed:Connect(function()
print("Inround changed")
local BlueFlagStand = workspace:FindFirstChild("BlueFlagStand", true)
print("BlueFlagStand found")
local RedFlagStand = workspace:FindFirstChild("RedFlagStand", true)
print("RedFlagStand found")
RedFlagStand.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then
local char = hit.Parent
print("Touched")
end
end)
end)