Code Monkey home page Code Monkey logo

worldgen's Introduction

worldgen

An online datapack generator for Minecraft Java Edition 1.19/1.19.4/1.20.6 and custom biomes/dimensions. Visit the latest version.

The v1 branch is now the default one and replace the old and initial version available here.

Getting started

Customizing the world generation can lead to very different results depending on the settings you choose. A good introduction is to make small changes to the vanilla generation and observe how it affects the generated world.

Tweaking an existing biome

In this example, we will tweak the plains vanilla biome. To do this, go to the homepage of the website linked above and select the "Biome" category in the top navigation bar. We want to replace the vanilla biome with our biome, so use the "Replace vanilla" button to select a biome to start from. Now that the vanilla values automatically are filled in, you can change the colors of the biomes. The sounds can also be changed: enable the sound by checking the checkbox next to the sound you want to add or edit and select a sound. They can also be heard in the game with the /playsound command.

Concepts

Next, you can change what will be generated in the biome below, with what is called "carvers" and "features". Chunk generation follow a specific order:

  1. First, determine which biome will be generated (using a biome source).
  2. Then determine the shape and the height of the terrain will have (using noise).
  3. Next, place the surface blocks of the biome (surface_rule in noise settings).
  4. Carve the terrain (carvers in biome)
  5. Place structures. (config of each structure) Theses can be placed manually using the /place structure command in Minecraft 1.19.
  6. Place decorations like tree, grass, ores... (features in biome). Theses can be placed manually using the /place feature command in Minecraft 1.19 or the /placefeature in 1.18.2.
  7. Finally, spawn appropriates mobs (spawners in biome).

Each part of the generation have its own configuration that the game rely on. Configurations are instances of a specific type. For instance, the ocean biome is an instance of a biome, and it's a resource used by one dimension. Having each part separated allow to reuse the exact same biome in several dimensions. This is the same for features: the same configured tree can be used in several biomes.

Try adding or removing several features. The select input allows you to see which one are already existing in the vanilla game.

Try it

Save the edited plains biome with the button at the end of the page. On the main page, hit the "Generate" button to download a datapack with your modifications.

Now open the game in the appropriate game version the datapack was generated for. Start creating a new world and in the creation screen, select "Data Packs". Drag and drop the download .zip file and put the datapack into the "Selected" column. You can set the default game mode and the difficulty as usual.

You are now ready to try it! Create the world and locate your modified plains biome.

If you have created a new dimension, you can teleport to it: execute in test:my_custom_dimension run tp @s ~ ~ ~

worldgen's People

Contributors

dependabot[bot] avatar janekgoogle140 avatar syldium avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

worldgen's Issues

Clicking Feature > Basalt Columns > Height Base/Spread crashes the app and causes loss of unsaved data

Feature > Basalt Columns > Height Base/Spread crashes the app and makes it a full grayscreen until you refresh the page every time for me on Firefox.
Refreshing the page wipes out anything that was on my datapack, doesn't seem to get cached, making me have to reimport the datapack or lose everything if I don't have a backup.
Reimporting the datapack is also annoying because it can cause a few visual or actual bugs on the imported data.

Long lists freeze the site

Whenever there is a long list of something like biomes in a dimension, and you expand it, the website freezes. This makes it difficult to do things like creating a custom dimension based on the Overworld, where there are too many.

Error loading registry data

Using custom noise gives errors

