Ello Developers!
As the title says, I am trying to modify this script so that It will keep giving the players weapons until the round stops
local RS = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local Folder = RS:WaitForChild("Melee")
local roundEvent = RS:WaitForChild('RoundEvent')
-- Change the "Folder" if you change the folder name in Replicated Storage
local function givePlayer(character)
local Tools = Folder:GetChildren()
local ToolsTable = Tools
local chosenTools = {}
repeat
local selectedIndex = math.random(1, #ToolsTable)
table.insert(chosenTools, ToolsTable[selectedIndex])
table.remove(ToolsTable, selectedIndex)
until #chosenTools >= 1
-- Numbers of tools going to give
local plr = Players:GetPlayerFromCharacter(character)
for i,v in pairs(chosenTools) do
Folder:FindFirstChild(v.Name):Clone().Parent = plr.Backpack
end
end
roundEvent.Event:Connect(function()
for _, plr in Players:GetChildren() do
givePlayer(plr.Character)
script.AlreadyHasMelee.Value = true
end
end)
local function onAdded(player)
player.CharacterAdded:Connect(givePlayer) -- Triggers when the player spawns or respawns
end
Players.PlayerAdded:Connect(onAdded)
The Script that fires "roundEvent"
local lobbyLocation = game.Workspace.SpawnLocation.Position + Vector3.new(0,3,0)
local ReplicatedStorage = game:GetService('ReplicatedStorage')
local timeEvent = ReplicatedStorage:WaitForChild('TimeEvent')
local roundEvent = ReplicatedStorage:WaitForChild('RoundEvent')
local function playGame()
local timeAmount = 180
local timerText = 'Remaining Time: '
while timeAmount > 0 do
timeEvent:FireAllClients(timeAmount, timerText)
wait(1)
timeAmount -= 1
end
end
local function playIntermission()
local intermission = 10
local timerText = 'Intermission: '
while intermission > 0 do
timeEvent:FireAllClients(intermission, timerText)
wait(1)
intermission -= 1
end
end
local function resetPlayers()
for _, plr in pairs(game.Players:GetChildren()) do
plr.Character.HumanoidRootPart.CFrame = CFrame.new(lobbyLocation)
local CurrentMapFolder = game.Workspace.CurrentMap:GetChildren()
for _, Map in ipairs(CurrentMapFolder) do
if Map:IsA("Model") then
Map:Destroy()
end
end
local WeaponGiverFolder = game.Workspace.WeaponGivers:GetChildren()
for _, Script in ipairs(WeaponGiverFolder) do
if Script:IsA("Script") then
Script.Enabled = false
end
end
end
end
local function teleportPlayers()
for _, plr in pairs(game.Players:GetChildren()) do
local RandomMap = math.random(1,1)
if RandomMap == 1 then
local OldSFOTHMap = game:GetService("ReplicatedStorage").Maps["Old SFOTH Map"]:Clone()
OldSFOTHMap.Parent = game.Workspace
end
if RandomMap == 2 then
local CubeSchool = game:GetService("ReplicatedStorage").Maps["Cube School"]:Clone()
CubeSchool.Parent = game.Workspace
end
local WeaponGiverFolder = game.Workspace.WeaponGivers:GetChildren()
for _, Script in ipairs(WeaponGiverFolder) do
if Script:IsA("Script") then
Script.Enabled = true
end
end
end
end
while true do
resetPlayers()
playIntermission()
teleportPlayers()
roundEvent:Fire()
playGame()
end
