This plugin is included in DFHack but is actively invoked by the player and is used during pre embark to find desirable embark locations using an enhanced embark finder.
The plugin provide transparent overlays over the World, Region, and Local maps, an embark finder, an info/help screen, and a list of resources within the current embark rectangle under the Local map.
The plugin now takes "incursions" into account where deemed relevant, i.e. bits of biomes belonging to neighboring Mid Level Tiles that carve out a bit of area in a tile. This means that a single tile can have more than one biome on it, for instance.
The embark finder acts as a replacement for the vanilla finder and allows you to find embarks that match a combination of criteria:
- X/Y dimension of the embark
- Low/Medium/High savagery with values N/A, All, Present, Absent. Incursions are accounted for.
- Good/Neutral/Evil with values N/A, All, Present, Absent. Incursions are accounted for.
- Aquifer with values to handle all combinations of No/Light/Heavy aquifers.
- Min/Max River with values N/A, None, Brook, Stream, Minor, Medium, Major
- Waterfall with values N/A, Yes, No
- Flat with values N/A, Yes, No. Incursions are accounted for.
- Clay/Sand/Flux/Coal with values N/A, Present, Absent
- Min/Max Soil with values N/A, None, Very Shallow, Shallow, Deep, Very Deep
- Min Soil Everywhere with values All/Present
- Blood Rain, with values N/A, Yes, No. Incursions are accounted for.
- Syndrome Rain, with values N/A, Any Syndrome, Permanent Syndrome, Temporary Syndrome, Not Permanent Syndrome, No Syndrome. Incursions are accounted for.
- Reanimation with values N/A, Reanimation & Thralling, Reanimation or Thralling, Thralling, Reanimation, Not Thralling, None. Incursions are accounted for.
- Min/Max Adamantine Spire Count with values N/A, 0-9
- Min/Max Magma with values N/A, Third Cavern, Second Cavern, First Cavern, Volcano
- Min/Max Biome Count with values N/A, 1-9. Incursions are accounted for.
- Region Type 1/2/3 with value N/A plus all the Region types (e.g Jungle). Incursions are accounted for.
- Biome 1/2/3 with value N/A plus all the surface biomes. Incursions are accounted for.
- Min/Max Tree coverage with values N/A, Very Scarce, Scarce, Woodland, and Heavily Forested. Incursions are accounted for.
- Metal 1/2/3 with value N/A plus all the ore derived metals
- Economic 1/2/3 with value N/A plus all the economic stones
- Mineral 1/2/3 with value N/A plus all the minerals (which includes the economic ones)
- Min/Max necro neighbors, with values N/A and 0-16
- Min/Max civ neighbors, with values N/A and 0-number of civilized entities - 1 (your own entity isn't counted)
- Each potential civ neighbor, with values N/A, Absent, and Present.
Each criterion forms a requirement that has to be met by an embark. The terminology above is:
- N/A: This criterion is not used
- All: Every tile of the embark has to fulfill this criterion
- Present: The condition has to be met by at least one tile of the embark
- Absent: The feature mustn't be present in any tile of the embark
- Partial: The feature has to be present on the embark, but mustn't cover all tiles
- Not All: The feature mustn't cover all tiles, but may be completely absent
Soil is a bit convoluted. Min Soil Everywhere is a modifier of Min Soil. If Min Soil is N/A it has no effect, but if Min Soil has a value it specifies whether the Min Soil criterion has to be met by every tile in the embark, or if it's sufficient that it's met by at least one tile.
All criteria that exist in a Min and Max version obviously result in a complete failure to find any compatible embark if Max is less than Min, but a N/A value for one (or both) of them is OK, as that value does not add any additional restrictions.
The Savagery and Evilness criteria are designed to allow for selection of combined embarks, e.g. an embark that has some Good and some Evil on it.
One a selection profile has been set up, "find" starts a search, which takes some time (which is the reason it has to be a plugin rather than a script: it's slow enough when compiled). The results are overlays on the World and Region maps showing where matching embarks exist, plus an overlay on the Local map that shows the embarks within that region that fulfill the criteria (represented by the top left corner of the embark). A search can be canceled while underway, resulting in a partial search result, in case you don't want to wait for the complete one.
As a minor bonus functionality, the Local map overlay also shows any sites DF doesn't display that happen to be present on the Local map. Neighbors are also shown, mainly because it allows the listing of Kobolds, which are hidden by the vanilla display.
It can be noted that the resources indicated by Embark Assistant for embarks can differ from what DF displays for two reasons:
1. DF displays resources for the region displayed, not the combined resources of the embark, so switching regions (F1-F9) shows different subsets of the available resources.
2. DF does not take elevation based erosion into account, nor does it handle resource cutoff due to the location of the magma sea. This means that it can display the presence of clay or aquifers where none is present, as well as flux and deep metal(s) that are not present because they would have appeared deeper than the magma sea.
Note that the plugin uses 47 lines to display all search criteria, but the list is scrolled, so a shallower window can still be used.
Usage:
The plugin is actively invoked from the DFHack console window by typing "embark-assistant" (minus the quotes) when the pre embark world is displayed. It can be exited at any time using 'q' from the main view (in which case it can be restarted from the console), although you abort the finder and the info screens with ESC to get back to the normal level.
Embarking will also dismiss it, as will exiting the pre embark screen from the vanilla DF menu reached with ESC.
Note that the info/help is spread over several pages cycled over with TAB/shift-TAB.
The author intends to edit this post without explicit change marks to reflect changes in the functionality/improved descriptions.