.... [18:09:48 ERROR]: Encountered an unexpected exception
com.google.gson.JsonParseException: Error loading registry data: No key ore_veins_enabled in MapLike[{"aquifers_enabled":false,"noodle_caves_enabled":false,"deepslate_enabled":true,"bedrock_floor_position":0,"sea_level":63,"disable_mob_generation":false,"default_block":{"Name":"minecraft:deepslate","Properties":{"axis":"y"}},"default_fluid":{"Properties":{"level":"0"},"Name":"minecraft:water"},"bedrock_roof_position":-2147483648,"structures":{"structures":{"minecraft:ocean_ruin":{"spacing":20,"separation":8,"salt":14357621},"minecraft:endcity":{"spacing":20,"separation":11,"salt":10387313},"minecraft:jungle_pyramid":{"spacing":32,"separation":8,"salt":14357619},"minecraft:bastion_remnant":{"spacing":27,"separation":4,"salt":30084232},"minecraft:fortress":{"spacing":27,"separation":4,"salt":30084232},"minecraft:mansion":{"spacing":80,"separation":20,"salt":10387319},"minecraft:stronghold":{"spacing":1,"separation":0,"salt":0},"minecraft:buried_treasure":{"spacing":1,"separation":0,"salt":0},"minecraft:village":{"spacing":32,"separation":8,"salt":10387312},"minecraft:monument":{"spacing":32,"separation":5,"salt":10387313},"minecraft:ruined_portal":{"spacing":40,"separation":15,"salt":34222645},"minecraft:swamp_hut":{"spacing":32,"separation":8,"salt":14357620},"minecraft:nether_fossil":{"spacing":2,"separation":1,"salt":14357921},"minecraft:shipwreck":{"spacing":24,"separation":4,"salt":165745295},"minecraft:mineshaft":{"spacing":1,"separation":0,"salt":0},"minecraft:pillager_outpost":{"spacing":32,"separation":8,"salt":165745296},"minecraft:desert_pyramid":{"spacing":32,"separation":8,"salt":14357617},"minecraft:igloo":{"spacing":32,"separation":8,"salt":14357618}}},"noise":{"simplex_surface_noise":true,"random_density_offset":true,"size_vertical":2,"density_factor":1,"density_offset":-0.46875,"top_slide":{"target":-10,"size":3,"offset":0},"bottom_slide":{"target":15,"size":3,"offset":0},"size_horizontal":1,"min_y":0,"height":256,"sampling":{"xz_scale":0.9999999814507745,"y_scale":0.9999999814507745,"xz_factor":80,"y_factor":160}}}]; No key noise_caves_enabled in MapLike[{"aquifers_enabled":false,"noodle_caves_enabled":false,"deepslate_enabled":true,"bedrock_floor_position":0,"sea_level":63,"disable_mob_generation":false,"default_block":{"Name":"minecraft:deepslate","Properties":{"axis":"y"}},"default_fluid":{"Properties":{"level":"0"},"Name":"minecraft:water"},"bedrock_roof_position":-2147483648,"structures":{"structures":{"minecraft:ocean_ruin":{"spacing":20,"separation":8,"salt":14357621},"minecraft:endcity":{"spacing":20,"separation":11,"salt":10387313},"minecraft:jungle_pyramid":{"spacing":32,"separation":8,"salt":14357619},"minecraft:bastion_remnant":{"spacing":27,"separation":4,"salt":30084232},"minecraft:fortress":{"spacing":27,"separation":4,"salt":30084232},"minecraft:mansion":{"spacing":80,"separation":20,"salt":10387319},"minecraft:stronghold":{"spacing":1,"separation":0,"salt":0},"minecraft:buried_treasure":{"spacing":1,"separation":0,"salt":0},"minecraft:village":{"spacing":32,"separation":8,"salt":10387312},"minecraft:monument":{"spacing":32,"separation":5,"salt":10387313},"minecraft:ruined_portal":{"spacing":40,"separation":15,"salt":34222645},"minecraft:swamp_hut":{"spacing":32,"separation":8,"salt":14357620},"minecraft:nether_fossil":{"spacing":2,"separation":1,"salt":14357921},"minecraft:shipwreck":{"spacing":24,"separation":4,"salt":165745295},"minecraft:mineshaft":{"spacing":1,"separation":0,"salt":0},"minecraft:pillager_outpost":{"spacing":32,"separation":8,"salt":165745296},"minecraft:desert_pyramid":{"spacing":32,"separation":8,"salt":14357617},"minecraft:igloo":{"spacing":32,"separation":8,"salt":14357618}}},"noise":{"simplex_surface_noise":true,"random_density_offset":true,"size_vertical":2,"density_factor":1,"density_offset":-0.46875,"top_slide":{"target":-10,"size":3,"offset":0},"bottom_slide":{"target":15,"size":3,"offset":0},"size_horizontal":1,"min_y":0,"height":256,"sampling":{"xz_scale":0.9999999814507745,"y_scale":0.9999999814507745,"xz_factor":80,"y_factor":160}}}]; No key min_surface_level in MapLike[{"aquifers_enabled":false,"noodle_caves_enabled":false,"deepslate_enabled":true,"bedrock_floor_position":0,"sea_level":63,"disable_mob_generation":false,"default_block":{"Name":"minecraft:deepslate","Properties":{"axis":"y"}},"default_fluid":{"Properties":{"level":"0"},"Name":"minecraft:water"},"bedrock_roof_position":-2147483648,"structures":{"structures":{"minecraft:ocean_ruin":{"spacing":20,"separation":8,"salt":14357621},"minecraft:endcity":{"spacing":20,"separation":11,"salt":10387313},"minecraft:jungle_pyramid":{"spacing":32,"separation":8,"salt":14357619},"minecraft:bastion_remnant":{"spacing":27,"separation":4,"salt":30084232},"minecraft:fortress":{"spacing":27,"separation":4,"salt":30084232},"minecraft:mansion":{"spacing":80,"separation":20,"salt":10387319},"minecraft:stronghold":{"spacing":1,"separation":0,"salt":0},"minecraft:buried_treasure":{"spacing":1,"separation":0,"salt":0},"minecraft:village":{"spacing":32,"separation":8,"salt":10387312},"minecraft:monument":{"spacing":32,"separation":5,"salt":10387313},"minecraft:ruined_portal":{"spacing":40,"separation":15,"salt":34222645},"minecraft:swamp_hut":{"spacing":32,"separation":8,"salt":14357620},"minecraft:nether_fossil":{"spacing":2,"separation":1,"salt":14357921},"minecraft:shipwreck":{"spacing":24,"separation":4,"salt":165745295},"minecraft:mineshaft":{"spacing":1,"separation":0,"salt":0},"minecraft:pillager_outpost":{"spacing":32,"separation":8,"salt":165745296},"minecraft:desert_pyramid":{"spacing":32,"separation":8,"salt":14357617},"minecraft:igloo":{"spacing":32,"separation":8,"salt":14357618}}},"noise":{"simplex_surface_noise":true,"random_density_offset":true,"size_vertical":2,"density_factor":1,"density_offset":-0.46875,"top_slide":{"target":-10,"size":3,"offset":0},"bottom_slide":{"target":15,"size":3,"offset":0},"size_horizontal":1,"min_y":0,"height":256,"sampling":{"xz_scale":0.9999999814507745,"y_scale":0.9999999814507745,"xz_factor":80,"y_factor":160}}}]
at net.minecraft.core.RegistryAccess.lambda$readRegistry$6(RegistryAccess.java:221) ~[app:?]
at java.util.Optional.ifPresent(Optional.java:178) ~[?:?]
at net.minecraft.core.RegistryAccess.a(RegistryAccess.java:221) ~[app:?]
at net.minecraft.core.RegistryAccess.load(RegistryAccess.java:212) ~[app:?]
at net.minecraft.resources.RegistryReadOps.createAndLoad(RegistryReadOps.java:57) ~[patched_1.17.1.jar:git-Paper-295]
at net.minecraft.resources.RegistryReadOps.createAndLoad(RegistryReadOps.java:51) ~[patched_1.17.1.jar:git-Paper-295]
at net.minecraft.server.MinecraftServer.loadWorld(MinecraftServer.java:527) ~[patched_1.17.1.jar:git-Paper-295]

