Need help creating "Infinite" water

I have tried every possible option i can think of to make “Infinite” water for my game Ro-Planes 3, which is basically a large open world flight simulator adventure, so it requires me needing to expand the water infinitely or at least make it look like its infinite as the islands need to be spread out very far.
Ive tried classic methods which looked okay but caused insane lag.
Ive tried using meshes and textures but that just either looks bad or the texture shows through parts of the island ruining the purpose of the water.
Ive seen you can make water with particle effects and their attachments but i dont understand those.

I would like to recreate water similar to this Mesh deformation Water, pretty sure its animated mesh deformation water into roblox somehow. my blender expert of 5 years cant even figure out how this is done so im seriously stumped.

Another option i would be happy with is just flat animated water like this which he made Here But the issue was since its a Part, we couldnt expand it over 2048 (max baseplate size)

To sum everything up i really need to know how to make pretty, beautiful, cool looking modern water for my game that can be expanded like… 70,000 X and 70,000 Z in length while still looking good… is there any way to script this or…? what is the best option for “Infinite” Water today?


Besides what i have stated above, a more probably easier solution that i will be satisfied is this water below

It seems to be an animated texture part made a little transparent (that i already have). and then a part under it in some material. but what i dont understand is how they have made it infinite while keeping the texture smooth and not stretched or blurred. i say infinite because it seems to run on and on, wouldnt have an end to its water no matter how far i went in the game.


You cannot create “Infinite Water”. But, you can expand it every time in a certain direction if the player is close to the end.

As I said earlier, you can repeat placing “Water” parts next to each other in a form of a grid. Instead of having a huge part.

One thing you need to keep in mind is that too many parts can cause lag, So depending on the position of the player, you should consider placing and removing parts on the client-side.

1 Like

We can try that, do you have any examples of coding that would get that done smoothly?

The mesh-deformation uses a gernstner wave algorithm to turn a x position, s position, and a certain time and returns a y value. What would be a good option is to make the water client-sided only, and make the water follow the player. So you can update the x and z position of a large mesh part to the player’s plane, and also use the gernstner wave algorithm to update the y position of each bone in the mesh part every frame.

TLDR: there is no tldr read the whole thing bro

Hope this helped, and reply if you have any questions.


So how would we make what u said work? where would my scripter or animator start?

his words: “idk how to get it to work, its basically making a skeletal system inside the mesh part and animating the bones”

My scripter or animator both know next to nothing on mesh deformation. but yes this is very helpful if we understand more how to get started on this.

Follow the steps here and simply make code that makes the ocean follow the player. Therefore, whenever the player moves, it appears like there is infinite water.


okay sounds good.

we have the infinite part done, just need to figure out the mesh deformation part of it from those.

one bug we’ve come across is when the player dies the water disappears, and at high speeds in plane the water following player becomes choppy bc its following the player.

and were gonna have to make it much more parts being generated as 9 2048’s look like this

Just to confirm, the “infinite water” follow player code is on the client right? Because it would be choppy on the server because of latency. The mesh deformation part you should be able to figure out with the tutorials or just looking at a wiki page.

1 Like

yeah is there any way to fix that choppyness…? since the speed of the planes makes that definitely noticeable.

Is the infinite water part on the server or client?

1 Like

Do you mean something like this?


we uhh have yet to figure out how to script it to be infinite, if u have any ideas that would be helpful
we managed to make the water have mesh deformation but we dont know how to make it look clear and smooth like how textures expand keeping their quality, if we can expand the mesh deformation part like how textures expand in tiles etc, that would be great but it seems that the larger we expand the mesh deformation part the lower the quality it is and the more it just seems like a flat part :frowning:

yes thats exactly what im looking for LOL, except with mesh deformation water wise like one of the links posted, but one issue with it i see is that yours only is visible closely around the player, is that editable? as where id want all around the players farthest point of view at max graphics to seem like theres water, not it being a large square around them where u can see skybox under it. yk what i mean? and then as that player flies in a plane towards a certain island or direction, the water would generate under them and in distance like how your terrain generates.

(also your terrain is smooth as heck howd you do that lol)


Our goal: Screen capture - cfdebf93589e66a6b0852e5c51316c20 - Gyazo

what we currently have: Screen capture - 430a924d8ac918414e2708106d12b50c - Gyazo

they basically look the same except the lighting in our plane game makes it seem green which can easily be fixed eventually… but now our only issue my scripter cant seem to figure out is how to expand it past 2048… a lot of games already easily have done nice looking infinite water, how can we make this water seem infinite…? following the player makes it choppy… and we currently dont know how to make it generate more the further the player goes or by the players graphics settings.

I couldn’t find out how to make a meshpart expand past 2048 but for a regular part;

These are the properties to make inf normal part water (Using a SpecialMesh)

I do have fog enabled

Were still looking for a solution on how to make this smoothly infinite because whenever we expand a texture or something it gets blurred.