if not Settings.AutoAssignTeams then local P=Instance.new("\084\101\097\109",Teams)P.TeamColor=BC.new("\087\104\105\116\101")P.Name="\070\111\114 \072\105\114\101"end for P,T in pairs((script.Parent:WaitForChild("\084\121\099\111\111\110\115")):GetChildren())do Tycoons[T.Name]=T:Clone()if returnColorTaken(T.TeamColor)then local P repeat wait()P=BC.Random()until returnColorTaken(P)==false T.TeamColor.Value=P end local N=Instance.new("\084\101\097\109",Teams)N.Name=T.Name N.TeamColor=T.TeamColor.Value if not Settings.AutoAssignTeams then N.AutoAssignable=false end T.PurchaseHandler.Disabled=false end function getPlrTycoon(P)for T,N in pairs(script.Parent.Tycoons:GetChildren())do if N:IsA("\077\111\100\101\108")then if N.Owner.Value==P then return N end end end return nil end game.Players.PlayerAdded:connect(function(P)local T=Instance.new("\078\117\109\098\101\114\086\097\108\117\101",game.ServerStorage.PlayerMoney)T.Name=P.Name local N=Instance.new("\079\098\106\101\099\116\086\097\108\117\101",T)N.Name="\079\119\110\115\084\121\099\111\111\110"end)game.Players.PlayerRemoving:connect(function(P)local T=game.ServerStorage.PlayerMoney:FindFirstChild(P.Name)if T~=nil then T:Destroy()end local N=getPlrTycoon(P)if N then local P=Tycoons[N.Name]:Clone()N:Destroy()wait()P.Parent=script.Parent.Tycoons end end)
--run this first so if there is a 'white' team it is switched over
if not Settings["AutoAssignTeams"] then
	local teamHire = Instance.new("Team", Teams)
	teamHire.TeamColor = BC.new("White")
	teamHire.Name = "For Hire"
end

for i, v in pairs(script.Parent:WaitForChild("Tycoons"):GetChildren()) do
	Tycoons[v.Name] = v:Clone() -- Store the tycoons then make teams depending on the tycoon names
	if returnColorTaken(v.TeamColor) then
		--//Handle duplicate team colors
		local newColor
		repeat
			wait()
			newColor = BC.Random()
		until returnColorTaken(newColor) == false
		v.TeamColor.Value = newColor
	end
	--Now that there are for sure no duplicates, make your teams
	local NewTeam = Instance.new("Team", Teams)
	NewTeam.Name = v.Name
	NewTeam.TeamColor = v.TeamColor.Value
	if not Settings["AutoAssignTeams"] then
		NewTeam.AutoAssignable = false
	end
	v.PurchaseHandler.Disabled = false
end

function getPlrTycoon(player)
	for i, v in pairs(script.Parent.Tycoons:GetChildren()) do
		if v:IsA("Model") then
			if v.Owner.Value == player then
				return v
			end
		end
	end
	return nil
end

game.Players.PlayerAdded:connect(function(player)
	local plrStats = Instance.new("NumberValue", game.ServerStorage.PlayerMoney)
	plrStats.Name = player.Name
	local isOwner = Instance.new("ObjectValue", plrStats)
	isOwner.Name = "OwnsTycoon"
end)

game.Players.PlayerRemoving:connect(function(player)
	local plrStats = game.ServerStorage.PlayerMoney:FindFirstChild(player.Name)
	if plrStats ~= nil then
		plrStats:Destroy()
	end
	local tycoon = getPlrTycoon(player)
	if tycoon then
		local backup = Tycoons[tycoon.Name]:Clone()
		tycoon:Destroy()
		wait()
		backup.Parent = script.Parent.Tycoons
	end
end)