[suggestion] allow input of modded blocks

What I Want
Input Modded Block ID's (such as exnihilosequentia:dust) in locations where the player is prompted to select a block like 'sand'.

What Currently Happens
Type in modded block ID, press enter, it reverts back to the previous settings instead of saving the input block ID.

Why
Mod compatability.

Unable to press Generate

Hi there! I stumpled upon your datapack generator, and it works very well - Except the generate button is disabled, is this a work in progress or what's the deal? :D

Remove references when deleting resources

If you have a biome with a feature in it, and delete said feature, the feature will disappear from the biome's feature list but will still be in the actual file, causing the server to crash when loading the datapack, saying the feature is missing:

.... [21:59:08 ERROR]: Encountered an unexpected exception
com.google.gson.JsonParseException: Error loading registry data: Missing value [7] : ResourceKey[minecraft:worldgen/configured_feature / stovan:lantern_shroom]
at net.minecraft.core.RegistryAccess.lambda$readRegistry$6(RegistryAccess.java:221) ~[app:?]
at java.util.Optional.ifPresent(Optional.java:178) ~[?:?]
at net.minecraft.core.RegistryAccess.a(RegistryAccess.java:221) ~[app:?]
at net.minecraft.core.RegistryAccess.load(RegistryAccess.java:212) ~[app:?]
at net.minecraft.resources.RegistryReadOps.createAndLoad(RegistryReadOps.java:57) ~[patched_1.17.1.jar:git-Paper-295]
at net.minecraft.resources.RegistryReadOps.createAndLoad(RegistryReadOps.java:51) ~[patched_1.17.1.jar:git-Paper-295]
at net.minecraft.server.MinecraftServer.loadWorld(MinecraftServer.java:527) ~[patched_1.17.1.jar:git-Paper-295]
at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:306) ~[patched_1.17.1.jar:git-Paper-295]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1212) ~[patched_1.17.1.jar:git-Paper-295]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[patched_1.17.1.jar:git-Paper-295]
at java.lang.Thread.run(Thread.java:831) ~[?:?]

