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
