- v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
- Use this page to report any issues related to the migration.
v0.34:Minecart
This article is about an older version of DF. |
This feature has one or more outstanding bugs. Please view the Bugs section for details. |
A minecart is a tool used mostly for hauling. It is made of wood at a carpenter's workshop, or metal at a metalsmith's forge. Minecarts store up to five times as many items as wheelbarrows and are quite a bit faster than hauling dwarves, but have the disadvantage of requiring a dedicated track network and a complex route setup. Minecart tracks also take up a lot of space, may be complicated to construct, and can be resource-intensive.
Just like wheelbarrows, minecarts are considered items and are stored in a furniture stockpile. Despite their five times greater capacity, they are only one third larger than wheelbarrows and are identical in base value when made from the same material (the value may differ due to the item quality). As items, thieves or even mischievous animals can steal minecarts, even when moving on a track. If a minecart is moving fast enough, or if it has a rider, thieves will be unable to steal the minecarts.
Although most of the utility of minecarts is in fortress mode, an adventurer can also ride in a minecart. Adventurers can also pick up and relocate minecarts.
Since their introduction in version 0.34.08, a new hauling labor preference was added to all dwarves, called "Push/Haul Vehicles", turned on by default.
The invention of minecarts revolutionized the Science of Dwarfputing by enabling smaller, faster logic systems to be built.
Track
Tracks can be built in two ways:
- A single-tile wide strip of natural stone can be designated to be carved (with d T), which will create a straight two-way track. The creation of corners, crossings, and T-junctions is as simple as designating another strip of track that overlaps an existant or newly-designated track. Engraved tracks are removed by smoothing the rock they're on, which results in a smooth floor (that can be re-engraved if necessary), or by building a floor on top and subsequently removing it.
- The carving of natural ramps is a little more confusing: to carve a two-way track on a ramp (natural only, does not work on constructed ramps), you must designate the ramp and one square beyond in the direction you want the track to go. For the side of the ramp square you want to head upward, there must be either a natural or constructed wall in the square next to it, otherwise the game assumes you are trying to carve it on the same level -- this can result in the track being carved underneath a door or other object. If you have accidentally done this, you can correct it by smoothing the ramp and constructing a single square of wall next to it, then re-carving the ramp correctly. (However, the wall must stay there permanently, removing it will disconnect the track.)
- Tracks can also be built as regular constructions (through b C T). This method is resource-expensive, since each track tile requires one stone, bar, or block for construction, and time-consuming, since you can't designate strips larger than 10 tiles at a time. Corners, crossings, T-junctions, and ramps also have to be designated individually. However, it is usually the only way to build tracks above ground or on soil (barring the creation of obsidian), and the only way to create one-way tracks. Constructed tracks are designated for removal like any regular construction; be aware that removing track ramps built on top of natural ones will also remove the original ramp, leaving a flat floor.
- When constructing track ramps, the stated direction is the upper edge of the ramp. For example, a track going up from West to East would require, starting from the West, a Track (EW), a Track/Ramp (E) and a Wall behind the ramp. Incorrectly placed ramps result in minecarts ignoring the ramp and crashing into the supporting wall. They will not, however, display as unusable.
Every track, when complete, will designate the tile with a low-priority traffic order. This reduces the odds of dwarves walking into a high-speed minecart; however, it should be noted that pets and livestock ignore traffic orders. Note that removing the track doesn't reset that tile back to normal traffic priority, so you may wish to manually clean up traffic designation afterward. Also note that bridges that are used as tracks don't have their traffic priority changed automatically (since they're just normal bridges), which could cause dwarves to pathfind normally through dangerous minecart entrances in your fort's walls if you're not careful.
As constructions or tile features, doors and other furniture can be built on tracks. A door or floodgate can be turned on or off by a lever, effectively controlling the flow of automated minecarts. This may be dangerous fun, however.
Bridges can also act as tracks, but only if they're lowered or not retracted. This property can enable levers to turn tracks on and off. However, care should be taken to ensure that such bridges are never operated while a cart is on top of them, as the cart will be flung off the track. It's worth noting that it's often faster, and cheaper, to construct large bridges than long sections of constructed track.
Hauling route
The proper setting up of routes is essential for a working rail system. Routes, stops, departure conditions and stockpile links are managed from the hauling menu.
Route
New routes are created with the hauling key. Existing ones can be removed (without confirmation) with the x key, and also nicknamed. Before operating, the route must have at least one vehicle assigned to it (this can be done with either the route or a stop selected). Assigning a full minecart to a route may result in a slow hauling job if the contents are heavy.
Stop
Stops are designated by moving the cursor on top of the desired tile and pressing the s key afterwards. They can be removed with and nicknamed with the same hotkeys as routes. Stops can also be reordered with the promote key. Without a definition, however, a stop is fairly useless: pressing the Enter key with a stop selected in the route menu opens its stop definition screen, from which departure conditions and stockpile links can be set up.
Stockpile links
By placing the cursor on top of a stockpile and using s, you can create stockpile links for a track stop. Links can also be redefined by selecting them, placing the cursor over a different stockpile, and pressing p.
Departure condition
Departure conditions involve setting conditions in which the minecart will leave on the route. Each condition includes:
- A departure mode (Guide, Ride or Push).
- A departure direction (NSEW).
- A timer, before which the departure condition cannot be met.
- Conditions on the amount of items in the cart.
Departure conditions are created with the n key. A new departure condition will read: "guide north immediately when empty of desired items". This condition can be changed between basic presets with c. "Advanced" mode (C) allows for more precise control over departure conditions: fine tuning the percentage from 0 to 100 in 25% steps (f and F), switching it being either the maximum or the minimum amount of items for the condition to be met (m), and whether the cart accepts all or only a specific set of items (l). Common to both screens are the departure mode (p, Push, Ride or Guide), direction, and timer (t and T) options.
To have a cart only carry a specific set of items, the stop can be set to only carry "desired" items, opening the selection screen with the Enter key while having said stop condition selected, and toggling as desired, or it can simply be linked to a restricted stockpile and set to depart with any items.
Physics
Minecart physics depend greatly on the departure mode set in the route stop conditions.
When set to "Push" or "Ride", minecarts will move according to the regular laws of momentum, gaining speed when going downhill, losing it slowly due to friction when on a flat plane, and more quickly when going uphill. In these modes, minecarts will move along the track in a straight line until they either run off the tracks or encounter a turn. A minecart will continue straight at a T junction if possible but if it is not possible the track is treated as a dead end and may jump track. The cart's behavior also depends on the weight of its contents (including fluids and dwarves): heavily loaded carts are harder to accelerate and to stop, and gain more momentum when going downhill. In either case, dwarves can not push nor ride an unpowered cart up a ramp, bouncing back the direction it came. At best, this is a waste of time; at worst, it will give your cart-pushing dwarf a fun surprise. To solve this, the player can either use Rollers (see below) or set the cart to be Guided.
When set to "Guide", minecarts seem to ignore all laws of physics. They:
- Ignore the weight of any and all items inside. Therefore:
- Move at the speed of the dwarf that is guiding them. It is thus recommended to pick the most agile of your dwarves for cart-guiding tasks.
- Ignore working rollers.
- Will not collide with other guided carts even when a full frontal collision would be expected.
- Will go up ramps like nobody's business.
This is therefore the recommended method of transport for simple non-powered rail systems, despite it diverting a dwarf from other, potentially more important tasks.
Some samples with behavior:
A <-> B A <-> C A <-> B B╥ B╥ B╥ ║ ║ ║ A╞══╝ A╞══╩══╡C A╞══╬╗ You can only go A->B ╚╝ Works when the cart Works is in Guide mode.
In the second example above, if you attempt to "Push" from B to A or C, the cart will go careening off of the tracks.
Skipping
If a minecart is moving fast enough, it can skip over water or magma, making splashes of mist (or magma mist) as it attempts to move on them horizontally. This horizontal movement is independent of the minecart and its content's weight.
Track Jumping
If a minecart encounters the end of the track or a T junction where it can not continue straight it may jump off of the track if it is going fast enough. The minecart will now continue in a straight line until in encounters an obstacle, slows to a stop, or encounters another (properly aligned) Track. An escaped minecart will follow another track even if it is a corner.
Falling
When falling, a minecart appears to cause no damage upon collision with a creature, possibly to allow cart "stacking" across Z-levels. [Verify] A dwarf riding in a minecart that is dropped multiple z-levels suffers normal fall damage. Minecarts can fall through up/down stairs.
Stacking
If a minecart lands on another minecart in exactly the perfect orientation and time, they may form a stack (effectively a pillar) of minecarts. This pillar, aside from the megaprojects uses possible, is also useful for trap design with minecarts as the weaponry.
The location of the upper minecarts, above what seems to be thin air, can be confusing. These minecarts generally need to be struck with another minecart to move out, or have their support removed. The latter option can be somewhat dangerous, however.
Danger
Minecarts are not without danger. Although designating a track automatically sets the traffic designation to low, dwarves may still walk on them, and creatures ignore traffic designations altogether. If an unlucky dwarf or creature fails to dodge a minecart, they can be injured. Most of this danger can be avoided by setting the minecart hauling commands to guide instead of push or ride, as dwarves guiding minecarts will ignore traffic restrictions, by pasturing domestic animals, and preventing the access of other creatures to the tracks.
Danger does not always involve living victims: careless route designation can also result in minecarts careening off tracks or colliding with each other. If this occurs, the items may be scattered; this can cause even more hauling jobs than the minecart aimed to eliminate. Even better worse, scattered items, especially weapons, can injure passing dwarves or other creatures; in the words of Toady One the Great, "Accidental grapeshotting of the dining room should be possible now."
Of course, the danger of using minecarts means they can also be used as weapons by imaginative players.
Automation
Minecart-specific effects are implemented via track stops, rollers and pressure plates with "track" condition set. Since all three are considered buildings, they can't be built on the same square (however convenient track stop + pressure plate would be) nor a simple ramp, and are removed by q x.
Track stop
Track stops are constructions that allow further automation of minecart systems via adjustable features such as braking by friction and automatic dumping of contents. They can be built from logs, bars and blocks through b C S; friction amount, dumping toggle and dumping direction must be set before construction, and these settings can be neither changed nor seen thereafter; however, track stops can be linked to pressure plates or levers to toggle friction and dumping On or Off (trigger state is inverted: switch On = track stop Off). Take care not to set track stops at a loading site to dump their contents, or dwarves will never be able to fill the cart.
Track stops are not mandatory; in fact, their main use is in automated rail systems, to stop and hold extremely fast-moving minecarts or to dump contents mid-way without stopping. However, even in basic rail systems it can be useful to set a track stop to dump items: this saves time that dwarves would otherwise spend in removing items from the cart, time that is better spent driving the cart back to where it's needed.
If a stockpile is placed on the tile that a track stop is set to dump to, it can act as a quantum stockpile and any items dumped from a minecart that match the storage settings of the stockpile will remain there and accumulate. Normally trackstops are built on top of existing track to operate on moving minecarts, but they can also be used without tracks to create automatic quantum stockpiles (see also route example). It is not always desirable to collect ALL of certain items into one quantum stockpile, such as when distributing a material to multiple separate industries. You can link your quantum stockpile to various other stockpiles, ensuring that your dwarves will keep them supplied as necessary. Because quantum stockpiles never fill up like regular stockpiles, it may be a good idea to add a switch to turn them off.
Items dumped from a minecart at a track stop (or dumped by any other means) into open space fall through z-levels until they land on a solid surface. Items falling onto a designated stockpile will automatically be considered part of that stockpile, even if the stockpile is set to disallow those items (they will, however, be automatically moved to a more appropriate stockpile, if available). Items falling on top of a minecart will not fall "inside" the minecart. Use with caution; dwarves have fragile skulls.Bug:5945
Counter-intuitive to their construction method, track stops are considered buildings and must be removed by q x.
Roller
A roller is a powered machine component for the automated propulsion of minecarts. They are built with b M r, requiring a mechanic, one or more mechanisms and a rope. Rollers are very useful to maintain a cart's momentum along long routes, to get them to climb Z-levels without dwarfpower involved, and to get them to reach speeds unattainable by guiding dwarves. These devices are variable-length, variable-direction, and variable-power, all traits that can be set at construction time; at the highest speed, a roller uses two units of power per tile it is long.
Rollers may be placed directly on ramps to help pull carts up Z levels. Currently rollers can only be placed on up or down ramps or open spaces if this results in being connected to existing powered components (gears, axles, or pumps). For that matter, rollers themselves transfer power along their sides but not from their front or back (the edges on the track) - the opposite of how horizontal axles work. Care must be taken in glaciers and other extremely cold biomes, since rollers can be rendered inoperable when exposed to freezing temperatures. The effects of floorless rollers on carts are not yet documented.
Because of their one-way nature, rollers are unsuitable for most two-way minecart tracks. However, a minecart set to be guided is not affected by rollers at all — this allows a one-way track to be used in both directions. In addition, rollers do not affect minecarts when disengaged: switching mechanisms (such as a pressure plate attached to powering gear assembly) can be used to create complex paths.
Rollers cannot be powered from above.
Switching
A rudimentary track switch can be constructed by building a T-junction as illustrated below.
B╥ B╥ ║ ║ ║ -> ║ ║ ║ A╞════╚════╡C A╞════R════╡C
The 'R' is roller pushing from East to West. If the cart is pushed East from the stop at 'A' while the roller is activated, it will arrive at 'B'. If the roller is not running, it will arrive at 'C'.
This switch has a disadvantage - it requires power. An alternative non-powered solution uses controlled derailment, or a connecting bridge.
B╥ ║ ║ A╞════╝D ════╡C
Here the track between A and C is not continuous. The only continuous track is A->B, with a corner (not a T section). Fast moving carts will tend to derail at D and rejoin the track to C. Placing a door at D will prevent the derailment, so the cart continues to B. The door is operated by mechanisms elsewhere (typically, a lever, but some fun can be had with pressure plates).
If carts are moving too slowly to reliably derail at the corner, a retractable bridge may be used as a connector between A and C.
B╥ ║ ║ A╞════bbb════╡C
The bridge must overlap the corner so that it acts as if a T junction track when extended. When retracted, the corner reappears, so the slower carts will continue to B.
Controlling Speed
Minecarts can reach extremely high speeds, especially when descending multiple Z-levels. A minecart will derail at a track corner if its speed exceeds 0.5 m/s (here m/s really means tiles per step), unless the route in the direction of travel is blocked:
Will derail at > 0.5 m/s:
in ═╗-> out
Will not derail at > 0.5 m/s:
in ═╗O | v out
O is wall.
This behavior can be used to build a "speed limiter", that will ensure that when a minecart exits it is traveling below derail speed:
OOOO in ═╔═╗O out ═╬═╝O O╚S╝O OOOOO
O is wall, S is a Track Stop set to High Friction or lower. If the minecart is traveling below derailment speed it will not be effected.
Example
Let's construct a simple minecart route. This route will move stone blocks from an input stockpile to an output stockpile. We'll begin by creating the stockpiles:
The input stockpile is on the left; the output stockpile is on the right. We'll be moving blocks from left to right. Disable bins in both stockpiles, and set the input stockpile to accept only from links. Then make the stockpile take from the mason's workshop where the blocks are being produced.
Next, carve the track:
Note that the ends of the designation are uniquely shaped; this is automatic, and not anything you need to control. Now, wait for your engravers to come along and carve the track into the stone. (Your haulers will probably also fill up the input stockpile while you wait.)
In addition, while we're waiting for that to happen, we'll build an iron minecart in the forge.
When the track has been carved, it will look like the above (the track will be solid instead of flashing). Now, order a track stop to be constructed next to the output stockpile:
You must press d three times to select the dumping direction before placing the track stop. We want our blocks to be dumped into the output stockpile east of the track stop. Then wait for a mechanic to come along and build the track stop.
Now we'll define the actual route. This is done in the hauling menu. Press r to begin defining a route. Next, move the cursor to the input end of the track, and then press s to define the first stop:
Move the cursor again, to the output end of the track, and press s again to define the second stop:
There are several user interface features to note at this point. The stops have been positioned, but they haven't been defined yet, so there is a warning ! symbol by each of them. In the lower right corner, we see what the ! means. Also, note that the second stop is labeled in white, while the other two lines are grey. The white text is a selection indicator, and can be moved up and down by pressing +/-.
Next we need to define what our stops do. We want the minecart to be filled with blocks at the first stop, then travel to the second stop where it will dump its cargo, and then return. Press - to move the selection up to stop 1, and Enter to open it up. By default, the stop has three conditions:
We don't want any of these, so press x three times to delete them. This leaves us with a blank stop. Now we can add the conditions we actually want. Press n to begin adding the first condition, then d twice to change the direction from north to east. Then press c to change the condition from empty to full. This will instruct the minecart to be guided east when full of desired items.
To set the desired items, we create a stockpile link. Press s, then move the cursor to the input stockpile, then press p to select that stockpile. Now press Enter; this opens up a selection screen that resembles the stockpile customization screen. Move down to Blocks, enable them, then (if you wish) restrict it to stone blocks.
When you've done all that, stop 1 should look like this:
Stop 2 is much simpler. All we need to do is have the minecart return to the input stop. So, make a condition and change the direction:
Finally, we just have to assign our minecart. Go back to the route definition screen, and press v. Select the minecart, and press Enter.
Now we've got everything set up:
The V is red because the minecart hasn't been moved onto the track yet. Some dwarf will have to haul it from the forge to the first stop, by hand; this will take a while, especially if the forge is far away.
Once the minecart is in place, dwarves should fill it with blocks from the input stockpile, which will in turn be filled with blocks from the workshop where your mason has been toiling dutifully. When the minecart is full, the blocks will be dumped into the 1x1 stockpile on the right. Automatic quantum dumping!
Troubleshooting
Because of the complexity of the system, all but the most careful and experienced minecart users will encounter issues. Most route issues can be diagnosed and fixed from the hauling menu.
Symptom: ! Set dir/connect track message appears to the right of one or more stops
Possible Causes:
- The departure direction of the stop might be invalid. Edit the stop using Enter and pressd until it is pointing in a valid direction.
- The track stop might not be built on top of a track. The track stop must be deconstructed to remedy this issue.
- Your track might not be built correctly. Make sure all connected tracks between destinations are not one-way tracks.
- This can be especially confusing with ramps. To carve a two-way track on a (natural) ramp, you must designate the ramp and one square beyond in the direction you want the track to go.
- Ramps must have a solid block on the side opposite to the track, or they will neither work nor be marked as "unusable". The solid block can be natural or constructed.
- The desired/kept items might not be configured correctly.
Symptom: The status 0% V always appears to the right of one stop.
Possible Causes:
- The stop may not be set to take from a stockpile. Edit the Stop using Enter and make sure you see a message like "Take from Stockpile #1".
- The take conditions must correspond with the contents of the stockpile.
- The track stop may be set to dump. A track stop set to dump cannot be filled. You must either set the stop to a time-based departure or deconstruct the track stop and rebuild it without dumping.
- Make sure the minecart itself has not been designated to be dumped (such as when using mass-dump).
Symptom: A dwarf picks up the minecart and carries it to its destination.
- See Quirks
Quirks
This little quirk concerns dwarf managed minecarts and may or may not apply to automatic minecarts. If a track which was previously open becomes blocked (ex. flipping a switch connected to a floodgate you've built on the track to raise it) and the conditions for departure are met, instead of refusing to ride/guide the minecart or ride/guide it until it reaches the obstacle, the dwarf will pick up the minecart off the tracks and haul it to its scheduled destination on foot. If the distance is long enough and the weight of the cart heavy enough (due to being filled with heavy items such as stones), the dwarf may drop the cart because of fatigue/hunger/thirst before reaching the destination. This will cancel that vehicle setting job and make another dwarf come by and attempt to haul the cart to the nearest appropriate stockpile where another dwarf will pick up the cart and attempt to haul it to its initial stop. If the stockpile is far enough from initial stop, this second dwarf who is attempting to place the minecart on its tracks may also drop the minecart out of fatigue/hunger/thirst creating a loop that will go on until a dwarf with enough endurance manages to place the minecart where it belongs.
In fact, it seems dwarves are more than happy to attempt to carry a minecart from one stop to another even if just waiting until the track is open again would be the more sane option.
Dwarves will also carry a minecart to its next stop if the direction specified is incorrect (or invalid). This can often occur when using the default departure settings and forgetting to set the direction of each condition.
Capacity
Minecarts have five times the capacity of wheelbarrows, which is an enormous amount. A single minecart can carry 5 boulders, or 10 logs, or 83 blocks or bars, 500 prepared meals or 2500 rolls of cloth. Calculating by the item size (dividing the cart capacity by the item size), one cart also should be able of carry 500 spiked balls, 625 maces or 1250 spears.
A glumprong minecart full with 5 pitchblende boulders weighs 3848Γ (the cart alone is 48Γ).
A gold minecart is 772Γ, full of gold bars is 10398Γ.
A platinum minecart weighs 856Γ.
If slade minecarts were possible, they would weigh 8000Γ empty.
Water and magma can also be loaded into minecarts by submerging them to a depth of at least 6/7, and dumped by a constructed track stop. Loading fluids onto minecarts can be difficult because their weight can slow the minecart down greatly. Curiously, filling a minecart with magma does not injure a dwarf riding it. A minecart will hold enough magma to increase the depth of a single tile by 2. This amount is listed as 833 units, which weigh 999Γ. An iron or steel cart filled with magma weighs 1313Γ. An adamantine one weighs 1007Γ.
The capacity in a minecart affects whether a pressure plate triggers or not, based on the pressure plate's setting.
Bugs
- If you set up lots of routes and stops and then resize your screen, the list will scroll off-screen in the hauling menu. You can still navigate the list with keyboard commands, but cannot see the stop/route name. This will be fixed in the next release.
- A dwarf will drop its baby, if it has one, when boarding a minecart set to be ridden.
- Tracks block wagon access to trade depots.Bug:6040
- How to circumvent: bridges double as tracks.
- Dwarves cannot guide a minecart through an unlocked door unless another dwarf opens the doorBug:6056