Toggle Water On/Off

:red_circle: As a Roblox developer, it is currently too hard to develop under rivers, lakes, oceans, or any body of water after the water terrain is in them.

For example, I want to add some rocks and stuff inside the water and even change certain terrain materials. Yet itā€™s terribly hard to place things in it, note that it is possible to do this, but you have to submerge your camera underwater because of the water texture on the way and its collision.


This small river you see in the photo is not deep at all, making it hard for me to do the tasks I mentioned above.

:warning: This has always been an issue I had when decorating bodies of water in which I forgot to place things in it before filling with water. I cannot go ahead and just ā€œevaporateā€ this water for the purpose of decoration.


:green_circle: If Roblox is able to address this issue, it would improve my development experience because I would be able to clearly see under the water and do the changes I need, like placing rocks, fish, algae, change materials, etc.


Proposed Solution:

A button to toggle On/Off the water visibility when editing only. It would stop rendering the water and ignore collisions with the developing tools and raycasting for plugins. It can also put some shorelines to indicate the depth, but if thatā€™s hard then just donā€™t show the water.

Have in mind that having high graphics donā€™t solve this issue because of the waves and texture, and also because not everyone can handle Roblox at high graphics.

It can be similar to this button for disabling the UI when developing. (Located in the terrain editor maybe?)
image


Thank you! If there is a way of doing this which I doubt it, please let me know.

14 Likes

Only way I know of doing it is abusing glass and constantly updating its position to be infront of the camera although it will hide decals as well and idk about part selections but Iā€™m sure thereā€™s workaround for that too

1 Like

Even if you added a switch to remove water. The data of the water would still be there. Meaning all of the terrain that was updated would need to be recalculated to account for the changes done between itself and the water that should be there.

This could cause a lot of lag when turning water back on.

I do second this however, Ignoring water should be a native option among the basic tools in Roblox (including any future tools) and not just limited to the terrain editor.

2 Likes

I totally agree with this, modifying terrain in any way with water is very very hard, I hate it, water terrain needs a lot of work on it

Lets not forget aboutā€¦

ā€¦the water material weā€™ve been asking for months

1 Like

I decided to use part-water due the lack of customization and how unworkable Robloxā€™s terrain water is. That might be your best bet until Roblox does more with the terrain water, using parts for ā€˜waterā€™. Anyways, this feature would certainly begin to sway my mind if itā€™s seen through.

Additionally, you can change the water transparency which makes seeing things easier. There is a quality threshold though:

4 Likes

Would be a great UX improvement. Iā€™ve needed this several times.

As a workaround, you can run this in the command bar, and change the wave size back to normal when youā€™re done.
workspace.Terrain.WaterWaveSize = 0/0

8 Likes

This seems to be the solution to visibility honestly, with a quick plugin that saves the current WaterWaveSize and replaces it with a nan value when on solves that issue. Thanks for the tip.

Just Collision is still in place.

I am mainly asking for something that disable itā€™s rendering and not something that ā€œevaporatesā€ the water like the Terrain tool provided, if you get what I mean. Just something that makes water see-through and with collision off.

3 Likes

Want to be clear for anyone reading that this is a hack and not a solution. This is unsupported behavior. Roblox should still offer this natively.

2 Likes

Iā€™ve created a plugin on the same premise as @PeZsmistic in an earlier post:

Code for it is:

local Toolbar = plugin:CreateToolbar("Water Remover")
local ToggleButton = Toolbar:CreateButton("Toggles Water Visibility", "Toggles Water Visibility", "http://www.roblox.com/asset/?id=12702994240")
local Hidden = plugin:GetSetting("Hidden"..game.PlaceId) or false
if Hidden then
	local Store = Instance.new("NumberValue", game.Workspace.Terrain)
	Store.Name = "OriginalWaveSize"
	Store.Value = plugin:GetSetting("Original"..game.PlaceId) or workspace.Terrain.WaterWaveSize ~= 0/0 and game.Workspace.Terrain.WaterWaveSize or  0.15
	workspace.Terrain.WaterWaveSize = 0/0
end
ToggleButton:SetActive(Hidden)
ToggleButton.Click:Connect(function()
	Hidden = not Hidden
	plugin:SetSetting("Hidden"..game.PlaceId, Hidden)
	ToggleButton:SetActive(Hidden)
	
	if Hidden then
		local Store = Instance.new("NumberValue", game.Workspace.Terrain)
		Store.Name = "OriginalWaveSize"
		Store.Value = workspace.Terrain.WaterWaveSize
		plugin:SetSetting("Original"..game.PlaceId, workspace.Terrain.WaterWaveSize)
	else
		if game.Workspace.Terrain:FindFirstChild("OriginalWaveSize") then
			game.Workspace.Terrain.OriginalWaveSize:Destroy()
		end
	end
	workspace.Terrain.WaterWaveSize = Hidden and 0/0 or 
		(workspace.Terrain:FindFirstChild("WaterWaveSize") and workspace.Terrain:FindFirstChild("WaterWaveSize").Value or .15)
end)

Created a seperate post: "Hide Water', a very simple plugin that can temporarily hide terrain water!

4 Likes