Quick Nav


Back To Top

Overview

ChokePoint carves narrow riverlike tendrils of water randomly across the map, to mostly separate the land into various landmasses connected by narrow bridges; this allows for the creation of natural defensive chokepoints, making defending a factory - especially in the early game, where resources are too scarce for many turrets, or with mods like NauvisDay, where attacks are large and come from all directions - much less frustrating.

Settings

In the map settings, the "Seed mixin" can be modified, which allows for the seed used in the random generator to be changed independently of the map seed, in case you want a new river pattern but like your overall map. There are also offset and scale factors to change the centerpoint of the algorithm and how large each landmass is and how wide water channels are.

By default, the rivers will have shores and sometimes causeways of shallow muddy water, to make them look more natural. However, this also means that they can be traversed by you - and biters - without being able to be built on.

Finally, there is an option to make the depth of the channels drop with distance from spawn; this will cause the rivers to narrow and eventually stop outright once crossing a distance threshold, allowing for more continuous land, at the cost of only the center area of the map being protected by chokepoints. This was intended to allow for the tradeoff of late-game exploring and expansion to not be impeded by water (and for faster worldgen) at a time when defensibility was less of a concern.

Generation Profiles

The mod comes with many water placement algorithms; the default selected is the recommended, but there are several others to choose if you so desire. These are not selectable in the in-game settings; to change which is selected, open the mod zip and its control.lua file. Near the top, there is a require "programs.voronoicells2"; change that to the name of any other script in the programs folder.
Other sample algorithms.

Important Note

Chokepoint significantly increases worldgen times; the native C++ terrain generation system is far faster than anything attainable in the lua scripting engine, but only the latter was flexible enough to allow for this level of control. I tried to use the native noise system; it went...poorly.

Configuration Settings

This mod contains several config options to modify values and behaviors - such as for balance or server safety concerns, or simply personal taste - to your preferences. Note that several settings may have bounds imposed on their values, either logically or explicitly; these can usually be seen in the actual settings files or ingame. These are listed in order found in the source code, which is generally the order in which they were added; They may be present in a different order ingame or in the configuration files.
The settings for the mod, when installed, can be found ingame, in the mod settings menu.

Terrain Scale

Type: double
Current Default Value:
1.0
A simple multiplier for the raw scale of the overall pattern; larger values means the web of rivers is "scaled up" in size, with larger continents inside them.

Terrain X Offset

Type: int
Current Default Value:
0

Terrain Y Offset

Type: int
Current Default Value:
0

Terrain Seed Mixin

Type: int
Current Default Value:
0
This affects the seed used for the terrain program (and how it is combined with the map seed). Use this to get a new distribution with an existing map.

River Thickness

Type: double
Current Default Value:
1.0
A simple multiplier for how thick the dividing rivers should be. Only applies for some map generation algorithms.

Allow Traversible Shores

Type: bool
Current Default Value:
true
Whether to allow the generator to make the innermost shores "mud water", which is traversible to you (slowly) and to biters (normal speed). This looks better, and makes transport a bit easier, but means that walls cannot be 100% effective.

Distance Falloff (% per 100 tiles)

Type: double
Current Default Value:
12
How much the effect of the river generation should fade with distance. At 100%, the rivers will be half-width at 50 tiles and not generate at all past 100 tiles. This makes the worldgen gradually faster to compute the further you go, without affecting chokepoints near spawn, which are the ones that really matter from a gameplay perspective.

Source Code

The source code for ChokePoint can be found here:GitHub

Downloads

Via Factorio Mod Portal