RimWorld

RimWorld

82 ratings
Multi-Floors mod illustration
By telardo
A brief explanation of features in my mod MultiFloors.
2
3
   
Award
Favorite
Favorited
Unfavorite
Build upwards and downwards
Stairs are added to the MultiFloors category.
There is no functional differences between them. Choose the style and size as you like.

To add a new floor, simply build either an up stair or a down stair. Once built, the stair automatically generates a new map with an exit.

An entrance / exit pair links two maps together, so your colonists can move between levels.
You can manually order pawns to switch levels by right clicking the stairs. And they will use it to enter other levels for jobs automatically.

If you build multiple stairs facing the same direction on one map, each will link to an exit at different positions on the connected map. For example, you might have two separate entrances on the ground leading to different spots on the basement level (B1).

By the way, basements can include naturally generated cave systems, hives, and ore deposits—sometimes you may need to mine a little further to reveal the entire structure.

Upper levels
Upper floors are built on top of the roofs of the lower levels. By constructing roofs on a lower floor, you create additional buildable space on the level above.

Note: To avoid freezing the game in mountainous biomes, expansion is limited to a maximum of 9 sections. Each section consists of a 17×17 cell area centered around the staircase. It can be changed in the mod settings.

The white, stony floors on the second level indicate buildable space; your colonists will stay within these confines and cannot walk outside of them.

An top-view renderer on upper levels makes it possible to see the terrain and things on lower levels. Here is a top view for a three-story buildings. (Moving pawns and dynamic things are invisible though.)
Switch level view
There are three ways to move between levels:
  • Use the hotkeys N and M to switch levels.

  • Click on the stairs, then use the "View Connected Level" gizmo.

  • Click a colonist from the colonist bar to jump to their location.
Delete a floor
To delete a generated floor, first enable Development Mode in your game settings.

Then, select the entrance that connects to the floor you wish to remove—for instance, if you want to delete the second floor, click on an upstairs entrance from your ground level.


Next, click the "Delete connected level" gizmo. This will remove the linked floor as well as any additional floors branching from it (for example, the third, fourth, fifth floors, etc.).

Warning: This action is irreversible. All structures, items, and pawns on the deleted floors will be permanently lost. Be absolutely sure you want to proceed.

Finally, after deleting any levels, save your game and reload once. This helps clear out any unhandled cases that might cause issues later.
Food, joy, rest and mediation
For better performance, Food, rest and joy, meditation works with level schedule, since these needs are typically satisfied on a specific floor.

You can set a “desire level” for these needs in the Floors menu.

By default, when you assign a bed to a pawn, that floor becomes their living level. You can adjust this behavior in the mod settings.

When a pawn’s need for food, rest, joy, or meditation drops too low, they’ll automatically move to the designated floor to take care of that need, if they aren’t already there.
Cross-level work scanning
Billed work
All jobs in the game fall into one of two categories:
  • Simple works: Tasks like mining that don’t require additional resources.
  • Billed works: Tasks that need resources to be hauled first, such as cooking.

Pawns will automatically complete simple works on any floor. As for billed works, as mentioned in the Limitations, they still assume the same map. This means that the required resources must already be present on the same level where the job is located.

For example:
  • If a pawn is on the 2nd floor and there's a mining job on the 1st floor, they can simply move to the 1st floor to finish it.
  • If a pawn is on the 2nd floor and there's a cooking job on the 1st floor with all the necessary ingredients already there, the job will be completed automatically.
  • However, if a pawn is on the 2nd floor and there's a helmet-making job on the 4th floor but no available materials, the job cannot be completed.

Exceptions
Some tasks have been specially patched to work across floors:
  • Deliver resources to construction.
  • Fix broken down electronics.
For example, a pawn on the 2nd floor can move to B1 to pick up steels and deliver it to a blueprint at B2.

Scanning priority
This mod offers two different modes for how pawns scan for work, which you can adjust in the mod settings:
  • Unprioritized. Pawns will first look for jobs on their current map—just like in vanilla RimWorld. If there aren’t any available, they’ll then search other levels, starting with the closest and moving outward.
  • Threshold based prioritized (Default). In this mode, tasks are scanned in a specific order:
    • High-priority jobs on the current level.
    • High-priority jobs on other levels.
    • Low-priority jobs on the current level.
    • Low-priority jobs on other levels.
