Infinite Terrain Plugin

Infinite Terrain

Download | Video Tutorial

About

Infinite Terrain is a plugin that easily allows you to create and edit infinite terrain inside of studio

How To Videos

Getting started video

How to spawn models

How to prevent server sided physics based objects from falling through the terrain


Support My Work

If you liked my work and want to donate to me you can do so here


SourceCode

You can get the sourcecode to this plugin by editing this Place

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.



Videos


Compatibility

After updating the plugin your files may no longer be compatible follow the guide below to edit your files to make them compatible again
return {
	["thickness"] = 6, //add this to your terraindata if missing
	["shift"] = 0,
	["waterHeight"] = 0,
	["minimumHeight"] = -10000,
	["maximumHeight"] = 10000,
	["noises"] = { //change this from seeds to noises
		{69783.04, 50, 0.04, -10, 10},
	},
	["materials"] = {
		{1376, -10000, 10000, 0, 10000},
	},
	["models"] = { //add models table to your terraindata if missing
	},
}

Other Plugins

Mesh Editor

184 Likes

Those screenshots look amazing! Would you mind uploading the source to GitHub so we could browse the code?

6 Likes

that looks so cool, and would make such a good exploration game

2 Likes

i have plans to make the plugin side opensource but for now you can press create local script and that will create a script that is the part that generates the terrain to see how iv done it

5 Likes

Bro you saved my life! This is literally what I needed for my game last week, now I can just download your plugin and follow tutorial. Thank you for this!

2 Likes

The plugin looks absolutely amazing. I like how the plugin makes the terrain even more better!

1 Like

Cool plugin! I just checked the source and I really like how tidy and well-setup is everything, no sussy requires or loadstrings, in case someone was wondering.

The only problem I could see is the use of _G., not for the reasons that we all already know but specially because the names the plugin uses are quite common, aren’t they? But yeah, shouldn’t be a problem.

2 Likes

Wait are you saying that all plugins share the same _G i know the _G is not shared with the scripts you have in your project but i never tested it with multiple plugins

2 Likes

Hmmm, I don’t really know. Plugins are parented under different objects but they are all loaded in the studio at the same time, in fact you are able to interact with other plugin’s widgets by using PluginGuiService.


EDIT: Cool, plugins share the same _G. I used the following two scripts as Local Plugins, I uploaded the first one before the other and one second after that I uploaded the second one.

First plugin to load:

_G.plugin_test = 1

print(_G.plugin_test)

task.wait(10)

print(_G.plugin_test)

Second plugin to load:

_G.plugin_test = 10

And the results are these, I also marked the timestamps with a red line so you can see it runs 10 seconds later as the script stated.


But anyways you should not worry, not many plugins use _G. Even if they did chances are that they won’t use the same names. If you really want to make sure, prefix your constant names with a custom name like the name of your plugin or something.

1 Like

Just watched the video, and wow. Just wow. I don’t think anyone in this thread has quite realized how much of an incredibly powerful tool this is. There has never been a terrain generation tool this powerful in the history of the platform. The customization options are simply incredible, even including a built-in system for environment artists to edit the generated terrain to their liking. Well done, seriously.

I have a few suggestions to make this tool even better:

  • Ability to link a material set to a particular seed could allow for some really interesting micro-detail and “biome specific” terrain features
  • Supporting optional erosion sims with configurable sample rate to get those nice mountain slopes and peaks.
  • Better configuration of the real-time client script itself, such as chunk size and render distance. Unloading far away chunks (configurable distance) would also be awesome.

Additionally, I’d love if server-side terrain generation was natively supported and generated terrain around each player. Finally, it’d also be great if this generator supported the new parallel Luau system for even faster terrain generation.

Seriously amazing work here, keep it up. I know I’ll be using this for all my projects involving large terrain maps from now on. I cannot wait to see what lies in store for the future of this tool.

3 Likes

wow thats crazy i also just tested and i got the same resault i will be changing this in a future update as im not happy about it but it should be ok for now

