Hi, this is an irritating error. I finished my gamescript, plays all rounds and stuff. However, after a couple of rounds, it errors with this:
"ServerScriptService.Game:31: attempt to index global 'typeName' (a nil value)"
And the script stop working.
I have no idea how to fix this, its driving me crazy!!
status = game.ServerScriptService.Status
local type = {"Meteor Shower","Raining Noobs","Moon","Eerie Darkseed","Tsunami","Master Hand","Acid Rain","Deadly Egg Rain","Rising Lava","Epic Duck","Raining Knives","Shoop Da Whoop"}
sfx = {}
map = {}
leaderboard = nil
local w = game.Workspace:getChildren()
for i=1,#w do
if w[i].Name == "leaderboard" and w[i]:findFirstChild("running") ~= nil and w[i]:findFirstChild("points") ~= nil then
leaderboard = w[i]
end
end
for i,game in pairs (game.ServerStorage:FindFirstChild("Maps"):GetChildren()) do
table.insert(map,#map+1,game.Name)
end
for i,game in pairs (game.ServerStorage:FindFirstChild("SoundTrack"):GetChildren()) do
table.insert(sfx,#sfx+1,game.Name)
end
while true do
print(#map)
mapName = map[math.random(1, #map)]
mapName = game.ServerStorage.Maps:FindFirstChild(mapName)
mapClone = mapName:Clone()
mapClone.Parent = game.Workspace
mapClone:MakeJoints()
print (#type)
typeName = type[math.random(1, #type)]
typeName = game.ServerStorage.enemies:FindFirstChild(typeName)
typeClone = typeName:Clone()
game.Workspace.Lobby:Play()
for i = 60, 1, -1 do
status.Value = "Round 1/5 will start in: "..i
wait(1)
end
game.Workspace.Lobby:stop()
status.Value = "Disaster: "..typeClone.Name
wait(3)
sfxName = sfx[math.random(1, #sfx)]
sfxName = game.ServerStorage.SoundTrack:FindFirstChild(sfxName)
sfxClone = sfxName:Clone()
sfxClone.Parent = game.Workspace
sfxClone:play()
workspace.points.Value = 20
game.Workspace.running.Value = true
typeClone.Parent = game.Workspace
typeClone:MakeJoints()
for i = 30, 1, -1 do
status.Value = "Time until round ends: "..i
wait(1)
end
typeClone:remove()
sfxClone:Stop()
sfxClone:destroy()
game.Workspace.running.Value = false
status.Value = "Results!"
wait(5)
print (#type)
typeName = type[math.random(1, #type)]
typeName = game.ServerStorage.enemies:FindFirstChild(typeName)
typeClone = typeName:Clone()
game.Workspace.Lobby:Play()
for i = 15, 1, -1 do
status.Value = "Round 2/5 will start in: "..i
wait(1)
end
game.Workspace.Lobby:stop()
status.Value = "Disaster: "..typeClone.Name
wait(3)
sfxName = sfx[math.random(1, #sfx)]
sfxName = game.ServerStorage.SoundTrack:FindFirstChild(sfxName)
sfxClone = sfxName:Clone()
sfxClone.Parent = game.Workspace
sfxClone:play()
workspace.points.Value = 20
game.Workspace.running.Value = true
typeClone.Parent = game.Workspace
typeClone:MakeJoints()
for i = 30, 1, -1 do
status.Value = "Time until round ends: "..i
wait(1)
end
typeClone:remove()
sfxClone:Stop()
sfxClone:destroy()
game.Workspace.running.Value = false
status.Value = "Results!"
wait(5)
print (#type)
typeName = type[math.random(1, #type)]
typeName = game.ServerStorage.enemies:FindFirstChild(typeName)
typeClone = typeName:Clone()
game.Workspace.Lobby:Play()
for i = 15, 1, -1 do
status.Value = "Round 3/5 will start in: "..i
wait(1)
end
game.Workspace.Lobby:stop()
status.Value = "Disaster: "..typeClone.Name
wait(3)
sfxName = sfx[math.random(1, #sfx)]
sfxName = game.ServerStorage.SoundTrack:FindFirstChild(sfxName)
sfxClone = sfxName:Clone()
sfxClone.Parent = game.Workspace
sfxClone:play()
workspace.points.Value = 20
game.Workspace.running.Value = true
typeClone.Parent = game.Workspace
typeClone:MakeJoints()
for i = 30, 1, -1 do
status.Value = "Time until round ends: "..i
wait(1)
end
typeClone:remove()
sfxClone:Stop()
sfxClone:destroy()
game.Workspace.running.Value = false
status.Value = "Results!"
wait(5)
print (#type)
typeName = type[math.random(1, #type)]
typeName = game.ServerStorage.enemies:FindFirstChild(typeName)
typeClone = typeName:Clone()
game.Workspace.Lobby:Play()
for i = 15, 1, -1 do
status.Value = "Round 4/5 will start in: "..i
wait(1)
end
game.Workspace.Lobby:stop()
status.Value = "Disaster: "..typeClone.Name
wait(3)
sfxName = sfx[math.random(1, #sfx)]
sfxName = game.ServerStorage.SoundTrack:FindFirstChild(sfxName)
sfxClone = sfxName:Clone()
sfxClone.Parent = game.Workspace
sfxClone:play()
workspace.points.Value = 20
game.Workspace.running.Value = true
typeClone.Parent = game.Workspace
typeClone:MakeJoints()
for i = 30, 1, -1 do
status.Value = "Time until round ends: "..i
wait(1)
end
typeClone:remove()
sfxClone:Stop()
sfxClone:destroy()
game.Workspace.running.Value = false
status.Value = "Results!"
wait(5)
print (#type)
typeName = type[math.random(1, #type)]
typeName = game.ServerStorage.enemies:FindFirstChild(typeName)
typeClone = typeName:Clone()
game.Workspace.Lobby:Play()
for i = 15, 1, -1 do
status.Value = "Round 5/5 will start in: "..i
wait(1)
end
game.Workspace.Lobby:stop()
status.Value = "Disaster: "..typeClone.Name
wait(3)
sfxName = sfx[math.random(1, #sfx)]
sfxName = game.ServerStorage.SoundTrack:FindFirstChild(sfxName)
sfxClone = sfxName:Clone()
sfxClone.Parent = game.Workspace
sfxClone:play()
workspace.points.Value = 20
game.Workspace.running.Value = true
typeClone.Parent = game.Workspace
typeClone:MakeJoints()
for i = 30, 1, -1 do
status.Value = "Time until round ends: "..i
wait(1)
end
typeClone:remove()
sfxClone:Stop()
sfxClone:destroy()
game.Workspace.running.Value = false
status.Value = "Results!"
wait(5)
mapClone:Destroy()
end

3 comments
What Line is the error in?
Continent, the error recorded is in line 31, but it can happen in any line thats has nameType, and I don't know why. (the error i recorded is ServerScriptService.Game:31: attempt to index global 'typeName' (a nil value)
Thats it it you're missing Parenthesis should be "TypeName"!