Infinite Terrain Plugin

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

4 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.

5 Likes

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.

9 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

7 Likes

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

4 Likes

THIS IS AMAZING

Thanks for this :pray:

I have tried to make my own in the pastā€¦. Unsuccessfully :wink:

5 Likes

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

8 Likes

This is so good plugin! But it wonā€™t lag studio?

4 Likes

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

3 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.

6 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

5 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?)

2 Likes

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

Uhh it dont work i press the generate local script button and it create a script but no terrain generation upon play

Even the game that you added as example dont generate terrain propery

did you save the terraindata into the localscript and also did you add a material?
if you watch the tutoral video it will show you how to use the plugin

Uhh i did not watch through but ive made some promising terrain data and i hit Create local script and it create a script,But at runtime,It dont generate terrain in realtime around me.There are no error

After you press the create local script button you then must press the Save button this will create a terraindata file you must put the terraindata file inside of the local script

OHHHH Thx,Cool plugin Its very cool!

no problem im happy you worked it out
next you will need to learn how to edit and paint the terrain :slight_smile:

This plugin is absolutely amazing, great work. If it isnā€™t already taken, I think you should change the name to ā€œTerrain+ā€œ or something along those lines, because it has features other than infinite terrain.

1 Like