Better mansion layout (proposal)

I have been playing latest build of CDDA recently and noticed that we still have that enormous (semi-)random mansions used in Whales Cataclysm long time ago. That layout was heavily criticized many times. I have a proposal of making non-random layout for manor with such scheme:

As you see, it utilizes 3*3 layout. Here I’ll post detailed layout for each square.
What can you say about making manors more “static”? (at least, there WILL NOT be 20 dining halls)

I like the idea of the random layouts, but it definitely could be done better. I haven’t looked a whole lot at that code, but I would think a decent in between might be to make it have requirements to have (at least OR exactly) so many bedrooms, bathrooms, kitchens, and dining rooms, and then it can randomly fill in the rest. So you could write into the mansion generating code that each mansion must have at least 3 bedrooms, 2 bathrooms, 1 billiards room, and exactly one dining room and one kitchen. Then it can fill in the rest randomly, and still seem semi realistic, while still retaining its randomness.

Static mansions could be added so that they spawn in addition to the random mansions too. Unfortunately, the overmap special doesn’t current support having multiple layouts for the same special (an idea Kevin had that I’d like to add, but haven’t had the time), but a similar effect could be made right now by adjusting the number of mansions downward and setting the spawn rate of the new mansions to match the ones removed.

Here is the layout of Square 1-1 (Kitchen and some rooms)

"mapgen": [ {
    "method": "json",
            "weight": 500,
            "object": {
            "rows": [
            "|--O--O--O----O--O--O---",
            "|,,,,,,,,,,,,,,,,,,,,,,|",
            "|,,,,,,,,,,,,,,,,,,,,,,+",
            "|--+--------+----L------",
            "|D....CCEB|...|B...FFFF|",
            "|........B|...L.......B|",
            "O.........|...|B......B|",
            "|.........+...|B..EFFFF|",
            "|..BAAB...|...|--L-----|",
            "O........C|...|CC..FFFF|",
            "|...EE...C|...L.......B|",
            "|BBB==BBFF|...|CC.EFFFF|",
            "|---------|...|--------|",
            "|MNPE^EPNM|...+.......E|",
            "OM.C...C.M|...|DC..GGHH|",
            "|.........|...|--------|",
            "|.........|...|I=|..KKK|",
            "OM.C...C.M|...|..|..KKK|",
            "|MNP...PNM|...|.......J|",
            "|----+------+-----+----|",
            "|^,,^,^,,,,,,,,,,^,^,,^|",
            "O,,,,,,,,,,,,,,,,,,,,,,+",
            "|^,,,,,,,,,,,,,,,,,,,,^|",
            "|----++----------------|"


            ],
            "terrain": {
            ".": "t_floor",
            "-": "t_wall_h",
            "|": "t_wall_v",
            "O": "t_window_domestic",
            "L": "t_door_locked",
            "+": "t_door_c",
            "A": "t_floor",
			"B": "t_floor",
			"C": "t_floor",
			"D": "t_floor",
			"E": "t_floor",
			"F": "t_floor",
			"G": "t_floor",
			"H": "t_floor",
			"I": "t_floor",
			"J": "t_floor",
			"K": "t_floor",
			"=": "t_floor",
			"M": "t_floor",
			"N": "t_floor",
			"P": "t_floor",
			",": "t_carpet_green",
			"^": "t_floor"
            },
            "furniture": {
			"A": "f_oven",
			"B": "f_cupboard",
			"C": "f_table",
			"D": "f_trashcan",
			"E": "f_chair",
			"F": "f_fridge",
			"G": "f_dryer",
			"H": "f_washer",
			"I": "f_toilet",
			"J": "f_shower",
			"K": "f_bathtub",
			"=": "f_sink",
			"M": "f_bed",
			"N": "f_dresser",
			"P": "f_bookcase",
			"^": "f_indoor_plant"
            },
            "place_groups": [
                { "item": "trash", "chance": 70, "x": [ 4,1 ], "y": [ 4,1 ] },
                { "item": "kitchen", "chance": 70, "x": [ 4,1 ], "y": [ 11,9 ] },
                { "item": "bedroom", "chance": 30, "x": [ 13,1 ], "y": [ 18,9] },
                { "item": "livingroom", "chance": 30, "x": [ 13,1 ], "y": [ 18,9 ] },
                { "item": "fridge", "chance": 70, "x": [ 4,15 ], "y": [ 7,23 ] },
                { "item": "alcohol", "chance": 20, "x": [ 9,15 ], "y": [ 11,23 ] },
				{ "item": "fridge", "chance": 30, "x": [ 9,15 ], "y": [ 11,23 ] },
                { "item": "allclothes", "chance": 65, "x": [ 13,15 ], "y": [ 14,23 ]}
                ] 
}
}
]

