Resource Generation Question - compiledresourceprofiles

Tags: #<Tag:0x00007fa0da5f70f8>

Trying to add resource spawning data to Boundlexx and I am trying to understand the values in the compiledresourceprofiles.msgpack file.

Any confirmation/corrections on what the values actually mean would be amazing.

The fields at least I am the most interested in is the blocksAbove ones and the surfaceFavourite ones. Those seem to be the biggest unknown ones in terms of spawning “requirements” that are largely unknown.

{
    "shape": 1,                         // assume it is some kind of enum indicating vein/cluster type?
    "sizeMax": 6,                       // assume it is the min/max size of said vein?
    "sizeMin": 1,                   
    "altitudeMax": 20,                  // Max/Min possible altitude
    "altitudeMin": 0,
    "distanceMax": 255,                 // "embedded" resources only. Max/Min distance below the "surface"?
    "distanceMin": 5,           
    "caveWeighting": 0.5,               // Probability to spawn under the "surface"?
    "sizeSkewToMin": 2,                 // ??? Maybe something related to how often it is a smaller vein size?
    "blocksAboveMax": 60,               // Used with Surface/Surface Second Favorite with that block time within Min/Max above it. 
    "blocksAboveMin": 5,        
    "liquidAboveMax": 25,               // Same as blocksAbove, but for liquids (i.e. Water must be 0-25 blocks above)
    "liquidAboveMin": 0,
    "noiseFrequency":,                  // "surface" resource only. ???
    "noiseThreshold":,                  // "surface" resource only. ???
    "liquidFavourite": 16,              // Liquid ID of liquid used for Liquid Above
    "threeDWeighting": 0.5,             // ??? Maybe the likelihood of vein/cluster to be 3D?
    "surfaceFavourite": 0,              // ??? Has some relation to Blocks Above Min/Max, I assume, but no idea how to reverse back to a real block (values seem to always be < 10)
    "surfaceWeighting": 0.5,            // Probability to spawn on the "surface"?
    "altitudeBestLower": 0,             // All of these are the same above versions, but are used to tweak probabilities 
    "altitudeBestUpper": 15,
    "distanceBestLower": 15,
    "distanceBestUpper": 255,
    "blocksAboveBestLower": 10,
    "blocksAboveBestUpper": 30,
    "liquidAboveBestLower": 1,
    "liquidAboveBestUpper": 15,
    "liquidSecondFavourite": 16,
    "surfaceSecondFavourite": 0
}
1 Like

I hope you won’t mind if I put some random un-justified thoughts here :slight_smile:

I wonder if distanceMax and distanceMin are distances to the next nearest vein. So veins are not within 5 blocks of each other, and veins are never stray (255 blocks away from next nearest vein)

distanceBestLower 15 I imagine means that there’s a higher chance of finding a vein 15 blocks away from nearest vein, hence the observation that some have made that they often move into the next chunk to find a vein.

I imagine caveWeighting has to do with resources that spawn on the surface of a cave, hence being exposed resources. Probably related to the surfaceWeighting also being 0.5.

Doubtful, that is one of the ones that we are pretty sure what it does. These are the per resource settings, but there are also per world profile settings for resourcesPerUsableBlock and resourcesPerUsableSurface and these seem to control how closely clustered resources can be. The distance ones are also for Embedded resources only, so distance from surface make a lot more sense. Anything that maxes out at 255 seems to involve something vertical since 255 is the max height.

2 Likes

Very curious on this part, as I’ve noticed this with at least rubies, that there seems to be favored surface blocks for them. With land biomes of similar altitude can be significant differences in the hotspots… for whatever reason, Graveyard gives hotspot so much better than anything else I’ve found that I can see the biome outlines for it by looking at atlases’ ruby hotspots on a couple Burn worlds I have. Would be nice to know what is favored for what resource, as that would make biome selection better when going for a certain resource.

On the depth from surface, this also jumps out at me-

“blocksAboveBestLower”: 10,
“blocksAboveBestUpper”: 30,

I’ve noticed that there is a “best” range on stuff outside the min/max where larger seams seem to appear, and on Umbris at least, it seems to be correlated to depth from the surface, and I suspect Topaz might follow the same rules - both have a huge range, but appears the biggest seams are around 30-60 or so from the surface. I’d love to know those ranges for sure.

Yeah, that is one what we are kind of sure how it works.

Like Rift is 50/255 so I am pretty sure that means there has to be blocks above it in the 50-255 above range. Meaning you can have a cave directly above Rift, but not 50 blocks above Rift.

Whereas Blink has 10/85 meaning you cannot really have a cave directly above Blink. That seems to make a lot sense based on my own mining experience.

Yeah, that is why I want to try to figure out the surfaceFavourite ones. liquidFavourite was pretty easy to figure out since they directly mapped to “liquid IDs”, but I have no idea what the surface ones map to. We know some ores definitely prefer specific biomes.

I just pushed it all live! Most of the actually “unknown” data is left out, but you should still get an idea. If you have used Boundlexx UI before, you will need to accept the Update the notification and Update to see the data, otherwise it will probably just say “No Recipe Found”.

Here is a list of all of the resources: https://www.boundlexx.app/items/browse/?is_resource=true

Specifically Topaz: https://www.boundlexx.app/items/13632/

image

And Umbris: https://www.boundlexx.app/items/13708/

image

2 Likes

Wow, this is HUGE, thank you so much!! :smiley:

Seriously, I’ll be studying this bigtime… so, I had the right general idea on Umbris and Topaz, but appears the “best” range might go deeper - BUT, so long as you stay above 130, to keep in that best range.

Interesting that glow caps favor Toxic the most, I thought so but wasn’t certain. Was thinking of trying to replace my Toxic (again) but now that settles it. :rofl: