Random Killer Generator (HELP)

Hi, I am reposting this topic because the original didn’t get enough attention. I was trying to remake a game I stopped working on and I stumbled against a bug.

The bug was the killer was always the same everytime unless someone left.

I tried fixing this a long time ago, and I just came back to this. I got some help and I made this:

for i, plr in pairs(Players:GetChildren()) do
			local char = plr.Character
			local humanRoot = char:WaitForChild("HumanoidRootPart")

			local RedSpawns = mapClone.RedSpawns:GetChildren()
			local BlueSpawns = mapClone.BlueSpawns:GetChildren()

			-- picks a random spawn from each team
			local randomRedSpawn = RedSpawns[math.random(1,#RedSpawns)]
			local randomBlueSpawn = BlueSpawns[math.random(1,#BlueSpawns)]
			-- will put the current player into a team with the less amount of players
				local PlayerList = {}

				local PreviousKiller : Player? = nil

				local function PickKiller()
					for _, player : Player in game:GetService("Players"):GetPlayers() do
						if player ~= PreviousKiller then
							table.insert(PlayerList, player)
						end
					end
					local RandomIndex = math.random(1, #PlayerList)
					local SelectedKiller = PlayerList[RandomIndex]
					PreviousKiller = SelectedKiller
					table.clear(PlayerList)

					return SelectedKiller
				end

				local killer = PickKiller()
				if plr ~= killer then
					plr.Team = Blue
					humanRoot.CFrame = randomBlueSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))
				plr.CameraMode = Enum.CameraMode.Classic
					plr.CameraMaxZoomDistance = 9

					table.insert(BlueTeamCount, plr.Name)
				elseif plr == killer then
					plr.Team = Red
				plr.CameraMode = Enum.CameraMode.LockFirstPerson
					plr.CameraMaxZoomDistance = 9

					humanRoot.CFrame = randomBlueSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))

				table.insert(RedTeamCount, plr.Name)
			end
			wait(0.2)
			if #RedTeamCount == 1 then

				plr.Team = Blue
				-- this is so we can make the spawn location for each player more randomized
				humanRoot.CFrame = randomBlueSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))
				plr.CameraMode = "Classic"
				plr.CameraMaxZoomDistance = 9
				table.insert(BlueTeamCount, plr.Name)
				wait(0.1)
			elseif #RedTeamCount == 0 then

				plr.Team = Red
				plr.CameraMode = Enum.CameraMode.LockFirstPerson
				plr.CameraMaxZoomDistance = 0.5
				humanRoot.CFrame = randomRedSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))

				table.insert(RedTeamCount, plr.Name)
			end

But this problem solver was buggy, sometimes there where two killers, and there was a pattern where everyone would be runner or killer.

This was the original, it was working but the killer is the same

		local BlueTeamCount = {}
		local RedTeamCount = {}

		for i, plr in pairs(Players:GetChildren()) do
			local char = plr.Character
			local humanRoot = char:WaitForChild("HumanoidRootPart")

			local RedSpawns = mapClone.RedSpawns:GetChildren()
			local BlueSpawns = mapClone.BlueSpawns:GetChildren()

			-- picks a random spawn from each team
			local randomRedSpawn = RedSpawns[math.random(1,#RedSpawns)]
			local randomBlueSpawn = BlueSpawns[math.random(1,#BlueSpawns)]
			-- will put the current player into a team with the less amount of players
			if #RedTeamCount == 1 then

				plr.Team = Blue
				-- this is so we can make the spawn location for each player more randomized
				humanRoot.CFrame = randomBlueSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))
				plr.CameraMode = "Classic"
				plr.CameraMaxZoomDistance = 9
				table.insert(BlueTeamCount, plr.Name)
				wait(0.1)
			elseif #RedTeamCount == 0 then

				plr.Team = Red
				plr.CameraMode = Enum.CameraMode.LockFirstPerson
				plr.CameraMaxZoomDistance = 0.5
				humanRoot.CFrame = randomRedSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))

				table.insert(RedTeamCount, plr.Name)
			else
				
				local randTeam = math.random(1,2)
				if randTeam == 1 then
					plr.Team = Blue
					humanRoot.CFrame = randomBlueSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))
				plr.CameraMode = Enum.CameraMode.Classic
					plr.CameraMaxZoomDistance = 9

					table.insert(BlueTeamCount, plr.Name)
				elseif randTeam == 2 then
					plr.Team = Red
				plr.CameraMode = Enum.CameraMode.LockFirstPerson
					plr.CameraMaxZoomDistance = 9

					humanRoot.CFrame = randomBlueSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))

					table.insert(RedTeamCount, plr.Name)
				end
			end
			wait(0.2)
			char:WaitForChild("Humanoid").Died:Connect(function()

				plr.Team = Neutrual
				plr.CameraMode = Enum.CameraMode.Classic
				plr.CameraMaxZoomDistance = 9
			end)
		end	
	end	
