SkyGrid World Block Selection Guide
SkyGrid now uses YAML configuration files to define block distributions for your world’s biomes. This change replaces the old text‑file method (with special biome header lines) with a structured, easy‑to‑read, and maintainable format.
YAML Configuration Structure
Each configuration file (e.g., world.yml, world_nether.yml, world_the_end.yml) is divided into three main sections:
- biomes
- Purpose: Maps one or more biomes to a specific block distribution.
- Usage:
List either a single biome or a comma‑separated list of biomes as the key, and assign the name of a distribution defined in thedistributions
section.
Example:
biomes:
DESERT:
distribution: desert_distribution
OCEAN, COLD_OCEAN, DEEP_OCEAN:
distribution: oceanic_distribution
- Fallback:
If a biome isn’t listed here, the plugin will use thedefault_distribution
(if provided).
- distributions
- Purpose: Defines sets of block materials along with their relative weights (percentages).
- Usage:
Each distribution is a mapping where the key is the block ID (matching Bukkit’sMaterial
enum) and the value is the weight or percentage. - Key Points:
- Relative Weights: The weights are used as relative chances. They don’t need to sum to 100 because the plugin normalizes them internally.
- Omitted Values: If you omit a weight for a block, it will be treated as if it has a default weight of 1.0.
- Example:
distributions:
desert_distribution:
SAND: 100
oceanic_distribution:
SAND: 80
SANDSTONE: 9.0
SEA_PICKLE: 1.0
TUBE_CORAL: 1.0
TUBE_CORAL_FAN: 1.0
HORN_CORAL: 1.0
HORN_CORAL_FAN: 1.0
FIRE_CORAL: 1.0
FIRE_CORAL_FAN: 1.0
BUBBLE_CORAL: 1.0
BUBBLE_CORAL_FAN: 1.0
BRAIN_CORAL: 1.0
- default_distribution (optional)
- Purpose: Provides a fallback block distribution for any biome not explicitly mapped in the
biomes
section. - Example:
- Purpose: Provides a fallback block distribution for any biome not explicitly mapped in the
default_distribution:
DIRT: 50
STONE: 30
SAND: 20
Block Distribution Rules
1. Relative Weighting
- Weights (Percentages):
Each block’s assigned number acts as a relative weight. The system normalizes these values regardless of whether they sum to 100.
2. Omitting a Weight
Default Weight:
If you leave out a weight for a block, it is treated as if it has a default weight of 1.0.Example:
STONE: 50
DIRT: 49
SAND:
Explanation:
Since no weight is provided for SAND
, it receives a default value of 1.0.
3. Biome-Specific Distributions
- Independent Normalization:
Each distribution (whether assigned to one biome or several) is normalized independently. That means even if the weights in one distribution don’t “add up” to 100, they’ll be scaled correctly. - Fallback Mechanism:
If a biome isn’t defined in thebiomes
section, the plugin will check for and use thedefault_distribution
.
Migration from TXT to YAML
What’s Changed?
File Format:
Configuration files now use YAML (for example, world.yml instead of world.txt).Biome Assignment:
Instead of using special biome header lines (like-BIOME_NAME-
), biomes are now mapped in the dedicatedbiomes
section.Unified Structure:
The configuration now has clearly separated sections forbiomes
,distributions
, anddefault_distribution
, making it easier to update and maintain.
Grid Settings
Place the YAML configuration files in the SkygridBlocks folder:
- Overworld:
world.yml
- Nether:
world_nether.yml
- The End:
world_the_end.yml
Configure each file using the structure outlined above to ensure that blocks are generated correctly according to each world’s biomes.
Overworld Grid Settings
(world.yml)
biomes:
MUSHROOM_FIELDS:
distribution: custom_mushroom_fields
distributions:
custom_mushroom_fields:
DIRT: 25
RED_MUSHROOM: 20
BROWN_MUSHROOM: 20
RED_MUSHROOM_BLOCK: 10
BROWN_MUSHROOM_BLOCK: 10
MUSHROOM_STEM:
MYCELIUM: 50
STONE: 25
CHEST: 1
SPAWNER: 1
default_distribution:
ACACIA_LEAVES: 3
ACACIA_LOG: 1
ALLIUM: 2
AMETHYST_BLOCK: 1
AMETHYST_CLUSTER: 1
ANDESITE: 20
AZALEA: 1
AZALEA_LEAVES: 3
AZURE_BLUET: 2
BAMBOO: 2
BEE_NEST: 0.01
BEETROOTS: 1
BELL: 0.001
BIRCH_LEAVES: 3
BIRCH_LOG: 1
BLUE_ORCHID: 1
BONE_BLOCK: 1
BOOKSHELF: 1
BRAIN_CORAL_BLOCK: 0.5
BROWN_MUSHROOM: 2
BUBBLE_CORAL_BLOCK: 0.5
BUDDING_AMETHYST: 0.5
CACTUS: 2
CALCITE: 2
CARROTS: 1
CAVE_VINES: 0.5
CHERRY_LEAVES: 3
CHEST: 1
CHISELED_COPPER: 0.1
CHISELED_STONE_BRICKS: 0.5
CLAY: 20
COAL_ORE: 1.0
COARSE_DIRT: 5
COBBLESTONE: 12
COBWEB: 0.5
COPPER_BULB: 0.1
COPPER_GRATE: 0.1
COPPER_ORE: 0.5
CORNFLOWER: 0.5
CRAFTER: 0.05
CREAKING_HEART: 0.001
CRYING_OBSIDIAN: 0.5
CUT_COPPER: 0.1
DANDELION: 0.5
DARK_OAK_LEAVES: 3
DARK_OAK_LOG: 1
DARK_PRISMARINE: 2
DEAD_BUSH: 0.5
DEEPSLATE: 70
DEEPSLATE_COAL_ORE: 1.0
DEEPSLATE_COPPER_ORE: 0.5
DEEPSLATE_DIAMOND_ORE: 0.1
DEEPSLATE_GOLD_ORE: 0.25
DEEPSLATE_IRON_ORE: 1.0
DEEPSLATE_LAPIS_ORE: 0.25
DEEPSLATE_REDSTONE_ORE: 0.4
DIAMOND_ORE: 0.1
DIORITE: 20
DIRT: 70
DRIPSTONE_BLOCK: 3
FERN: 1
FIRE_CORAL_BLOCK: 0.5
FLOWERING_AZALEA: 0.5
FLOWERING_AZALEA_LEAVES: 3
GLASS: 1
GLOW_LICHEN: 0.5
GOLD_BLOCK: 0.1
GOLD_ORE: 0.25
GRANITE: 20
SHORT_GRASS: 1
GRASS_BLOCK: 70
GRAVEL: 10
HANGING_ROOTS: 0.5
HEAVY_CORE: 0.05
HORN_CORAL_BLOCK: 0.5
ICE: 1
INFESTED_DEEPSLATE: 3
IRON_ORE: 1.0
JUNGLE_LEAVES: 3
JUNGLE_LOG: 1
KELP_PLANT: 1
LAPIS_ORE: 0.25
LARGE_FERN: 0.5
LAVA: 10
LILAC: 0.5
LILY_OF_THE_VALLEY: 0.5
LILY_PAD: 0.5
MANGROVE_LEAVES: 3
MANGROVE_LOG: 1
MANGROVE_ROOTS: 1
MANGROVE_WOOD: 1
MELON: 5
MOSS_BLOCK: 1
MOSSY_COBBLESTONE: 5
MOSSY_STONE_BRICKS: 2
MUD: 8
MUDDY_MANGROVE_ROOTS: 4
MYCELIUM: 10
OAK_LEAVES: 3
OAK_LOG: 1
OBSIDIAN: 5
OPEN_EYEBLOSSOM: 0.05
ORANGE_TULIP: 0.5
OXEYE_DAISY: 0.5
PACKED_ICE: 2
PALE_HANGING_MOSS: 0.5
PALE_MOSS_BLOCK: 0.5
PALE_MOSS_CARPET: 0.5
PALE_OAK_LEAVES: 3
PALE_OAK_LOG: 1
PEONY: 0.5
PINK_PETALS: 0.5
PINK_TULIP: 0.5
PISTON: 0.1
PODZOL: 5
POINTED_DRIPSTONE: 1
POPPY: 0.5
POTATOES: 0.5
PRISMARINE: 1
PUMPKIN: 5
RAW_COPPER_BLOCK: 1.2
RAW_IRON_BLOCK: 1.2
RED_MUSHROOM: 2
RED_SAND: 5
RED_SANDSTONE: 3
RED_TULIP: 0.5
REDSTONE_ORE: 0.4
RESIN_BLOCK: 0.05
ROOTED_DIRT: 4
ROSE_BUSH: 0.5
SAND: 30
SANDSTONE: 10
SCULK: 0.3
SCULK_CATALYST: 0.05
SCULK_SENSOR: 0.05
SCULK_SHRIEKER: 0.02
SCULK_VEIN: 0.3
SEA_LANTERN: 1
SEA_PICKLE: 1
SEAGRASS: 0.5
SMALL_DRIPLEAF: 0.5
SMOOTH_BASALT: 2
SNOW_BLOCK: 10
SPAWNER: 0.001
SPONGE: 0.05
SPORE_BLOSSOM: 0.5
SPRUCE_LEAVES: 3
SPRUCE_LOG: 1
STICKY_PISTON: 0.08
STONE: 140
STONE_BRICKS: 2
SUGAR_CANE: 5
SUNFLOWER: 0.5
SUSPICIOUS_GRAVEL: 5
SWEET_BERRY_BUSH: 0.5
TALL_GRASS: 0.5
TARGET: 0.05
TNT: 0.05
TRIAL_SPAWNER: 0.001
TUBE_CORAL_BLOCK: 0.5
TUFF: 20
VAULT: 0.01
WATER: 10
WHEAT: 1
WHITE_CONCRETE_POWDER: 0.5
WHITE_TULIP: 0.5
WHITE_WOOL: 0.5
WITHER_ROSE: 0.05
Nether Grid Settings
(world_nether.yml)
biomes:
SOUL_SAND_VALLEY:
distribution: custom_soul_sand_valley
distributions:
custom_soul_sand_valley:
ANCIENT_DEBRIS: 0.1
BASALT: 20
BLACKSTONE: 60
BONE_BLOCK: 5
CHEST: 0.05
CRYING_OBSIDIAN: 2
GILDED_BLACKSTONE: 4
GLOWSTONE: 3
GRAVEL: 30
LAVA: 50
MAGMA_BLOCK: 50
NETHER_BRICKS: 30
NETHER_GOLD_ORE: 6
NETHER_QUARTZ_ORE: 15
NETHER_SPROUTS: 7
NETHER_WART: 30
NETHERRACK: 60
OBSIDIAN: 5
OCHRE_FROGLIGHT: 4
PEARLESCENT_FROGLIGHT: 4
POLISHED_BLACKSTONE: 6
POLISHED_BLACKSTONE_BRICKS: 4
SHROOMLIGHT: 5
SOUL_FIRE: 5
SOUL_SAND: 150
SOUL_SOIL: 600
SPAWNER: 0.01
TWISTING_VINES: 5
VERDANT_FROGLIGHT: 4
default_distribution:
ANCIENT_DEBRIS: 0.1
BASALT: 20
BLACKSTONE: 60
BONE_BLOCK: 5
CHEST: 0.05
CRIMSON_FUNGUS: 6
CRIMSON_HYPHAE: 6
CRIMSON_NYLIUM: 60
CRIMSON_ROOTS: 6
CRIMSON_STEM: 10
CRYING_OBSIDIAN: 2
GILDED_BLACKSTONE: 4
GLOWSTONE: 3
GRAVEL: 30
LAVA: 50
MAGMA_BLOCK: 50
NETHER_BRICKS: 30
NETHER_GOLD_ORE: 6
NETHER_QUARTZ_ORE: 15
NETHER_SPROUTS: 7
NETHER_WART: 30
NETHER_WART_BLOCK: 6
NETHERRACK: 600
OBSIDIAN: 5
OCHRE_FROGLIGHT: 4
PEARLESCENT_FROGLIGHT: 4
POLISHED_BLACKSTONE: 6
POLISHED_BLACKSTONE_BRICKS: 4
SHROOMLIGHT: 5
SOUL_FIRE: 5
SOUL_SAND: 10
SOUL_SOIL: 100
SPAWNER: 0.01
TWISTING_VINES: 5
VERDANT_FROGLIGHT: 4
WARPED_FUNGUS: 6
WARPED_HYPHAE: 6
WARPED_NYLIUM: 60
WARPED_ROOTS: 6
WARPED_STEM: 10
WARPED_WART_BLOCK: 10
End Grid Settings
(world_the_end.yml)
biomes:
END_HIGHLANDS:
distribution: custom_end_highlands
distributions:
custom_end_highlands:
BREWING_STAND: 0.1
CHEST: 0.1
CHORUS_FLOWER: 5
END_ROD: 20
END_STONE: 60
END_STONE_BRICKS: 5
ENDER_CHEST: 0.1
PURPLE_STAINED_GLASS: 15
PURPUR_BLOCK: 15
PURPUR_PILLAR: 15
PURPUR_STAIRS: 15
default_distribution:
BREWING_STAND: 0.1
CHEST: 0.01
CHORUS_FLOWER: 5
END_ROD: 10
END_STONE: 60
END_STONE_BRICKS: 5
ENDER_CHEST: 0.01
OBSIDIAN: 10
PURPLE_STAINED_GLASS: 5
PURPUR_BLOCK: 5
PURPUR_PILLAR: 5
PURPUR_STAIRS: 5
SPAWNER: 0.0001
Supported Materials
- Block IDs:
Use block IDs as defined in Bukkit’sMaterial
enum. - Reference:
For a full list of valid materials, see the Bukkit Material Documentation.
Additional Resources
With these updates, configuring your SkyGrid world is more intuitive and robust. By defining distributions in YAML, you have greater control over block generation per biome, ensuring a dynamic and engaging world every time.