Link Search Menu Expand Document (external link)

Configuring Mods

If you render a world with custom blocks added by mods, BlueMap does not know how to render those blocks so they will look like this:

Unknown block render example

If you don’t want that, you can try to add and configure the resources of those mods to tell BlueMap how to render those blocks.
Here is how it works:

  1. General
  2. Configs (optional)
    1. Block-properties config
    2. Block-colors config
    3. Biomes config
  3. Infos for mod-developers


Read the chapter Installing-resource-packs before reading this chapter.

Usually, the only thing you need to do, is to take the client-version of the mod.jar and put it into the resourcepacks-folder.
E.g. if you want to add support for biomes-o-plenty you take the biomesoplenty.jar from your client and upload it on your server into bluemaps resourcepack-folder (next to bluemaps configuration-files)!

BlueMap will then load that mod like a resource-pack: Try to parse the block-states and models and load the textures.

Some mods might use resource-formats that are not supported. (Forge’s blockstate.json just has very limited support) For this blocks to be rendered you will have to override the resources with alternative resources using the normal format.

Configs (optional)

Optionally you can add some configs to tell bluemap how to render special blocks.
You need to put these config files any .zip file or folder, and then put that into bluemaps resourcepacks folder.
(You are basically creating a special resource-pack for bluemap here)

Block-properties config

File: assets/modid/blockProperties.json

  "minecraft:bubble_column": { "alwaysWaterlogged": true },
  "minecraft:grass": { "randomOffset": true },
  "minecraft:glass": { "occluding": false }

Usually bluemap tries to guess those properties based on the block’s model. But if that guess is not correct, you can change the render-behaviour of a block with this config.

Possible properties for blocks are:

  • alwaysWaterlogged are blocks that are waterlogged by default. So they don’t need the “waterlogged” property to be rendered as a waterlogged block
  • randomOffset are blocks that have a small random offset to break the grid-like pattern. In vanilla minecraft this is done for grass-blocks and flowers
  • occluding is used to determine if the block is “occluding” light when calculating the ambient occlusion on neighbor blocks.

Block-colors config

File: assets/modid/blockColors.json

  "minecraft:water": "@water",
  "minecraft:grass": "@grass",
  "minecraft:birch_leaves": "#86a863",
  "minecraft:redstone_wire": "@redstone"

Some blocks like grass, leaves, water or redstone are dynamically colored. Those colors change by biome, properties or are just static.

Possible values are @foliage, @grass, @water to use the foliage-, grass- or water-color of the biome to color the block, redstone to use the power-level of the block (used for redstone), or a static color using a css-style color-hex like #86a863.

Biomes config

File: assets/modid/biomes.json

    "minecraft:flower_forest": {
        "humidity": 0.8,
        "temp": 0.7,
        "watercolor": 4159204
    "minecraft:birch_forest": {
        "humidity": 0.6,
        "temp": 0.6,
        "watercolor": "#3f76e4"
    "minecraft:dark_forest": {
        "humidity": 0.8,
        "temp": 0.7,
        "watercolor": 4159204,
        "foliagecolor": "#5528340a",
        "grasscolor": "#8828340a"

If a mod adds a new biome, bluemap needs to know some properties of that biome to calculate things like grass and foliage-color. You can define these using this config. Undefined biomes will be treated as an ocean-biome.

(The biomes-config works only for Minecraft 1.18+ worlds)

Infos for mod-developers

If you want your mod to be compatible with BlueMap you can simply add all needed resources and configs to your jar-file.

If you need to override your own resources exclusively for bluemap, you can do this by adding them inside the assets/<namespace>/bluemap folder.
(E.g. assets/yourmod/bluemap/blockstates/someblock.json will override assets/yourmod/blockstates/someblock.json)