Skip to content

Getting Started

TheDeathlyCow edited this page Jun 7, 2026 · 37 revisions

Getting Started

How to Create a NovoAtlas Dimension

  1. Create or find a grayscale image height map in one of the supported formats[^1]. You may either use 8-bit RGB or 16-bit grayscale, if your image format supports it. To create maps, I would highly recommend using WorldPainter, as it is purpose-built for Minecraft map making and has an option to export a height map. You can also get heightmaps of Earth from a variety of websites, here's a few that I've found (though not tested with NovoAtlas):
  2. Create a copy of the map and paint over it with whatever colours you like. Each colour corresponds to a different biome. Do not mix or blend the colours. Save this image as one of the supported formats[^1] with 8-bit RGBA encoding. For cave biomes, you can create separate maps for each "layer" of the world.
  3. Create a datapack and add these images to it, you can either copy the example datapack or make one from scratch yourself.

[^1]: Supported formats include: .jpg, .tif, .tiff, .wbp, .bmp, .gif, .png, .jpeg, .wbmp, and .webp. Some of these formats support lossy compression, however I strongly recommend against utilising this feature, especially for biome maps. Using lossy compression will result in loss of detail and incorrect biome placement (particularly around biome boundaries).

Some Tips

Important

All of the example datapacks use the custom dimension avila-example:avila for the custom world. To go to this dimension once you've created a world, ensure that commands are enabled and then use the command /execute in avila-example:avila run tp @s ~ ~ ~ teleport there!

  • The easiest way to create a NovoAtlas datapack is to copy an Avila example back from this repo's releases page and replace the height and biome maps with your own. Remember that the height map and biome map images must all have exactly the same dimensions, using images with varying dimensions is not supported and will probably result in strange behaviour.
  • When you're drawing the biomes, it may be helpful to be able to see the heightmap as a contour map. You can emulate this in your preferred photo editor by selecting a black pixel and then using "select by colour" with varying thresholds to get varying contour lines of your map.
  • Your map will be centred at (0, 0). Up in the image is north. If your map is an uneven number of pixels, the last pixel on the south and/or east side will be cut off.
  • If starting_y in your dimension is less than your dimension's min_y, you can create areas of void. Use this to create non-rectangular maps!
  • Anything outside of the world will be void, but some structures may still spawn, either as spill-over from generating on the edge of the world, or as part of the normal features of your default biome.
  • If you use 16-bit-per-color heightmap images to allow for heightmap values outside the 256 block range (like this one), and you are getting a flat world at y=320, try using the vertical scale option in the map info format to reduce the final heights of the map to more sensible Minecraft values. For that example map, a vertical scale of 320 / 65535 = 0.004882887 works well.
  • When creating large maps, you can use the horizontal_scale option to increase the size of the world from smaller images, which will save RAM and disk space. The default interpolation strategy will produce rather blocky results, but you can also try using bilinear, bicubic, or lanczos interpolation. From my testing, the default strategy works well for horizontal scales from 0-1, bilinear works well for scales from 1-2, bicubic works well for scales 2-5, and lanczos works well for scales over 5 (depending on the window size). However, bicubic and lanczos can require more CPU power to run, lanczos in particular will be quite slow with large window sizes.
  • To allow for lakes and rivers at varying heights from sea level, use the fluid_height_map option of the map info. This is a separate map to your regular terrain that tells the game what level to generate the dimension's default fluid at (normally water). If two different fluid levels meet and there is not land to separate them, then the game will try to generate barriers between them, like aquifers do. This option is only available in mod version 1.4+.

Modifying a NovoAtlas Dimension

Important

Modifying dimensions requires that you already know how to configure datapacks. If you have never done this before, the Minecraft Wiki has a basic overview (there are also tutorials on YouTube).

You can of course, create or modify a NovoAtlas by yourself too. This is mainly done through the new datapack registry novoatlas/map_info. The full format of map info objects can be found on the formats page. The height map and biome map images have separate registries, novoatlas/heightmap and novoatlas/biome_map respectively.

Once you have your map info, you will need to create or modify a dimension. The actual generation of the map is done with a custom chunk generator and custom biome source. The format of these objects can be found on the formats page.

Examples

A custom dimension definition
{
    "type": "minecraft:overworld",
    "generator": {
        "type": "novoatlas:image_map",
        "map_info": "avila-example:avila",
        "settings": "minecraft:overworld",
        "underground_density_function": "novoatlas:caves",
        "enable_carvers": true,
        "biome_source": {
            "type": "novoatlas:color_map",
            "map_info": "avila-example:avila",
            "default_biome": "minecraft:the_void"
        }
    }
}
Map info definition
{
    "starting_y": 6,
    "height_map": "avila-example:avila",
    "scaling": {
        "vertical_scale": 1.0,
        "horizontal_scale": {
            "value": 1.0,
            "interpolation": "nearest_neighbor"
        }
    },
    "surface_biomes": {
        "map": "avila-example:avila",
        "biomes": [
            {
                "biome": "minecraft:plains",
                "color": "#6D923D"
            },
            {
                "biome": "minecraft:beach",
                "color": "#C4B058"
            }
        ]
    }
}

Clone this wiki locally