removed items coming back

If you add a noise feature, then delete it, then refresh the page it will come back, no matter how many times you delete then refresh

support multiple tabs

Currently only way is to use incognito vs non incognito if you wanna edit 2 datapacks at once.

Invalid features

It seems like 1.18 version still has removed 1.17 objects, when loading a 1.18 made with syldium console says:

.... [18:40:25 ERROR]: Feature: Not a JSON object: "minecraft:ore_granite"; Not a JSON object: "minecraft:ore_tuff"; Not a JSON object: "minecraft:ore_gravel"; Not a JSON object: "minecraft:ore_dirt"; Not a JSON object: "minecraft:ore_diorite"; Not a JSON object: "minecraft:ore_coal"; Not a JSON object: "minecraft:ore_andesite"; Not a JSON object: "minecraft:disk_gravel"; Not a JSON object: "minecraft:disk_clay"
.... [18:40:25 ERROR]: Feature: Not a JSON object: "minecraft:pointed_dripstone"; Not a JSON object: "minecraft:large_dripstone"; Not a JSON object: "minecraft:dripstone_cluster"; Not a JSON object: "minecraft:dripleaf"; Not a JSON object: "minecraft:cave_vine"
.... [18:40:25 ERROR]: Feature: Not a JSON object: "minecraft:spring_water"; Not a JSON object: "minecraft:patch_tall_grass"; Not a JSON object: "minecraft:patch_red_mushroom"; Not a JSON object: "minecraft:patch_brown_mushroom"; Not a JSON object: "minecraft:glow_lichen"; Not a JSON object: "custom:test_forest_bushes"; Not a JSON object: "custom:patch_grass_underground"; Not a JSON object: "custom:jack_o_lantern_patch"; Not a JSON object: "custom:cobweb_patch"
.... [18:40:25 ERROR]: Feature: Not a JSON object: "minecraft:ore_granite"; Not a JSON object: "minecraft:ore_tuff"; Not a JSON object: "minecraft:ore_gravel"; Not a JSON object: "minecraft:ore_dirt"; Not a JSON object: "minecraft:ore_diorite"; Not a JSON object: "minecraft:ore_coal"; Not a JSON object: "minecraft:ore_andesite"; Not a JSON object: "minecraft:disk_gravel"; Not a JSON object: "minecraft:disk_clay"
.... [18:40:25 ERROR]: Feature: Not a JSON object: "minecraft:pointed_dripstone"; Not a JSON object: "minecraft:large_dripstone"; Not a JSON object: "minecraft:dripstone_cluster"; Not a JSON object: "minecraft:dripleaf"; Not a JSON object: "minecraft:cave_vine"
.... [18:40:25 ERROR]: Feature: Not a JSON object: "minecraft:spring_water"; Not a JSON object: "minecraft:patch_tall_grass"; Not a JSON object: "minecraft:patch_red_mushroom"; Not a JSON object: "minecraft:patch_brown_mushroom"; Not a JSON object: "minecraft:glow_lichen"; Not a JSON object: "custom:test_forest_bushes"; Not a JSON object: "custom:patch_grass_underground"; Not a JSON object: "custom:jack_o_lantern_patch"; Not a JSON object: "custom:cobweb_patch"

