Make Terrain water a placable brick

As a roblox developer, it is currently too hard to make different bodies of water look unique in a single game. For instance, ROBLOX water is currently linked to the terrain. I have no problem with this, and hope this remains a feature in the future, but it is too broad for someone to build an immersive experience. What I would like to see is a “water” brick, where people can place their water like they would place a brick. This would allow for custom properties based on which water brick is being used, and speed up the building process. A problem for me currently is that I generated terrain for my game. Here’s my terrain currently:

You may have noticed that it lacks water… This is because whenever I try to add water, I run into a problem where my part-to-terrain plugin wants to replace the grass with water. I don’t want the grass replaced, I just want the water to be on top of it. This could be solved by adding water bricks. It would be easy to scale up a water brick and place it lower than the rest of the map. You can see, I already did this with a regular part (though this doesn’t allow for swimming or waves)

As you can see, it leaves a very dark shadow beneath it, so I won’t be able to use this method.

You may think this problem is unique to me, and my project, but other projects may demand having different types of water, with different fog colors, wave size/speed, etc. Currently it would be impossible to put different wave speeds and colors in different bodies of water. With water parts that contain those properties in them, it wouldn’t be a problem.

Thanks,
-big

28 Likes

The closest thing we have to this now is sizing a brick and filling the said region with terrain via script.

I would like this though your problem is remediable with scripting. Honestly Roblox’s default terrain tools kinda stink, I’m considering writing my own plugin suite for terrain right now

8 Likes

I think there have been a couple of threads asking for this before (I’ll link them if I can find them again), and I still support this. Having to generate millions of voxels just to have water that goes to the horizon kills memory and performance, and I’d rather just have one resizeable instance to do that instead (or in the case of multiple large bodies of water, a handful of such instances).

It just so happens that parts fit that perfectly.

Edit - Here’s one of the older threads: We need water as a material for BaseParts

3 Likes

Another method is you could make a massive part for the water and then use one of many plugins to convert it to water terrain.

1 Like

I would really like to see this myself. Being able to have 2 or more colors for water would prevent the need to change the water color on the client depending on where the player is at in the game.

Also for those of you who would like to know how to fill water based on a part’s size and position:

local p = workspace.Part
workspace.Terrain:FillBlock(p.CFrame, p.Size, Enum.Material.Water)

4 Likes

Or as an alternative you could run this code in the command bar to fill the selected object with water while you’re editing;

local selected = game.Selection:Get()[1]; 
workspace.Terrain:FillBlock(selected.CFrame, selected.Size, Enum.Material.Water);

But as @bigcrazycarboy stated in his original post, the only problem with doing this is that it will replace the terrain that you’re attempting to place the water on (which can also be solved by scripting, albeit a bit more of a complicated script than the one above).

https://i.gyazo.com/6891b65e400e3e94089d0550e9147318.mp4

3 Likes

Or simply use Region tool :stuck_out_tongue:

1 Like

The script he provided is good for generating terrain in run time

1 Like