This sector of mansion contains kitchen, toilet, food storage and room for staff

I’m with vache on this one, nothing substantial to add. There was that one thing where mansions, just like older buildings, could be turned into places of wider interest. This means, for the time being, the lower floors are vast spaces exibiting museum pieces and/or hosting anything of communal interest; being that Z-levels are growing on us at a lively pace, some may find a bedroom or two to suit his/her needs just on the floor above.

Static layouts look pretty nice for office towers, appartament “towers”, waste sarcophagus, public workshops and many other buildings (these were defined by acidia).

Here is layout for garage and workshop, sector (2,1). I’ve followed here the main principle of CDDA mapping (“Nowhere is safe”), so there are many doors here and two windows. To the right there’s a storage with lockers, to the left - workshop. Garage is intended to be empty: coward richmen have escaped with their cars earlier.

            "object": {
            "rows": [
            "|----++----------------|",
            "|FFF|......|GGGGGGGGGGG|",
            "|D..+......+..........G|",
            "|E..+......+....FFF...G|",
            "|CCC|......|GG..FFF...G|",
            "|hhh|......|---+hhh+---|",
            "|......................|",
            "|......................|",
            "|......................|",
            "|......................+",
            "|......................+",
            "|......................|",
            "|......................|",
            "|x....................x|",
            "|-ddddddd--OO--ddddddd-|",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,"


            ],
            "terrain": {
            ".": "t_floor",
            "-": "t_wall_h",
            "|": "t_wall_v",
            "O": "t_window_domestic",
            "+": "t_door_c",
			"d": "t_door_metal_locked",
			"x": "t_gates_mech_control"
			"C": "t_floor",
			"D": "t_floor",
			"E": "t_floor",
			"F": "t_floor",
			"G": "t_floor",
			
			"h": ""t_chainfence_h"",
			
			",": "t_pavement",
			"v": "t_chainfence_v"
            },
            "furniture": {
			"C": "f_table",
			"D": "f_trashcan",
			"E": "f_chair",
			"F": "f_counter",
			"G": "f_locker",
			
            },
            "place_groups": [

                ] 
}

Sector (3,1) of mansion. Empty area in front of garage. Basically it serves as a parking lot for cars of possible guests of richmen. In the time of Cataclysm the only “guests” of manor are Zs and other beasts. Also has guard booth.

"mapgen": [ {
    "method": "json",
            "weight": 500,
            "object": {
            "rows": [
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "vhhhhhhh,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "v,,,,,,,,,,,,,,,,,,,,,,,",
            "vhhhhhhh,,,,,,,,,,h,,,,,",
            "v,,,,,,,,,,,,,,,,,h,,,,,",
            "v,,,,,,,,,,,,,,,,,h,,,,,",
            "v,,,,,,,,,,,,,,,,,h,,,,,",
            "v,,,,,,,,,,,,,,,,,h,,,,,",
            "v,,,,,,,,,,,,,,,,,--OO--",
            "v,,,,,,,,,,,,,,,,,+....+",
            "v,,,,,,,,,,,,,,,,,O.E.FO",
            "|D,,,,,,,,,,,,,,x,|GCCC|",
            "|-------dddddddd----OO--"


            ],
            "terrain": {
            ".": "t_floor",
            "-": "t_wall_h",
            "|": "t_wall_v",
            "O": "t_window_domestic",
            "+": "t_door_c",
			"d": "t_door_metal_locked",
			"x": "t_gates_mech_control"
			"C": "t_floor",
			"D": "t_floor",
			"E": "t_floor",
			"F": "t_floor",
			"G": "t_floor",
			
			"h": "t_pavement_y",
			
			",": "t_pavement",
			"v": "t_chainfence_v"
            },
            "furniture": {
			"C": "f_table",
			"D": "f_trashcan",
			"E": "f_chair",
			"F": "f_counter",
			"G": "f_locker",
			
            },
            "place_groups": [

                ] 
}
}
]

