I'm completely new to datapacks, although I have experience with gamedev and programming so it's not entirely foreign to me. Most tutorials online are outdated by several versions, or they assume that I already know how datapacks work (which I don't).
I'm not trying to do anything fancy at the moment, just want to make this datapack functional. Eventually I'll add custom biomes, features, structures, etc. But atm I just want my noise settings file to work properly, as it seems to be doing nothing at all. I'm using the default floating islands noise settings, just for testing purposes. What am I missing here? I assume something has to reference this file in order to make it actually apply to my world.
#Help with World Generation basics
1 messages · Page 1 of 1 (latest)
<@&1201956957406109788>
Someone will come and help soon!
💬 While you wait, take this time to provide more context and details.
🙇 After a while, hit the Summon Helpers button to ping the helper team. They'll be happy to help you
✅ Once your question has been resolved (or you no longer need it), please click Resolve Question or run /resolve
You're correct, something needs to reference the noise settings file
You need to make a folder directly in your namespace (not in the worldgen folder) called dimension. That is where you'll put a JSON file with the name of your desired dimension, which will reference both this noise settings file, as well as a dimension_type file (which goes in a dimension_type folder, the only other worldgen-related folder that just goes in the namespace rather than in the worldgen folder)
I'm using terralith for refence, but it has the dimension folder in data\minecraft instead of data\terralith like the worldgen folder.
Right, because Terralith is overwriting the Overworld, so it needs to replace the Overworld dimension file in the vanilla data pack
If that's what you're doing too, then that's what you need to do too 😅
We have some worldgen documentation coming soon ™️, but in the meantime, this message in a different thread may be useful
#1246969016518447334 message
Please don't reply in that thread though
that's my goal as well, so I'll do that
I won't reply to it
thanks for telling me
I got it to throw an error when trying to create the world instead of doing nothing, so I suppose that's progress
Absolutely, errors make the world go round
I'll just do this in a custom dimension for now, like you mention in the other thread
and swap it for overworld once it's actually functional
here's the current setup
still not entirely sure what most of this does but I'll figure that out later
the dimension_type file is unchanged
the noise settings file is a default one from the Misode generator
Great!
well
if it worked, yeah
does it need all the configured carver and density stuff in order to function? I assumed that was all additonal and not required for the datapack to work on a fundamental level
Well it depends on what you define as functioning
I don't really need to modify any of the terrain yet, I'm just trying to make it so the datapack generates the dimension without errors
Ok
Well density functions are something that's used elsewhere, not really a thing in themselves, so you don't need to make any for a dimension to work if you're just starting from a vanilla dimension
good to know
Because the vanilla dimension is using vanilla density functions
this is far as I can get atm
Output logs are a worldgen developer's best friend
Worth a closer look then
But what do the logs say is the problem?
You may have grabbed the wrong default one for your version
failed to parse
possible
Hmm yeah, it's not being too specific here. It seems to think there's an empty field or object
it was the version issue
forgot to switch it for this particular file
makes sense
Got past that error screen and was able to teleport into the new dimension
but it's just a copy of the overworld from what I can tell
maybe not actually
I assume it's using the world generation from the overworld, but the biomes from my dimension file
which is progress
Well that's to be expected, you said you didn't make any changes, right?
yep
Great!
so the noise_settings file is what actually changes the shape of the terrain, along with all the various carvers and such?
whereas the dimension handles biome settings
Just the noise_settings
I always assumed that terrain was biome-specific
Carvers are only used for the legacy cave and canyons
It used to be that biomes had some influence on terrain, but that's no longer the case. The bulk of the terrain shape has always been in the noise settings
how do biomes like badlands handle all the wacky structures
The shape is handled by the noise_router, the block choice is handled by surface_rules
interesting
it seems like the dimension file is ignoring my noise settings and just using the default overworld settings, because I changed it from default to floating islands but the world is the same
luckily it isn't throwing errors but it clearly isn't referencing it properly
Are you starting a new world or generating new chunks when you're testing the new noise settings? And are you exiting and reopening the world if the latter, not just doing a /reload?
yeah, exiting the world and using the 'recreate world' button to make a copy of the original
not just reloading
Hm
Try starting a new world altogether, not recreating
And otherwise just make sure the noise settings you're editing are actually the ones being referenced. It doesn't just "not reference it properly."
well that's what I mean
I think I messed up and it's just pointing to the default overworld settings
It currently is, yes
If your noise settings file isn't called "overworld", then it's using the vanilla one
Nope
that'll do it
does that also apply to the dimension_type file
Of course
Pretty much the only files that have a specific name you need to use is the dimension files overworld, the_nether, and the_end, and only if you're replacing those dimensions. Other than that, you can name dimension_type files, noise_settings files, biome files, and anything else whatever you want, as long as they get referenced correctly. The only other time you need to use a specific name is if you're trying to replace a vanilla file in the minecraft namespace
well it certainly doesn't like this
Failed to get element ResourceKey[minecraft:dimension_type / minecraft:west_type]
does it require the minecraft prefix?
because if I include the prefix I get the same error
It requires a prefix, that's the namespace. However, your west_type file is in your westerrain namespace, not the minecraft namespace
isn't the noise file also in the minecraft namespace?
or are they both in my namespace
The noise settings you're currently using are minecraft:overworld, so yes
But west_noise is currently in your westerrain namespace, though it is not inside a noise_settings folder
You're not currently referencing west_noise, so that's why you're not getting any errors about it
I mean
I'm trying to
what is line 4 doing if not referencing my noise file
what is the first line for then
I thought that was for the dimension type
Nope, I'm getting lost because your names are confusing
Like 4 is indeed trying to reference your west_noise file, but you're not including the namespace
(and that file is not in the right folder)
worldgen\noise_settings[json file]?
That would be correct
Indeed
Although I'm realizing you've also confused yourself, line 4 needs to stay minecraft:noise. Like 5 is where you need to reference the noise_settings
Are you using Misode's generator?
yes
That would help keep this straight
Well
Then you may need to pay closer attention to those fields and what they want 😅
I try