players are teleporting to map and everything is going well till the winner is declared once the winner id declared game ic not restarting an not even giving rewards here goes my local script....

local Status = game:GetService("ReplicatedStorage"):WaitForChild("Status")

script.Parent.Text = Status.Value

Status:GetPropertyChangedSignal("Value"):Connect(function()

script.Parent.Text = Status.Value

end)

here is the Stats script....

game.Players.PlayerAdded:Connect(function(player)

local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player

local Vcoins = Instance.new("IntValue")
Vcoins.Name = "V-coins"
Vcoins.Value = 0
Vcoins.Parent = leaderstats 


player.CharacterAdded:Connect(function(chatacter) 
	chatacter.Humanoid.Died:Connect(function() 
		--whenever nobody dies, this will run 
		
		if chatacter.Humanoid and chatacter.Humanoid:FindFirstChild("creator") then 
			game.ReplicatedStorage.Status.Value = tostring(chatacter.Humanoid.creator.Value).." KILLED "..player.Name 
		end 
		
		if chatacter:FindFirstChild("GameTag") then 
			chatacter.GameTag:Destroy() 
		end 
		
		player:LoadCharacter()
	end) 
	
end)

end)

and finally this is the MainScript....

-- Define variables

local ReplicatedStorage = game:GetService("ReplicatedStorage")

local ServerStorage = game:GetService("ServerStorage")

local MapsFolder = ServerStorage:WaitForChild("Maps")

local Status = ReplicatedStorage:WaitForChild("Status")

local GameLength = 50

local reward = 20

--Game loop

while true do

Status.Value = "Waiting for 2 (or more) Players to Join!"
 
repeat wait(1) until game.Players.NumPlayers >= 2
 
Status.Value = "Intermission (15 seconds)"
 
wait(15)
 
local plrs = {}
 
for i, player in pairs (game.Players:GetPlayers())do
    if player then
        table.insert(plrs,player)
    end
end
 
wait(2)
 
local AvailableMaps = MapsFolder:GetChildren()
 
local ChosenMap = AvailableMaps[math.random(1,#AvailableMaps)]
 
Status.Value = ChosenMap.Name.." Chosen"
 
local ClonedMap = ChosenMap:Clone()
ClonedMap.Parent = workspace

--Teleport players to the map 

local SpawnPoints = ClonedMap:FindFirstChild("SpawnPoints")
 
if not SpawnPoints then
    print("SpawnPoints not found!")
end
 
local AvailableSpawnPoints = SpawnPoints:GetChildren()
 
for i, player in pairs(plrs) do
    if player then
        character = player.Character	 
		
		if character then 
			--Teleport them
			character:FindFirstChild("HumanoidRootPart").CFrame = AvailableSpawnPoints[1].CFrame
            table.remove(AvailableSpawnPoints,1)
			
			
			--Give them a sword 
			
			local Sword = ServerStorage.Sword:Clone()
            Sword.Parent = player.Backpack
 
            local GameTag = Instance.new("BoolValue")
            GameTag.Name = "GameTag"
            GameTag.Parent = player.Character
 
        else
			--There is no character
			if not player then
                table.remove(plrs,i)
            end
        end
    end
end




Status.Value = "Get ready for Battle!"
 
    wait(5)
 
    for i = GameLength,0,-1 do
	 
        for x, player in pairs(plrs) do
            if player then
 
                character = player.Character
 
                if not character then 
				--Left the game
				table.remove(plrs,x)
            else
                if character:FindFirstChild("GameTag") then
					--They are still alive 
					print(player.Name.." is still in the game!")
                else
					
					--They are dead 
					table.remove(plrs,x)
                        print(player.Name.." has been removed!")
                    end
                end
            else
                table.remove(plrs,x)
                print(player.Name.." has been removed!")   
            end
        end
 
        Status.Value = "There are "..i.." seconds left, and "..#plrs.." players left."
 
        if #plrs == 1 then
		
		--Last person standing 
		Status.Value = "The winner is "..plrs[1].Name 
		plrs[1].leaderstats.Vcoins.Value = plrs[1].leaderstats.Vcoins.Value + reward 
		break 
	elseif #plrs == 0 then 
		Status.Value = "Nobody won!" 
		break 
	elseif i == 0 then 
		Status.Value = "Time up!" 
		break
	end
	
	wait(1) 
end 

print("GAME ENDED") 

for i, player in pairs(game.Players:GetPlayers()) do 
	character = player.character 
	
	if not character then 
		--Ignore them 
	else
            if character:FindFirstChild("GameTag") then
                character.GameTag:Destroy()
            end
 
            if player.Backpack:FindFirstChild("Sword") then
                player.Backpack.Sword:Destroy()
            end
 
            if character:FindFirstChild("Sword") then
                character.Sword:Destroy()
            end
 
        end
 
        player:LoadCharacter()
    end
 
    ClonedMap:Destroy()
 
    Status.Value = "Game Ended"
 
    wait(2)
end