We are excited to release a new feature for the Terrain tools, Material Search and Replace
To use it :
Go to the Terrain Editor
Pick if you’d like to use a Box for a large region or a Brush for a smaller region For a Box , use the region direct manipulation handles or Map Settings text fields to move and resize the region to the area you’d like to search for and replace materials. For a Brush, pick your Brush settings.
Under Material Settings, choose the source material you will be replacing and pick the desired target material to replace the source with.
If using the Box tool, after you have your desired settings, click Replace. If using the Brush tool, paint on your terrain to swap materials.
To set the source material directly from existing terrain, hold down Alt/Option and left-click on the source material.
To set the target material directly, hold down Alt/Option + Shift and left-click on the target material.
Finally, we are aware that the icon doesn’t render properly in dark mode. You’ll have a fixed icon next week.
Please let us know what you think! We can’t wait to see what you can do with Terrain!
Terrain Material Search & Replace is bigger than you think.
Ok, let’s start!
What is with the near constant updates? Finally attention to terrain!
This is going to be so damn useful as a terrain developer. I’ve always had to use Eventive’s revamped terrain converter, but no longer!
Finally, one of the most useful plugins for anyone dealing with terrain has finally been fully implemented into Roblox itself. Their plugin was honestly kind of clunky and hard to use, not to discredit their creation.
But seriously, thank you so much!
I literally cannot stress how important this is. If you’ve ever used terrain before, you know how useful this will be.
Changing seasons? Done in literally under a minute! No need to worry about having to use brushes to individually paint the terrain, or use the plugin to, still, do this manually.
I’ve searched Youtube tutorials for this for a very long time. If I accidentally used one terrain material it was a pain to switch it over.
EDIT: I. Literally. Cannot. Stress. How. Important. This. Is!
This post will have examples on how to use this in your day-to-day terrain creation.
I’m the product manager who owns Terrain We have some great improvements we’re working on to make Terrain in Roblox world-class. We have a big vision with a lot to do, and we’re working to make sure we stage it in a smart way to continuously deliver improvements to you. However, I’d prefer not to comment on release dates because our focus is shipping high-quality, reliable, and useful tools to you even if they take longer than initially expected.
And if you have a specific feature request, please let me know!
Wow, thank you! It’s great to hear that Terrain is going to get big updates! I love Terrain, but it hasn’t gotten very much attention recently, glad to hear that’s changing.
My 2 biggest terrain requests are: custom terrain materials (I know, it’s been said a lot), and being able to paint different colors on the same terrain material in different places. My biggest problem with terrain is that I can’t easily make lots of different biomes in the same world, because there is only 1 grass, stone, sand, etc. color.
Sorry, I know this was a bit off-topic from the OP. This tool is a great addition too!
I wish there was an eye dropper for picking source the material (and perhaps the target material as well) easily because I’m just gonna put it out there, I’m a terrain noob. It’d take me forever to select the right material from the choices, so an eye dropper would be amazing to have. (EDIT: Oops, I misread the OP!)
We should be able to select multiple source materials at a time since a selection of terrain can host a wide variety of them, and it’d be slow to pick each of them individually and convert to another material.
It’d be nice to have these functionalities within scripts (if not already), as an automatic season-changer would benefit a lot from this. Maybe like :ReplaceSourceMaterial(source, target), whatever the name, but it’d be great for scripts. This is using the behavior that @Elttob requested for. (EDIT: This exists, thankfully!)
I don’t think Air should be an option for the brush source material as its already given by Grow/Add. Plus, replacing or converting to air is very unstable as it can create/pave away terrain way too fast to keep up with preference.
Nevertheless, this is a great addition and thanks to everyone who worked on this!
Keep it up, Roblox!
Plus, replacing or converting to air is very unstable as it can create/pave away terrain way too fast to keep up with preference.
This is a bug that’ll be fixed in the next release. For now, turn on plane lock for the air material to behave correctly.
Also, one key improvement the replace tool has over add is it’ll replace just the air. Here I’m trying to fill in a lake with water. The add tool replaces the grass too leaving an ugly result, but the replace tool keeps the smooth sides
And that’s now more hours of development time saved. I wasn’t aware myself that some terrain swapping plugins existed or anything and usually would paint over materials I wanted to replace myself because trying to automate the task through a script is painful and would take longer. I’m thankful.
Is it currently possible, either through Terrain.ReplaceMaterial or the plugin, to globally replace terrain materials? I have some expansive terrain-based maps in storage for projects that sprinkle terrain over large distances so if I want to update it all at once. For example, changing every cell of grass to snow for a winter update. Not a safe option for everyone but a QoL for some.
Through the plugin, you can simply expand the selection box to as big as you want! (Specifically 16384 x 16384 x 16384.) That should be plenty enough. it’s the maximum for heightmaps, sea level, etc. And should be sufficient in size. Through scripting I’m not sure, but this is a (kind of hack?) that you can try.
Is it currently possible, either through Terrain.ReplaceMaterial or the plugin, to globally replace terrain materials?
The box mode in the tool has a very large maximum size, so you can drag it over your entire map and replace. If you want to script it, Terrain:ReplaceMaterial() is capped in maximum region size (the same limit as :FillBlock()), but you can split your world up into multiple Region3s and call it for each (that’s how we do it ).
There isn’t an API to get the non-empty extents of the terrain, or perform an operation globally. If you have a good use case for this, file a feature request