Hello everybody, i'm trying to make a DOORS game and i got an error trying to add in probability of generation.
18:59:40.323 ServerScriptService.Server.Generation:24: attempt to index nil with 'Name' - Server - Generation:24 18:59:40.323 Stack Begin - Studio 18:59:40.323 Script 'ServerScriptService.Server.Generation', Line 24 - function getRandom - Studio - Generation:24 18:59:40.323 Script 'ServerScriptService.Server.Generation', Line 40 - function generate - Studio - Generation:40 18:59:40.323 Script 'ServerScriptService.Server', Line 6
But, this error has to do something with the gen.getRandom() function.
Here is the full code:
local gen = {} gen.random = Random.new() gen.info = require(script:WaitForChild('Info')) gen.lastTurnDir = nil gen.serverStorage = game:GetService('ServerStorage') gen.generatedRooms = workspace.GeneratedRooms function gen.getRandom(prevRoom) local totalChance = 0 for _, info in ipairs(gen.info) do totalChance += info.Chance end local randomChance = gen.random:NextInteger(1, totalChance) local currentChance = 0 local randomRoom = nil for i, info in ipairs(gen.info) do currentChance += info.Chance if randomChance <= currentChance then randomRoom = gen.serverStorage.Rooms[i] break end end local dir = gen.info[randomRoom.Name]['Direction'] if (prevRoom.Name == randomRoom.Name) or (dir and dir == gen.lastTurnDir) then return gen.getRandom(prevRoom) else if dir then gen.lastTurnDir = dir end return randomRoom end end function gen.generate(prevRoom) local randomRoom = gen.getRandom(prevRoom) local newRoom = randomRoom:Clone() newRoom.PrimaryPart = newRoom.Entrance newRoom.Entrance.CanCollide = false newRoom.Entrance.Transparency = 1 newRoom.Exit.CanCollide = false newRoom.Exit.Transparency = 1 newRoom:PivotTo(prevRoom.Exit.CFrame) newRoom.Parent = gen.generatedRooms return newRoom end return gen
I'm very happy for solutions.
Nevermind, i just put ipairs.
Basically, ipairs just broke the whole entire thing.
Sorry for wasting your time!