end)

something like this may work its not complete and you need to fix alot or setup the variables in the player setup function
you had the top for loop wrong and need to run the killer function and setup players function separate

--for i, plr in pairs(Players:GetChildren()) do  -- you don't need to run this in a loop of the players   it would repeat over and over trying to setup players

local PlayerList = {}
local PreviousKiller
local Killer

function PickKiller()
	for _, player in ipairs(game.Players:GetChildren()) do   -- using Ipairs here is faster
		if player ~= PreviousKiller then
			table.insert(PlayerList, player)
		end
	end
	local SelectedKiller = PlayerList[math.random(1, #PlayerList)]
	PreviousKiller = SelectedKiller
	PlayerList = {}
	return SelectedKiller
end




function SetupPlayers()  -- probably want to setup the players with a function after the killer is selected
	local RedSpawns = mapClone.RedSpawns:GetChildren()
	local BlueSpawns = mapClone.BlueSpawns:GetChildren()
	for i, plr in ipairs(game.Players:GetChildren()) do  -- setup the loop down here

		local char = plr.Character
		local humanRoot = char:WaitForChild("HumanoidRootPart")

		-- picks a random spawn from each team
		local randomRedSpawn = RedSpawns[math.random(1,#RedSpawns)]
		local randomBlueSpawn = BlueSpawns[math.random(1,#BlueSpawns)]
		-- will put the current player into a team with the less amount of players

		if plr ~= Killer then
			plr.Team = Blue
			humanRoot.CFrame = randomBlueSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))
			plr.CameraMode = Enum.CameraMode.Classic
			plr.CameraMaxZoomDistance = 9

			table.insert(BlueTeamCount, plr.Name)
		elseif plr == Killer then
			plr.Team = Red
			plr.CameraMode = Enum.CameraMode.LockFirstPerson
			plr.CameraMaxZoomDistance = 9

			humanRoot.CFrame = randomBlueSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))

			table.insert(RedTeamCount, plr.Name)
		end
		wait(0.2)
		if #RedTeamCount == 1 then

			plr.Team = Blue
			-- this is so we can make the spawn location for each player more randomized
			humanRoot.CFrame = randomBlueSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))
			plr.CameraMode = "Classic"
			plr.CameraMaxZoomDistance = 9
			table.insert(BlueTeamCount, plr.Name)
			wait(0.1)
		elseif #RedTeamCount == 0 then

			plr.Team = Red
			plr.CameraMode = Enum.CameraMode.LockFirstPerson
			plr.CameraMaxZoomDistance = 0.5
			humanRoot.CFrame = randomRedSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))

			table.insert(RedTeamCount, plr.Name)
		end
	end
end




-- these calls need to be done in the round loop/script
local killer = PickKiller()  -- gets the killer in main script  to call this again need to connect to something like while loop or with module etc

if killer then
	SetupPlayers() -- setup players 
end


3 Likes

Ok, I think I understand

New:

