• If you have a mod, tool or prefab, please use the Resources section. Click Mods at the top of the forums.

Modding Biomes/Sub-biomes for rural/suburbs during City RNG

warmer

Well-known member
I have been modding the biome.xml RNG elements of the Wasteland biome quite a bit and my dream is to ensure the "rural parts" that are typically the outskirts, I can get to be closer to something like this to give the impression of a bombed suburb.

Can anyone point me to the location of the RNG xml that dictates city generation?

I believe I need to mod the (value="wasteland"/>) and (value="rural"/>) to make the RNG be similar to this, but I have no idea WHERE that actually is. Is that calling the biomes.xml? If so can you specify a custom sub biome? I think that would do EXACTLY what I am after if it works this way.

From rwgmixer.xml
 

<township name="wasteland_city">
        <property name="biomes" value="wasteland"/>
        <property name="outskirt_district" value="rural"/>
    </township>

    <township name="citybig">
        <property name="biomes" value="wasteland"/>
        <property name="outskirt_district" value="rural"/>
    </township>

image.png
image.png

 
Last edited by a moderator:
I have been modding the biome.xml RNG elements of the Wasteland biome quite a bit and my dream is to ensure the "rural parts" that are typically the outskirts, I can get to be closer to something like this to give the impression of a bombed suburb.

Can anyone point me to the location of the RNG xml that dictates city generation?

I believe I need to mod the (value="wasteland"/>) and (value="rural"/>) to make the RNG be similar to this, but I have no idea WHERE that actually is. Is that calling the biomes.xml? If so can you specify a custom sub biome? I think that would do EXACTLY what I am after if it works this way.

From rwgmixer.xml
 

<township name="wasteland_city">
        <property name="biomes" value="wasteland"/>
        <property name="outskirt_district" value="rural"/>
    </township>

    <township name="citybig">
        <property name="biomes" value="wasteland"/>
        <property name="outskirt_district" value="rural"/>
    </township>

View attachment 32204
View attachment 32205
I'm not sure exactly what you're trying to do here.  Do you want to NOT have the rural district tiles around the town?  Rural districts are going to look like rural districts (POI, roads, etc).  If you want just debris like that, that isn't part of the town districts at all.  That's just biomes.xml outside of towns.  If you want rural to be like this, you'd need to create new rural tiles that look like this and use those instead (preferably not called rural but a different district name that you use instead so that you aren't messing with the actual rural district).

 
Last edited by a moderator:
I'm not sure exactly what you're trying to do here.  Do you want to NOT have the rural district tiles around the town?  Rural districts are going to look like rural districts (POI, roads, etc).  If you want just debris like that, that isn't part of the town districts at all.  That's just biomes.xml outside of towns.  If you want rural to be like this, you'd need to create new rural tiles that look like this and use those instead (preferably not called rural but a different district name that you use instead so that you aren't messing with the actual rural district).
Gotcha. I think I can see where the rural district starts. IS that the red line with the defined brick pattern? What I am trying to do is make the edges of the towns in the wasteland feels more like this, many more broken remnants, I want it to feel like a WW2 carpet bombed area. A  last attempt to destroy the source of the virus kind of feel. I think the way to do this is with a sub biome that is always next to the rural district. Not sure if that is possible. Or I just need to edit the rural districts with more bombed out buildings. I don't necessarily want to mess with the rural district tiles, but I don't think there is a way to ensure it's always next to it without doing so.

image.png

 
Last edited by a moderator:
Gotcha. I think I can see where the rural district starts. IS that the red line with the defined brick pattern? What I am trying to do is make the edges of the towns in the wasteland feels more like this, many more broken remnants, I want it to feel like a WW2 carpet bombed area. A  last attempt to destroy the source of the virus kind of feel. I think the way to do this is with a sub biome that is always next to the rural district. Not sure if that is possible. Or I just need to edit the rural districts with more bombed out buildings. I don't necessarily want to mess with the rural district tiles, but I don't think there is a way to ensure it's always next to it without doing so.

