The zones that belong to the village districts organize the area inside the village and they provide the space to place village features like buildables. To add zones to a village district, there are two types of cards available, zones_cards and layer_of_zones_cards.
#### Zone Cards
These cards will add one or more zones to a village. The first zone added will use any placement preferences multiplied with the zone card to find the best zone (the zone with the highest score). If the number of zones requested is greater than one, we’ll continue trying to add zones that are adjacent to the first zone added until we’ve either run out of connected zones that aren’t already part of the village, or we’ve added the requested number of zones.
Card Library Name
zones_cardsSettings
number_of_zonesThe number of zones that should be added to the village.
Example
!
!
Note
- Zones are always added to a district. If no explicit district is specified, the main district is used by default.
- Placement preferences can be used to specify where zones should be added to the village.
- If number_of_zones is greater than 1, after the first zone is added, the zones neighboring that zones will be added until the amount requested has been added.
- Only zones that aren’t already part of the existing village will be considered.
- zone_tag_cards can be combined with zones_cards to reserve zones for particular features like paths, structures, etc.
#### Layer of Zones Cards
When this card is handled, it will add all the zones that border the existing village district that this card is being applied to. If no district card is specified, the default main district will be used.
Card Library Name
layer_of_zones_cardsSettings
None
Example
!
!
Note
- Layers of zones are always added to a district. If no explicit district is specified, the main district is used by default.
- The outer layer of zones around all the district zones that aren’t part of the village yet will be added to the district.
- zone_tag_cards can be combined with layer_of_zones_cards to reserve zones for particular features like paths, structures, etc.
- If your layers of zones get weird zones that stick out from them, look into the minimum_loz_connection_width setting.
Layers of zones by default try to avoid having tight pinch points in the ring it creates, and tries to add zones to pad out thin sections. It can cause issues specifically with hex based zones.
!
!
_In this example, four raised zones are added to the north, south, east, and west using directional placement preference cards._
#### Zone Tag Cards
When zones are added to a village district, they can be given one or more tags so that they can be identified later with a card from the zone_filter_cards library. Multiply a card from the zones_cards library or the layer_of_zones_cards library with a card from the zone_tag_cards library to add that tag to the zone tag set.
Library Card Name
zone_tag_cardsSettings
zone_tagThe name of the tag that should be added to the tag set of the zone(s) that it’s applied to.
#### Zone Filter Cards
When a village feature needs to be placed in zones that have been given a specific zone tag (see zone_tag_cards), a card from the zone_filter_cards library with a zone_filter that matches the zone tag should be multiplied with the village feature card. For example, if a group of zones have been multiplied with a zone tag card with a zone_tag of “tower town”, multiplying a card from the buildable_cards library with a zone_filter_cards card that has a zone_filter of “tower town” (and exclude set to false) will limit the zones that the buildable can place in to the “tower town” zones.
Card Library Name
zone_filter_cardsSettings
zone_filterThe zone tag name to filter zones by.
excludeSpecifies where the zone_filter zone tag name should be used to exclude or include zones. This can be true or false.
#### Zone Height Change Cards
When multiplied with cards from the zones_cards and layer_of_zones_cards libraries, the zones added to the village will raise or lower the height of the terrain inside the zone depending on the settings specified on the zone height change card.
Card Library Name
zone_height_change_cardsSettings
zone_height_changeThe distance in blocks that the terrain inside this zone will be raised or lowered. This value can be positive or negative.
biomeThe name of the biome that this zone should be changed to. This is optional.
zone_height_controlThis specifies how the zone_height_change should be applied. The options are:
- “height_control_centered” - Relative to the original zone height of the first zone that was added to the village.
- “height_control_averaged” - Relative to the village average zone height of all the zones in the entire village map. This includes zones that haven’t been added to the village.
- “height_control_lowest” - Relative to the lowest zone in the group of zones being added with this particular request.
- “height_control_none” - Relative to the original zone height of the zone being raised or lowered.
#### Moats and Pools
Moat cards can be used to either create a moat that encircles a village district or a bunch of individual lava pools.
#### Moat Cards
Card Library Name
moat_cardsSettings
biomeThe name of the biome that will exist inside of the moat zones that get added when this card is played. The particular types of blocks that will exist inside of these moat zones will be determined by the biome.
width_in_blocksHow wide the moat should be in blocks. The moat will claim as many zones as it needs to meet the requested block width and then the edges of the moat will be displaced inward to reduce the width of the moat if the zone additions resulted in a width that's larger than the requested width.
There are a number of other village generation settings that affect the zone sizes (grid shape, zone jitter) and the moat edges (edge noise) so this new setting will need to be tuned with those others in mind.
filling_depth[not used] The biome now determines what blocks go where inside the moat zone.
distance_in_zonesThe distance in zones from the district that the moat will be placed around.
Example
!
Note
- If distance_in_zones is 0, a moat will not be placed. Instead, all the zones that have been tagged (using zone_tag_cards) with a “lava_option” tag will be turned into a pool.
- If distance_in_zones is greater than 0, an external moat will be placed around the district specified. If no district has been explicitly specified using one of the district_cards, the main district will be used by default.
- Use zone_height_change_cards to control the height of the moat zones.