ReplicatedStorage.GameValues.InRound.Changed:Connect(function()
	if ReplicatedStorage.GameValues.InRound.Value == false then
		mapClone:Destroy()
		for i, map in pairs(Maps) do
			map.CanBeVoted.Value = false
		end
		for i, choice in pairs(Choices) do
			local name = choice.label.SurfaceGui.TextLabel
			local picture = choice.Image.SurfaceGui.ImageLabel
			isAnOption = PickRandomMap()
			if isAnOption.Value == true then
				repeat 
					isAnOption = PickRandomMap()
				until
				isAnOption.Value == false
				name.Text = randomMap.Name
				picture.Image = randomMap.Image.Value
				randomMap.CanBeVoted.Value = true
			else
				name.Text = randomMap.Name
				picture.Image = randomMap.Image.Value
				randomMap.CanBeVoted.Value = true		
			end					
		end	
	else
		local Choice1Votes = #votingSystem.Choice1.button.Votes:GetChildren()
		local Choice2Votes = #votingSystem.Choice2.button.Votes:GetChildren()
		local Choice3Votes = #votingSystem.Choice3.button.Votes:GetChildren()
		if Choice1Votes >= Choice2Votes and Choice1Votes >= Choice3Votes then
			chosenMap = votingSystem.Choice1.label.SurfaceGui.TextLabel.Text
		elseif Choice2Votes >= Choice1Votes and Choice2Votes >= Choice3Votes then
			chosenMap = votingSystem.Choice2.label.SurfaceGui.TextLabel.Text
		else
			chosenMap = votingSystem.Choice3.label.SurfaceGui.TextLabel.Text
		end
		Status.Value = "Map: ".. chosenMap
		for i, map in pairs(Maps) do
			if chosenMap == map.Name then
				mapClone = map:Clone()
				mapClone.Parent = game.Workspace
				if workspace:FindFirstChild("Music") then
					workspace:FindFirstChild("Music").SoundId = "rbxassetid://9045117303";
				end
			end
		end	
		wait(3)
		for i, choice in pairs(Choices) do
			choice.label.SurfaceGui.TextLabel.Text = " "
			choice.Image.SurfaceGui.ImageLabel.Image = " "
			choice.button.Votes:ClearAllChildren()
			ReplicatedStorage.GameEvents.VoteReset:FireAllClients(choice.button)
		end
		local BlueTeamCount = {}
		local RedTeamCount = {}
		local PlayerList = {}
		local PreviousKiller
		local Killer
		function PickKiller()
			for _, player in ipairs(game.Players:GetChildren()) do   -- using Ipairs here is faster
				if player ~= PreviousKiller then
					table.insert(PlayerList, player)
				end
			end
			local SelectedKiller = PlayerList[math.random(1, #PlayerList)]
			PreviousKiller = SelectedKiller
			PlayerList = {}
			return SelectedKiller
		end
		function SetupPlayers()  -- probably want to setup the players with a function after the killer is selected
			local RedSpawns = mapClone.RedSpawns:GetChildren()
			local BlueSpawns = mapClone.BlueSpawns:GetChildren()
			for i, plr in ipairs(game.Players:GetChildren()) do  -- setup the loop down here
				local char = plr.Character
				local humanRoot = char:WaitForChild("HumanoidRootPart")
				-- picks a random spawn from each team
				local randomRedSpawn = RedSpawns[math.random(1,#RedSpawns)]
				local randomBlueSpawn = BlueSpawns[math.random(1,#BlueSpawns)]
				-- will put the current player into a team with the less amount of players
				if plr ~= Killer then
					plr.Team = Blue
					humanRoot.CFrame = randomBlueSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))
					plr.CameraMode = Enum.CameraMode.Classic
					plr.CameraMaxZoomDistance = 9
					table.insert(BlueTeamCount, plr.Name)
				elseif plr == Killer then
					plr.Team = Red
					plr.CameraMode = Enum.CameraMode.LockFirstPerson
					plr.CameraMaxZoomDistance = 9
					humanRoot.CFrame = randomBlueSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))
					table.insert(RedTeamCount, plr.Name)
				end
				if #RedTeamCount == 1 then
					plr.Team = Blue
					-- this is so we can make the spawn location for each player more randomized
					humanRoot.CFrame = randomBlueSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))
					plr.CameraMode = "Classic"
					plr.CameraMaxZoomDistance = 9
					table.insert(BlueTeamCount, plr.Name)
				elseif #RedTeamCount == 0 then
					plr.Team = Red
					plr.CameraMode = Enum.CameraMode.LockFirstPerson
					plr.CameraMaxZoomDistance = 0.5
					humanRoot.CFrame = randomRedSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))
					table.insert(RedTeamCount, plr.Name)
				end
			end
		end
		local killer = PickKiller()  -- gets the killer in main script  to call this again need to connect to something like while loop or with module etc
		if killer then
			SetupPlayers() -- setup players 
		end
	end	
