COFH World Generation User's Manual

  • The FTB Forum is now read-only, and is here as an archive. To participate in our community discussions, please join our Discord! https://ftb.team/discord
C

chezpaul

Guest
After all this and those errors that persist, it seems like in this new world I imported (so it has only vanilla ores).
Only thaumcraft ores are regenerated. I walked around, digger around and indeed I found them and the console shows them.
[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [62, 30]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [61, 30]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [62, 29]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [62, 31]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [61, 31]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [61, 29]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [60, 30]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [62, 28]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [62, 32]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [61, 32]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [60, 31]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [60, 29]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [61, 28]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [63, 32]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [60, 32]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [60, 28]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [59, 30]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [62, 27]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [59, 31]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [59, 29]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [61, 27]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [59, 32]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [59, 28]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [60, 27]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [58, 30]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [62, 26]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [58, 31]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [58, 29]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [61, 26]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [59, 27]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [58, 32]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [58, 28]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [60, 26]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [57, 30]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [58, 27]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [59, 26]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [57, 31]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [57, 29]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [61, 25]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [57, 28]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [60, 25]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [58, 26]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [57, 27]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [59, 25]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [56, 30]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [56, 31]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [56, 29]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [56, 28]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [57, 26]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [58, 25]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [56, 27]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [55, 30]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [55, 31]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [55, 29]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [57, 25]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [56, 26]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [55, 28]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [55, 27]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [56, 25]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [54, 30]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [54, 31]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [54, 29]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [55, 26]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [54, 28]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [54, 27]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [55, 25]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [54, 26]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [53, 30]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [53, 31]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [53, 29]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [53, 28]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [54, 25]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [53, 27]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [53, 26]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [52, 30]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [52, 31]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [52, 29]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [52, 28]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [53, 25]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [52, 27]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [52, 26]. Adding to queue for regeneration.

[18:09:34 WARN]: [Thaumcraft] World gen was never run for chunk at [52, 25]. Adding to queue for regeneration.

[18:09:34 INFO]: [Thaumcraft] Regenerated 10 chunks. 72 chunks left

[18:09:34 INFO]: [Thaumcraft] Regenerated 10 chunks. 62 chunks left

[18:09:34 INFO]: [Thaumcraft] Regenerated 10 chunks. 52 chunks left

[18:09:34 INFO]: [Thaumcraft] Regenerated 10 chunks. 42 chunks left

[18:09:34 INFO]: [Thaumcraft] Regenerated 10 chunks. 32 chunks left

[18:09:34 INFO]: [Thaumcraft] Regenerated 10 chunks. 22 chunks left

[18:09:34 INFO]: [Thaumcraft] Regenerated 10 chunks. 12 chunks left

[18:09:34 INFO]: [Thaumcraft] Regenerated 10 chunks. 2 chunks left

[18:09:35 INFO]: [Thaumcraft] Regenerated 2 chunks. 0 chunks left

So is COfh not working the way it should?

After checking Thaumcraft configs, of course I still had the regen set to true.
So cofh isn't doing anything.
 

Robijnvogel

Well-Known Member
May 8, 2013
533
421
89
Is CoFH's config setting still set to true? Most of those configs tend to flip to false after they've retroactively generated ores in a world.
 
C

chezpaul

Guest
Yes, they still set to true.
Argh! :mad::(

Thanks for helping. I really appreciate it.

EDIT: Okay, I figured this one out...

"In the core/common.cfg make sure B:ReplaceVanillaGeneration=true"

I didn't do it in the core/common.cfg file
 
Last edited:
C

chezpaul

Guest
Now I can see in the console my server regenerating like crazy.... but it crashes the server after an hour or so...
Nice...
 
D

Darchitect

Guest
Has anyone had any luck generating double tall grass or double tall flowers (double_tall)? I tried running another decorator generator over the top of the initial grass generator to add the double_tall metadata (both 2 and 8 to see if either one worked... Nada.

Also, the small tree generator refuses to replace tall grass (and flowers and shrubs) when it generates my trees (so I have a full tree trunk floating over a piece of grass). I've tried swapping the order that the COFH parses the grass and tree files, and I've tried using both true and false for the "followTerrain" option. Nothing seems to fix it.

This is for CoFHCore-[1.7.10]3.1.3-327. Thanks for any help!
 

ShneekeyTheLost

Too Much Free Time
Dec 8, 2012
3,728
3,004
333
Lost as always
So, now that CoFH has come out for 1.10.2, I'm really working on significantly altering how oregen works in my pack, even with respect to vanilla ores.

I've been browsing the amazing documentation that the team has provided us, but I'm still trying to figure a few things out.

I'm wanting something more along the lines of veins rather than clusters of ore, but have those veins be less common. In effect, when you find a vein, it will typically have more ore in it than a given cluster, but have those veins be further between. The end result is roughly the same amount of ore generated per chunk on average, but they are more closely packed. This gives an advantage to a manually mining player, because striking an ore vein will be easier since it is larger, and will result in a player more easily obtaining a higher percentage of the ores within a given chunk. Of course, it has zero effect on any of the numerous automatic mining options, because the number of ores per chunk on average remains the same. This is to help manual mining feel more impressive, and to help a player not be reliant on auto-mining.

So, I'm looking at Generation options, and I'm seeing large-vein as an option, which sounds roughly like what I'm wanting to do. Not sure if I should go for Sparse or not. It seems like something nice, with maybe going without sparse for coal to have large seams running through the world, but wondering if this will accomplish my goal.

For diamonds and emeralds, I'm wanting to make geodes. Well, there's a Geode generation option. Use Obsidian as the 'crust', with 'hollow' flag, weight the inside to have air and Lapis primarily, with a low weight to diamond and emerald. This should generate roughly as much diamond as found in vanilla, but more compact, and easier to spot because hitting the obsidian crust means you've got a real chance for something nice.

Also wanting geode formations for the Deep Resonance ores, with mostly air inside with a chance of the resonant crystals. These will be somewhat larger, but only one per chunk or so.

However, my real limitation here is in actually being able to see the generation. Does anyone know of a good tool I can use to say use an admin command and get rid of all the dirt, gravel, and stone in a given chunk to observe the oregen in situ?

Also, how to define the generator type? When I look at the config file, I see config as a bracketed volume, not a discreet string.
 
Last edited:

ShneekeyTheLost

Too Much Free Time
Dec 8, 2012
3,728
3,004
333
Lost as always
Last time I played with stuff like this (1-7-10 era)- Cofh had a clearblocks command; I can't remember it exactly, but it was something like /clearblocks [x radius] [y radius] [z radius] [blocktype]
Its a reasonable guess they've put something similar in the 1-10 era??
There is apparently a /cofh clearblocks command, but the syntax is finicky and long
 

Robijnvogel

Well-Known Member
May 8, 2013
533
421
89
There is apparently a /cofh clearblocks command, but the syntax is finicky and long
1. For this exact purpose, I use the X-ray mod.
2. Combining this mod with spectator mode also seems to be a good idea.

I do not get your last question.
"How do I define the generator type?"
 

Golrith

Over-Achiever
Trusted User
Nov 11, 2012
3,834
2,137
248
Here's an example from my 1.7.10 modpack that uses the Large Vein generation:

Code:
  "OreIron": {
  "template": {"type": "fractal", "generator": "large-vein", "sparse": false},
  "block": [
  {"name": "minecraft:iron_ore", "weight": 35 },
  {"name": "customitems:pure_iron_ore", "weight": 15 },
  {"name": "customitems:inferior_iron_ore", "weight": 20 },
  {"name": "customitems:average_iron_ore", "weight": 25 },
  {"name": "minecraft:monster_egg", "metadata": 0, "weight": 5}
  ],
  "material": [
  "minecraft:dirt",
  "minecraft:stone"
  ],
  "clusterSize": 50,
  "numClusters": 120,
  "chunkChance": 40,
  "minHeight": 44,
  "veinHeight": 16,
  "veinDiameter": 64,
  "verticalDensity": 4,
  "horizontalDensity": 4,
  "retrogen": "true",
  "biomeRestriction": "none",
  "biomes": [],
  "dimensionRestriction": "whitelist",
  "dimensions": [
  0
  ]
  },
 

ShneekeyTheLost

Too Much Free Time
Dec 8, 2012
3,728
3,004
333
Lost as always
Then there may have been a syntax change in the update, because now it looks more like this:

Code:
    "iron": {
       "distribution": "uniform",
       "generator": {
         "block": "iron_ore",
         "material": "stone",
         "cluster-size": 9
       },
       "cluster-count": 20,
       "min-height": 0,
       "max-height": 64,
       "retrogen": false,
       "biome": "all",
       "dimension": {
         "restriction": "blacklist",
         "value": [
           -1,
           1
         ]
       }
     },
 
  • Like
Reactions: Robijnvogel
R

rrbrussell

Guest
You are correct @ShneekeyTheLost, there has been a major update to the format for the JSON entries and there is very little documentation or examples available on the new format.
 
T

Tommsy64

Guest
However, my real limitation here is in actually being able to see the generation. Does anyone know of a good tool I can use to say use an admin command and get rid of all the dirt, gravel, and stone in a given chunk to observe the oregen in situ?

I use a mod called WorldStripper exactly for this.
 

HappyBivouac

New Member
Jul 29, 2019
2
0
0
I'm actually trying to do something a little crazy with this in the pack I'm doing for myself and a few friends. I want to use the decoration distribution to sprinkle the world surface with vanilla mob spawners. I've done a separate entry for zombie, skeleton, spider, creeper, and enderman. I've put the entries in a file named spawners.json in config/cofh/world. However, I don't fully know what I'm doing, and when I run this on my server, I see lots of retrogen messages in the console, but no spawners have appeared anywhere. Could someone tell me what I'm doing wrong? It may be that I'm not properly defining the spawners. I'm not sure what exactly to do with "entity" or if that's even what I should be using. Here's an example of the skeleton entry I typed up:

Code:
"skeletonsurface": {
            "distribution": "decoration",
            "generator": {
                "block": "mob_spawner",
                "entity": "skeleton",
                "material": [],
                "cluster-size": 1
            },
            "cluster-count": 1,
            "chunkChance": 40,
            "min-height": 0,
            "max-height": 256,
            "retrogen": true,
            "biome": "all",
            "dimension": {
                "restriction": "blacklist",
                "value": [
                    -1,
                    1
                ]
            }

Any and all help is appreciated! Thanks!
 

Robijnvogel

Well-Known Member
May 8, 2013
533
421
89
I'm actually trying to do something a little crazy with this in the pack I'm doing for myself and a few friends. I want to use the decoration distribution to sprinkle the world surface with vanilla mob spawners. I've done a separate entry for zombie, skeleton, spider, creeper, and enderman. I've put the entries in a file named spawners.json in config/cofh/world. However, I don't fully know what I'm doing, and when I run this on my server, I see lots of retrogen messages in the console, but no spawners have appeared anywhere. Could someone tell me what I'm doing wrong? It may be that I'm not properly defining the spawners. I'm not sure what exactly to do with "entity" or if that's even what I should be using. Here's an example of the skeleton entry I typed up:

Code:
"skeletonsurface": {
            "distribution": "decoration",
            "generator": {
                "block": "mob_spawner",
                "entity": "skeleton",
                "material": [],
                "cluster-size": 1
            },
            "cluster-count": 1,
            "chunkChance": 40,
            "min-height": 0,
            "max-height": 256,
            "retrogen": true,
            "biome": "all",
            "dimension": {
                "restriction": "blacklist",
                "value": [
                    -1,
                    1
                ]
            }

Any and all help is appreciated! Thanks!
I'm pretty sure that CoFH worldgen is unable to define fields inside the Tile-Entity inside the blocks it is placing down, however mob spawners do seem to be able to load this from an item's nbt tags.
And I'm not certain if, and how it would be possible to add nbt to the blocks.

"block" : "minecraft:spawner.withProperty("entity", "minecraft:skeleton")" probably wouldn't work...
 

Robijnvogel

Well-Known Member
May 8, 2013
533
421
89
If it is possible, I would expect the layout to be something like this:

"block" : {
"name" : "minecraft:spawner",
"entity" : "minecraft:skeleton"
},

Or maybe the entity'd even need to be wrapped in a "tileentity" object.

Sent from my HUAWEI G750-U10 using Tapatalk
 

Golrith

Over-Achiever
Trusted User
Nov 11, 2012
3,834
2,137
248
Is there any documentation for the new json file format? If not, has anyone worked out if it's possible to generate blocks on specific blocks? Previously there was a decoration method.
 
S

Strouticus

Guest
Is there any documentation for the new json file format? If not, has anyone worked out if it's possible to generate blocks on specific blocks? Previously there was a decoration method.
There is a link on the new CoFH website that details the modules of the 1.10 JSON world generation, but there is no explanation of the syntax. Even after validating the file as correct according to normal JSON syntax, I cannot manipulate it to be a different generation type. I have hunted for days for any sort of example of it working, or a place to ask for help, and have found nothing.