High level opinion:
In general, rather than replacing things I’d rather supplement them, so as vache points out, make a new static special that replaces some of the mansions instead of all of them.
I love to have a nice, well-laid-out mansion in addition to the dynamic ones, and ALSO fix the dynamic ones as soneone gets around to it.

Kevin Granade

make a new static special that replaces some of the mansions instead of all of them.
Ok, let it be another type of mansion, let's call them "static". I think that someone will fix "dynamic" mansions later. And they'll exist both in game. Wilderness is quite "empty" by now. So, here's another sector of mansion, (3,2) - Entrance Gate. It features a big gate, alley with tables, chairs, trees and STATUES. All richmen like statues. Layout:
"mapgen": [ {
    "method": "json",
            "weight": 500,
            "object": {
            "rows": [
            "hhhhhhhhhhhhh,,,,,,hhhhh",
            ",,,,,,,,,,,,hE,,,,EhGGGG",
            ",,,,,,,,,,,,hC,,,,ChFGFG",
            ",,,,,,,,,,,,hG,,,,GhGGGG",
            ",,,,,,,,,,,ShF,,,,FhGGGG",
            ",,,,,,,,,,,,hG,,,,GhGGGG",
            ",,,,,,,,,,,,hE,,,,EhGGGG",
            ",,,,,,,,,,,,hC,,,,ChFGFG",
            ",,,,,,,,,,,,hC,,,,ChFGGG",
            ",,,,,,,,,,,,hF,,,,GhGGGG",
            ",,,,,,,,,,,ShF,,,,FhGGGG",
            ",,,,,,,,,,,,hG,,,,GhGGGG",
            ",,,,,,,,,,,,hE,,,,EhGGGG",
            ",,,,,,,,,,,,hC,,,,ChFGFG",
            ",,,,,,,,,,,,hC,,,,ChFGGG",
            ",,,,,,,,,,,,hG,,,,GhGGGG",
            ",,,,,,,,,,,ShF,,,,FhGGGG",
            ",,,,,,,,,,,,hG,,,,GhGGGG",
            ",,,,,,,,,,,,hE,,,,EhGGGG",
            ",,,,,,,,,,,,hC,,,,ChFGFG",
            ",,,,,,,,,,,,hC,,,,ChFGGG",
            ",,,,,,,,,,,,hG,,,,GhGGGG",
            ",x,,,,,,,,,ShG,,,DGhGGGG",
            "--dddddddd-----++-----vv"


            ],
            "terrain": {
            ".": "t_floor",
            "-": "t_wall_h",
            "|": "t_wall_v",
            "O": "t_window_domestic",
            "+": "t_door_c",
			"d": "t_door_metal_locked",
			"x": "t_gates_mech_control"
			"C": "t_floor",
			"D": "t_dirt",
			"E": "t_dirt",
			"F": "t_tree",
			"G": "t_grass",
			"S": "t_pavement"
			"h": "t_pavement_y",
			
			",": "t_pavement",
			"v": "t_chainfence_h"
            },
            "furniture": {
			"C": "f_table",
			"D": "f_trashcan",
			"E": "f_chair",
			"S": "f_statue"
            },
            "place_groups": [

                ] 
}
}
]