In the following settings, with the threshold set to 2, hauling and mining are treated as high-priority. This means pawns will look for these tasks on their current level first, then on nearby levels, before scanning for lower-priority tasks.

Tips: You can find priority in Floors tab - Priority column


You can change the threshold in the mod settings. If you lower it to 1, only tasks with a priority of 1 will be considered high priority.

Now Lozz will focus on finishing hauling jobs on his current map first, then look for hauling tasks on other levels, and only afterward tackle other jobs.


Bottom line: To have pawns complete tasks on other levels more often, limit the number of high priority work types.
In a late-game colony, try reduce the number of work types for pawns for better performance.
Construction and delivery
So, we enter a new level and start planning construction. “Oops, there aren’t enough resources here. Let’s haul them first.” But don’t worry—you don’t actually need to!

Constructions are treated specially. Since the number of pending blueprints and frames is assumed to be small, we’ve added a cross-level work giver to handle deliveries automatically.

Here’s how it works:
  • You can place blueprints on the new level, even if the required resources are on other levels.
  • Pawns will automatically deliver the materials and start construction.
Cross-level hauling 1
Awesome! Now work can be scanned automatically! But wait—you mentioned "if enough ingredients are present." How can we ensure that?
Searching for haulable items across all levels and figuring out where they should go sounds overwhelming and could seriously strain your CPU. To handle this efficiently, we provide several options for hauling between levels:

Old-School "Pit Gate"
Stairs function like traditional pit gates. Simply select the stairs, and the Enter gizmo will open a vanilla trade dialog. You can then choose which pawns and items to transfer between floors. For example, you can move animals between levels in this way.

Automatic "Pit Gate"
Opening the trade window repeatedly can be tedious, so we’ve added some automation. Each stair now has a Transfer Tab that acts like a container with customizable storage settings. You can specify which items to allow for transfer in this tab.
The stairs will periodically search for the allowed items and automatically add them to the load list—similar to how you handle things in the trade window, but hands-free.
To prevent overloading or unnecessary transfers (e.g., sending all your wood to another floor), we’ve included a Policy Tab. In this tab:
You can search for thing defs and set a maximum allowed count.
If the resource counter on the target level shows that there are enough of an item, it won’t add that item to the load list anymore.
A negative count would limit the amount to leave at this level. For example, it will try to keep 500 cloths on current floor and send all the rest to the linked level.

Stop Being Lazy
When pawns haul items to a pit gate, they typically drop the items there and stop. Why not have them go the extra mile and put things into storage on the next floor?
To solve this, we’ve added a designator:
Right-click the designator to set a destination floor, then select the items you want hauled to that level.
Pawns will scan for designated items and move them to the specified floor, even if they’re currently on another level.
We’ve also included a reverse option:
You can select items first, then choose the destination level.


Workbench Linking
This new feature allows you to link a workbench with another level. It will periodically check whether we have enough ingredients for bills on current level. If not, it will try to find available ingredients on the linked level and designate a haul command to this level. When using this feature, please limit the number of allowed thing defs in the bill settings to avoid a huge performance impact.
Cross-level hauling 2
The cross-level hauling was introduced in V1.1.6.0 to simplify resource management by removing the need for complex transfer policies. But first, let's take a look at the default hauling logic.

Vanilla hauling logic
In vanilla, pawns handle hauling tasks using two basic rules:
  • For items not in any stockpile
    Pawns will haul them to a nearest highest priority stockpile that allows it.
  • For items already in the stockpile
    If an item is in a stockpile but there’s another stockpile with a higher priority that also accepts it, the pawn will haul the item to that higher-priority stockpile.

Cross level hauling designator
We already have a "Haul to" designator to ask pawns to haul specific things to a level. Now all we need to do is to automate this process. It works as follows:

  • For items not in any stockpile
    If a pawn finds an item on the current floor that isn’t stored anywhere, and there’s a stockpile accepting it on another level with a higher priority than any stockpile on the current floor, that item is automatically marked to be hauled to the higher-priority stockpile on the other floor.
  • For items already in the stockpile
    Similarly, if an item is already in a stockpile but a stockpile on another level exists that accepts it and has a higher priority, the designator marks that item for cross-level hauling.

