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:

  1. 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 the distributions section.
      Example:
biomes:
  DESERT:
    distribution: desert_distribution
  
  OCEAN, COLD_OCEAN, DEEP_OCEAN:
    distribution: oceanic_distribution
  1. 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’s Material 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
  1. default_distribution (optional)
    • Purpose: Provides a fallback block distribution for any biome not explicitly mapped in the biomes section.
    • Example:
default_distribution:
  DIRT: 50
  STONE: 30
  SAND: 20

Block Distribution Rules

1. Relative Weighting

2. Omitting a Weight

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


Migration from TXT to YAML

What’s Changed?


Grid Settings

Place the YAML configuration files in the SkygridBlocks folder:

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


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.