I’ll design another sectors later. (1,2), (1,3), (2,2), (2,3), (3,3) still left.

[quote=“uzername, post:6, topic:6910”]Here is layout for garage and workshop, sector (2,1). I’ve followed here the main principle of CDDA mapping (“Nowhere is safe”), so there are many doors here and two windows. To the right there’s a storage with lockers, to the left - workshop. Garage is intended to be empty: coward richmen have escaped with their cars earlier.

[code]
“object”: {
“rows”: [
"|----+±---------------|",
"|FFF|…|GGGGGGGGGGG|",
"|D…+…+…G|",
"|E…+…+…FFF…G|",
"|CCC|…|GG…FFF…G|",
"|hhh|…|—+hhh±–|",
"|…|",
"|…|",
"|…|",
"|…+",
"|…+",
"|…|",
"|…|",
"|x…x|",
"|-ddddddd–OO–ddddddd-|",
“v,”,
“v,”,
“v,”,
“v,”,
“v,”,
“v,”,
“v,”,
“v,”,
“v,”

        ],
        "terrain": {
        ".": "t_floor",
        "-": "t_wall_h",
        "|": "t_wall_v",
        "O": "t_window_domestic",
        "+": "t_door_c",
		"d": "t_door_metal_locked",
		"x": "t_gates_mech_control"
		"C": "t_floor",
		"D": "t_floor",
		"E": "t_floor",
		"F": "t_floor",
		"G": "t_floor",
		
		"h": ""t_chainfence_h"",
		
		",": "t_pavement",
		"v": "t_chainfence_v"
        },
        "furniture": {
		"C": "f_table",
		"D": "f_trashcan",
		"E": "f_chair",
		"F": "f_counter",
		"G": "f_locker",
		
        },
        "place_groups": [

            ] 

}
[/code][/quote]

One thing to watch out for: there’s no guarantee that mansions will be accessible by vehicles. I’ve seen plenty completely enclosed in woods. So I’d suggest either making sure these ones spawn with road connections (gonna need some mapgen connections, nothing Acidia hasn’t done already so could probably just yoink from xem), or installing a helipad instead.

Agreed with Kevin and vache, but looking forward to seeing these in one piece!

Sector (3,3) of mansion - park area. Has some trees, shrubs, a swimming pool, and a booth with table and chairs

"mapgen": [ {
    "method": "json",
            "weight": 500,
            "object": {
            "rows": [
            "pppppppppppppppppppppppv",
            ",,,,,,,,,,,,,,,,,,,,,,dv",
            ",,F,,,,,,,,,,,,,,,,,F,dv",
            ",,d,F,,,,,,,,,,,,,F,d,dv",
            ",,,,,,,,,F,,,F,,,,,,,,dv",
            ",,,,,,,,,F,,,F,,,,,,,,dv",
            ",,d,F,ppppppppppp,F,d,dv",
            ",,F,,,pwwwwwwwwwp,,,F,dv",
            ",,,,,,pwwwwwwwwwp,S,,,dv",
            ",,,,,,pwWWWWWWWwp,S,,,dv",
            ",,F,,,pwWWWWWWWwp,S,F,dv",
            ",,,,,,pwWWWWWWWwp,,,,,dv",
            ",,,,,,pwWWWWWWWwp,,,,,dv",
            ",,F,,,pwWWWWWWWwp,,,F,dv",
            ",,,,,,pwWWWWWWWwp,,,,,dv",
            ",,,,,,pwwwwwwwwwp,,,,,dv",
            ",,F,,,ppppppppppp,,,F,dv",
            ",,,,,,ppppppppppp,,,,,dv",
            ",,,,,,FO-+-O-+-OF,,,,,dv",
            ",,F,,,O.........O,,,F,dv",
            ",,,,,,|..ECCCE..|,,,,,dv",
            ",,,,,,F--OO-OO--F,,,,,,v",
            "ddddddddddddddddddddd,D|",
            "hhhhhhhhhhhhhhhhhhhhhh--"


            ],
            "terrain": {
            ".": "t_floor",
            "-": "t_wall_h",
            "|": "t_wall_v",
            "O": "t_window_domestic",
            "+": "t_door_c",
			"d": "t_shrub",
			"w": "t_water_sh",
			"W": "t_water_dp",
			"C": "t_floor",
			"D": "t_dirt",
			"E": "t_floor",
			"F": "t_tree",
			",": "t_grass",
			"S": "t_monkey_bars"
			"p": "t_pavement_y",
			
			"v": "t_chainfence_v",
			"h": "t_chainfence_h"
            },
            "furniture": {
			"C": "f_table",
			"D": "f_trashcan",
			"E": "f_chair"
            },
            "place_groups": [

                ] 
}
}
]

