# Environments and Terrain Tools **Terrain tools** allow you to create realistic landscapes like mountains, rivers, and canyons. This article explains the tools used for creating terrain. ### Opening the Terrain Tools The terrain tools can be opened from the **Home** tab or **View** tab. ![](https://i.imgur.com/bVmwzSW.png) <img src="https://i.imgur.com/i3bfJvz.png" class="img-fluid mb-2"> The editor window is divided into **Create**, **Region**, and **Edit** sections, each outlined in detail below. <img src="https://developer.roblox.com/assets/blt3f2b7ea9b76106e5/Terrain-Editor-Tabs.png" class="img-fluid half-sized"> --- ## Create Tab ### Generate The **Generate** tool is used to create random landscapes. You can use this to quickly start a new landscape and then modify it based on your individual vision. <table class="table table-striped table-bordered"> <thead class="thead-dark"> <tr> <th scope="col">Attribute</th> <th scope="col">Description</th> </tr> </thead> <tbody> <tr> <td scope="row"><b>bug</b> (bold not rendering)</td> <td scope="row"></td> </tr> <tr> <td scope="row">**BUG**</td> <td scope="row"></td> </tr> <tr> <td scope="row"><b></bBUG>BUG</td> <td scope="row"></td> </tr> <tr> <td scope="row"><b>I GIVE UP :(</td> <td scope="row"></td> </tr> </tbody> </table> ### Import The **Import** tool lets you import heightmaps and colormaps. This feature is outlined further in the Importing Terrain Data article. ### Clear The **Clear** tool completely clears all terrain from the place. --- ## Region Tab Tools in the **Region** tab speed up terrain creation by letting you work with large areas. ### Manipulating Regions To select and manipulate a region: 1. Click the **Select** tool. 2. Click and drag to create a region bounding box (maximum of 512 studs along any axis). 3. Manipulate the region with the **Move**, **Resize**, and **Rotate** tools. These tools are very similar to how they're used with parts, except that movement can only be done in increments of 4 studs and rotation in 90&deg; increments. ### Duplicating Regions You can also copy and paste full selected regions&nbsp;&mdash; just click **Copy** and then **Paste** to create a new region. ### Filling and Deleting You can even fill or delete entire regions with a material: <div> <div class="row"> <div class="col-sm"> <figure class="figure"> <img src="https://developer.roblox.com/assets/blte340b555f2330df8/Terrain-Region-Filled.jpg" class="mb-0 half-sized"> <figcaption class="figure-caption text-center">Filled region</figcaption> </figure> </div> <div class="col-sm"> <figure class="figure"> <img src="https://developer.roblox.com/assets/blt65d50034ed5405ce/Terrain-Region-Deleted.jpg" class="mb-0 half-sized"> <figcaption class="figure-caption text-center">Deleted region</figcaption> </figure> </div> </div> </div> <div class="panel panel-info panel-collapse"> <div class="panel-heading"> Merging Empty Regions </div> <div class="panel-body"> When you select a region, you also select all the “air” inside that region. When editing regions — moving, resizing, etc. — the **Merge Empty** option affects the outcome. <div class="d-flex flex-nowrap"> <div class="col-auto pl-0 pr-5"> <figure class="figure"> <img src="https://developer.roblox.com/assets/bltb3881233692bf52e/Terrain-Merge-On.jpg" class="mb-0 half-sized"> <figcaption class="figure-caption text-center"> If **Merge** Empty is on, Studio will combine the selected region with its surroundings. This is useful if you want to make sure a region naturally merges with what's around it, as shown here between the ice and stone. </figcaption> </figure> </div> <div class="col-auto pl-0 pr-5"> <figure class="figure"> <img src="https://developer.roblox.com/assets/blt9422bb69063ac79b/Terrain-Merge-Off.jpg" class="mb-0 half-sized"> <figcaption class="figure-caption text-center"> If **Merge Empty** is off, Studio doesn't merge the region with what's currently there. This is useful if you want to keep a region exactly like it was built, as seen here by the “air” region remaining when the ice block is moved </figcaption> </figure> </div> </div> </div> </div> --- ## Edit Tab ### Add / Subtract The **Add** and **Subtract** tools are useful for building the majority of your environment, before you start fine-tuning details. These tools contain various attributes: <table class="table table-striped table-bordered"> <thead class="thead-dark"> <tr> <th scope="col">Attribute</th> <th scope="col">Description</th> </tr> </thead> <tbody> <tr> <td scope="row">**Brush Shape**</td> <td scope="row">The shape of the brush; either a **sphere**, **cube**, or **cylinder**.</td> </tr> <tr> <td scope="row">**Base Size / Height**</td> <td scope="row">The size of the brush, ranging from 1 to 64. To set a **Height** that's different from the base size, click the small "lock" icon and select/enter a new value.<br> <span style="color: red;">BUG... These images should be rendering as 2 columns in Bootstrap.</span> <div class="container"> <div class="row"> <div class="col-3 pl-0 pr-5"> <figure class="figure"> <img src="https://developer.roblox.com/assets/bltf2b420a8bad0515d/IntroToTerrain_sphereLarge.jpg" class="mb-0 half-sized"> <figcaption class="figure-caption text-center">Brush at largest size</figcaption> </figure> </div> <div class="col-3 pl-0 pr-5"> <figure class="figure"> <img src="https://developer.roblox.com/assets/blt4721c46b0329f2c4/IntroToTerrain_smallSphere.jpg" class="mb-0 half-sized"> <figcaption class="figure-caption text-center">Brush at smallest size</figcaption> </figure> </div> </div> </div> </td> </tr> </tbody> </table> ### Grow The **Grow** tool slowly fills in areas with terrain which is useful for adding hills or smoothing out gaps. ### Erode The **Erode** tool slowly removes terrain. This is useful for creating caves, canyons, rivers, and lakes. ### Smooth The **Smooth** tool smoothes out terrain in the selected area. This is useful for making jagged terrain more natural and getting rid of sharp corners. ### Flatten The **Flatten** tool lets you create completely flat terrain, ideal for areas where you may want to place buildings or roads. In addition to various attributes outlined above, this tool includes two important options: <table class="table table-striped table-bordered"> <thead class="thead-dark"> <tr> <th scope="col">Attribute</th> <th scope="col">Description</th> </tr> </thead> <tbody> <tr> <td scope="row" class="text-nowrap"><b>Flatten Mode</b></td> <td> <div class="container mt-1"> <div class="row"> <div class="col-auto mr-2 px-0"> <img src="https://developer.roblox.com/assets/blt5fedb5a532eed649/Terrain-Erode-to-Flat.png" class="img-fluid half-sized mt-0 mb-2"> </div> <div class="col ml-1 mr-0 px-0"> <b>Erode to Flat</b>&nbsp;&mdash; Given a plane to flatten on, only terrain <b>above</b> the plane is removed. </div> </div> <div class="row"> <div class="col-auto mr-2 px-0"> <img src="https://developer.roblox.com/assets/bltf4fbc685baa6964b/Terrain-Grow-to-Flat.png" class="img-fluid half-sized mt-0 mb-2"> </div> <div class="col ml-1 mr-0 px-0"> <b>Grow to Flat</b>&nbsp;&mdash; Given a plane to flatten on, only terrain <b>below</b> the plane is filled in. </div> </div> <div class="row"> <div class="col-auto mr-2 px-0"> <img src="https://developer.roblox.com/assets/blte34ef4c41ecdccfc/Terrain-Flatten-All.png" class="img-fluid half-sized mt-0 mb-2"> </div> <div class="col ml-1 mr-0 px-0"> <b>Flatten All</b>&nbsp;&mdash; Given a desired plane to flatten on, a perfectly flat surface is generated (terrain above the plane is removed and terrain below the plane is filled&nbsp;in). </div> </div> </div> </td> </tr> <tr> <td scope="row"><b>Fixed Plane</b></td> <td>When toggled on, locks the flatten plane to a specific <b>Y</b> position as defined by <b class="text-nowrap">Plane Position</b>. The plane's position can either be manually entered or selected with the "eyedropper" tool next to the value input field.</td> </tr> </tbody> </table> (VIDEO) ### Paint The **Paint** tool changes the terrain’s current material, for example grass, rock, or water. This is useful for adding variations like dirt and rock patches in a grass field. (VIDEO) ### Sea Level The **Sea Level** tool lets you create a consistent water level across any region. To use it, enter a **X**/**Y**/**Z** position and size, then click **Create** to flood the region with water or **Evaporate** to remove water. (VIDEO) <div class="alert alert-warning" role="alert"> Alternatively to setting a strict **X**/**Y**/**Z** size for the sea level region, you can drag the handle "globes" around the region box to resize it. </div> ### Replace The **Replace** tool lets you replace one terrain material with another, either within a large box region or by using the terrain brush. --- ## Customizing Terrain Terrain can be further customized by adjusting material colors or enabling decorations. These options are controlled through the **Terrain** object within **Workspace**. <img src="https://developer.roblox.com/assets/bltcf20b6ab12c88079/Explorer-Terrain-Object.png" class="img-fluid half-sized"> ## Material Colors Each terrain **material** like rock, ice, or grass has a default color, but you can customize these if desired. For example, if you’re building an arctic world or a volcanic wasteland, terrain colors may be adjusted to fit the theme. 1. In the **Properties** window, expand the **Appearance** → **MaterialColors** branch. <img src="https://developer.roblox.com/assets/bltce3d58ef8a0234b4/Properties-Terrain-Materials.png" class="img-fluid half-sized" style="margin-left: 32px;"> 2. Enter or select a new RGB value for any material and the terrain will update dynamically. <div class="d-flex flex-nowrap" style="margin-left: 32px;"> <div class="col-auto pl-0 pr-5"> <figure class="figure"> <img src="https://developer.roblox.com/assets/blta70cc35bed06c256/Terrain-Colors-Default.jpg" class="mb-0 half-sized"> <figcaption class="figure-caption text-center">Default colors</figcaption> </figure> </div> <div class="col-auto pl-0 pr-5"> <figure class="figure"> <img src="https://developer.roblox.com/assets/blt75f2ba8d7a86af71/Terrain-Colors-Custom.jpg" class="mb-0 half-sized"> <figcaption class="figure-caption text-center">Customized colors</figcaption> </figure> </div> </div> </div> </div>