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.
Editing Minecart
Jump to navigation
Jump to search
Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.
If you are creating a redirect to the current version's page, do not use any namespace. For example: use #REDIRECT [[Cat]], not #REDIRECT [[Main:Cat]] or #REDIRECT [[cv:Cat]]. See DF:Versions for more information.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | {{Quality|Masterwork}} | + | {{Quality|Masterwork|08:15, 19 May 2015 (UTC)}} |
{{av}} | {{av}} | ||
+ | A '''minecart''' is a [[tool]] intended for [[hauling]], introduced in version 0.34.08. It can be made of [[wood]] at a [[carpenter's workshop]] or [[metal]] at a [[metalsmith's forge]] (using the [[Metal crafter|metalcrafting]] labor.) Minecarts store up to five times as many items as [[wheelbarrow]]s and are quite a bit faster than dwarves hauling objects by hand, but have the disadvantages of requiring a dedicated track network, a complex route planning phase, and the possibility of dwarves [[Fun|blundering into the path of carts filled with lead ore]]. Tracks may be carved into stone, or [[Construction|constructed]]; the latter allows above-ground routes, but these are more difficult to set up due to their additional [[building material|material requirements]]. | ||
− | [[ | + | Just like wheelbarrows, minecarts are considered [[item]]s and are stored in a [[furniture]] [[stockpile]]. Despite their five-times-greater capacity, they are only 33% larger than wheelbarrows and are identical in base [[item value|value]] when made from the same [[material]] (the value may differ due to the [[item quality]]). [[thief|Thieves]] or even mischievous animals can steal minecarts, even when they are moving on a track{{cite forum|109460/3289070}}. However, minecarts moving fast enough or being ridden cannot be stolen. |
− | + | Although most of the utility of minecarts is in [[fortress mode]], an [[adventure mode|adventurer]] can also ride in a minecart. Adventurers can also pick up and relocate minecarts. | |
The invention of minecarts revolutionized the [[minecart logic|Science of Dwarfputing]] by enabling smaller, faster logic systems to be built. | The invention of minecarts revolutionized the [[minecart logic|Science of Dwarfputing]] by enabling smaller, faster logic systems to be built. | ||
== Basic Minecart Usage == | == Basic Minecart Usage == | ||
− | + | Minecarts can be used to swiftly transport dwarves, [[flow|fluids]], and/or large amounts of items, but before you have a functional minecart there are several preconditions that need to be met. First of all you need an actual minecart, constructed either in a [[carpenter's workshop]] or [[metalsmith's forge]]. For the minecart to be able to move you also need to carve (with {{k|d}} {{k|T}}) or construct (with {{k|b}} {{k|C}} {{k|T}}) a track, which could be as simple as a straight line. Finally you need to construct stops on your track (with {{k|b}} {{k|C}} {{k|S}}) where the minecart will start and stop. | |
− | After you have created the stops and assigned a cart to the track, you must create logic routes connecting several stops and designate starting conditions for each | + | After you have created the stops and assigned a cart to the track, you must create logic routes connecting several stops and designate starting conditions for each stop. This is done with the {{k|h}}auling key. The most basic conditions are how the cart's movement is initiated and in which direction the cart should start moving. Carts can be either be Pushed (a dwarf stands at a stop and gives the cart a single push) or Guided (a dwarf continually pushes the cart forward, guiding it along the track). The [[hauling]] [[labor]] required for pushing and guiding carts is called "Push/Haul Vehicles" and is turned on by default. |
− | To control which items | + | To control which items to transport you can add conditions specifying: (1) which kind of items to be loaded, and unloaded, (2) stockpile links to define which stockpile(s) the items should be un/loaded to and from. |
===Capacity and weights === | ===Capacity and weights === | ||
− | Minecarts have | + | Minecarts have five times the [[Weight|capacity]] of [[wheelbarrow]]s. |
'''Examples of the capacity of one cart''' | '''Examples of the capacity of one cart''' | ||
Line 32: | Line 33: | ||
| [[block]]/[[bar]] | | [[block]]/[[bar]] | ||
| 83 | | 83 | ||
− | |||
− | |||
− | |||
|- | |- | ||
| [[Kitchen|prepared meals]] | | [[Kitchen|prepared meals]] | ||
Line 40: | Line 38: | ||
|- | |- | ||
| [[Trap_component#Spiked_ball|spiked balls]] | | [[Trap_component#Spiked_ball|spiked balls]] | ||
− | |||
− | |||
− | |||
| 500 | | 500 | ||
|- | |- | ||
Line 55: | Line 50: | ||
|} | |} | ||
− | The weight of the loaded minecart does not affect the initial velocity received from pushing or launching from a roller. | + | The weight of the loaded minecart does not affect the initial velocity received from pushing or launching from a roller. However, the load of a minecart ''does'' affect whether a [[pressure plate]] triggers or not, based on the pressure plate's setting. |
'''Weights of different carts''' | '''Weights of different carts''' | ||
Line 69: | Line 64: | ||
| 378Γ (10 oak logs) | | 378Γ (10 oak logs) | ||
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| platinum minecart | | platinum minecart | ||
| 856Γ | | 856Γ | ||
Line 90: | Line 76: | ||
! Material !! Minecart weight !! Content weight required to trigger !! Banana roasts required to trigger (for scale) | ! Material !! Minecart weight !! Content weight required to trigger !! Banana roasts required to trigger (for scale) | ||
|- | |- | ||
− | | [[ | + | | [[Bismuth]] (moods only) || 391 || 9 || 15 |
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| [[Brass]] || 342 || 8 || 14 | | [[Brass]] || 342 || 8 || 14 | ||
|- | |- | ||
− | | [[ | + | | [[Electrum]] || 596 || 4 || 7 |
|- | |- | ||
| [[Fine pewter]] || 291 || 9 || 15 | | [[Fine pewter]] || 291 || 9 || 15 | ||
+ | |- | ||
+ | | [[Glumprong]] || 48 || 2 || 4 | ||
|- | |- | ||
| [[Lay pewter]] || 291 || 9 || 15 | | [[Lay pewter]] || 291 || 9 || 15 | ||
+ | |- | ||
+ | | [[Nickel silver]] || 346 || 4 || 7 | ||
|- | |- | ||
| [[Tin]] || 291 || 9 || 15 | | [[Tin]] || 291 || 9 || 15 | ||
Line 108: | Line 94: | ||
| [[Trifle pewter]] || 291 || 9 || 15 | | [[Trifle pewter]] || 291 || 9 || 15 | ||
|} | |} | ||
− | |||
− | |||
=== Creating tracks === | === Creating tracks === | ||
− | + | Minecart tracks are made up of contiguous track, tracked ramp, or bridge tiles. Track tiles and tracked ramp tiles have a direction or series of directions associated with them. These directions dictate which directions a minecart on a given tile may move from that tile. For example, a Track NE (northeast) tile allows a minecart on it to move either north or east from its present position. Therefore, if you want your minecart to move east along a straight piece of track, then return west using that same track, you would need to use EW tracks so that the cart could travel east initially, then return west over the same track. Excluding designs in which the cart will "jump" tracks via a drop or other ramp, tracks must be valid end to end to work for most looped or straight-track applications. A single east only track tile in your line of east-west tracks will cause any route using the track to fail the moment it tries to go the wrong way over that tile. Minecart tracks can be built in two ways: Engraved/carved or constructed. A given minecart track need not use engraved or constructed elements exclusively, as the two methods can be used interchangeably depending on the needs of a given section of track. The way the tracks are built is slightly different between the two, as explained below. | |
====Simple tracks==== | ====Simple tracks==== | ||
Line 118: | Line 102: | ||
'''Carved''' | '''Carved''' | ||
− | A single-tile wide strip of natural stone can be designated to be [[Engraver|carved]] (with {{ | + | A single-tile wide strip of natural stone can be designated to be [[Engraver|carved]] (with {{K|d}} {{k|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 existent 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. Dwarves can carve corner tracks in one pass by designating the track carving twice and canceling unwanted carvings (with {{K|d}} {{K|x}}). Tracks can be engraved in any natural floor tile, rough, smooth and even over engravings, providing an easy method to remove low-quality or undesired floor engravings. Once a track has been engraved, it's important to check the track directions for each tile in the route carefully to make sure no mistakes were made by yourself or the game's track engraving logic. |
'''Constructed''' | '''Constructed''' | ||
− | Tracks can also be built as regular [[construction]]s (through {{ | + | Tracks can also be built as regular [[construction]]s (through {{K|b}} {{K|C}} {{K|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 longer 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 [[Obsidian farming|creation of obsidian]]). 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. |
====Ramps==== | ====Ramps==== | ||
Line 128: | Line 112: | ||
'''Carved''' | '''Carved''' | ||
− | 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 track '''starting on 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 | + | 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 track '''starting on 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.) |
'''Constructed''' | '''Constructed''' | ||
− | + | When constructing track ramps, the stated direction should be the same as the connected tracks. For example, a track going up from West to East would require, starting from the West, a Track (EW), a Track/Ramp (EW) and a Wall behind the ramp, underneath the section of track above it. Incorrectly placed ramps result in minecarts ignoring the ramp and crashing into the supporting wall. They will not, however, display as unusable as when the supporting wall is missing. | |
'''Examples of ramps''' | '''Examples of ramps''' | ||
Line 150: | Line 134: | ||
░░░░░ ░░░░░ | ░░░░░ ░░░░░ | ||
░░░░░ ══╗░░ | ░░░░░ ══╗░░ | ||
− | + | =▲░░ ░░▼░░ | |
░░░░░ ░░░░░ | ░░░░░ ░░░░░ | ||
}} | }} | ||
+ | you would need to connect the ramp on z +0 both to the west and to the north by issuing two "carve track" commands, one selecting the ramp and the track tile to the west, and another connecting the ramp tile with the wall to the north. An engraver would then carve a NW track corner into the ramp, allowing carts to pass the corner correctly both going up and down. Such track corners are perfectly serviceable for guided carts, but moving down a route of several of them by pushed or ridden cart is problematic - ramps on corners behave very counter-intuitively, resulting in loss of speed when going down and diagonal movement when going up. | ||
− | + | Moving to and from ramps (or between ramps "pointing" in different directions0 causes some non-trivial adjustments to speed and even moving along the tiles at a fixed speed ''unrelated to the entry/exit velocity values'', because transitions to/from ramps are processed differently and are not to be "skipped". This affects compact track/ramp combinations (such as e.g. a simple 2x2 ramp spiral) most, and combined with bouncing often makes them work not in the way one could expect. {{cite forum|144328/5705102}} | |
− | + | {{anchor|Tracks}} | |
=== Hauling route === | === Hauling route === | ||
Line 167: | Line 152: | ||
==== Stops ==== | ==== Stops ==== | ||
− | Stops are the individual waypoints that make up a hauling route. A given stop consists of the location of a tile, as well as conditions describing when, where, and how a cart should be moved after being stopped at that tile. Stops can be created from within the {{k|h}}auling menu, by placing the cursor over a tile and hitting {{k|s}} while highlighting the route (or a stop within) you've already designated. A minecart will begin its route at the first stop created, and continue through each subsequent stop, being guided, pushed, or ridden from each stop to the next depending on the conditions specified. In many basic minecart applications, the cart will end up at the same stop it began at, though this is not always the case. It is important to note that hauling stop order is enforced, even if there is no track. A dwarf will drag the cart overland back to a skipped stop in the route's list if your tracks bypass it somehow | + | Stops are the individual waypoints that make up a hauling route. A given stop consists of the location of a tile, as well as conditions describing when, where, and how a cart should be moved after being stopped at that tile. Stops can be created from within the {{k|h}}auling menu, by placing the cursor over a tile and hitting {{k|s}} while highlighting the route (or a stop within) you've already designated. A minecart will begin its route at the first stop created, and continue through each subsequent stop, being guided, pushed, or ridden from each stop to the next depending on the conditions specified. In many basic minecart applications, the cart will end up at the same stop it began at, though this is not always the case. It is important to note that hauling stop order is enforced, even if there is no track. A dwarf will drag the cart overland back to a skipped stop in the route's list if your tracks bypass it somehow. |
− | |||
− | |||
− | + | Once a stop has been placed, it is given a default set of conditions under which to move the minecart if it is stopped there. Each new stop gets the same default conditions regardless of the track it is placed upon (e.g. guide the cart to the north). For this reason new stops might get marked by yellow exclamation marks ({{DFtext|!|#ff0}}) due to invalid directions. One important thing to note is that as you place additional stops, the display will show paths between the stops you have defined. However, this is '''not''' necessarily the actual route the minecart will take once the route is in operation. For example, if a route were defined with two stops at opposite ends of a track with many twists and turns, a line will be drawn directly between those stops to show the order in which they will be visited. These route lines may crisscross all over the tracks, but so long as the track is valid end to end, the cart will follow the track from one stop to the next, even across twists, turns, and z-level changes. Stops, which are the steps that make up a route, should not be confused with Track Stops, described below. | |
===== Stockpile links ===== | ===== Stockpile links ===== | ||
Line 187: | Line 170: | ||
=== Track Stops === | === Track Stops === | ||
− | A Track Stop, not to be confused with a route stop, is an optional, single-tile construction which serves two purposes. First, it can be used to cancel a cart's momentum in order to slow or stop it as it passes over the Track Stop. This might be necessary if a cart were pushed down a series of ramps to its destination. Second, a Track Stop can cause a cart to automatically dump its contents as it passes over the Track Stop. Track Stops are constructed via {{ | + | A Track Stop, not to be confused with a route stop, is an optional, single-tile construction which serves two purposes. First, it can be used to cancel a cart's momentum in order to slow or stop it as it passes over the Track Stop. This might be necessary if a cart were pushed down a series of ramps to its destination. Second, a Track Stop can cause a cart to automatically dump its contents as it passes over the Track Stop. Track Stops are constructed via {{k|b}} {{k|C}} {{k|S}}, and must be constructed atop an existing piece of track. If a Track Stop has been set to automatically dump a cart's contents, the cart will dump its contents in the direction indicated when it passes over the Track Stop. Depending on the friction settings chosen for the Track Stop, the cart might then stop after dumping, or it might continue on its route to another destination. |
Track Stops are not mandatory; in fact, their main use is in automated rail systems. 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. Dumping will occur even with a guided cart. '''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. It will dump any contents the moment they are loaded. | Track Stops are not mandatory; in fact, their main use is in automated rail systems. 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. Dumping will occur even with a guided cart. '''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. It will dump any contents the moment they are loaded. | ||
+ | Counter-intuitive to their construction method, Track Stops are considered [[building]]s and must be removed by {{k|q}} {{k|x}}. | ||
* See [[#More_on_Track_stop |More on Track Stops]] | * See [[#More_on_Track_stop |More on Track Stops]] | ||
Line 197: | Line 181: | ||
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: | 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: | ||
− | [[File:minecart-example-1 | + | [[File:minecart-example-1.png|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. | 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. | ||
Line 203: | Line 187: | ||
Next, carve the track: | Next, carve the track: | ||
− | [[File:minecart-example-2 | + | [[File:minecart-example-2.png|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.) | 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.) | ||
Line 209: | Line 193: | ||
In addition, while we're waiting for that to happen, we'll build an iron minecart in the forge. | In addition, while we're waiting for that to happen, we'll build an iron minecart in the forge. | ||
− | [[File:minecart-example- | + | [[File:minecart-example-3.png|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 | + | 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: |
{| | {| | ||
− | | [[File:minecart-example-4 | + | | [[File:minecart-example-4.png|Track stop designation.]] |
− | | [[File:minecart-example-5 | + | | [[File:minecart-example-5.png|Select dumping direction.]] |
|} | |} | ||
− | You must 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. | + | You must press {{k|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. |
− | [[File:minecart-example-6 | + | [[File:minecart-example-6.png|Track stop constructed.]] |
− | Now we'll define the actual ''route''. This is done in the {{k| | + | Now we'll define the actual ''route''. This is done in the {{k|h}}auling menu. Press {{k|r}} to begin defining a route. Next, move the cursor to the input end of the track, and then press {{k|s}} to define the first stop: |
{| | {| | ||
− | | [[File:minecart-example-7 | + | | [[File:minecart-example-7.png|Stop 1 designation.]] |
− | | [[File:minecart-example-8 | + | | [[File:minecart-example-8.png|Route definition, in progress.]] |
|} | |} | ||
− | + | Move the cursor again, to the output end of the track, and press {{k|s}} again to define the second stop: | |
{| | {| | ||
− | | [[File:minecart-example-9 | + | | [[File:minecart-example-9.png|Stop 2 designation.]] |
− | | [[File:minecart-example-10 | + | | [[File:minecart-example-10.png|Route definition, two stops.]] |
+ | |- | ||
+ | | | ||
+ | | [[File:minecart-example-11.png|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 {{DFtext|!|#ff0}} symbol by each of them. In the lower right corner, we see what the {{DFtext|!|#ff0}} 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 {{k|+}}/{{k|-}}. | |
+ | |||
+ | 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 {{k|-}} to move the selection up to stop 1, and {{k|Enter}} to open it up. By default, the stop has three conditions: | ||
+ | |||
+ | [[File:minecart-example-12.png|Default stop definition.]] | ||
− | + | We don't want any of these, so press {{k|x}} three times to delete them. This leaves us with a blank stop. Now we can add the conditions we actually want. Press {{k|n}} to begin adding the first condition, then {{k|d}} twice to change the direction from north to east. Then press {{k|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 {{k|s}}, then move the cursor to the input stockpile, then press {{k|p}} to select that stockpile. Now press {{k|Enter}}; this opens up a selection screen that resembles the stockpile customization screen. Move down to Blocks, {{k|e}}nable them, then (if you wish) restrict it to stone blocks. | |
− | + | When you've done all that, stop 1 should look like this: | |
− | [[File:minecart-example- | + | [[File:minecart-example-13.png|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: | |
− | [[File:minecart-example- | + | [[File:minecart-example-14.png|Stop 2, defined.]] |
− | + | Finally, we just have to assign our minecart. Go back to the route definition screen, and press {{k|v}}. Select the minecart, and press {{k|Enter}}. | |
− | + | Now we've got everything set up: | |
− | + | [[File:minecart-example-15.png|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 === | === 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 {{k| | + | 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 {{k|h}}auling menu. |
'''Symptom:''' {{DFtext|! Set dir/connect track|6:1}} message appears to the right of one or more stops | '''Symptom:''' {{DFtext|! Set dir/connect track|6:1}} 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 {{k|Enter}} and press{{k|d}} 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 <b>and one square beyond</b> 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% <span style="color:#00dd00;">V</span>''' always appears to the right of one stop. | '''Symptom:''' The status '''0% <span style="color:#00dd00;">V</span>''' 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 {{k|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. (Alternatively, with [[DFHack]] you can modify "Dump on arrival" to "No" using the {{key|q}} menu without rebuilding the stop.) | |
− | + | * Make sure the minecart itself has not been designated to be dumped (such as when using mass-dump). | |
'''Symptom:''' Dwarves fill the minecart properly, but will not move it thereafter. | '''Symptom:''' Dwarves fill the minecart properly, but will not move it thereafter. | ||
− | + | '''Possible Causes:''' | |
− | + | * The minecart may contain items which are not included in its current stop's desired items. Check inside the minecart using the {{key|k}} and {{key|z}} keys and ensure that all items in the cart are desired items. | |
− | + | * The minecart may contain desired items in bins. Minecarts seem to have problems realizing that they are in fact full of desired items if some of those items are in bins, even if bins are also among the desired items for that stop. '''This cannot be solved by adding the appropriate bins to the stop's desired items.''' Either disallow bins in stockpiles you intend to load minecarts from, or set the departure conditions to rely only on percentage of total load rather than percentage of desired items using the advanced conditions menu ({{key|C}} key). | |
'''Symptom:''' Dwarves repeatedly attempt to load the minecart, but no items are ever loaded into it. | '''Symptom:''' Dwarves repeatedly attempt to load the minecart, but no items are ever loaded into it. | ||
− | + | '''Possible Causes:''' | |
− | + | * This can be caused by using a Track Stop with autodumping enabled at a loading site. Every time a dwarf places an item into a cart resting on such a track stop, the item will be immediately dumped, causing unlimited, useless cart loading jobs. Autodumping Track Stops should never be used at a loading site. | |
'''Symptom:''' A dwarf picks up the minecart and carries it to its destination. | '''Symptom:''' A dwarf picks up the minecart and carries it to its destination. | ||
− | + | * See [[#Quirks|Quirks]] | |
=== Danger === | === Danger === | ||
Line 315: | Line 300: | ||
=== More on Track stop === | === More on 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 {{K|b}} {{K|C}} {{K|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 plate]]s or [[lever]]s to toggle friction and dumping On or Off (trigger state is inverted: switch On = track stop Off) | + | 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 {{K|b}} {{K|C}} {{K|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 plate]]s or [[lever]]s to toggle friction and dumping On or Off (trigger state is inverted: switch On = track stop Off). |
− | If a [[stockpile]] is placed on the tile that a track stop is set to dump to, it can act as a [[Exploit#Quantum_stockpiles|quantum stockpile]] and any items dumped from a minecart that match the storage settings of the stockpile will remain there and accumulate. Normally | + | If a [[stockpile]] is placed on the tile that a track stop is set to dump to, it can act as a [[Exploit#Quantum_stockpiles|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 [[Exploit#The_Minecart_Stop|automatic quantum stockpiles]] (see also [[#Step-by-step_tutorial|step-by-step tutorial]]). 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}} | 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}} | ||
Line 362: | Line 347: | ||
==== Impulse ramps ==== | ==== Impulse ramps ==== | ||
− | Carts can be given momentum without rollers or changing z-level | + | Carts can be given momentum without rollers or changing z-level through a phenomenon called "impulse ramps". A track ramp which is connected both to a wall and to a floor will ''always'' accelerate a cart towards the connected floor tile, no matter where the cart enters the tile from. This means carts can be accelerated as though dropping z-levels, even if the cart doesn't actually change z-level at all. If a track ramp faces three directions such as ╩, then two of those directions need to be facing walls for the cart to be accelerated towards the remaining direction. |
Example of straight impulse acceleration: | Example of straight impulse acceleration: | ||
Line 374: | Line 359: | ||
}} | }} | ||
− | If a cart enters from the left, it will speed up on every track/ramp and exit to the right going very very | + | If a cart enters from the left, it will speed up on every track/ramp and exit to the right going very very fast - more than one tile every step. If it enters from the right then it will bounce back impulsed by the ramp if it's going slow enough. |
As another oddity, carts coming from ramps will in some cases "teleport" through most of the next tile. This is called the "checkpoint effect", and is explained in detail in the Physics section, below. This negates the deceleration of the next tile if it is a ramp "angled" in a different direction. You can just make an upward spiral alternating impulse ramps and regular upward ramps. It takes no power, is quick and cheap to build, requiring only channeling and track carving, and the cart goes up fast, but not so fast that it launches its contents. | As another oddity, carts coming from ramps will in some cases "teleport" through most of the next tile. This is called the "checkpoint effect", and is explained in detail in the Physics section, below. This negates the deceleration of the next tile if it is a ramp "angled" in a different direction. You can just make an upward spiral alternating impulse ramps and regular upward ramps. It takes no power, is quick and cheap to build, requiring only channeling and track carving, and the cart goes up fast, but not so fast that it launches its contents. | ||
− | + | Example of an impulse elevator: | |
{{diagram|spaces=yes|\ | {{diagram|spaces=yes|\ | ||
Line 388: | Line 373: | ||
░░░░░ ░░░░░ ░░░░░ ░░░░░ | ░░░░░ ░░░░░ ░░░░░ ░░░░░ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
░ : Wall | ░ : Wall | ||
╔,╚,╗,╝ : Track/Ramp | ╔,╚,╗,╝ : Track/Ramp | ||
Line 400: | Line 378: | ||
}} | }} | ||
− | Note that | + | Note that this impulse elevator, due to the checkpoint effect and upward curved ramp effect, will not actually result in carts traveling straight up the ramp. They will lose speed, bounce off a ramp, then be accelerated back into the spiral after a 9-turn delay on both tiles on the floor where they are stopped. This is because the checkpoint effect allows carts to travel up the ramps in a single turn, but also prevents the impulse ramps from adding acceleration unless the cart is slowed to staying on the ramp for more than one turn. Initial acceleration will carry the cart up a variable number of floors before this effect occurs, but this bouncing back and forth will occur every 5 z-levels after the first time the cart stops. When the cart ''is'' traveling upwards, it will pass every tile at a rate of one tile per turn regardless of its actual speed, due to the checkpoint effect. In tracks with only a single cart, this is negligible, but when multiple carts are on the same track (such as when you place multiple carts on a magma cart lift) this can cause collisions which derail carts or cause other unexpected or undesired behaviors. |
− | The following impulse ramp (while larger) should alleviate these problems by using a straight ramp to go upwards, preceded by an impulse ramp to exploit the checkpoint effect and negate up ramp costs. Corners still decelerate carts, so the cart will tend towards a velocity of 72k, which is | + | The following impulse ramp (while larger) should alleviate these problems by using a straight ramp to go upwards, preceded by an impulse ramp to exploit the checkpoint effect and negate up ramp costs. Corners still decelerate carts, so the cart will tend towards a velocity of 72k, which is derail speed. Derail speed breaks (see Controlling Speed, below) may be necessary at the top. |
{{diagram|spaces=yes|\ | {{diagram|spaces=yes|\ | ||
Line 440: | Line 418: | ||
==== Switching ==== | ==== Switching ==== | ||
<!-- copying template ║ ═ ╔ ╗ ╚ ╝ ╠ ╣ ╦ ╩ ╬ ╞ ╡ ╥ ╨ --> | <!-- copying template ║ ═ ╔ ╗ ╚ ╝ ╠ ╣ ╦ ╩ ╬ ╞ ╡ ╥ ╨ --> | ||
− | As | + | As constructions or tile features, [[door]]s 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 <s>dangerous</s> [[fun]], however. |
{{diagram|spaces=yes|\ | {{diagram|spaces=yes|\ | ||
-> | -> | ||
Line 508: | Line 486: | ||
}} | }} | ||
− | This behavior can be used to build a "speed limiter", that will ensure that when a minecart exits it is traveling below derail speed | + | This behavior can be used to build a "speed limiter", that will ensure that when a minecart exits it is traveling below derail speed: |
{{diagram|spaces=yes|\ | {{diagram|spaces=yes|\ | ||
░░░░ ░░░░░ ░░░░░ | ░░░░ ░░░░░ ░░░░░ | ||
Line 534: | Line 512: | ||
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. | 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. | ||
− | Dwarves can admire buildings while riding mine carts. Dwarves will not fall asleep during a ride (at least not from being drowsy). If riding on a continuous powered track loop, the dwarf will die of dehydration/starvation as they can not jump off to get sustenance | + | Dwarves can admire buildings while riding mine carts. Dwarves will not fall asleep during a ride (at least not from being drowsy). If riding on a continuous powered track loop, the dwarf will die of dehydration/starvation as they can not jump off to get sustenance{{cite forum|109460/3377228}}. Dwarves riding in submerged minecarts will gain experience in [[swimming]].{{cite forum|129889}} |
Tracks block wagon access to trade depots, unless they're on a ramp. [[Bridge]]s can also be used, as they function as tracks but do not block wagons. | Tracks block wagon access to trade depots, unless they're on a ramp. [[Bridge]]s can also be used, as they function as tracks but do not block wagons. | ||
Line 543: | Line 521: | ||
Minecart physics depend greatly on the departure mode set in the route stop conditions. | 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 in a straight line until they either are brought to a stop by friction or an obstacle, or until they encounter a turn. A minecart will roll straight past "blocked" ends of T-junctions or track ends, they have no power to restrict a cart's movement. The cart's behavior is largely independent of the weight of its contents (including fluids and dwarves): heavily loaded carts gain more momentum when accelerating, but this only plays a role in collisions: a heavy cart gains just as much speed and is as easy to stop as a light one. In either case, dwarves can not push nor ride an unpowered cart up a ramp | + | 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 in a straight line until they either are brought to a stop by friction or an obstacle, or until they encounter a turn. A minecart will roll straight past "blocked" ends of T-junctions or track ends, they have no power to restrict a cart's movement. The cart's behavior is largely independent of the weight of its contents (including fluids and dwarves): heavily loaded carts gain more momentum when accelerating, but this only plays a role in collisions: a heavy cart gains just as much speed and is as easy to stop as a light one. 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|fun surprise]]. To solve this, the player can either use Rollers (see below) or set the cart to be Guided. |
The difference between "Push" and "Ride" is whether the dwarf will go along with the cart or not. | The difference between "Push" and "Ride" is whether the dwarf will go along with the cart or not. | ||
− | + | {{DFtext|Push}}: the dwarf will give the cart an initial push, not enough to go up a ramp, but enough to go some way along flat track, and the dwarf will remain at the first stop, ready for a new job. | |
− | {{DFtext|Push}}: the dwarf will give the cart an initial push, not enough to go up a ramp, but enough to go some way along flat track | + | {{DFtext|Ride}}: the dwarf will give the cart the same initial push and then hop aboard the cart riding with it to the next stop. |
− | + | {{DFtext|Guide}}: minecarts seem to ignore all laws of physics. That is: | |
− | {{DFtext|Ride}}: the dwarf will give the cart the same initial push and then hop aboard the cart riding it to the next stop. | + | *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 [[attribute#Agility|agile]] of your dwarves for cart-guiding tasks. | |
− | {{DFtext|Guide}}: | + | *Ignore working rollers. |
− | |||
− | |||
− | *Ignore the weight of any and all items inside. | ||
− | *Ignore | ||
*Will ''not'' collide with other guided carts even when a full frontal collision would be expected. | *Will ''not'' collide with other guided carts even when a full frontal collision would be expected. | ||
− | *Will | + | *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: | Some samples with behavior: | ||
Line 573: | Line 545: | ||
}} | }} | ||
In the second example above, a cart "pushed" from B will go over the junction and roll off into the unknown south. | In the second example above, a cart "pushed" from B will go over the junction and roll off into the unknown south. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Track Direction Irrelevance === | === Track Direction Irrelevance === | ||
− | Carts that are traveling independently (that is, not guided) only care that tracks ''are'' on the tile, not which direction the tracks actually move. Tracks respect only curves (with two exits) and ramps. | + | Carts that are traveling independently, (that is, not guided,) only care that tracks ''are'' on the tile, not which direction the tracks actually move. Tracks respect only curves (with two exits) and ramps. |
This means, for example, that the following tracks, when a (non-guided) cart travels from West-to-East, are functionally identical in effect: | This means, for example, that the following tracks, when a (non-guided) cart travels from West-to-East, are functionally identical in effect: | ||
Line 743: | Line 559: | ||
Hence, if a minecart encounters the end of the track or a T junction with no "exit" in its movement direction, it will simply leave the track and continue on its course in a straight line until it encounters an obstacle, slows to a stop, or encounters another track even if the tile at which it joins the new track instantly sends it around a corner. | Hence, if a minecart encounters the end of the track or a T junction with no "exit" in its movement direction, it will simply leave the track and continue on its course in a straight line until it encounters an obstacle, slows to a stop, or encounters another track even if the tile at which it joins the new track instantly sends it around a corner. | ||
− | In fact | + | In fact, a "║", a "╦", a "╬", and a "╥" are ''only different in appearance'', and are ignored by the cart, which will continue in its current direction, regardless of the track. For any purpose but ramps, ''only curves matter at all''. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | If the | + | Carts only check for curves when they are halfway through a tile. When they get there, they look to see if their path has no exit. (That is, if it is traveling East, it checks if there is an East exit.) If there is, it ignores all other track directions, and keeps traveling. If there is not, it checks to see if there are only two exits to the track, and if one of those directions was the direction it "came from". (That is, if traveling from the East, it checks if there is a valid exit to the West, and if so, if there is either a North exit or a South exit.) If there is not, it ignores the track anyway, and keeps on traveling as though it were still on track. If there is, it will subtract 1000 from the velocity of the cart, and redirect all forward velocity to the direction of the curve. This change in the direction of velocity ''overwrites'' any "diagonal" velocity, which can prevent diagonal velocity derailments, but any perpendicular velocity is not preserved, and is instead discarded. |
=== Valid and Invalid Ramps === | === Valid and Invalid Ramps === | ||
− | Ramps are functionally defined for cart purposes as being a tile which exerts an acceleration force upon its "downward slope", and which allows connection to tracks a z-level above or below. This downward slope requires a cart to have | + | Ramps are functionally defined for cart purposes as being a tile which exerts an acceleration force upon its "downward slope", and which allows connection to tracks a z-level above or below. This downward slope requires a cart to have one ''and exactly one'' carved exit to the tile that is the "bottom" of the ramp. Ramps accelerate carts in this "downward" direction (possibly leading to diagonal movement, below), and the deceleration of an "uphill" ramp is actually just the acceleration being applied against the direction of a cart's movement. |
This is where players can find an exploit in the behavior of ramps - if there are ''two'' "downhill" exits to a ramp (such as a "T junction" on a ramp where only one exit faces a wall), then the ramp provides no acceleration ''or'' deceleration, allowing carts to travel up ramps without any loss of momentum except for the standard "flat track" deceleration, because as far as the cart is concerned, the track ''is'' flat. (A T junction is also not a curve, so the track is considered flat and straight no matter what direction the cart is traveling.) | This is where players can find an exploit in the behavior of ramps - if there are ''two'' "downhill" exits to a ramp (such as a "T junction" on a ramp where only one exit faces a wall), then the ramp provides no acceleration ''or'' deceleration, allowing carts to travel up ramps without any loss of momentum except for the standard "flat track" deceleration, because as far as the cart is concerned, the track ''is'' flat. (A T junction is also not a curve, so the track is considered flat and straight no matter what direction the cart is traveling.) | ||
− | Similar effects can be achieved when there are ''no'' "downhill" exits to a ramp. This may be the case if you have, for example, an East-West track with a one-tile channel with a ramp in it. The cart will travel through the "dip" with no change in velocity. It can also be the case if you abuse the | + | Similar effects can be achieved when there are ''no'' "downhill" exits to a ramp. This may be the case if you have, for example, an East-West track with a one-tile channel with a ramp in it. The cart will travel through the "dip" with no change in velocity. It can also be the case if you abuse the Track Direction Irrelevance, above, and set only exits ''up'' the ramp, and none leading ''down'' the ramp. For example, if a cart is traveling from West to East up a slope, only carving East exits on each tile of ramp will make the cart travel up the ramp, and then recognize the tile it is on as being a "flat" tile, thus ignoring any deceleration from traveling uphill. |
Note that this effect only reliably occurs at below-derail speeds as the cart will treat the ramp as an invitation for a ramp jump otherwise. (This almost always results in a collision with a wall that will stop forward progress.) | Note that this effect only reliably occurs at below-derail speeds as the cart will treat the ramp as an invitation for a ramp jump otherwise. (This almost always results in a collision with a wall that will stop forward progress.) | ||
Line 767: | Line 577: | ||
While airborne, carts do not feel the effects of friction in any horizontal direction, and will continue until they strike an obstacle. Carts that land on tracks instantly re-rail themselves regardless of track directionality. | While airborne, carts do not feel the effects of friction in any horizontal direction, and will continue until they strike an obstacle. Carts that land on tracks instantly re-rail themselves regardless of track directionality. | ||
− | Falling carts accelerate similarly to the way that a ramp will accelerate a cart in a special z-only velocity that only applies to airborne carts. (Actually | + | Falling carts accelerate similarly to the way that a ramp will accelerate a cart in a special z-only velocity that only applies to airborne carts. (Actually, acceleration due to gravity in freefall seems curiously slightly ''slower'' than ramp acceleration.) Ramp acceleration, while it logically should be partially z-directional, is only recorded as x- or y-directional, and there is no translation of z-directional velocity upon landing. Landing carts zero out their vertical velocity upon landing, even when landing on ramps, although carts that had horizontal momentum while falling preserve it. |
− | This means a cart falling onto a track ramp is accelerated as if starting from the middle of the ramp - i.e. to the same speed, no matter how many Z-levels it was dropped, vertical velocity is negated. {{cite forum|144328/5701211}} | + | This means a cart falling (from a hatch, thus with no horizontal speed) onto a track ramp is accelerated as if starting from the middle of the ramp - i.e. to the same speed, no matter how many Z-levels it was dropped, vertical velocity is negated. {{cite forum|144328/5701211}} |
Carts falling onto a floor can, however, cause damage to creatures ''one tile below the floor''. This can be used in an [[exploit]] called a "thumper", where carts are caused to repeatedly fall on a floor above an entrance to the fort, inflicting significant damage (as though it were a collision) on those below the cart. | Carts falling onto a floor can, however, cause damage to creatures ''one tile below the floor''. This can be used in an [[exploit]] called a "thumper", where carts are caused to repeatedly fall on a floor above an entrance to the fort, inflicting significant damage (as though it were a collision) on those below the cart. | ||
Line 786: | Line 596: | ||
In this diagram, if there is no ceiling above it, the track in z+1 A will launch its carts airborne when they travel across the ramp. z+1 B (with a ramp on the tile on the hill) will not launch the cart. The cart would also not be launched with ''any'' valid ramp, even if it does not travel in an appropriate direction, such as North/South (which the cart will ignore, as it is not a curve, anyway, although it may produce acceleration that may cause diagonal movement.) | In this diagram, if there is no ceiling above it, the track in z+1 A will launch its carts airborne when they travel across the ramp. z+1 B (with a ramp on the tile on the hill) will not launch the cart. The cart would also not be launched with ''any'' valid ramp, even if it does not travel in an appropriate direction, such as North/South (which the cart will ignore, as it is not a curve, anyway, although it may produce acceleration that may cause diagonal movement.) | ||
− | Carts will also start "jumping" from the track if it hits an un-tracked tile, flying over and ignoring any tracks until it is ready to land. Carts that land upon tracked tiles re-rail themselves, and clever designers use this feature to jump over curved track sections in one direction or another. (Retracting bridges over untracked tiles can cause jumps or not cause jumps depending upon the status of the bridge.) Minecart speed must be carefully regulated to ensure reliability of jump length. | + | Carts that are traveling at derail velocity will also start "jumping" from the track if it hits an un-tracked tile, flying over and ignoring any tracks until it is ready to land. Carts that land upon tracked tiles re-rail themselves, and clever designers use this feature to jump over curved track sections in one direction or another. (Retracting bridges over untracked tiles can cause jumps or not cause jumps depending upon the status of the bridge.) Minecart speed must be carefully regulated to ensure reliability of jump length. |
Hitting untracked tiles at around 70k velocity creates a vertical component to acceleration that allows for jumps of around 6 (horizontal) tiles that do not actually leave the z-level the cart is on, but which do apply z-direction velocity on the cart, as per falling. | Hitting untracked tiles at around 70k velocity creates a vertical component to acceleration that allows for jumps of around 6 (horizontal) tiles that do not actually leave the z-level the cart is on, but which do apply z-direction velocity on the cart, as per falling. | ||
− | + | Carts that approach a downward slope at a high enough velocity will also make a jump, (or rather, ignore the ramp and fly forwards) but will not do so if the Checkpoint Effect (below) is exploited through an impulse ramp before the actual downhill as the impulse ramp "tricks" the cart into thinking it has already started going downhill. The cart will also not fly off the ramp if there is a wall and ceiling preventing any motion but going down the ramp. | |
− | |||
− | Carts that approach a downward slope at a high enough velocity will also make a jump, (or rather, ignore the ramp and fly forwards) but will not do so if the | ||
=== Skipping === | === Skipping === | ||
Line 803: | Line 611: | ||
Corners on upward ramps can cause diagonal movement, forcing a derail even if the cart has a wall next to it, which will force a stop when it touches a wall that forces dwarves to manually reset the cart. | Corners on upward ramps can cause diagonal movement, forcing a derail even if the cart has a wall next to it, which will force a stop when it touches a wall that forces dwarves to manually reset the cart. | ||
− | This is caused by the fact that a cart, after turning the bend in the track | + | This is caused by the fact that a cart, after turning the bend in the track halfway through the length of the tile, will still "accelerate down", which is now perpendicular to the movement of the cart, causing acceleration to occur in two directions. (Down corner ramps do not have this problem, as when they pass the halfway point, all perpendicular motion is added to forward motion, and after that curve, all downward acceleration is in the forward direction.) |
− | There are two fixes to this problem. One is to simply not put corners on up ramps. The other is to | + | There are two fixes to this problem. One is to simply not put corners on up ramps. The other is to take advantage of the Checkpoint Effect, below, by making a ramp (possibly including an impulse ramp) one tile in front of the ramp to make it skip through most of the tile before sideways momentum can be built. |
=== Checkpoint Effect === | === Checkpoint Effect === | ||
− | The checkpoint effect, [http://www.bay12forums.com/smf/index.php?topic=144328.0 explained in depth by Larix], is an odd and highly exploitable feature of ramps where minecarts "teleport" through the next tile of track, ignoring nearly all minecart physics (except that they stop at all walls or other obstacles and only respect curves with no backing wall and invalid ramps if they are below derail speed) and passing through that tile in just a single tick, and | + | The checkpoint effect, [http://www.bay12forums.com/smf/index.php?topic=144328.0 explained in depth by Larix], is an odd and highly exploitable feature of ramps where minecarts "teleport" through the next tile of track, ignoring nearly all minecart physics (except that they stop at all walls or other obstacles and only respect curves with no backing wall and invalid ramps if they are below derail speed) and passing through that tile in just a single tick, and into the next tile at the halfway point. |
This effect occurs when a cart leaves a downward ramp for any other direction of tile. (This includes ramps which accelerate in different directions, even a ramp which goes from accelerating East to accelerating North due to a bend in a chain of standard down ramps in a curve.) This allows, for example, two valid straight ramps directly next to one another with a cart dropped onto one or the other with no momentum to have the cart pick up acceleration going "down" the ramp as normal, but then flying up through the "up" ramp it travels into with no loss of momentum, as though it had come from an impulse ramp. If the two ramps had at least one space of distance between them, and then a cart were dropped in, the cart would instead "rock" back and forth between the two ramps. | This effect occurs when a cart leaves a downward ramp for any other direction of tile. (This includes ramps which accelerate in different directions, even a ramp which goes from accelerating East to accelerating North due to a bend in a chain of standard down ramps in a curve.) This allows, for example, two valid straight ramps directly next to one another with a cart dropped onto one or the other with no momentum to have the cart pick up acceleration going "down" the ramp as normal, but then flying up through the "up" ramp it travels into with no loss of momentum, as though it had come from an impulse ramp. If the two ramps had at least one space of distance between them, and then a cart were dropped in, the cart would instead "rock" back and forth between the two ramps. | ||
− | This seems to be because ramps have a slightly longer length than regular tiles - | + | This seems to be because ramps have a slightly longer length than regular tiles - 144,000, rather than 100,000 distance. When this "snaps back" after a ramp, it seems to project the cart suddenly further along the track, making it jump a tile ahead even when otherwise moving at relatively low speeds. |
This [[bug]] is the cause of a ''wide array'' of unexpected behavior among people who do not take this bug into account. It causes derailments or failure to climb up seemingly valid impulse elevators. In general, it makes a system that behaves extremely counter-intuitively, and operates ''any time a cart encounters a valid ramp''. At the same time, when its effect is accounted for, it is highly exploitable: It causes "perpetual motion devices" using no power when two opposing ramps are placed next to one another, since the "uphill" effect of the opposing ramp is ignored, preventing deceleration. | This [[bug]] is the cause of a ''wide array'' of unexpected behavior among people who do not take this bug into account. It causes derailments or failure to climb up seemingly valid impulse elevators. In general, it makes a system that behaves extremely counter-intuitively, and operates ''any time a cart encounters a valid ramp''. At the same time, when its effect is accounted for, it is highly exploitable: It causes "perpetual motion devices" using no power when two opposing ramps are placed next to one another, since the "uphill" effect of the opposing ramp is ignored, preventing deceleration. | ||
− | Another useful thing to note about this exploit is that carts traveling at no less than | + | Another useful thing to note about this exploit is that carts traveling at no less than 72,000 or so speed (enough to travel half a ramp tile in a single tick) can travel through every tile in just one tick at no change in velocity as long as the tiles alternate between impulse ramp or actual down ramp and any other tile type. The cart checkpoints through the non-down-ramp tiles, and can pass through the (impulse) down ramp tiles in a single tick, before they can actually start gaining momentum. |
{{diagram|spaces=yes|\ | {{diagram|spaces=yes|\ | ||
Line 855: | Line 663: | ||
These minecarts on the upper level generally need to be struck with another minecart to move out, or have their support removed. The latter option is safest done by shooting it away with another minecart, manual removal of a stack-supporting cart typically causes the next cart from the stack to [[fun|fall on top]] of the hauler. | These minecarts on the upper level generally need to be struck with another minecart to move out, or have their support removed. The latter option is safest done by shooting it away with another minecart, manual removal of a stack-supporting cart typically causes the next cart from the stack to [[fun|fall on top]] of the hauler. | ||
+ | |||
=== Perfectly Elastic Collisions === | === Perfectly Elastic Collisions === | ||
Line 862: | Line 671: | ||
While hypothetically capable of launching a minecart into orbit when used in conjunction with a ramp, no cargo can be contained in the launched cart, as the collisions will force ejections of the cargo. Your "unwilling volunteer" [[goblin]] space pioneers will simply become paste underneath the wheels of an extreme high-speed cart. | While hypothetically capable of launching a minecart into orbit when used in conjunction with a ramp, no cargo can be contained in the launched cart, as the collisions will force ejections of the cargo. Your "unwilling volunteer" [[goblin]] space pioneers will simply become paste underneath the wheels of an extreme high-speed cart. | ||
+ | |||
+ | === Numbers behind the scene === | ||
+ | |||
+ | According to early research by '''expwnent'''{{cite forum|112831/3536975}}: | ||
+ | |||
+ | The minecart has a variable for speed. Speed is measured in tiles/100000 ticks, so a speed of one hundred thousand means one tile per tick. By going down a large number of ramps, a maximum speed of 270,000 can be reached, which presents the limit for most practical applications. Short bursts of (much) higher speeds are possible through carefully planned collisions of high-speed carts {{cite forum|137557/5145499}}. | ||
+ | |||
+ | Every tick the cart accumulates distance units, as well as slows down depending on current tile (speed is reduced by "friction" of the tile). The cart will move to the next tile the tick before accumulating 100000 distance units, (or several tiles in case of great speed), then the leftover distance units are added to the default 100000 distance u. of the next tile. Since most deceleration and acceleration is applied per step, with the notable exception of corners, a cart going at twice the speed of another one can cover about four times the distance in a straight line, but only twice the distance along a winding track with very many corners. | ||
+ | |||
+ | A push will teleport a cart to the beginning of the next tile (NOT the middle!) in one tick with 19990 speed (10 speed is lost due to track friction), while a roller will give a cart the roller's set speed, and it will start to accumulate regular track friction past the middle of the roller tile. Some track features will affect a minecart when it is past the middle of the previous tile: entering a ramp or a hole/drop will happen when the cart has left the middle of the previous tile, and the ramp will gain additional distance unit depending on the leftover units from the previous tile. When a cart leaves a ramp it will emerge after one tick in the middle of the next regular tile, so its entry coordinate is "50000-speed+friction". Rollers also affect the speed of minecart from the middle of the previous tile. | ||
+ | |||
+ | Friction of tiles: | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Tile | ||
+ | ! Friction | ||
+ | ! Comment | ||
+ | |- | ||
+ | | Tracks | ||
+ | | 10 | ||
+ | |- | ||
+ | | Ground/Floor | ||
+ | | 200 | ||
+ | |- | ||
+ | | Unusable ramp | ||
+ | | 10 | ||
+ | |- | ||
+ | | Upwards ramp | ||
+ | | 4910 (10+4900) | ||
+ | |- | ||
+ | | Downwards ramp | ||
+ | | -4890 (10-4900) | ||
+ | |- | ||
+ | | Roller | ||
+ | | ±100000 (but capped by the set speed) | ||
+ | |- | ||
+ | | Corner track | ||
+ | | 10 | ||
+ | | Speed reduced by 1000 upon leaving the corner tile | ||
+ | |- | ||
+ | | Track stop (highest) | ||
+ | | 50000 | ||
+ | |- | ||
+ | | Track stop (high) | ||
+ | | 10000 | ||
+ | |- | ||
+ | | Track stop (medium) | ||
+ | | 500 | ||
+ | |- | ||
+ | | Track stop (low) | ||
+ | | 50 | ||
+ | |- | ||
+ | | Track stop (lowest) | ||
+ | | 10 | ||
+ | |- | ||
+ | | Water 1-6 | ||
+ | | Additional (WaterLevel - 1) * 100 | ||
+ | | rowspan="2" | [[#Skipping|See Skipping]] | ||
+ | |- | ||
+ | | Magma 1-6 | ||
+ | | Additional (WaterLevel - 1) * 500 | ||
+ | |- | ||
+ | | Empty space | ||
+ | | 0 | ||
+ | |} | ||
+ | |||
+ | Water of depth 7/7 provides a friction of about 10000 per step, as does maximum-depth magma. This higher friction may not apply to very slow-moving carts. | ||
+ | |||
+ | Impulse sources: | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Feature | ||
+ | ! Speed | ||
+ | |- | ||
+ | | Push | ||
+ | | 20000 | ||
+ | |- | ||
+ | | Roller lowest | ||
+ | | 10000 | ||
+ | |- | ||
+ | | Roller low | ||
+ | | 20000 | ||
+ | |- | ||
+ | | Roller medium | ||
+ | | 30000 | ||
+ | |- | ||
+ | | Roller high | ||
+ | | 40000 | ||
+ | |- | ||
+ | | Roller Highest | ||
+ | | 50000 | ||
+ | |- | ||
+ | |} | ||
== Non-standard uses == | == Non-standard uses == | ||
− | Minecarts include some interesting characteristics that have motivated uses beyond hauling. They can be useful for creating fully-automated [[ | + | Minecarts include some interesting characteristics that have motivated uses beyond hauling. They can be useful for creating fully-automated [[exploit|quantum stockpiles]] and [[garbage disposal]]s. Storing perishable goods (meat, meals, etc.) inside a minecart appears to guard against rot and vermin. |
Minecarts can be [[Trap_design#Minecarts|used as weapons]], or as (hopefully non-fatal) triggers to restart stalled [[healthcare]]. They can also be used to time/control game events, either using a basic [[repeater]] or much more advanced [[minecart logic]]. | Minecarts can be [[Trap_design#Minecarts|used as weapons]], or as (hopefully non-fatal) triggers to restart stalled [[healthcare]]. They can also be used to time/control game events, either using a basic [[repeater]] or much more advanced [[minecart logic]]. | ||
Minecarts trigger [[pressure plate]]s, which means a trap can be designed to trigger when a thief attempts to steal a minecart. | Minecarts trigger [[pressure plate]]s, which means a trap can be designed to trigger when a thief attempts to steal a minecart. | ||
Line 870: | Line 772: | ||
Dwarves riding minecarts can attack enemies within reach (which goes back to dev log). This applies to shooting, and they actually can hit targets while riding by.{{cite forum|109460/5266119}} Whether a minecart protects the rider and how it interacts with dodging is not known yet. Minecart riders can also [[Swimming#Minecart_training|train swimming]] and [[Megaprojects#Surveillance_Track|detect ambushers]]. | Dwarves riding minecarts can attack enemies within reach (which goes back to dev log). This applies to shooting, and they actually can hit targets while riding by.{{cite forum|109460/5266119}} Whether a minecart protects the rider and how it interacts with dodging is not known yet. Minecart riders can also [[Swimming#Minecart_training|train swimming]] and [[Megaprojects#Surveillance_Track|detect ambushers]]. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Adventure mode == | == Adventure mode == | ||
In addition to being used for hauling, minecarts can also be ridden in [[adventure mode]]. (Adapted from forum thread {{cite forum|122903/4258212}}) | In addition to being used for hauling, minecarts can also be ridden in [[adventure mode]]. (Adapted from forum thread {{cite forum|122903/4258212}}) | ||
Line 919: | Line 781: | ||
{{clear}} | {{clear}} | ||
* If you {{DFtext|Push}} the minecart, it will move a few tiles in the direction you chose. Physics comes into play here, so it will gain/lose speed depending on the usual factors. | * If you {{DFtext|Push}} the minecart, it will move a few tiles in the direction you chose. Physics comes into play here, so it will gain/lose speed depending on the usual factors. | ||
− | * If you {{DFtext|Ride}} the minecart, you will hop into the minecart, even if you were a tile away, and it will move in the chosen direction with you in it. It will gain/lose speed depending on the usual factors. Whilst the minecart is in motion, you should press {{k|.}} to skip your turn; if you attempt to move whilst the minecart is still in motion, the laws of physics come into play, and you will take [[wound|damage]]. | + | * If you {{DFtext|Ride}} the minecart, you will hop into the minecart, even if you were a tile away, and it will move in the chosen direction with you in it. It will gain/lose speed depending on the usual factors. Whilst the minecart is in motion, you should press {{k|.}} to skip your turn; if you attempt to move whilst the minecart is still in motion, the laws of physics come into play, and you will take [[wound|damage]]. Alternatively, you can push the minecart whilst it's still in motion (although it's unclear how one can bend [[physics]] so as to push a moving minecart whilst inside the minecart). If you push it in the same direction you are already travelling in, you will greatly increase the minecart's velocity. You can also push it in different directions, and this will cause it to gradually change direction-the amount of pushes this requires depends on the minecart's velocity. Once the minecart has stopped moving, you may move out of it safely, or you may want to give it another push. Note that if you push a minecart right after having ridden it (still on the same tile as the minecart), it will act as though you chose to ''ride'' it. |
− | |||
− | |||
− | |||
− | |||
− | |||
If you want to test this out without creating an adventurer, the [[object testing arena]] allows you to spawn minecarts ({{k|k}}-{{k|c}}-{{k|n}}) | If you want to test this out without creating an adventurer, the [[object testing arena]] allows you to spawn minecarts ({{k|k}}-{{k|c}}-{{k|n}}) | ||
Line 936: | Line 793: | ||
* [http://www.bay12forums.com/smf/index.php?topic=109460.0 The "How Does Minecart" Thread] by '''Girlinhat''' et al. | * [http://www.bay12forums.com/smf/index.php?topic=109460.0 The "How Does Minecart" Thread] by '''Girlinhat''' et al. | ||
* [http://www.bay12forums.com/smf/index.php?topic=112831.0 SCIENCE: Quantifying minecart physics] by '''Snaake''' et al. | * [http://www.bay12forums.com/smf/index.php?topic=112831.0 SCIENCE: Quantifying minecart physics] by '''Snaake''' et al. | ||
− | * [http://www.bay12forums.com/smf/index.php?topic=129676.0 How to build a Multi-cart Ore to Magma Minecart Project without needing power] by '''WanderingKid'''. | + | * [http://www.bay12forums.com/smf/index.php?topic=129676.0 How to build a Multi-cart Ore to Magma Minecart Project without needing power] by '''WanderingKid'''. |
* [http://www.bay12forums.com/smf/index.php?topic=144328.0 My very own Minecart Education Thread. Ten Lessons, now complete.] by '''Larix'''. | * [http://www.bay12forums.com/smf/index.php?topic=144328.0 My very own Minecart Education Thread. Ten Lessons, now complete.] by '''Larix'''. | ||
− | |||
== Bugs == | == Bugs == | ||
Line 947: | Line 803: | ||
*After a minecart ride, a dwarf will sometimes haul the minecart to a storage stockpile, leaving another dwarf to haul the vehicle back to the route. | *After a minecart ride, a dwarf will sometimes haul the minecart to a storage stockpile, leaving another dwarf to haul the vehicle back to the route. | ||
*Minecarts falling onto a floor injure creatures in the tile below the floor.{{bug|6068}} | *Minecarts falling onto a floor injure creatures in the tile below the floor.{{bug|6068}} | ||
− | |||
*A minecart's initial velocity is not affected by weight, when pushed or launched from rollers.{{bug|6296}} | *A minecart's initial velocity is not affected by weight, when pushed or launched from rollers.{{bug|6296}} | ||
*Removing a stop that has a vehicle waiting on it may cause the game to crash.{{bug|5980}} | *Removing a stop that has a vehicle waiting on it may cause the game to crash.{{bug|5980}} | ||
− | |||
− | |||
− | |||
− | |||
{{Category|Fortress mode}} | {{Category|Fortress mode}} |