How do I make a room spawn in the 1000th room?

The 1000th room lacks the exit, but all the previous 999 rooms have.

But how?

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

local door = require(script.Door)

local room = {}
local rooms = workspace.Rooms
room.info = require(script.RoomInfo)
room.lastTurnDirection = nil
room.random = Random.new()

local function GetRoomModelByName(roomName)
    local RoomModel = rooms:FindFirstChild(roomName)
    if not RoomModel then
        error("No room called " .. roomName .. " exists!")
    end
    return RoomModel
end

function room.GetRandomRoom(prevRoom)
	local totalRarity = 0
	for i, info in pairs(room.info) do
		totalRarity += info.Rarity
	end
	
	local randomRarity = room.random:NextNumber(0, totalRarity)
	local currentRarity = 0
	local randomRoom = nil
	for i, info in pairs(room.info) do
		currentRarity += info.Rarity
		if randomRarity <= currentRarity then
			randomRoom = GetRoomModelByName(i)
			break
		end
	end
	
	local direction = room.info[randomRoom.Name]["Direction"]
	
	if (prevRoom.Name == randomRoom.Name)
		or (direction and direction == room.lastTurnDirection) 
	then
		return room.GetRandom(prevRoom)
	else
		if direction then
			room.lastTurnDirection = direction
		end
		return randomRoom
	end
end

function room.GenerateRoomByName(roomName, prevRoom, doorNumber)
	local roomModel = GetRoomModelByName(roomName)
	local roomClone = randomRoom:Clone()
	
	roomClone.PrimaryPart = roomClone.Entrance
	roomClone:PivotTo(prevRoom.Exit.CFrame)
	
	local newDoor = door.New(prevRoom, doorNumber)
	
	newRoom.Parent = workspace.GeneratedRooms
	
	return roomClone
end

function room.GenerateRandomRoom(prevRoom, doorNumber)
    local randomRoom = room.GetRandom(prevRoom)
	return room.GenerateRoomByName(randomRoom.name, prevRoom, doorNumber)
end

function room.Generate(prevRoom, doorNumber)
    local randomRoom = room.GetRandom(prevRoom)

    if doorNumber == 1000 then
        return room.GenerateRoomByName("1000thRoom", prevRoom, doorNumber) -- replace 1000thRoom with the room you want to use.
	end
    return room.GenerateRandomRoom(prevRoom, doorNumber)
end

return room

I used a bit of a boilerplate solution for generating the 1000th room. You should use a dictionary instead if you are planning to add more rooms.
This code should work with your current way of generating the rooms.

Ummm, I’m having a problem, edit the code, I’m getting this error.

Forgot my namimg schemes. Just replace line 68 with this.

    local randomRoom = room.GetRandomRoom(prevRoom)

Get this error:

Replace line 63 with this

    local randomRoom = room.GetRandomRoom(prevRoom)

There’s some orange line under randomRoom on line 50 and newRoom on line 57.

and this error here:

edit the code pls

Ok, thanks for solving, to everyone who helped me. (i put the end room next to the 999th door and then the 1000th door leads to cluster II or the dark fun rooms.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.