This automatic designator would cycles over all levels periodically and mark things to be hauled.

As mentioned earlier, the new hauling system is more automated but not as efficient as manually setting up transfer policies. If you prefer full control over what gets hauled between levels, you can disable the new system in the mod settings and go back to use those old hauling features.
Power, heat and gas
Stairs will regularly exchange temperature and gas between the two rooms they connect.

Power transmission is handled a bit differently since stairs function as "electronic devices" that can either consume or output power.

Simply connect them to your power net on each level

By default, power flows between levels on demand. For example, 300W of power would be sent to another level because of the demand from those three flood lights. On this level, the stairs works as a electronic device with -300W power output.


Note 1: You can place generators anywhere. If the total power output is higher than the total demand, the extra power will be evenly distributed across all levels to charge batteries. If there’s not enough power, the system will draw from those batteries instead.

Note 2: For electronic devices with fluctuating output, like heaters and coolers, it's recommended to place a battery on that level to prevent them from flickering.
Elevators


  • Elevators provide an efficient means for pawns to move between multiple levels. Pawns utilize elevators automatically, similar to stairs, and will prioritize them when navigating longer paths.
  • Currently, there are two types of elevators available: wooden and modern. The modern elevator offers slightly faster transportation but requires power to operate.
  • It's essential to construct elevators on the same vertical cell across all levels; the "Build on upper/lower level" gizmo can assist in placing blueprints accordingly.
  • Once built, you can use the "Link Elevators" gizmo to link them together and make it functional.
  • Unlike stairs, elevators do not transfer power, heat, or gas between levels.
  • Due to rendering limitations, only one pawn can use an elevator at a time.
  • A "Transfer vehicle" gizmo is available to facilitate moving vehicles between levels when they are nearby.

Pawns transfer
  • You can select colonists and right-click on stairs to send them to any level you want.
  • At each stairway, you can also use the vanilla "Enter" gizmo to transfer prisoners and animals between levels.
  • Alternatively, you can draft a colonist and carry them to the desired level manually.
  • For entities on platforms, simply right-click on them to move them to another level.


  • When a pawn is drafted, he can capture, arrest or rescue the target to other levels.


    • You need to select the level once clicked:

    • Then select the bed for the target. Note that you need a prisoner bed for arresting / capturing.

Misc
  • Raiders should only arrive at the ground.
  • Raiders can use stairs to reach other levels. Be prepared.
  • Some entities in Anomaly would do so too.
  • Drop pod raid would break all roof on upper levels until it hits the ground.
  • If the roof is broken, things on upper levels will fall down and be damaged.
  • Wind turbines won't work on upper levels.
  • Trade ships only arrive at the ground.
  • You can call boss groups in Biotech on other levels and they will arrive at the ground.
  • You can build the throne room on other levels and start bestowing ceremony there.
  • You can perform rituals on other levels.
  • Begin ritual dialog only shows pawns on current map. But there is a "Gather" gizmo for gathering pawns on other levels conveniently.
Hospitality
A simple patch for Hospitality is included. You can assign a living floor for your guests in Guest Tab - Level (Click the checkbox on the left once). Once set, they'll move to the chosen level and stay there until when they should leave. However, they won't switch levels as colonists, so you might have to set up your restaurant and shopping areas on that level.
VE Pipe System
A pipe connector is added for transferring resources in the pipe network from one level to another.
It can be found in MultiFloors category. Basically, it works by drawing resources from containers in one network then pushing it into another.

Here's how to set it up if you want to send resources from B1 to G:
  • Build one pipe connector in B1.

  • Use the Set pipe net def Gizmo to choose the resource.

  • Build a upper pipe connector at the same location in G. (You can use the Build upper Gizmo)

  • Set its resource as well.
  • Use the Link upper or Link lower Gizmo to link two connectors together.

  • Set the connector in B1 as the Exporter with the Exporting Gizmo.

  • (Optional) Adjust the transmission rate with the Rate Gizmo.

  • Ensure the connectors are connected to your pipe networks (there should be a nearby pipe).

