Terrain Generation Tool

I wanted to create a plugin that allowed the creation of more realistic terrain without having to go to the effort of creating height map images etc. Here is an image of a typical island created with the tool (please note, for large maps you will need to leave it to run for 20 minutes or more for initial generation, it has not crashed, do not interrupt it):

https://create.roblox.com/store/asset/124663434712991/LSGTerrain

If you try it out, please let me know your thoughts and post some pictures if you manage to create anything nice! Have fun.

18 Likes

umm, what is the plug in name when it shows up? does it need script injection…?

might need to close and open studio , then also turn on script injection…

or what? I do not see it after I put it in my plugin folder…

Thanks to Lord_BradyRocks for testing and finding an issue: This has now been resolved by Roblox.

1 Like

I’ve had some suggestions / questions on this in DMs, I’ll summarise the answers here to keep you all informed:

  1. What I have considered adding to it:
    Auto-painting more terrain types by altitude and gradient (although it is quite easy to manually do this in the Roblox terrain tools). Auto-vegetation / rock tools. Road / path generation. River / stream generation. Convert to editable mesh + different LoD.

  2. Am I still working on it:
    I’m paused, but open to possibilities. Apart from a couple of DMs the response to the plugin has been minimal and I don’t really want to pile hours into something 3 people might use.

  3. Will I charge for it in the future:
    I’d like to, and that would really motivate me to put more time into it, but it feels like there is almost no demand for it, so I would be pay-walling something from most users to earn a coffee, which seems pointless.

You can help motivate me by:
If you have tried it out, post here and tell me what you do/don’t like. Tell me what new feature you would most like to see. If you just like whole thing, please say so as that would really motivate me to do some more (it also bumps it for others to see). If you would actually spend $ on this let me know.

3 Likes

The issue with the Plugin RunContext has been resolved, and this plugin works now (I tried it myself). And can I just say, it looks amazing! I’m envisioning making some kind of open world traversal game with it (though we’ll see if that ever actually happens haha)

1 Like

Thanks, I really appreciate you resolving the RunContext issue and the kind words for the plugin.

1 Like

I had a DM asking for a more detailed explanation of how the parameters worked, here was my answer, in case it helps anyone else:

The best way to understand the parameters is to imagine a 2D section of the terrain: the profile is constructed by adding waves of different wavelengths (how close the peaks are to each other) and amplitudes (how high the peaks are), like this:

image

The terrain is constructed from a base wave that is scaled to give you the number of high peaks you request and then has two layers of noise added to it.

Set your Sea Level to 1 to turn off water.

Now set Noise SWL and LWL heights to 1 (this is effectively turning off these additional noise functions). Keep Base WL at 200 and Base WL Height at 150 and you can see the base waves (in 3D!).

What can be a little confusing is my parameter Height Sources, this determines how many high peaks there will be and then flattens the Base Waves as they move away from these points (this is what forms an island peak or mountain range).

Remembering wavelength (WL) is the distance between the peaks and amplitude (WL Height) is the height of each wave top, try adjusting the BASE WL and WL Height (just change one at a time) and you should understand the effect. If you set the BaseWL to 20 instead of 200 you will be able to see the wavelength in the terrain and appreciate how it is squashed down away from the Height Sources.

Noise SW (short wavelength) and Noise LW (long wavelength) are just added on top of this, you can experiment with them in the same way by setting the WL Heights you are not interested in to 1.

I suggest you experiment, just changing one value at a time until you are comfortable with it.

2 Likes

Would this work properly for larger scale terrain projects? Or is using heightmaps generally more reliable?

It will work for larger terrains, have an experiment! You may have to leave it running for a while depending on quite how large you go.

Definitely experiment with the settings on a smaller map until you get the hang of it.

Post here what you manage to achieve.

This looks excellent, and I will check it out for feedback. Thank you for creating something like this.

1 Like

This is really cool. I love the UI. It just works :star_struck:

I wanted to generate bigger than 1024 maps, but it started to struggle.
Studio freezes when I generate big, like 2048, but when I press yes on the “do you want to stop this plugin” window and try again it’ll generate maps, but some chunks are missing (empty flat areas).

Same for 4096, but now the entire map is just flat desert with alien looking poles and strange walls around the outer edge.

I’ve certainly made larger areas than 2048 with it, but you do have to be patient while it does it, even on a good spec PC. I remember leaving it for 20 mins for a large test. If you still can’t get it to work, post your non-default values and I’ll test it out.

Ah I suppose the missing chunks could be because I terminated the plugin? I’ll test again see if it finishes without terminating.
After terminating it’s really quick to generate so I made the assumption something is wrong.

I just let it run and confirmed you’re correct.
No missing chunks. And after the initial long wait, re-generating with the same seed is quick.
Fantastic.

2 Likes

@Airaneon
Thanks for the plugin review: You should be able to see the option for a seed as the first entry on the Base tab.

And yes, I’m still active in Roblox.

1 Like

Can this plugin somehow work in game? (as a module)

Hey sorry for the late reply, but I’ve quit roblox as the subscription requirement to publish games for everyone broke the main idea I was working towards. You could plausibly take some of the code and make it work for small terrains at run time, if you follow some of the links on this post one of them contains the source. However, there are other run time procedural terrain tools out there, I suggest looking at those first.

Probably best not to look for replies from me as I just dropped in at random and I doubt that will happen again for a while.