How do I optimise an if then statement for something arranged?

Hi, I made a turn based game that goes through teams that are arranged. How can I optimise my script? I thought about it that it may have to do with tables, arrays and so on, but I’m unable to plan such a way.

Team.Changed:Connect(function()
	
	local Teams = game:GetService("Teams")

	local DEU = Teams:FindFirstChild("Germany")
	local RUS = Teams:FindFirstChild("Soviet Union")
	local SWE = Teams:FindFirstChild("Sweden")
	local FRA = Teams:FindFirstChild("France")
	local SPA = Teams:FindFirstChild("Spain")
	local TUR = Teams:FindFirstChild("Turkey")
	local ITA = Teams:FindFirstChild("Italy")


	local DEUplayer = DEU:GetPlayers()
	local RUSplayer = RUS:GetPlayers()
	local SWEplayer = SWE:GetPlayers()
	local FRAplayer = FRA:GetPlayers()
	local SPAplayer = SPA:GetPlayers()
	local TURplayer = TUR:GetPlayers()
	local ITAplayer = ITA:GetPlayers()

	if Team.Value == "Germany" and #DEUplayer == 0 then
		wait(1)
		print("No player in Germany")
		Team.Value = "Soviet Union"
		
	end

	if Team.Value == "Soviet Union" and #RUSplayer == 0 then
		wait(1)
		print("No player in Soviet Union")
		Team.Value = "Sweden"
		
	end

	if Team.Value == "Sweden" and #SWEplayer == 0 then
		wait(1)
		print("No player in Sweden")
		Team.Value = "France"		
	end
	
	if Team.Value == "France" and #FRAplayer == 0 then
		wait(1)
		print("No player in France")
		Team.Value = "Spain"		
	end
	
	if Team.Value == "Spain" and #SPAplayer == 0 then
		wait(1)
		print("No player in Spain")
		Team.Value = "Turkey"		
	end
	
	if Team.Value == "Turkey" and #TURplayer == 0 then
		wait(1)
		print("No player in Turkey")
		Team.Value = "Italy"		
	end
	
	if Team.Value == "Italy" and #ITAplayer == 0 then
		wait(1)
		print("No player in Italy")
		Team.Value = "Germany"		
	end
end)
Team.Changed:Connect(function()
	local Teams = game:GetService("Teams")
	local Places = {
		["Germany"] = "Soviet Union",
		["Soviet Union"] = "Sweden",
		["Sweden"] = "France",
		["France"] = "Soviet Union",
		["Spain"] = "Spain",
		["Turkey"] = "Italy",
		["Italy"] = "Germany"
	}
	for i, v in pairs(Places) do
		if Team.Value == i and #Teams:FindFirstChild(i):GetPlayers() == 0 then
			wait(1)
			print("No player in "..i)
			Team.Value = v
		end
	end
end)

you can change the names of the variables to however you want
but this should work

3 Likes