How to make Infinite sand part terrain

If you’ve heard of GPO and played it before and atleast drowned once, you’ll notice GPO has infinite never ending sand. How did they make their sand? I tried using specialmesh but it’s not collidable.

Something like this but collidable:

2 Likes

Might make a script that when player reaches a point the base plate moves under his feet.

that’ll make the player fall forever and the baseplate would go way too low that the player would die in the void??

Then dont let the script change z axis position.

that wont change the fact that the mesh would still make me go through it lol

Collidable way could be making a part of maximum size

Replace mesh with part or mesh part

How long do you need it to be? Millions of studs long?

He said infinite


Try setting the part size to math.huge and see if that does anything

the max part size is 2048,2048,2048. That wont work. You’ll need to do a script that make a new part every second or 2

Oh I forgot about that, maybe try putting a mesh again but an invisible part following the player under him.

I did this before by making a part follow under the player’s character as they travel, it is seamless to the player that its happening. Just overlap them as you go so there is no time where the part is moving or gone. So, two parts, generate the next one when the player nears the edge of the current one.

You could create a mathly function and create your own custom “chunks.”

For example, if the player is at X:-1024 Z:0, you could :Clone() the sand and move it to the calculated positions of where the next 2048x2048 “chunk” should be.

Difficult to do in my opinion but once you figure out the math it should be quite easy.

Note: Depending on your games design, like if you travel millions of blocks out, I think you might run into floating point errors so there could be the possibility of space inbetween sand chunks that gets bigger the farther you go out. I think it’ll be the least of your problems but still a problem nonetheless.

I made a part big enough to not need to regen too often(200x200? idk) place this at the X and Z coordinates of the player at the height Y of your sand specialmesh. Then, periodically measure the distance between the player and the part(will give you distance to center), then when the threshold you set it reached(idk, distance >80 studs), generate a new part centered under the player, destroy old part, repeat this. This can be a local script for each player generating their own floors. There is your infinite floor to use with your specialmesh sand.
If you use vehicles you might want the part to be bigger and have more buffer zone so the vehicle doesn’t outrun the regen.

the specialmesh land would allow me to go through it and die.

No the part i’m describing will be anchored and hold you up.

Specialmeshes don’t have cancollide so an infinite specialmesh would allow me to go through it…

The best way to go about this would be welding/consistently changing the position of a basepart under the user on the X and Z axises while never changing the Y axis. This allows for the part to move without any form of limitations and allows the player to always remain above the Y death level. You can go about this with multiple methods, some of which are efficient and some of which are not.

The specialmesh is just for looks, you put a big anchored part (call it a floor, make it 500x500) under the player have a script monitor their position and update this part’s position as the player moves. The roving floor will hold them up. No welding required.

this is my update line:

rovingfloor.Position = Vector3.new(char.Head.Position.X,0,char.Head.Position.Z)

Replace that 0 with whatever height your specialmesh sand part is at.

rovingfloor is just a rectangular cancollide basepart.

I see, I’ll try this when I finally decide to make a functional sea, thanks.