View attachment 32206
Well, that is a gateway tile.  But any roads without the pattern on them will be wilderness roads and not part of a town.  Pretty much everything you're seeing below that red line (and on the left side) is wilderness and not related to towns.  If you want all wasteland wilderness to change how it looks, you can adjust things in biomes.xml for wasteland.  Look at     <!-- *** Wasteland: Main Biome --> section and you'll see the various parameters for it, including sub-biomes.  You'd probably be trying to increase probabilities for things like                 <decoration type="prefab" name="deco_remnant_stone_01" prob=".003"/> , though I don't know what each decoration looks like.  You'd need to look them up to see which ones you want more of.

If you instead want only the wasteland changed when it's close to a town... I'm not sure if that's possible without making an outskirt district that uses custom tiles that only have this kind of decoration, though you'll really need to use a lot of parts so they look random instead of just a repeating pattern.
 

 
Last edited by a moderator:
If you instead want only the wasteland changed when it's close to a town... I'm not sure if that's possible without making an outskirt district that uses custom tiles that only have this kind of decoration, though you'll really need to use a lot of parts so they look random instead of just a repeating pattern.
^ gotcha, ya I think this is the missing piece of the puzzle. I was hoping there was a solution using subbiomes. Do you know if they are randomly placed? I am guessing those are in the xml file, but they don't indicate a % of placement. I am assuming the sub biomes are a chunk in size.

 
^ gotcha, ya I think this is the missing piece of the puzzle. I was hoping there was a solution using subbiomes. Do you know if they are randomly placed? I am guessing those are in the xml file, but they don't indicate a % of placement. I am assuming the sub biomes are a chunk in size.
Yes, they are.  Probability is right below...

        <!-- *** Wasteland: Ore Sub Biome: Iron -->
        <subbiome prob="0.3"> 
 

I don't think you can set a sub-biome around a town.  I think your only option is a custom district for the outskirt that has tiles that look the way you want them to look.  It would take time to do, but isn't particularly difficult.  The main thing is to create at least one of every tile type (straight, corner, intersection, etc) and to use enough parts that will be randomized so you don't see patterns everywhere.  More of each tile type is also a good thing to help with variety and avoiding patterns.

 
Last edited by a moderator:
Yes, they are.  Probability is right below...

        <!-- *** Wasteland: Ore Sub Biome: Iron -->
        <subbiome prob="0.3"> 
 
Oh boy I feel dumb. I completely missed that. Is it possible to create your own sub biome with just a declaration in the xml file, or is there another hook somewhere else that will need to be created for it to be called during rwg? I am learning all this will trial and error, so I don't fully understand how things are related. I am figuring this out by changing one thing and testing and logging the results.

 
Oh boy I feel dumb. I completely missed that. Is it possible to create your own sub biome with just a declaration in the xml file, or is there another hook somewhere else that will need to be created for it to be called during rwg? I am learning all this will trial and error, so I don't fully understand how things are related. I am figuring this out by changing one thing and testing and logging the results.
I haven't ever tried, but I don't see any reason you can't create your own.  The sub-biomes in vanilla are basically just for placing the ore nodes, though they have some different decorations as well (somewhat), but you could create a sub-biome in the wasteland that was a forest terrain but still wasteland, for example.  Kind of an oasis (that example would probably look more accurate in the desert, of course).

 
I'm going to experiment with a Suburb Sub-biome. That might give me the type of vibe I am going for. Ideally I want the player to feel like they stumbled upon a blown up community/culdesac type scenario. That feels missing from the wasteland. It's completely covered in bricks and metal debris and no building, yet a lot of trees remain. My goals is to fix this in the biome. It feels like an error in realism or intention in it's current state

 
I believe that worked. I made a very heavily populated remnant sub biome and it certainly showed up in RWG

