Room Content are spawned and handled by rooms. Those contents handles most of the implementation details.
There are two main types of room contents :
The room content doesn't do any fancy generating stuff. It's designed to have one or more meshes attached to it but no generation at all.
You only need to tel it where the connection points are located with the CreateConnectionPoints() function. Those connection points are used to connect rooms.
You can use the utility function MakeConnectionPointFromArrow() like in the examples :
Procedural room contents are contents which will be procedurally generated.
You can setup most of their variables directly inside the RoomDataTables.
Out of the box, these rooms will generate all of their content based on your data table setup.
That said, I have added a very powerfull feature : You can tell a procedural room content to Find their floor/ceiling instead of Generating them. This will results in less actor created and better performances.
To do so you need to :
First, the room will create its base shape : A rectangle which uses the room sizes. Then a more interesting shape is creating on top of that.
(PreferredSize is based on Max/MinRoomSize and is randomly chosen)
Once the Shape is defined, the room will determine its topology. Then the meshes are spawned at the end of the generation.
Full Procedural Room Content is the more modural approach because every item (floor, walls, ...) is generated. But it could lead to performance hint because lots of actors are spawned.
Using a Procedural Room Content with a detection of the floor/ceiling is a good approach if you want to reduce the amount of generated actors. It leads to less modularity because the shape of the room is fixed but the benefit of that is that you can already place items inside the room because you know its shape. Walls, Doors and every other itsm you have setup in the DataTable will also be spawned in the room.
You can use Custom room if you want not only controls over room shape but also controls over what is placed on walls and how walls are generated. This third solution is the less modular because all the room is made by hand by you. the only thing which link the room to the rest of the system are the connection points which allow this kind of room to be connected to other rooms.