Worldgen Devtools

Worldgen Devtools

A mod that aids in the development of world generation data packs and mods. Allows reloading worldgen data packs in-game and resetting chunks. Colors jigsaw blocks by name and target.

10 449 downloads 79 followers

Worldgen Devtools

This is a mod that provides tools simlifying the creation of worldgen datapacks and mods.

Registry (worldgen) Reloading

Needs be enabled per world using the reloadRegistries gamerule.

Warning: While this should be fairly stable, this tool can probably still corrupt your worlds. So only enable in testing worlds

Allows the reloading of registry content (such as all worldgen data) using the /reload command, or when enabling or disabling a datapack using the /datapack command. Without this mod, the world needs to be reopened for changes to take effect.

Entries are never removed from registries, even when no longer present in the loaded datapacks. Instead, they are marked as outdated, so that they don't have an effect on world generation and can't be referenced from other datapack files. Existing chunks can still use the outdated entries though, until the world is reopened. The world-height and noise shape (i.e. height and cell size) can't be reloaded.

Client Syncronization

Some reloaded data affects the client, such sa biome colors, dimension types, and armor trims. In multiplayer, dimension and biome effects need to be synconized. This causes the client to redraw all chunks. If this behaviour is undesireble, it can be disabled using the syncAfterRegistryReload gamerule.

Reset Chunks

Resetting chunks to NOISE_ONLY

The /resetchunks [<range>] command resets the chunks surrounding the player in the specified range - regenerating it with the current worldgen data and settings. Defaults to 0 (i.e. only the current chunk). If you want to reset a structure, you need to reset the chunk of the structure start.

Note: This implementation actually used the normal worldgen thread, and thus has much better performance than the unregistered vanilla command.

Colored Jigsaw Blocks

Colored jigsaw blocks in a trial chamber

Colors Jigsaw blocks based on their specified "Name" or "Target Name". If a "Name" other than minecraft:empty is set, the jigsaw block is colored based on the hash of the "Name". Otherwise, if a "Target Name" other than minecraft:empty is set, the jigsaw block is colored based on the hash of the "Target Name".

If both "Name" and "Target Name" are set to minecraft:empty the jigsaw block is rendered deactivated, with grayed out arrows and connectors.

In the inventory, if a jigsaw block has stored NBT (Shift+Pick), then it is rendered with the associated color and a tooltip indicated the "Name", "Target Pool", and "Target Name".

Get Density Command

Command to debug the values of density functions are any position.

/getDensity density_function <df> [<pos>]

Returns the value of the density function df at the specified postion (or the position of the player)

/getDensity noise_router <entry> [<pos>]

Returns the value of the density function specified in the given entry of the noise router of the current dimension at the specified postion (or the position of the player)

Profiling of Worldgen Performance

Chunk profiling example

The time it took to generate each step of each chunk is recorded and saved in each chunk. To access it, use the /chunkprofiling <range> command. Range controlls the amount of chunks to average the performance over; defaults to 0.

Locate Feature

Locating huge red mushrooms

Use /locate feature <configured_feature> to locate a configured feature nearby. If the current chunk contains the feature multiple times, it will list the up to 5 closest positions. This only works if the chunk is generated while this mod is installed.

Logging improvements

  • Empty height ranges in placed features also log the placed feature that causes the problem.

Chase

The /chase command provides options to syncronize of the player positions between two different instances of Minecraft. Usefull for comparing differences in worldgen. This is a vanilla command, simply registered by this mod.

Gamerules

Gamerules added by this mod:

Gamerule
maxChunkStatus Which steps of world generation should be done?
-> NOISE_ONLY: Generates stone, air, water and lava only.
-> SURFACE: Applies the surface rules.
-> SURFACE_AND_CARVERS: Applies surface rules, and carvers.
-> ALL: Applies surface rules, carvers, and features.
applyProcessorLists Should processor lists of structures be applied?
applyGravityProcessor Should terrain matching structure pieces match the terrain?
keepJigsaws Should the jigsaw blocks be kept after structure generation?
reloadRegistries Should the /reload command also reload registries?
syncAfterRegistryReload Should all clients be resend the registry content after reloading?
saveChunks Should chunks be saves? Old chunks are not deleted when disabling.
Version Minecraft Loader Download

