v50 Steam/Premium information for editors
  • 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.
This notice may be cached—the current version can be found here.

v0.34:Minecart

From Dwarf Fortress Wiki
Revision as of 10:43, 7 September 2012 by TinyPirate (talk | contribs) (Added "minecart logic" link near top.)
Jump to navigation Jump to search
This article is about an older version of DF.

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 enablin 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 (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.

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, 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. It's also worth noting that bridges do not automatically have a low pathfinding traffic priority assigned to them, however.

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:

  1. A departure mode (Guide, Ride or Push).
  2. A departure direction (NSEW).
  3. A timer, before which the departure condition cannot be met.
  4. 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

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 upon activation. 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 built on the square 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).

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 apparently be placed directly on ramps to help pull carts up Z levels. Currently rollers can only be placed on ramps if it would result in it being connected to a preexisting power connection (gears, axles, or pumps). Rollers will transfer power along their sides but not from their front or back (the edges on the track).

Care must be taken in glaciers and other extremely cold biomes, since rollers can be rendered inoperable when exposed to freezing temperatures.

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╥
      ║
      RO
      RO
A╞════R════╡C


The 'O's represent walls that keep the cart on the track during the switching process The 'R's are a single 3 tile roller pushing from South to North on slow speed (slowest is too slow to get the minecart to change directions, and I have not yet experimented with higher speeds). 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 some disadvantages: it requires power, and riding dwarves will dismount at the intersection. 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 it's 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:

Stockpiles designated.

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:

Track carving designation.

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.

Track carved.

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:

Track stop designation. Select dumping direction.

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.

Track stop constructed.

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:

Stop 1 designation. Route definition, in progress.

Move the cursor again, to the output end of the track, and press s again to define the second stop:

Stop 2 designation. Route definition, two stops.
Stops are not defined yet.

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:

Default stop definition.

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 1, defined.

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:

Stop 2, defined.

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:

Route, fully defined.

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).

Capacity

Minecarts have five times the capacity of wheelbarrows, which is an enormous amount. A single minecart can carry 2500 rolls of cloth, for example, or even a hundred stone blocks. Unfortunately, loading 2500 boulders onto a minecart is not possible.

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
  • Dwarves cannot guide a minecart through an unlocked door unless another dwarf opens the doorBug:6056