end)

game.Players.PlayerAdded:Connect(function(plr)
	plr.CharacterAdded:Connect(function(char)
		char:WaitForChild("Humanoid").Died:Connect(function()
			plr.Team = Neutrual
			plr.CameraMode = Enum.CameraMode.Classic
			plr.CameraMaxZoomDistance = 9
		end)
	end)
end)

Old:


ReplicatedStorage.GameValues.InRound.Changed:Connect(function()

	if ReplicatedStorage.GameValues.InRound.Value == false then

		mapClone:Destroy()

		for i, map in pairs(Maps) do
			map.CanBeVoted.Value = false
		end

		for i, choice in pairs(Choices) do

			local name = choice.label.SurfaceGui.TextLabel
			local picture = choice.Image.SurfaceGui.ImageLabel

			isAnOption = PickRandomMap()

			if isAnOption.Value == true then
				repeat 
					isAnOption = PickRandomMap()
				until
				isAnOption.Value == false
				name.Text = randomMap.Name
				picture.Image = randomMap.Image.Value
				randomMap.CanBeVoted.Value = true

			else
				name.Text = randomMap.Name
				picture.Image = randomMap.Image.Value
				randomMap.CanBeVoted.Value = true		
			end					
		end	


	else

		local Choice1Votes = #votingSystem.Choice1.button.Votes:GetChildren()
		local Choice2Votes = #votingSystem.Choice2.button.Votes:GetChildren()
		local Choice3Votes = #votingSystem.Choice3.button.Votes:GetChildren()

		if Choice1Votes >= Choice2Votes and Choice1Votes >= Choice3Votes then

			chosenMap = votingSystem.Choice1.label.SurfaceGui.TextLabel.Text

		elseif Choice2Votes >= Choice1Votes and Choice2Votes >= Choice3Votes then

			chosenMap = votingSystem.Choice2.label.SurfaceGui.TextLabel.Text

		else

			chosenMap = votingSystem.Choice3.label.SurfaceGui.TextLabel.Text

		end

		Status.Value = "Map: ".. chosenMap
		for i, map in pairs(Maps) do
			if chosenMap == map.Name then
				mapClone = map:Clone()
				mapClone.Parent = game.Workspace
				if workspace:FindFirstChild("Music") then
					workspace:FindFirstChild("Music").SoundId = "rbxassetid://9045117303";
				end
			end
		end	
		wait(3)

		for i, choice in pairs(Choices) do
			choice.label.SurfaceGui.TextLabel.Text = " "
			choice.Image.SurfaceGui.ImageLabel.Image = " "
			choice.button.Votes:ClearAllChildren()
			ReplicatedStorage.GameEvents.VoteReset:FireAllClients(choice.button)
		end

		local BlueTeamCount = {}
		local RedTeamCount = {}
		local PlayerList = {}

		local PreviousKiller : Player? = nil

		local function PickKiller()
			for _, player : Player in game:GetService("Players"):GetPlayers() do
				if player ~= PreviousKiller then
					table.insert(PlayerList, player)
				end
			end
			local RandomIndex = math.random(1, #PlayerList)
			local SelectedKiller = PlayerList[RandomIndex]
			PreviousKiller = SelectedKiller
			table.clear(PlayerList)

			return SelectedKiller
		end

		local Killer = PickKiller()

		for _, Player in pairs(Players:GetChildren()) do
			local char = Player:WaitForChild("Character")
			local root = char:WaitForChild("HumanoidRootPart")
			local RedSpawns = mapClone.RedSpawns:GetChildren()
			local BlueSpawns = mapClone.BlueSpawns:GetChildren()
			local RandomBlueSpawn = BlueSpawns[math.random(1,#BlueSpawns)]   
			local RandomRedSpawn = RedSpawns[math.random(1,#RedSpawns)]
			-- Check if the player is a killer
			if Player == Killer then
				Player.Team = Red
				root.CFrame = RandomRedSpawn.CFrame + Vector3.new(math.random(1,3), math.random(1,3), math.random(1,3))
				Player.CameraMode = Enum.CameraMode.LockFirstPerson                  
				Player.CameraMaxZoomDistance = 9
				table.insert(RedTeamCount, Player.Name)
			elseif Player ~= Killer then
				Player.Team = Blue
				Player.CameraMode = Enum.CameraMode.Classic
				Player.CameraMaxZoomDistance = 9
				root.CFrame = RandomBlueSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))
				table.insert(PlayerList, Player.Name)
				table.insert(BlueTeamCount, Player.Name)
			end
			for Index, Player in pairs(Players:GetChildren()) do
				local Character = Player.Character
				local RootPart = Character:WaitForChild("HumanoidRootPart")
				local NameGUI = Character.Head:FindFirstChild("NameGUI")
				-- Spawns
				local RedSpawns = mapClone.RedSpawns:GetChildren()
				local BlueSpawns = mapClone.BlueSpawns:GetChildren()

				local RandomRedSpawn = RedSpawns[math.random(1,#RedSpawns)]
				local RandomBlueSpawn = BlueSpawns[math.random(1,#BlueSpawns)]  
				Character:WaitForChild("Humanoid").Died:Connect(function()
					Player.Team = Neutrual
					Player.CameraMode = "Classic"
					Player.CameraMaxZoomDistance = 9
				end)
			end
		end
	end
end)

Update: I tested it and one person was runner and the other was killer. but it kept repeating because the killer was originally runner but it changed them back to killer.

This is how it looked like:

Player 1: Always killer
{Your Team: Runner}
{Your Team: Killer}
{Your Team: Lobby}
Player 2: Always Runner
{Your Team: Runner}
{Your Team: Lobby}
It kept repeating like this.

This was familiar to the old one.

your pick killer and setupplayer functions need to be above your changed connection and called within it

1 Like

Thanks for the solution, I stumbled against another bug where it didn’t put the players in team, but it was a easy fix. The fix was I removed setupplayers function and put it inside the changed connection.

If anyone else stumbles against this problem, the issue was you need to have the functions outside the changed connection


local PlayerList = {}
local PreviousKiller
local Killer

function PickKiller()
	for _, player in ipairs(game.Players:GetChildren()) do   -- using Ipairs here is faster
		if player ~= PreviousKiller then
			table.insert(PlayerList, player)
		end
	end
	local SelectedKiller = PlayerList[math.random(1, #PlayerList)]
	PreviousKiller = SelectedKiller
	PlayerList = {}
	return SelectedKiller
end

for i, choice in pairs(Choices) do
	local name = choice.label.SurfaceGui.TextLabel
	local picture = choice.Image.SurfaceGui.ImageLabel
	isAnOption = PickRandomMap()
	if isAnOption.Value == true then
		repeat 
			isAnOption = PickRandomMap()
		until
		isAnOption.Value == false
		name.Text = randomMap.Name
		picture.Image = randomMap.Image.Value
		randomMap.CanBeVoted.Value = true
	else
		name.Text = randomMap.Name
		picture.Image = randomMap.Image.Value
		randomMap.CanBeVoted.Value = true		
	end					
end	

ReplicatedStorage.GameValues.InRound.Changed:Connect(function()
	if ReplicatedStorage.GameValues.InRound.Value == false then
		mapClone:Destroy()
		for i, map in pairs(Maps) do
			map.CanBeVoted.Value = false
		end
		for i, choice in pairs(Choices) do
			local name = choice.label.SurfaceGui.TextLabel
			local picture = choice.Image.SurfaceGui.ImageLabel
			isAnOption = PickRandomMap()
			if isAnOption.Value == true then
				repeat 
					isAnOption = PickRandomMap()
				until
				isAnOption.Value == false
				name.Text = randomMap.Name
				picture.Image = randomMap.Image.Value
				randomMap.CanBeVoted.Value = true
			else
				name.Text = randomMap.Name
				picture.Image = randomMap.Image.Value
				randomMap.CanBeVoted.Value = true		
			end					
		end	
	else
		local Choice1Votes = #votingSystem.Choice1.button.Votes:GetChildren()
		local Choice2Votes = #votingSystem.Choice2.button.Votes:GetChildren()
		local Choice3Votes = #votingSystem.Choice3.button.Votes:GetChildren()
		if Choice1Votes >= Choice2Votes and Choice1Votes >= Choice3Votes then
			chosenMap = votingSystem.Choice1.label.SurfaceGui.TextLabel.Text
		elseif Choice2Votes >= Choice1Votes and Choice2Votes >= Choice3Votes then
			chosenMap = votingSystem.Choice2.label.SurfaceGui.TextLabel.Text
		else
			chosenMap = votingSystem.Choice3.label.SurfaceGui.TextLabel.Text
		end
		Status.Value = "Map: ".. chosenMap
		for i, map in pairs(Maps) do
			if chosenMap == map.Name then
				mapClone = map:Clone()
				mapClone.Parent = game.Workspace
				if workspace:FindFirstChild("Music") then
					workspace:FindFirstChild("Music").SoundId = "rbxassetid://9045117303";
				end
			end
		end	
		wait(3)
		for i, choice in pairs(Choices) do
			choice.label.SurfaceGui.TextLabel.Text = " "
			choice.Image.SurfaceGui.ImageLabel.Image = " "
			choice.button.Votes:ClearAllChildren()
			ReplicatedStorage.GameEvents.VoteReset:FireAllClients(choice.button)
		end
		local BlueTeamCount = {}
		local RedTeamCount = {}
		local killer = PickKiller()  -- gets the killer in main script  to call this again need to connect to something like while loop or with module etc
		if killer then
			local RedSpawns = mapClone.RedSpawns:GetChildren()
			local BlueSpawns = mapClone.BlueSpawns:GetChildren()
			for i, plr in ipairs(game.Players:GetChildren()) do  -- setup the loop down here
				local char = plr.Character
				local humanRoot = char:WaitForChild("HumanoidRootPart")
				-- picks a random spawn from each team
				local randomRedSpawn = RedSpawns[math.random(1,#RedSpawns)]
				local randomBlueSpawn = BlueSpawns[math.random(1,#BlueSpawns)]
				-- will put the current player into a team with the less amount of players
				if plr ~= killer then
					plr.Team = Blue
					humanRoot.CFrame = randomBlueSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))
					plr.CameraMode = Enum.CameraMode.Classic
					plr.CameraMaxZoomDistance = 9
					table.insert(BlueTeamCount, plr.Name)
				elseif plr == killer then
					plr.Team = Red
					plr.CameraMode = Enum.CameraMode.LockFirstPerson
					plr.CameraMaxZoomDistance = 9
					humanRoot.CFrame = randomBlueSpawn.CFrame + Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3))
					table.insert(RedTeamCount, plr.Name)
				end
			end
		end
	end	
end)

game.Players.PlayerAdded:Connect(function(plr)
	plr.CharacterAdded:Connect(function(char)
		char:WaitForChild("Humanoid").Died:Connect(function()
			plr.Team = Neutrual
			plr.CameraMode = Enum.CameraMode.Classic
			plr.CameraMaxZoomDistance = 9
		end)
	end)
end)
1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.