Cant select custom dimension type

When you are creating a dimension, you should be able to select one of the custom dimension types as the "type" field.
image
image
Here, "mirror" shuold be an option in the dropdown menu.

Missing keys in dimension type 1.19

"max_inclusive": 7
"min_inclusive": 0,
"monster_spawn_block_light_limit": 0
"monster_spawn_light_level": {
"type": "minecraft:uniform",

these keys are missing from syldium dimension type for 1.19.2, trying to load gives this error in console:

[17:49:06] [ServerMain/WARN]: Failed to load datapacks, can't proceed with server load. You can either fix your datapacks or reset to vanilla with --safeMode
java.util.concurrent.ExecutionException: com.google.gson.JsonParseException: Error loading registry data: No key monster_spawn_block_light_limit in MapLike[{"logical_height":384,"infiniburn":"#minecraft:infiniburn_overworld","effects":"minecraft:overworld","ambient_light":0,"respawn_anchor_works":false,"has_raids":true,"min_y":-64,"height":384,"natural":true,"coordinate_scale":1,"piglin_safe":false,"bed_works":true,"has_skylight":true,"has_ceiling":false,"ultrawarm":false}]; No key monster_spawn_light_level in MapLike[{"logical_height":384,"infiniburn":"#minecraft:infiniburn_overworld","effects":"minecraft:overworld","ambient_light":0,"respawn_anchor_works":false,"has_raids":true,"min_y":-64,"height":384,"natural":true,"coordinate_scale":1,"piglin_safe":false,"bed_works":true,"has_skylight":true,"has_ceiling":false,"ultrawarm":false}]

Update for 1.20?

I hope this will be updated for 1.20 I haven't seen a world/datapack generator that works as good as this one!

Custom Height and Depth

I noticed that the dimensions creator doesn't include customizing max depth and height which is a now a feature with datapacks.

Suggestion

Is there a way to block all Modded Block Id's for an Vanilla World on Modded Server?

Please Add it :)

1.17

PLEASE HEAR ME, my current datapacks arent compatible with 1.17, if theres anyway you can test and fix this id be a very happy boi PLEASE i love the program and use it regularly. im just gonna hang out in 1.16 for now tho

Data pack validation failed!

I'm using 1.18.2, and whenever I add a custom biome to the datapack, it gives me a "Data pack validation failed!" error when I try and add the datapack to my world...

1.18.2 and custom structures

The 1.18.2 update of the game now makes it easier to define custom structures.

To support this with the generator, the templates for the worldgen/structure_set, worldgen/configured_structure_feature and worldgen/template_pool registries should be added. The list of nbt structures should be available for the select inputs (and maybe display them?). 👀

1.19 biome preview

Previewing biome distribution doesn't work for 1.19, which makes it hard to visualize the spread of biomes. Adding this would be awesome!

1.16.5

PLEASE, help me... I play in 1.16 for the most part because it has some diverse mods, and i love your generator. however, it appears that I can no longer make data packs for 1.16. if you have a new link or a file or something that can help me use your program for 1.16 that would be incredible. thank you for your support!

some kinda datafixer for dimension datapacks?

Thanks for fixing the other problems I had so fast, appreciate a bunch.
I like making custom dimensions but every time the game updates they get completely fucked and I have to start over, do you know of any projects that datafix datapacks? would it be something that interests you? (would be alot of work tho)

Potential issue attempting to use existing datapack

Receiving the message "Uncaught Error: Invalid datapack: no pack.mcmeta" which seems like a catch all, given the zip contains pack.mcmeta. The pack itself was built here, downloaded (and edited slightly by hand to remove the unremovable spawn cost entries in the biome editor). Is there an inherent checksum I'm missing by editing a json file, rezipping, and trying to reupload? Or something simple going on with compression? I'm using basic zip 3.0 in BSD.
generated_datapack.zip

Thanks in advance for any help troubleshooting this. I hope it's not a "duh" moment in the end.

Failed to load datapack

Love your tool! I created a datapack, pretty simple, and I'm getting a JSON parse exception: Error loading registry data: Not a tag id

I'm running forge 1.18.2, clean install, and generated the datapack using 1.18.2 (pack format 9). Any ideas?

generated_datapack.zip

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.