Sector (2,2) - entrance hall. It has doors to garage area (left), library area (right) and to dining hall area (top doors). It is decorated with green carpet (‘x’), red carpet spots (‘u’) show possible locations of up stairs (when zlevels are ready). Also there are two service rooms at front and big wardrobes with dressers (‘D’).

"mapgen": [ {
    "method": "json",
            "weight": 500,
            "object": {
            "rows": [
            "|-----++---++---++-----|",
            "|DDDD|xxxxxxxxxxxx|DDDD|",
            "|D...+xxxxxxxxxxxx+...D|",
            "|D...|..xx....xx..|...D|",
            "|D...|..xx....xx..|...D|",
            "|-+--|..xx....xx..|--+-|",
            "|....1..xx....xx..1....|",
            "|....u..xx....xx..u....|",
            "|.......xx....xx.......|",
            "+.......xx....xx.......+",
            "+.......xx....xx.......+",
            "|.......xx....xx.......|",
            "|....1..xx....xx..1....|",
            "|-+O-|--++-OO-++--|-O+-|",
            "|F...|F..........F|...F|",
            "|F.E.|F..........F|.E.F|",
            "|F...|F..........F|...F|",
            "|FFFF|F..........F|FFFF|",
            "|-OO----++-OO-++----OO-|",
            ",,,,,,1..........1,,,,,,",
            ",,,,,,1..........1,,,,,,",
            ",,,,,,S...1..1...S,,,,,,",
            ",,,,,,,,,,,,,,,,,,,,,,,,",
            ",,,,,,,,,,,,,,,,,,,,,,,,"


            ],
            "terrain": {
            ".": "t_floor",
            "-": "t_wall_h",
            "|": "t_wall_v",
            "O": "t_window_domestic",
            "+": "t_door_c",
			"u": "t_carpet_red",
			"x": "t_carpet_green"
			"C": "t_floor",
			"D": "t_floor",
			"E": "t_floor",
			"F": "t_floor",
			"S": "t_dirt",
			",": "t_pavement",
			"v": "t_fence_v"
            },
            "furniture": {
			"C": "f_table",
			"D": "f_dresser",
			"E": "f_chair",
			"F": "f_counter",
			"S": "f_statue",
			
            },
            "place_groups": [

                ] 
}
}
]

Dining hall area (1,2). The dining table is located at the center and display racks are to the left and to the right in corridors. It’s the single dining hall in the mansion.

