Smooth Terrain Heightmap/Colormap Importer Release!

Hi Developers,

One of our goals for this year is enabling the quick creation of larger, more diverse worlds. Our roadmap to deliver on this goal involves a variety of improvements to the Smooth Terrain system. Today, we are happy to announce the launch of the first major feature - the Heightmap/Colormap Importer! The Importer can be found under the Import icon on the Terrain Editor Plugin.

New Limits
Using the Heightmap/Colormap Importer, you can quickly create terrain of enormous size. We’ve tested to ensure performance up to 16384x16384x1024 studs (4096x4096x256 voxels), which we have set as the current limit. Imported terrain can be centered at any chosen location in the world, allowing separate segments of terrain to be built if desired. N.B. All units in the Importer are in studs.

Technical Bits
The Importer expects PNG images for both the heightmap and the colormap. It’s best to provide a grayscale image for the heightmap but the importer will still work if given an RGB image - it will just select the value from the Red channel as the height information.

The PNG pixel channels provide 256 levels of height information. The importer will scale the terrain to the desired Y height and use a smoothing algorithm to remove stair-stepping artifacts.

A heightmap can be imported by itself - the terrain will be created with Asphalt as the default material. A colormap cannot be imported by itself - it requires a heightmap as the terrain base. Materials are interpreted from the below key. Colors not found on this key will be rounded to the nearest key value.


RGB Value Material RGB Value Material
[115,123,107] Asphalt [206,173,148] Limestone
[30,30,37] Basalt [58,46,36] Mud
[138,86,62] Brick [148,148,140] Pavement
[132,123,90] Cobblestone [102,108,111] Rock
[127,102,63] Concrete [198,189,181] Salt
[232,156,74] CrackedLava [143,126,95] Sand
[101,176,234] Glacier [137,90,71] Sandstone
[106,127,63] Grass [63,127,107] Slate
[102,92,59] Ground [195,199,218] Snow
[129,194,224] Ice [139,109,79] WoodPlanks
[115,132,74] LeafyGrass [12,84,92] Water

Have fun! Please let us know what you think! Feel free to post fun terrain creations in this thread.

[Update 6/28]
Hi All,

Thanks for trying out the Heightmap/Colormap Importer and all your fun creations! Unfortunately, we found a few critical bugs that are causing issues. We are turning the feature off while we diagnose and fix.


[Update 8/15]
Hi Developers,

Today, we are excited to re-release the Smooth Terrain Heightmap/Colormap Importer! We’ve cleaned up a few bugs and made a significant change to the workflow. To encourage safe and responsible usage, the Importer now requires that the images go through moderation before being used. Once an image has been uploaded and approved by moderation, it can be selected in the Importer.

Selecting an image that has not gone through moderation will display an error and not allow the import process to proceed.

Please note that your Game now must be published in order to use the Importer. Using the Importer in an unpublished Game will display a “Game must be published before importing terrain” error in the Output window. For best results, image resolution should be kept to 1024x1024px or below - images larger than this limit will be automatically scaled down.

One of our most important values at Roblox is to respect the community. This means respecting developers and players alike. This workflow change was critical to ensure we are in line with our own core values. As we look at the future of development on Roblox we know we need to improve your efficiency and this means not blocking your workflow. We are currently investigating ways to enable you as developers to work faster than ever, while still upholding our safety standards.


Amazing update, this will allow creators to at last build maps at scale quickly!


Finally, I’ve been waiting so long for this!


Brilliant Update, been waiting for this for a while!


This is great! It will be much easier and faster to use terrain tools after this :grinning:


Hooooooly! I’ve been waiting for this! Normal maps soon? :wink:


There’s another program called FeralHeart that uses a similar feature in it as well. From what I’ve heard, I’m sure many will love using this as well.


This update is huge! Really loving the pace that Roblox is advancing at. I hope that we get to see custom terrain materials and normal maps in the near future. :wink:


YES! This solves literally all of my problems with using plugin based solutions. Thanks so much!

EDIT: This is amazing and all you folks at the HQ are even more amazing.


The island of Mata Nui. I’m still experimenting with color mapping, but so far I’m loving this feature!


Oo! Very nice addition, but it would be GREAT if we could have APIs for producing color/heightmaps and building chunks of terrain from them.


Is there a size limit? Im currently unable to use studio to check, but I really hope that we are able to import enormous maps.


Is anyone else getting an issue where their materials don’t seem to properly import? I followed the key, yet limestone is generating as salt, sand as cobble, sandstone as concrete, etc.


EDIT: If anyone else is having this issue, you need to type the key color manually instead of just color-picking like I did. At the time of writing the RGB values in the key aren’t the same as the RGB values of the colored squares in the key.


Very cool. I will look into this for sure.


Great addition! I already started experimenting with it.


No limits as well! That’s amazing, can’t wait to use this feature!


Yeah, I think their rounding method for colors is a bit off. I used this for my color mapping:

But somehow cracked lava is appearing in the ice region, and ice is appearing in the desert region.




The OP was updated to reflect the presence of the limits.


I see what my problem was. The color on the key and the RGB value don’t seem to match.

I needed to type in the RGB value manually as the key’s actual image was off.


Since @144hertz and @XenoSynthesis and mentioned this, I checked every value and as he said, most of them were off. So I painted everything again by manually setting the RGB values in the table.

If anyone else needs the “correct” table:


Just as a side note on why I believe the materials weren’t matching:
Since some materials worked and others didn’t, I assume when “colors not found on this key [were] rounded to the nearest key value”, some of the approximations were too close and resulted in different materials.

EDIT: me and the boys testing colormap: (@Anwendungsentwickler)