Repository navigation
Configuration
DessertOverlord edited this page Aug 12, 2026
·
3 revisions
Here are some terms used in the configuration guide that may not be clear at first glance.
- Chunk
- In VintageStory, a chunk refers to a 32x32x32 cube containing blocks in the world.
- MapChunk
- A MapChunk is a 32x32 area from the Mantle to the build limit containing all chunks and blocks inside.
- Region
- In VintageStory, a Region refers to a 16x16 grouping of MapChunks. Typically they are 512x512 in size in blocks.
- This is the smallest unit of measure for Rustwall's world generation. This is because the data the terrain generator uses is stored at the region level.
- Ring
- Rustwall is predicated on the idea of concentric rings of differing world settings. Each ring has an ID assigned to it. The Safezone is always ring 0, and each ring going outward from there is numbered sequentially.
- Depending on your RingWidth, SafezoneSize, and actual world size settings, the number of rings in your world can vary. When making templates, keep these sizes in mind!
Configuration options will be laid out as follows:
- Variable Name (data type)
- Default Value
- Description
- TemporalStormDaysRemovedPerKill (decimal / double)
- Default: 0.0417
- Number of days removed from a temporal storm by killing a rust mob (drifter, shiver, or bowtorn).
- DaysBetweenStormScoring (decimal / double)
- Default: 30.0
- How many in-game days between scoring intervals. The game will sample a score from the current proportion of repaired machines to create a decimal percentage score. Once the Great Decay occurs, the total score is averaged over the number of samples (six by default, 180 / 30) to create a "grand total" score.
- DaysBeforeTheGreatDecay (decimal / double)
- Default: 180.0
- How many in-game days between "Great Decays", which is when the world is regenerated according to the calculated global stability.
- TemporalStormDamageMultiplier (decimal / double)
- Default: 5.0
- In Rustwall, temporal storms cause more damage over time to machines. This controls how much more damage machines take during storms. (this is represented as multiplying the odds that a damage roll succeeds by this number.)
- ChanceToBreakSimple (integer)
- Default: 288
- Odds that a simple machine will break per tick
- ChanceToBreakComplex (integer)
- Default: 1440
- Odds that a complex machine will break per tick
- GracePeriodDurationRepairOneStage (decimal / double)
- Default: 0.2
- How many in-game days that a machine is immune to damage after being repaired by one stage.
- GracePeriodDurationRepairFully (decimal / double)
- Default: 1.0
- How many in-game days that a machine is immune to damage after being fully repaired.
- RingWidth (integer)
- Default: 2
- How many regions wide is each ring.
- SafeZoneSize (integer)
- Default: 1
- Radius in regions of the safezone, originating from 0, 0. Default means a 1024 x 1024 area centered on 0, 0 is immune to being regenerated.
- RandomizationDistribution (integer)
- Default: 5
- The distribution type to use when randomizing ring parameters. See the Vintage Story API Docs for the encoding.
- RingTemplates (array)
- Default: Array of templates used on the Rustwall server
- These templates are used to instruct the ring generator.
- If a template is omitted for any ring, the ring generator will create randomized parameters using the distribution defined in RandomizationDistribution.
- RGWorldgenTemplate (object)
- Default: N/A
- This object holds all of the parameters for a given ring template.
- Name (string)
- Simply a name for the template, used for console printing and ease of parsing the config. No gameplay impact.
- FromRing & ToRing (integer)
- Start and end ring for what rings this template applies to. When envisioning this, keep in mind that rings are counted with the safezone as 0, and each ring outward from that increasing by one. Also, this is per RING, not REGION, so if you have a RingWidth of 4, a template from ring 1 to ring 2 would cover 8 regions.
- These MUST be declared with FromRing being the smaller of the two. They CAN be the same if your template would only apply to one ring (for instance, applying only to ring 5 would be FromRing = 5 and ToRing = 5).
- Seed (integer)
- World seed for this ring. You can set this manually if you want to; leaving it at "0" will have the game create a completely random seed for that template.
- If you generate your world, copy the seed, and then paste it in each template you create, you can actually get the different rings to look pretty similar, just with varied temperatures and oceans and such.
- landformData (string)
- This will force a single landform throughout the ring. I use this for making huge mountainous areas or guaranteeing flat prairies.
- oreData (object)
- I need to expand the documentation here, but this allows you to specify a richness from 0-255 of a particular ore. "nativecopper" with a value of 255 would mean ultra-high native copper guaranteed throughout the ring.
- Other "Data" fields (integer, 0-255)
- The other fields ending with "Data" are called "Fill fields". If you place a value in these fields, it will overwrite the world generator map for that specific type of data with that value. An example is setting "oceanData" to 255 would mean only ocean and zero land. Instead of the normal distribution and noise that VS uses for worldgen, this forces everything in that ring to a single value. Great if you want to see really extreme setups, such as a frigid wasteland, really bad if you want natural-looking distributions.
- Standard worldgen fields (decimal / double)
- These fields look like the normal world configuration fields, and that's exactly what they are. If you still want some dynamic and random generation, but want control over how it happens (i.e., lots of ocean, really warm, no rain, etc.) you can use these settings.
- Flood fill settings will always take precedence here. If you set globalForestation to -1 but forestData to 255, you will get all the forests.