This is an example file of rooms that don't use coordinates and always explicitly define their exits. This is pretty
standard for old MUDs. However, described below is a way to describe a room using coordinates and such you can use
the coordinates to infer the allowable exits for a room for you, doors work all the same.

bundles/ranvier-areas/areas/limbo/rooms.yml

-id:1title:"TestRoom1"description:"Afeaturelesswhiteroom.Apitchblackvoidintheshapeofarchwaycanbeseenontheeastsideoftheroom."npcs:["limbo:1"]items:-id:"limbo:3"replaceOnRespawn:truerespawnChance:30script:"1-test"exits:-roomId:"limbo:2"direction:"east"leaveMessage:"stepsintothevoidanddisappears."-id:2title:"TestRoom2"description:"Acompletelyblackroom.Somehowallofthelightthatshouldbecomingfromtheroomtothewestdoesnotpassthroughthearchway.Asinglelightbulbhangsfromtheceilingilluminatingasmallarea."behaviors:["test"]items:["limbo:2"]npcs:-id:"limbo:2"respawnChance:20maxLoad:5metadata:fooType:'bar'exits:-roomId:"limbo:1"direction:"west"leaveMessage:"stepsintothelightanddisappears."doors:"limbo:1":# The player encounters a door when trying to move between "limbo:1" and this roomlockedBy:"limbo:test_key"# this room can only be locked/unlocked with this itemlocked:true# if the door is locked by defaultclosed:true# if the door is closed by default

-id:starttitle:Begincoordinates:[0,0,0]description:"Youareinthestartofthisarea.Therearehallwaystothenorthandsouth."-id:hallway-north-1title:Hallway North 1coordinates:[0,1,0]description:"Youareinthenorthhallway."-id:hallway-north-2title:Hallway North 2coordinates:[0,2,0]description:"Youareinthenorthhallway."-id:hallway-south-1title:Hallway South 1coordinates:[0,-1,0]description:"Youareinthesouthhallway."-id:hallway-south-2title:Hallway South 2coordinates:[0,-2,0]description:"Youareinthesouthhallway."-id:attic-southtitle:Atticcoordinates:[0,-2,1]description:"Youareintheattic."# this room has inferred exits from its coordinates and also manually specifies an exit to leave the areaexits:-direction:eastroomId:"limbo:1"# Note that this room doesn't have coordinates, that's completely fine.# It will still exist in the area but it will not be on the map and will only be# reachable by explicitly defining an exit that leads to this room like above# or by having a script send the player to this room.-id:other-roomtitle:Secret Roomdescription:"Welcometothesecretroom"

Doors are specified with the doors config on the room you want to block access to. Meaning if I want the player in
Room A to run into a door when going east to Room B you specify the door config on Room B, not on Room A. It should be
noted that, while the Room object allows the definition of doors/locks, nothing in the core (or rooms themselves)
block access based on these doors/locks, that is done inside the bundles. See the move command in the
ranvier-commands bundle for an demonstration of how access is blocked or the lock/open commands to see how the
doors are controlled.

Note: When defining doors be careful to make sure you don't accidentally define a double door like a hotel room where
Room A has a door blocking access to Room B and Room B has another door blocking access from Room A as this could
cause the player to have to open two doors every time they moved between the rooms.

List of NPCs to place in this room on initial load. You can customize the number of max instances of the NPC per room and the respawn chance by making the npcs entry an object as described above in the "Test Room 2" example.

itemsArray<EntityReference>

List of items to place in this room on initial load. As with NPCs, you can customize the respawn chance for the
item. For containers there's also replaceOnRespawn which when the item is due to respawn will replace an empty
instance will a full one

A place to put other data you want to access inside scripts/behaviors/commands/etc. that doesn't fit into one of
the existing properties. See Room.getMeta and Room.setMeta. Note: changes to metadata while the server is running
will be lost when the server is shut down.

exitsArray

Rooms the player can get to from here; each exits entry has the following fields:

directionstring

required Movement command the player will use to leave the room (Standard compass directions are recommended)

roomIdEntityReference

required Room the player will end up in when they go this direction

leaveMessagestring

Message shown to the room when the player leaves the room in this direction. In the Room 1 example above, players
in the same room will see "Shawn steps into the void and disappears." when Shawn leaves to the east.

doorsobject

Doors blocking access to this room. The key for each door is the room you want to block access from. So if you
want to block access to players coming fromlimbo:5 into the room the key would be "limbo:5"

lockedByEntityReference

Optional item EntityReference of the item that will be the key that locks/unlocks the door