Block/World Configs

The format of all data-driven JSON configs for blocks and the world

Temperature Units

Most world-related configs support using different units depending on the user's preference.There are 3 supported units of temperature for use with biome and dimension settings:

  • F : Fahrenheit

  • C : Celsius

  • MC : Minecraft Units. These are used in biome generation, and typically range from 0 (freezing) to 2 (the Nether). With default settings, perfectly habitable is about 1.

Internally, these are all converted to MC units, since these are the units that are used by Minecraft and other mods for their biomes

Block Temperature

/block/block_temp/

You might be familiar with BlockTemps from previous sections. They can also be defined in JSON format, which has a couple advantages over traditional configs. The main reason they can be defined this way, though, is because of the modularity of JSON rather than defining them in the monolithic TOML files.

Format

{
  // A negatable list of required mods
  "required_mods": [
    // none
  ],
  // A negatable list or single block requirement
  "block": {
    "blocks": [
      "#minecraft:all_signs"
    ],
    "nbt": {
      "front_text": {
        "has_glowing_text": true
      } 
    }
  },
  // The temperature of the block
  "temperature": 5,
  // The maximum temperature change that this BlockTemp can cause
  // Multiple instances of this block can only heat/cool up to this amount
  "max_effect": 20,
  // Temperature units to use. All temperature fields must be specified in these units
  "units": "f",
  // (default=true) Makes the block's effect fade with increasing distance
  "fade": true,
  // The radius of the block's area-of-effect
  "range": 7,
  // (optional) This block cannot heat the local area to above this value
  "max_temp": 100,
  // (optional) This block cannot cool the local area to below this value
  "min_temp": 30,
  // (optional) Location requirement that must pass in order to emit temperature
  "location": {},
  // (optional) Entity requirement that the nearby entity must pass to be affected
  "entity": {},
  // (optional) Multiple instances of this block will apply temperature logarithmically 
  // (diminishing returns)
  "logarithmic": false,
}

Biome Temperature

/world/biome_temp/

The temperatures of biomes can be customized through JSON data, which is useful for 3rd-party developers who wish to support their custom biomes, or for pack developers who want a custom feel.

Format

Luckily, the format for biome temperatures is simpler than most settings:

Dimension Temperature

/world/dimension_temp/

Dimension temperature configs apply to an entire dimension, overriding all biome temperatures. if is_offset is true, the dimension's temperature will be offset instead (in addition to biome temperatures).

Format

Structure Temperature

/world/structure_temp/

The temperature within the bounds of a naturally-generated structure can be modified, similar to dimensions and biomes.

Format

Temperature Regions

/world/temp_region/

Cold Sweat uses a system of "temperature regions" to determine the temperature of the world at any y-level. These regions are highly configurable:

Format

Each config can be made up of many "regions", which define the world's temperature at specific altitudes. First, we will go into detail about to makeup of a region bound:

The "temperature" field also has a few optional properties:

It can also just be an integer, which defaults to "static" with a strength of 1:

Now, let's put this together into a complete region:

Finally, we can look at the full formatting for a temperature region file:

Last updated