"mapgen": [ {
    "method": "json",
            "weight": 500,
            "object": {
            "rows": [
            "|--O--O--O----O--O--O--|",
            "|,,,,,,,,,,,,,,,,,,,,,,|",
            "+,,,,,,,,,,,,,,,,,,,,,,+",
            "|--+-|O--O-++-O--O|-+--|",
            "|A...|............|...A|",
            "|A...|............|...A|",
            "|....+.....EE.....+....|",
            "|A...|^...CCCC...^|...A|",
            "|A..F|...ECCCCE...|F..A|",
            "|A..F|...ECCCCE...|F..A|",
            "|A...|...ECCCCE...|...A|",
            "|....+...ECCCCE...+....|",
            "|A...|^..ECCCCE..^|...A|",
            "|A..F|...ECCCCE...|F..A|",
            "|A..F|...ECCCCE...|F..A|",
            "|A...|....CCCC....|...A|",
            "|....+.....EE.....+....|",
            "|A...|^..........^|...A|",
            "|A...|FF........FF|...A|",
            "|--+-|-----++-----|-+--|",
            "|^,,^,^,,,,,,,,,,^,^,,^|",
            "+,,,,,,,,,,,,,,,,,,,,,,+",
            "|^,,,,,,,,,,,,,,,,,,,,^|",
            "|-----++---++---++-----|"


            ],
            "terrain": {
            ".": "t_floor",
            "-": "t_wall_h",
            "|": "t_wall_v",
            "O": "t_window_domestic",
            "L": "t_door_locked",
            "+": "t_door_c",
            "A": "t_floor",
			"B": "t_floor",
			"C": "t_floor",
			"D": "t_floor",
			"E": "t_floor",
			"F": "t_floor",
			
			",": "t_carpet_green",
			"^": "t_floor"
            },
            "furniture": {
			"A": "f_rack",
			"B": "f_cupboard",
			"C": "f_table",
			"D": "f_trashcan",
			"E": "f_chair",
			"F": "f_bookcase",
			
			"^": "f_indoor_plant"
            },
            "place_groups": [

                ] 
}
}
]

Here goes layout for sector (1,3): Rooms and Toilet. It somewhat resembles sector (1,1), I’m a big fan of symmetric design.

"mapgen": [ {
    "method": "json",
            "weight": 500,
            "object": {
            "rows": [
            "|--O--O--O----O--O--O--|",
            "|,,,,,,,,,,,,,,,,,,,,,,|",
            "+,,,,,,,,,,,,,,,,,,,,,,|",
            "|--L--------+-------L--|",
            "|N.....AAA|...|PP....CP|",
            "|MMM......|...|E......C|",
            "|MMM......|...|E.....GCO",
            "|MMM......+...+......CC|",
            "|N........|...|........|",
            "|CC.....GG|...|^......^O",
            "|--L------|...|-----L--|",
            "|AAAA..ECC|...|PPAAAAPP|",
            "|.........|...|...CC...|",
            "|MM.......+...+........|",
            "|MMN......|...|...HH...O",
            "|---------|...|...HH...|",
            "|I=|..KKK.|...|...HH...|",
            "|..|..KKK.|...|........O",
            "|.......J.|...|DF.....E|",
            "|----+------+-----+----|",
            "|^,,^,^,,,,,,,,,,^,^,,^|",
            "+,,,,,,,,,,,,,,,,,,,,,,O",
            "|^,,,,,,,,,,,,,,,,,,,,^|",
            "|----++----------------|"


            ],
            "terrain": {
            ".": "t_floor",
            "-": "t_wall_h",
            "|": "t_wall_v",
            "O": "t_window_domestic",
            "L": "t_door_locked",
            "+": "t_door_c",
            "A": "t_floor",
			"B": "t_floor",
			"C": "t_floor",
			"D": "t_floor",
			"E": "t_floor",
			"F": "t_floor",
			"G": "t_floor",
			"H": "t_floor",
			"I": "t_floor",
			"J": "t_floor",
			"K": "t_floor",
			"=": "t_floor",
			"M": "t_floor",
			"N": "t_floor",
			"P": "t_floor",
			",": "t_carpet_green",
			"^": "t_floor"
            },
            "furniture": {
			"A": "f_sofa",
			"B": "f_cupboard",
			"C": "f_table",
			"D": "f_trashcan",
			"E": "f_chair",
			"F": "f_fridge",
			"G": "f_armchair",
			"H": "f_pool_table",
			"I": "f_toilet",
			"J": "f_shower",
			"K": "f_bathtub",
			"=": "f_sink",
			"M": "f_bed",
			"N": "f_dresser",
			"P": "f_bookcase",
			"^": "f_indoor_plant"
            },
            "place_groups": [

                ] 
}
}
]