[26.3] v1.4.2

1.4.2+26.3

26.3
fabric
Download

[26.1] v1.4.2

1.4.2+26.1

26.1
fabric
Download

[26.4-snapshot-2] v1.4.2

1.4.2-26.4-snapshot-2

26.4-snapshot-2
fabric
Download

[26.4-snapshot-1] v1.4.1

1.4.1+26.4-snapshot-1

26.4-snapshot-1
fabric
Download

[1.21.1] v1.1.2

1.1.2+1.21.1

1.21.1
fabric
Download

[26.1] v1.4.1

1.4.1+26.1

26.1
fabric
Download

[26.3] v1.4.1

1.4.1+26.3

26.3
fabric
Download

[26.3] v1.4.0

1.4.0+26.3-rc-2

26.3, 26.3-rc-2, 26.3-rc-3
fabric
Download

[26.3-snapshot-1] v1.4.0

1.4.0+26.3-snapshot-2

26.3-snapshot-2
fabric
Download

[26.2] v1.4.0

1.4.0+26.2-rc-2

26.2, 26.2-rc-2
fabric
Download

[26.1-rc-2] v1.4.0

1.4.0+26.1-rc-2

26.1, 26.1-rc-2, 26.1.1, 26.1.2
fabric
Download

[26.1-snapshot-2][fabric-api 0.141.2] v1.4.0

1.4.0+26.1-snapshot-2+0.141.2

26.1-snapshot-2
fabric
Download

[26.1-snapshot-1][fabric-api 0.140.3] v1.4.0

1.4.0+26.1-snapshot-1+0.140.3

26.1-snapshot-1
fabric
Download

[26.1-snapshot-1][fabric-api 0.140.0] v1.4.0

1.4.0+26.1-snapshot-1+0.140

26.1-snapshot-1
fabric
Download

[1.21.11] v1.4.0

1.4.0+1.21.11-pre3

1.21.11, 1.21.11-pre3
fabric
Download

[25w45a] v1.3.4

1.3.4+25w45a

1.21.11-pre1, 25w45a, 25w46a
fabric
Download

[25w44a] v1.3.4

1.3.4+25w44a

25w44a
fabric
Download

[25w43a] v1.3.4

1.3.4+25w43a

25w43a
fabric
Download

[25w41a] v1.3.4

1.3.4+25w42a

25w42a
fabric
Download

[25w41a] v1.3.4

1.3.4+25w41a

25w41a
fabric
Download

[1.21.1] v1.1.1

1.1.1+1.21.1

1.21.1
fabric
Download

[1.21.9 / 1.21.10] v1.3.4

1.3.4+1.21.10

1.21.10, 1.21.10-rc1, 1.21.9
fabric
Download

[25w36b] v1.3.4

1.3.4+25w36b

25w36b
fabric
Download

[25w34b] v1.3.4

1.3.4+25w34b

25w34b
fabric
Download

[25w33a] v1.3.4

1.3.4+25w33a

25w33a
fabric
Download

[25w32a] v1.3.4

1.3.4+25w32a

25w32a
fabric
Download

[1.21.8] v1.3.4

1.3.4+1.21.8

1.21.8
fabric
Download

[25w31a] v1.3.3

1.3.3+25w31a

25w31a
fabric
Download

[1.21.8] v1.3.3

1.3.3+1.21.8

1.21.8
fabric
Download

[1.21.5] v1.3.3

1.3.3+1.21.5

1.21.5
fabric
Download

[1.21.4] v1.3.3

1.3.3+1.21.4

1.21.4
fabric
Download

[1.21.7] v1.3.3

1.3.3+1.21.7

1.21.7
fabric
Download

[1.21.7] v1.3.2

1.3.2+1.21.7

1.21.7
fabric
Download

[1.21.6] v1.3.2

1.3.2+1.21.6-pre1

1.21.6, 1.21.6-pre1, 1.21.6-pre2, 1.21.6-pre3, 1.21.6-pre4, 1.21.6-rc1
fabric
Download