View attachment 32208
<!-- *** Wasteland: Bombed Culdesac Sub Biome: Bombed -->
        <subbiome prob="0.8"> 
            <layers>
                <layer depth="2" blockname="terrDestroyedStone"/> <layer depth="2" blockname="terrDirt"/>
                <layer depth="1" blockname="terrStone"> <resource blockname="terrGravel" prob="0.7830" rwgGenerationType="all"/> </layer>
                <layer depth="*" blockname="terrStone">
                    <resource blockname="terrOreIron" prob="0.6500" rwgGenerationType="all"/>
                    <resource blockname="terrGravel" prob="0.7830" rwgGenerationType="all"/>
                </layer>
                <layer depth="3" blockname="terrBedrock"/>
            </layers>
            <decorations>
                <decoration type="prefab" name="deco_iron_vein" checkresource="-7" onslopes="true" prob=".01657" rotatemax="3"/>
                <decoration type="block" blockname="treePineBurntLrg" prob="0.0001" rotatemax="7"/>
                <decoration type="block" blockname="treePineBurntMed" prob="0.0001" rotatemax="7"/>
                <decoration type="block" blockname="treePineBurntFullMed" prob="0.0001" rotatemax="7"/>
                <decoration type="prefab" name="deco_remnant_stone_01" prob=".2"/>
                <decoration type="prefab" name="deco_remnant_stone_02" prob=".2"/>
                <decoration type="prefab" name="deco_remnant_stone_03" prob=".2"/>
                <decoration type="prefab" name="deco_remnant_stone_04" prob=".2"/>
                <decoration type="prefab" name="deco_remnant_stone_05" prob=".2"/>
                <decoration type="prefab" name="deco_remnant_wood_01" prob=".04"/>
                <decoration type="prefab" name="deco_remnant_wood_02" prob=".04"/>
                <decoration type="block" blockname="resourceRock01" prob=".00033" rotatemax="3"/>
                <decoration type="block" blockname="resourceRock02" prob=".00033" rotatemax="3"/>
                <decoration type="block" blockname="cntBurntForestRandomLootHelper" prob="0.00025"/>
                <decoration type="block" blockname="rock01" prob=".01"/>
                <decoration type="block" blockname="rock02" prob=".01"/>
                <decoration type="block" blockname="driftwood" prob="0.001" rotatemax="7"/>
                <decoration type="block" blockname="driftwood2" prob="0.001" rotatemax="7"/>
                <decoration type="block" blockname="driftwood3" prob="0.0005" rotatemax="7"/>
                <decoration type="block" blockname="treeBrownGrassDiagonal" prob=".5"/>
                <decoration type="block" blockname="plantShrubDead" prob="0.0001" rotatemax="7"/>
                <decoration type="block" blockname="emberPileDeco1" prob="0.001" rotatemax="7"/>
                <decoration type="block" blockname="emberPileDeco2" prob="0.001" rotatemax="7"/>
                <decoration type="block" blockname="emberPileDeco3" prob="0.01" rotatemax="7"/>
                <decoration type="block" blockname="emberPileDeco4" prob="0.01" rotatemax="7"/>
                <decoration type="prefab" name="deco_rubble_stone_01" prob=".0065"/>
                <decoration type="prefab" name="deco_rubble_stone_02" prob=".0065"/>
                <decoration type="prefab" name="deco_rubble_stone_03" prob=".005"/>
                <decoration type="prefab" name="deco_rubble_stone_04" prob=".003"/>
                <decoration type="prefab" name="deco_rubble_stone_05" prob=".003"/>
                <decoration type="prefab" name="deco_rubble_stone_06" prob=".0065"/>
                <decoration type="prefab" name="deco_rubble_stone_07" prob=".0065"/>
                <decoration type="prefab" name="deco_rubble_stone_08" prob=".0065"/>
                <decoration type="prefab" name="deco_rubble_stone_09" prob=".003"/>
                <decoration type="prefab" name="deco_rubble_stone_10" prob=".003"/>
                <decoration type="block" blockname="carsRandomHelper" prob="0.01" rotatemax="3"/>
                <decoration type="block" blockname="carWrecksRandomHelper" prob="0.002" rotatemax="3"/>
                <decoration type="block" blockname="treeBrownGrassDiagonal" prob=".05"/>
                <decoration type="block" blockname="plantShrubDead" prob="0.0001" rotatemax="7"/>
                <decoration type="block" blockname="mineCandyTin" prob="0.00015"/>
                <decoration type="block" blockname="mineHubcap" prob="0.0001"/>
                <decoration type="block" blockname="hubcapNoMine" prob="0.0011"/>
                
                <!-- *** New_Destruction_Blocks -->
                <decoration type="block" blockname="rubblePileBricks" prob=".0024" rotatemax="7"/>
                <decoration type="block" blockname="rubblePileBricksLong" prob=".0024" rotatemax="7"/>
                <decoration type="block" blockname="rubblePileBricksSmall" prob=".0024" rotatemax="7"/>
                <decoration type="block" blockname="rubblePileCement" prob=".0024" rotatemax="7"/>
            </decorations>
        </subbiome>

 
Back
Top