5 Likes

This is beautiful, probably one of the most powerful plugins ever created for roblox studio.

2 Likes

THIS IS AMAZING

Thanks for this :pray:

I have tried to make my own in the past…. Unsuccessfully :wink:

1 Like

Thanks for the grate comment im happy that you see the power of this plugin

the biome idea crossed my mind many times when making the plugin but i was not able to work out a clean why of implementing it without making the plugin to over complicated with 1000s of buttons but ill keep my mine open and if i can work out a good way to implement it ill do it

for erosion you could add a seed that clamps the noise from -10 to -0.3 and that would maybe make valleys that look like erosion not sure how i could simulate better erosion

you can change the chunksize and distance at the top of the localscript please dont feel forced to use the localscript that the plugin provides you can use it as a base and expand on it to work in anyway you feel is right for your project

while its posible to have the server load the terrain around each client the problem is once the server has been running for a long time the server will have a hugeee amount of terrain generated and when a new client logs into the server they will be waiting a very long time for the terrain to load and devices like the iphone will fail to load all togever not sure if you have ever tested projects with large amounts of terrain but it just does not work well so if we trully want unlimited terrain the only fesable method is to have it client side

but i dont see a problem with haveing some parts of the terrain server side and some client side E.G you could get the client to generate infinite ocean and have a large island for the server side

i think parallel Luau is still in beta but once its relised ill look into it and see if i can use it to improve performance

thanks again for your comment im happy you liked the plugin

4 Likes

This is so good plugin! But it won’t lag studio?

1 Like

you dont need to load a very large amount of terrain in studio only generate the parts of the terrain you need then clear the terrain once your finished in that area

make sure to watch the video on how to setup client sided terrain for infinite terrain

2 Likes

This plugin is now opensource and published under the Zero-Clause BSD license

You can get the sourcecode to this plugin by editing this Place

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

5 Likes

NEW UPDATE

i have changed the varable seeds to noises so your old terraindata files will no longer be combatable to fix this

return {
	["shift"] = 0,
	["waterHeight"] = 0,
	["minimumHeight"] = -10000,
	["maximumHeight"] = 10000,
	["noises"] = { //change this from seeds to noises
		{69783.04, 50, 0.04, -10, 10},
	},
	["materials"] = {
		{1376, -10000, 10000, 0, 10000},
	},
}

NEW UPDATE 2
the plugin no longer uses _G so it will not longer conflict with other plugins

NEW UPDATE 3
underwater terrain is now smoother
and added a thickness option thicker terrain makes terrain at a distance look better

return {
	["thickness"] = 6, //add this to your terraindata if missing
	["shift"] = 0,
	["waterHeight"] = 0,
	["minimumHeight"] = -10000,
	["maximumHeight"] = 10000,
	["noises"] = {
	},
	["materials"] = {
	},
}

NEW UPDATE 4
Added Generate Height Data button if you clear the terrain and press this button it will only load in the parts of the terrain you have edited this is good if you want to optimize and delete unwanted parts
but this button could take some time if you have a very large area of edited terrain

NEW UPDATE 5
Added Generate Material Data button works like Generate Height Data button
Added new Generate tab Video Tutorial

4 Likes

I absolutely love it. Roblox finally has good enough tools to make beautiful terrain. I hope they add this in, as this is awesome.

Any chance of adding stuff to automatically generate structures? So you could have trees generate where it is flat and grass, or have cabins generate where it is rocky and flat, etc. This would be fantastic and truly along for developers to quickly create wonderful terrain.

(This new structure generation would be used for trees, bushes, etc. We can use your handy-dandy edit to flatten land and stuff. Speaking of which, if we flatten land and then build something there, will it be properly placed and stuff?)

1 Like

having meshes being auto placed on the terrain would be posable you could even do it your self by editing the local script but for now its not in the plugin maybe in the future when i get more free time

when you generate the terrain and when the client generated the terrain there both 100% the same so any parts you put into the world will align up perfectly

2 Likes