[1.21.5] v1.3.2

1.3.2+1.21.5

1.21.5
fabric
Download

[25w20a] v1.3.2

1.3.2+25w18a

25w18a, 25w19a, 25w20a
fabric
Download

[1.21.4] v1.3.2

1.3.2+1.21.4

1.21.4
fabric
Download

[25w18a] v1.3.1

1.3.1+25w18a

25w18a
fabric
Download

[25w15a] v1.3.1

1.3.1+25w15a

25w15a, 25w16a
fabric
Download

[1.21.5] v1.3.1

1.3.1+1.21.5

1.21.5, 1.21.5-rc2
fabric
Download

[1.21.4] v1.3.1

1.3.1+1.21.4

1.21.4
fabric
Download

[1.21.5-pre1] v1.3.0

1.3.0+1.21.5-pre1

1.21.5-pre1
fabric
Download

[25w10a] v1.3.0

1.3.0+25w10a

25w10a
fabric
Download

[25w09b] v1.3.0

1.3.0+25w09b

25w09b
fabric
Download

[25w07a] v1.3.0

1.3.0+25w07a

25w07a
fabric
Download

[25w06a] v1.3.0

1.3.0+25w06a

25w06a
fabric
Download

[25w05a] v1.3.0

1.3.0+25w05a

25w05a
fabric
Download

[25w04a] v1.3.0

1.3.0+25w04a

25w04a
fabric
Download

[25w03a] v1.3.0

1.3.0+25w02a

25w02a, 25w03a
fabric
Download

[1.21.3] v1.3.0

1.3.0+1.21.3

1.21.3
fabric
Download

[1.21.4] v1.3.0

1.3.0+1.21.4

1.21.4
fabric
Download

[1.21.4] v1.2.0

1.2.0+1.21.4

1.21.4, 1.21.4-pre3
fabric
Download

[24w46a] v1.2.0

1.2.0+24w46a

24w46a
fabric
Download

[1.21.3] v1.2.0

1.2.0+1.21.3

1.21.2, 1.21.3
fabric
Download

[1.21.2-pre3] v1.2.0

1.2.0+1.21.2-pre3

1.21.2-pre3
fabric
Download

[1.21.2-pre1] v1.2.0

1.2.0+1.21.2-pre1

1.21.2-pre1
fabric
Download

[24w37a] v1.2.0 Beta 1

1.2.0-beta.1+24w37a

24w37a
fabric
Download

[24w36a] v1.1.0

1.1.0+24w36a

24w36a
fabric
Download

[1.21/1.21.1] v1.1.0

1.1.0+1.21.1

1.21, 1.21.1
fabric
Download

[1.21] v1.1.0

1.1.0+1.21

1.21
fabric
Download

[1.21-pre1] v1.1.0

1.1.0+1.21-pre1

1.21-pre1, 1.21-pre2, 1.21-pre3
fabric
Download

[24w21b] v1.1.0

1.1.0+24w21b

24w21b
fabric
Download

[24w20a] v1.1.0

1.1.0+24w20a

24w20a
fabric
Download

[1.20.6] v1.1.0

1.1.0+1.20.6

1.20.5, 1.20.6
fabric
Download

[24w19b - 24w20a] v1.0.0

1.0.0+24w19b

24w19b
fabric
Download

[24w18a] v1.0.0

1.0.0+24w18a

24w18a
fabric
Download

[1.20.6] v1.0.0

1.0.0+1.20.6

1.20.6
fabric
Download

[1.20.5 - 1.20.6] v1.0.0 Beta 3

1.0.0-bata.3+1.20.6

1.20.5, 1.20.6
fabric
Download

[1.20.5 - 1.20.6] v1.0.0 Beta 2

1.0.0-bata.2+1.20.6

1.20.5, 1.20.6-rc1
fabric
Download

[1.20.5] v1.0.0 Beta 2

1.0.0-bata.2+1.20.5

1.20.5
fabric
Download

[1.20.5] v1.0.0 Beta 1

1.0.0-beta.1+1.20.5-pre4

1.20.5-pre4, 1.20.5-rc1, 1.20.5-rc2
fabric
Download