…big music rooms?

The last sector: (2,3) - Library, Office (and additional bedroom). Bottom area with trees connects to the park. There’s a locked safe in the office. Srsly, all richmen have these.

"mapgen": [ {
    "method": "json",
            "weight": 500,
            "object": {
            "rows": [
            "|----++----------------|",
            "|CCC^,,...|....PP.....N|",
            "|....,,,,,+.........MMMO",
            "|PPP^,,..P|.........MMMO",
            "|....,,.CA|...G.......N|",
            "|....,,.CA|----++------|",
            "|PPP^,,..P|.EEG.......P|",
            "|....,,,,,+.........G.CO",
            "|PPP^,,...|P..........CO",
            "+....,,...|XPF.....DCCB|",
            "+....,,...|----OO------|",
            "|PPP^,,.......P..PEEE.CO",
            "|....,,...............CO",
            "|....,,.............CCB|",
            "|-OO---OO--OO--OO---OO-|",
            "_######################v",
            "__TT___TT__TT__TT___TT#v",
            "_________#____#_______#v",
            "__TT__#TT__TT__TT#__TT#v",
            "_____T____________T___#v",
            "_____T____________T___#v",
            "__TT#____TT__TT____#TT#v",
            "______________________#v",
            "__TT___TT__TT__TT___TT#v"


            ],
		"terrain": {
            ".": "t_floor",
            "-": "t_wall_h",
            "|": "t_wall_v",
            "O": "t_window_domestic",
            "L": "t_door_locked",
            "+": "t_door_c",
            "A": "t_floor",
			"B": "t_console_broken",
			"C": "t_floor",
			"D": "t_floor",
			"E": "t_floor",
			"F": "t_floor",
			"G": "t_floor",
			"M": "t_floor",
			"N": "t_floor",
			"P": "t_floor",
			",": "t_carpet_green",
			"^": "t_floor",
			"X": "t_floor",
			"_": "t_grass",
			"#": "t_shrub",
			"T": "t_tree"
            },
            "furniture": {
			"A": "f_sofa",
			"B": "f_null",
			"C": "f_table",
			"D": "f_trashcan",
			"E": "f_chair",
			"F": "f_fridge",
			"G": "f_armchair",
			"X": "f_safe_l",
			"M": "f_bed",
			"N": "f_dresser",
			"P": "f_bookcase",
			"^": "f_indoor_plant"
            },
            "place_groups": [

                ] 
}
}
]

I’ve been thinking on making a room with training machines, but I did not find a propper place. It may be either here or in sector (1,3)

All sectors are done now.
So, this mansion layout has all usefull stuff: garage, kitchen, SINGLE dining hall, TWO toilets, TWO galleries with display racks, Bedrooms, offices, small library (it is NOT larger than bookstore), some statues, park and swimming pool.

Nice work, let me know if you have any problems getting it in game. One tiny issue… I think most of your interior rooms will have double walls since all sectors have a wall around the perimeter.

You’re one of the first people I’ve seen to work on multi-sector buildings in a while. I don’t know about the current status of it but you should look into the building utility on github. It is a python script that takes a character map and creates all the json entries for you. In this case the character map is like a 72x72 (3x3) map that starts off as all ‘.’ and you use the ins(ert) keyboard command to draw everything at once. This makes it much easier to have the buildings flow between sectors since you won’t even see them until you run the script. I suppose I should make a toolbox topic…

Dude… Why have I not seen this before! I have constructed entire place in notepad++. Where is this magic script? Yeah, SOME of the internal sectors will have double walls, but it will not affect gameplay
Is it possible to add new building without recompiling code? I haven’t seen how 3-by-3 buildings are defined in json.

Actually, if you use the code view and paste the 72x72 map I’ll use it as the example for the utility walk-through… should be able to do it tonight or tomorrow.

Ya, you should be able to add buildings without re-compiling since everything is in jsons… you would have to either create a new world or possible gen a new world map.