Notes:
  • Resources are transferred every 250 ticks.
  • For nutrient paste network, set a lower transmission rate since the available resource amount is small.
  • Both networks must have storage containers. It won’t work with efficiency networks as they lack a storage concept.
  • Once you make changes to the network, you may need to use the Reconnect Gizmo to reconnect it to the network again.
Dub's Bad Hygiene and Rimefeller
Dub's Bad Hygiene
This mod utilizes the built-in multi-level support in DBH. I’m not completely sure how the internal mechanics work, but based on my testing, the water pipeline is shared across levels. You can build water wells on any floor then branch from it supply water to towers on different floors.

Rimefeller
You can transfer chemfuel between levels with the pipe connector in MultiFloors category.
Here's how to set it up if you want to send chemfuel from B1 to G:
  • Build one pipe connector in B1.

  • Build a upper pipe connector at the same location in G. (You can use the Build upper Gizmo)

  • Use the Link upper or Link lower Gizmo to link two connectors together.

  • Set the connector in B1 as the Exporter with the Exporting Gizmo.

  • Ensure the connectors are connected to your pipe networks (there should be a nearby pipe).
Remarks on performance impact
This mod isn’t completely free, but I've tried my best to optimize it.

When you have no extra levels
Only a handful of checks run to confirm there really are no other levels, so the cost is almost zero.

When you do have extra levels

Component
Explanation
How it scales
Tips
Map ticking
Each level is treated as its own map and ticks independently.
Directly with the number of maps.
-
Work scanning
If a pawn can’t find a job on its current level, it scans the others.
Worst-case: many idle pawns failing on every level.
Restrict each pawn’s allowed work types.
Pawn switching
Moving between maps despawns the pawn from one and spawns it in the other. (Vanilla method is not free)
With how often pawns change levels.
-
Cross-level hauling
The price of automation: more stockpiles = more checks.
With the total number of stockpiles across all levels.
-
Pathing
Reachability between stairs is pre-computed. On each level, vanilla handles the actual pathing.
With the number of stairs in your colony.
Minimize redundant stair placements.
44 Comments
Eska Oct 7 @ 6:16pm 
Hi, not sure what I'm doing wrong, I tried to create an hemogen farm in a basement ( with vanilla nutrient paste expanded ) but none of the pipe connector want to connect to the cable network despite everything being connected, is there some range limit to the pipes perhaps ?
ShadowH4nD Sep 26 @ 8:30pm 
Is there a way to default the guest level for new guests? I can get them to access L2 but I have to manually do it for each guest, each time
Arswind Jun 21 @ 11:18am 
i cant connect helixien gas pipe
Vendrette Jun 19 @ 2:33pm 
Whoa. Somebody actually made a working Z levels mod. Amazing.
era Jun 16 @ 10:20am 
Is there some way of sending crude oil instead of chemfuel using Rimefeller?
condottiere Jun 10 @ 6:00am 
@Rave Hawk: it does work, if you set up your pawn priorities and stockpiles to have 1) high priority hauler pawns that haul first before doing any other job, and 2) small 2-4 tile critical stockpiles near your workbenches (i.e. dedicated shelves or modded storage furniture) that hold only the resources for the workbench bills.

I have my low to normal bulk storage containers on level B1 (just general dumping, completely not organized), and only a small just-in-time stockpile of resources enough for 2 workbill items at a time next to my workbenches on the G floor. As long as the haulers are hauling, works great. Did this before Multifloors as well, to reduce skilled pawn travel time.
condottiere Jun 10 @ 5:53am 
@InCogNiito: Do you have a stockpile of wood on that level? My basic understanding is that pawns won't do jobs (like building) if resources are not available on the same level as the job. Workbenches have a transfer function, but I don't understand yet how that works. Torches don't have workbills, so I think they work more like construction jobs in terms of finding resources. I make small critical stockpiles of necessary resources on each level. This mod also has policy options with negative numbers to keep a certain minimum of resource on a level.
InCogNiito Apr 11 @ 2:32pm 
Using medieval overhaul but my pawns won’t fill torches upstairs, how do I fix this?
Giltiti Apr 8 @ 6:18am 
Hello, sorry but i did not find any answers. I use Ideology, and my Ideology requires an Hospital. But Underground hospitals are not counting, and i have the mood debuff despite having an hospital. Is there a fix for this ?
Tilda Apr 4 @ 2:03pm 
thx