Config:
Plugin Settings
(settings.yml found in the Skygrid folder)
Code (YAML):
# Configuration
# Generator settings
generator
:
# Delay in ticks before processing chunks after chunk load event.
# A shorter delay increases server load, while a longer delay may affect player immersion.
processDelay
: 10
# Max and Min height for blocks placed in the Grids for all Environments.
# Keep within increments of 4 starting from the current min or max.
# i.e. 0, 4, 8, 12, 16 ... or 128, 124, 120, 116, 112 ...
# Exceeding max heights for worlds will result in errors.
# Nether settings (min 0, max 128)
nether:
minY
: 0
maxY
: 128
# End settings (min 0, max 128)
end:
minY
: 0
maxY
: 128
# Normal world settings (min -64, max 256)
normal:
minY
: -64
maxY
: 64
# Default settings for unspecified environments (min and max depend on your custom environment)
default:
minY
: 0
maxY
: 128
# TPR Command settings
tprCommand
:
# Randomly teleports the player using /tpr when they first join.
# Set to true to enable.
onFirstJoin
: false
# The delay in seconds to prevent players from using the /tpr command back-to-back.
# Players must wait for this duration before they can use the /tpr command again.
b2bDelay
: 10
# Delay in seconds before teleporting in the overworld
tprDelay
: 30
# Delay in seconds before teleporting in the nether
tprNetherDelay
: 30
# Delay in seconds before teleporting in the end
tprEndDelay
: 30
# Maximum X coordinate for random teleport (max 29999983)
maxX
: 29999983
# Maximum Z coordinate for random teleport (max 29999983)
maxZ
: 29999983
# Minimum X coordinate for random teleport (max -29999983)
minX
: -29999983
# Minimum Z coordinate for random teleport (max -29999983)
minZ
: -29999983
# Default Y coordinate for teleport destination (min -64, max 256, try to get it somewhere in between all your environments)
destinationY
: 64
# These are materials that the tpr command considers dangerous and will prevent players from being placed on them when /tpr is used.
DANGEROUSBLOCKS:
Materials
:
- AIR
- ALLIUM
- AZURE_BLUET
- BEETROOTS
- BIG_DRIPLEAF
- BLUE_ORCHID
- BROWN_MUSHROOM
- CACTUS
- CAMPFIRE
- CARROTS
- CAVE_VINES_PLANT
- COBWEB
- CORNFLOWER
- CRIMSON_FUNGUS
- CRIMSON_ROOTS
- DANDELION
- DEAD_BUSH
- FERN
- FIRE
- GLOW_LICHEN
- HANGING_ROOTS
- KELP
- KELP_PLANT
- LARGE_FERN
- LAVA
- LAVA_CAULDRON
- LILAC
- LILY_OF_THE_VALLEY
- MAGMA_BLOCK
- MELON_STEM
- NETHER_SPROUTS
- NETHER_WART
- ORANGE_TULIP
- OXEYE_DAISY
- PEONY
- PINK_TULIP
- PITCHER_PLANT
- POINTED_DRIPSTONE
- POPPY
- POTATOES
- POWDER_SNOW
- PUMPKIN_STEM
- RED_MUSHROOM
- RED_TULIP
- ROSE_BUSH
- SCULK_VEIN
- SEAGRASS
- SHORT_GRASS
- SMALL_DRIPLEAF
- SNOW
- SOUL_FIRE
- SPORE_BLOSSOM
- SUGAR_CANE
- SUNFLOWER
- SWEET_BERRY_BUSH
- TALL_GRASS
- TALL_SEAGRASS
- TORCHFLOWER
- TORCHFLOWER_CROP
- TWISTING_VINES
- VINE
- VOID_AIR
- WARPED_FUNGUS
- WARPED_ROOTS
- WATER
- WEEPING_VINES
- WHEAT
- WHITE_TULIP
- WITHER_ROSE
# Fog settings
fog
:
# Auto-enable fog setting
# Set to true to automatically enable fog when the plugin starts.
autoEnable
: false
# Event Control settings
EventControl
:
# (true to enable event check, false to disable)
# BlockIgniteEvent - Prevents lava from causing fires to near by flammable grid blocks
BlockIgniteEvent
: true
# BlockFadeEvent - Prevents ice from melting if it's in the grid and fire from burning out
BlockFadeEvent
: true
# BlockFromToEvent - Prevents lava and water from flowing due to server overload
BlockFromToEvent
: true
# StructureGrowEvent - Prevents saplings in floating in grid from growing
StructureGrowEvent
: true
# BlockSpreadEvent - Prevents bamboo sapling from growing since it does not trigger with StructureGrowEvent
BlockSpreadEvent
: true
# BlockGrowEvent is used for KELP_PLANT, SUGAR_CANE, CACTUS, and TWISTING_VINES_PLANT (not logged in /eclogson, to much spam)
BlockGrowEvent
: true
# BlockFormEvent - Prevents block updates that mess up the grid in snow biomes, snow forming on top of blocks
BlockFormEvent
: true
# EntityChangeBlock - Prevents gravity-affected blocks from randomly falling due to overload
EntityChangeBlockEvent
: true
# This list is for blocks that you want to monitor the BlockFormEvent and EntityChangeBlock events.
GRAVITY_AFFECTED_BLOCKS:
Materials
:
- SAND
- RED_SAND
- GRAVEL
- KELP_PLANT
- ANVIL
- SUSPICIOUS_SAND
- SUSPICIOUS_GRAVEL
- DRAGON_EGG
- BLACK_CONCRETE_POWDER
- BLUE_CONCRETE_POWDER
- BROWN_CONCRETE_POWDER
- CYAN_CONCRETE_POWDER
- GRAY_CONCRETE_POWDER
- GREEN_CONCRETE_POWDER
- LIGHT_BLUE_CONCRETE_POWDER
- LIGHT_GRAY_CONCRETE_POWDER
- LIME_CONCRETE_POWDER
- MAGENTA_CONCRETE_POWDER
- ORANGE_CONCRETE_POWDER
- PINK_CONCRETE_POWDER
- PURPLE_CONCRETE_POWDER
- RED_CONCRETE_POWDER
- WHITE_CONCRETE_POWDER
- YELLOW_CONCRETE_POWDER
Ore Generator Settings
(ores.yml Found in the OreGenBlock folder)
Code (YAML):
# Ore Replacement Chances
# This file is used to specify the chances of different ores being chosen for replacement
# when lava or water generates stone blocks in the world. The stone generate in the world can be replaced by any block you want as long as its in the bukkit materials list https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
# Format: Material_Name:Percentage
# The percentage represents the chance (in whole numbers) of the ore being chosen
# for replacement out of the total replacements when lava or water generates stone.
# Each line represents one ore with its corresponding replacement chance.
# Lines starting with '#' are considered comments and will be ignored by the code.
# Example:
# DIAMOND_ORE:5
# This means that there is a 5% chance of a diamond ore block being chosen
# when lava or water generates a stone block.
# The total sum of percentages should be less than or equal to 100.
# If the sum exceeds 100, the probabilities will be scaled down proportionally
# to fit within the 0-100 range.
# For example, if the total sum of percentages exceeds 100 as follows:
# DIAMOND_ORE:40
# COAL_ORE:60
# IRON_ORE:30
# GOLD_ORE:20
# The total sum is 40 + 60 + 30 + 20 = 150, which exceeds 100.
# To fit within the 0-100 range, the probabilities will be scaled down proportionally:
# DIAMOND_ORE: 40 * (100 / 150) = 26 (approximately 27)
# COAL_ORE: 60 * (100 / 150) = 40
# IRON_ORE: 30 * (100 / 150) = 20
# GOLD_ORE: 20 * (100 / 150) = 13 (approximately 13)
# The adjusted probabilities now add up to 26 + 40 + 20 + 13 = 99, which is within the 0-100 range.
#For if the block generated though water and lava is stone
STONE:
STONE
: 98
COAL_ORE
: 0.3
COPPER_ORE
: 0.4
DIAMOND_ORE
: 0.1
EMERALD_ORE
: 0.1
GOLD_ORE
: 0.2
IRON_ORE
: 0.4
LAPIS_ORE
: 0.2
REDSTONE_ORE
: 0.3
#For if the block generated though water and lava is cobblestone
COBBLESTONE:
DEEPSLATE
: 98
DEEPSLATE_COAL_ORE
: 0.3
DEEPSLATE_COPPER_ORE
: 0.4
DEEPSLATE_DIAMOND_ORE
: 0.1
DEEPSLATE_EMERALD_ORE
: 0.1
DEEPSLATE_GOLD_ORE
: 0.2
DEEPSLATE_IRON_ORE
: 0.4
DEEPSLATE_LAPIS_ORE
: 0.2
DEEPSLATE_REDSTONE_ORE
: 0.3
Chest Settings
(ChestSettings.yml Found in the SkygridBlocks folder)
Code (YAML):
# The available items for use can be found at https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
# The available biomes can be found here: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/Biome.html
# In YAML, identifiers or keys (such as "Chest1" in your example) are subject to certain rules.
# - Do's -
# Alphanumeric Characters: Identifiers can contain letters (both uppercase and lowercase) and numbers. For example, "Chest1" is a valid identifier.
# Underscores: You can use underscores (_) in identifiers. For instance, "my_chest" is a valid identifier.
# Hyphens in Quoted Strings: If an identifier contains special characters or spaces, you can enclose it in single or double quotes. For example, "'Special Chest'" or "\"Special Chest\"" are valid.
# - Don'ts -
# Special Characters: Avoid using special characters like !, @, #, $, %, etc., in identifiers without enclosing them in quotes. For example, "Chest@123" should be written as "'Chest@123'" if you want to use special characters.
# Leading Spaces: Identifiers should not have leading spaces. For instance, " MyChest" with a space at the beginning is not a valid identifier.
# Trailing Spaces: Similarly, identifiers should not have trailing spaces. "MyChest " with a space at the end is not valid.
# Spaces in the Middle: While you can use spaces within identifiers if they are enclosed in quotes, it's generally a good practice to avoid spaces within identifiers for clarity. For example, "My Chest" is valid, but "MyChest" is more commonly used.
# Reserved Keywords: Avoid using YAML reserved keywords as identifiers. These keywords have special meaning in YAML and should not be used as keys. For example, "true," "false," and "null" are reserved keywords.
# Case Sensitivity: YAML is case-sensitive. "myChest" and "MyChest" would be considered as two different identifiers.
# ChestSettings: This is the top-level section of the YAML configuration and acts as the main container for all chest settings.
# Chest1: This represents the first chest configuration, which we'll be using as an example. The code will look for a chest configuration with the key "Chest1." The key can be whatever you want; it serves as an identifier.
# Items: Under the "Chest1" configuration, there is an "Items" section. The code will process the items listed here to determine what should be placed in the chest's inventory. Formatting: "- ITEM_NAME:PERCENTAGE:MAX_AMOUNT"
# Biomes: This section lists the biomes in which the chest's item configuration will apply. Formatting: "- BIOME_NAME"
ChestSettings:
Chest1:
Items
:
- MYCELIUM:30:5
- RED_MUSHROOM:20:5
- BROWN_MUSHROOM:20:5
- RED_MUSHROOM_BLOCK:10:5
- BROWN_MUSHROOM_BLOCK:10:5
- MUSHROOM_STEM:10:5
Biomes
:
- MUSHROOM_FIELDS
# The YAML above will be interpreted as follows:
# For a chest located in the "MUSHROOM_FIELDS" biome, the code will use the specified item settings to randomly populate the chest's inventory. The percentage chances and amount ranges for each item will be considered when filling the chest.
# MYCELIUM:30:5 - This line specifies an item with the name "MYCELIUM" with a chance of 30% (percentage) of being placed in the chest, and the max amount of this item is 5. The code will randomly select a value between 1 and 5 for the number of MYCELIUM to place in the chest.
# This is a more compact way of formatting the above. Both versions are valid.
# How to format item entries: [ITEM_NAME:PERCENTAGE:MAX_AMOUNT]. If there is more than one item, you can do [ITEM_NAME:PERCENTAGE:MAX_AMOUNT, ITEM_NAME:PERCENTAGE:MAX_AMOUNT].
# If you are doing multiple biomes, this is also a more compact way of formatting it.
# How to format biome entries: [BIOME_NAME]. If there is more than one biome, you can do [BIOME_NAME, BIOME_NAME].
#Overworld Biomes
Chest2:
Items
:
[WOODEN_AXE:20:1, WOODEN_PICKAXE:20:1, CROSSBOW:20:1, NAME_TAG:20:1, GOLDEN_APPLE:20:1, ENCHANTED_GOLDEN_APPLE:20:1, APPLE:40:2, OAK_LOG:40:2, DARK_OAK_LOG:40:2, RAIL:40:2, DIAMOND:40:2, STRING:90:5, ARROW:90:5, STICK:90:5, WHEAT:90:5, IRON_INGOT:90:5, TORCH:90:5
]
Biomes
:
[BADLANDS, BAMBOO_JUNGLE, BIRCH_FOREST, CHERRY_GROVE, DARK_FOREST, DESERT, DRIPSTONE_CAVES, ERODED_BADLANDS, FLOWER_FOREST, FOREST, GROVE, JAGGED_PEAKS, JUNGLE, LUSH_CAVES, MANGROVE_SWAMP, MEADOW, OLD_GROWTH_BIRCH_FOREST, OLD_GROWTH_PINE_TAIGA, OLD_GROWTH_SPRUCE_TAIGA, PLAINS, SAVANNA, SAVANNA_PLATEAU, SPARSE_JUNGLE, STONY_PEAKS, STONY_SHORE, SUNFLOWER_PLAINS, SWAMP, TAIGA, WINDSWEPT_FOREST, WINDSWEPT_GRAVELLY_HILLS, WINDSWEPT_HILLS, WINDSWEPT_SAVANNA, WOODED_BADLANDS, OCEAN, WARM_OCEAN, LUKEWARM_OCEAN, FROZEN_OCEAN, DEEP_FROZEN_OCEAN, DEEP_LUKEWARM_OCEAN, DEEP_OCEAN, DEEP_COLD_OCEAN, COLD_OCEAN, FROZEN_RIVER, RIVER, BEACH, SNOWY_BEACH, SNOWY_PLAINS, SNOWY_SLOPES, SNOWY_TAIGA, FROZEN_PEAKS, ICE_SPIKES, DEEP_DARK
]
# Nether Biomes:
Chest3:
Items
:
[GOLDEN_APPLE:20:1, ENCHANTED_GOLDEN_APPLE:20:1, GOLD_BLOCK:20:1, GOLDEN_AXE:20:1, IRON_BLOCK:20:1, SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE:20:1, NETHERITE_UPGRADE_SMITHING_TEMPLATE:20:1, IRON_SWORD:20:1, GOLDEN_HELMET:20:1, MUSIC_DISC_PIGSTEP:20:1, DIAMOND:40:2, ANCIENT_DEBRIS:40:2, BONE_BLOCK:40:2, GOLDEN_CARROT:40:2, OBSIDIAN:40:2, CRYING_OBSIDIAN:40:2, IRON_INGOT:90:5, GILDED_BLACKSTONE:90:5, CHAIN:90:5, GOLD_INGOT:90:5, MAGMA_CREAM:90:5, GOLD_NUGGET:90:5, SPECTRAL_ARROW:90:5, STRING:90:5, IRON_NUGGET:90:5, ARROW:90:5, COOKED_PORKCHOP:90:5
]
Biomes
:
[BASALT_DELTAS, NETHER_WASTES, CRIMSON_FOREST, SOUL_SAND_VALLEY, WARPED_FOREST
]
#End Biomes
Chest4:
Items
:
[ELYTRA:20:1, DRAGON_HEAD:20:1, DRAGON_EGG:20:1, END_CRYSTAL:20:1, ENDER_CHEST:20:1, SHULKER_SHELL:40:2, DIAMOND:40:2, END_ROD:90:5, PURPUR_BLOCK:90:5, MAGENTA_STAINED_GLASS:90:5, GOLD_INGOT:90:5, IRON_INGOT:90:5, OBSIDIAN:90:5
]
Biomes
:
[END_BARRENS, END_HIGHLANDS, END_MIDLANDS, SMALL_END_ISLANDS
]
Spawner Settings
(SpawnerSettings.yml Found in the SkygridBlocks folder)
Code (YAML):
# The available entities for use can be found at https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html
# The available biomes can be found here: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/Biome.html
# Entities - Define entities and their spawn percentages. Formatting "- DOLPHIN:33.33"
# Biomes - List the biomes where this spawner will spawn. Formatting "- BEACH"
# Delay: - Set the spawner's delay. If set to -1, the delay will be randomized (randomly choose a delay between min and max spawn delays).
# MaxNearbyEntities - Set the maximum nearby entities (of the same type) allowed. Default value is 16.
# MaxSpawnDelay - The maximum spawn delay amount (in ticks). This value must be greater than 0 and less than or equal to MaxSpawnDelay. Default value is 800 ticks.
# MinSpawnDelay - The minimum spawn delay amount (in ticks). Default value is 200 ticks.
# PlayerRange - Set the range for player activation (given that there are players online). Default value is 16.
# SpawnCount - Set how many mobs attempt to spawn. Default value is 4.
# SpawnRange - Set the radius around which the spawner will attempt to spawn mobs in. Default value is 4.
SpawnerSettings:
Spawner1:
Entities
:
- MUSHROOM_COW:100
Biomes
:
- MUSHROOM_FIELDS
Delay
: -1
MaxNearbyEntities
: 16
MaxSpawnDelay
: 800
MinSpawnDelay
: 200
PlayerRange
: 16
SpawnCount
: 4
SpawnRange
: 4
# This is is a more compact way of formatting the above, both versions are valid.
# How to format entity entries: [ENTITY_NAME:PERCENTAGE] if there is more than one entity you can do [ENTITY_NAME:PERCENTAGE, ENTITY_NAME:PERCENTAGE]
# If you are doing multiple biomes this is also a more compact way of formatting it.
# How to format biome entries: [BIOME_NAME] if there is more than one biome you can do [BIOME_NAME, BIOME_NAME]
# Nether Biomes:
Spawner2:
Entities
:
[PIGLIN:10, PIGLIN_BRUTE:10, BLAZE:10, GHAST:10, HOGLIN:10, WITHER_SKELETON:10, ZOMBIFIED_PIGLIN:10, STRIDER:10, MAGMA_CUBE:10, ZOGLIN:10
]
Biomes
:
[BASALT_DELTAS, NETHER_WASTES, CRIMSON_FOREST, SOUL_SAND_VALLEY, WARPED_FOREST
]
Delay
: -1
MaxNearbyEntities
: 16
MaxSpawnDelay
: 800
MinSpawnDelay
: 200
PlayerRange
: 16
SpawnCount
: 4
SpawnRange
: 4
#Overworld Biomes
Spawner3:
Entities
:
[ALLAY:2, AXOLOTL:2, BAT:2, BEE:2, CAMEL:2, CAT:2, CAVE_SPIDER:2, CHICKEN:2, COW:2, CREEPER:2, DONKEY:2, EVOKER:2, FOX:2, FROG:2, GOAT:2, HORSE:2, HUSK:2, ILLUSIONER:2, IRON_GOLEM:2, LLAMA:2, MULE:2, OCELOT:2, PANDA:2, PARROT:2, PHANTOM:2, PIG:2, PILLAGER:2, RABBIT:2, RAVAGER:2, SHEEP:2, SILVERFISH:2, SKELETON:2, SKELETON_HORSE:2, SLIME:2, SNIFFER:2, SPIDER:2, STRAY:2, TRADER_LLAMA:2, VEX:2, VILLAGER:2, VINDICATOR:2, WANDERING_TRADER:2, WITCH:2, WITHER:2, WOLF:2, ZOMBIE:2, ZOMBIE_HORSE:2, ZOMBIE_VILLAGER:2
]
Biomes
:
[BADLANDS, BAMBOO_JUNGLE, BIRCH_FOREST, CHERRY_GROVE, DARK_FOREST, DESERT, DRIPSTONE_CAVES, ERODED_BADLANDS, FLOWER_FOREST, FOREST, GROVE, JAGGED_PEAKS, JUNGLE, LUSH_CAVES, MANGROVE_SWAMP, MEADOW, OLD_GROWTH_BIRCH_FOREST, OLD_GROWTH_PINE_TAIGA, OLD_GROWTH_SPRUCE_TAIGA, PLAINS, SAVANNA, SAVANNA_PLATEAU, SPARSE_JUNGLE, STONY_PEAKS, STONY_SHORE, SUNFLOWER_PLAINS, SWAMP, TAIGA, WINDSWEPT_FOREST, WINDSWEPT_GRAVELLY_HILLS, WINDSWEPT_HILLS, WINDSWEPT_SAVANNA, WOODED_BADLANDS
]
Delay
: -1
MaxNearbyEntities
: 16
MaxSpawnDelay
: 800
MinSpawnDelay
: 200
PlayerRange
: 16
SpawnCount
: 4
SpawnRange
: 4
Spawner4:
Entities
:
[COD:10, DOLPHIN:10, DROWNED:10, ELDER_GUARDIAN:10, GUARDIAN:10, SALMON:10, SQUID:10, TADPOLE:10, TROPICAL_FISH:10, PUFFERFISH:10
]
Biomes
:
[OCEAN, WARM_OCEAN, LUKEWARM_OCEAN, FROZEN_OCEAN, DEEP_FROZEN_OCEAN, DEEP_LUKEWARM_OCEAN, DEEP_OCEAN, DEEP_COLD_OCEAN, COLD_OCEAN, FROZEN_RIVER, RIVER
]
Delay
: -1
MaxNearbyEntities
: 16
MaxSpawnDelay
: 800
MinSpawnDelay
: 200
PlayerRange
: 16
SpawnCount
: 4
SpawnRange
: 4
Spawner5:
Entities
:
[TURTLE:100
]
Biomes
:
[BEACH, SNOWY_BEACH
]
Delay
: -1
MaxNearbyEntities
: 16
MaxSpawnDelay
: 800
MinSpawnDelay
: 200
PlayerRange
: 16
SpawnCount
: 4
SpawnRange
: 4
Spawner6:
Entities
:
[SNOWMAN:50, POLAR_BEAR:50
]
Biomes
:
[SNOWY_PLAINS, SNOWY_SLOPES, SNOWY_TAIGA, FROZEN_PEAKS, ICE_SPIKES
]
Delay
: -1
MaxNearbyEntities
: 16
MaxSpawnDelay
: 800
MinSpawnDelay
: 200
PlayerRange
: 16
SpawnCount
: 4
SpawnRange
: 4
Spawner7:
Entities
:
[WARDEN:100
]
Biomes
:
[DEEP_DARK
]
Delay
: -1
MaxNearbyEntities
: 1
MaxSpawnDelay
: 800
MinSpawnDelay
: 200
PlayerRange
: 16
SpawnCount
: 1
SpawnRange
: 8
#End Biomes
Spawner8:
Entities
:
[ENDER_DRAGON:10, ENDERMAN:40, ENDERMITE:10, SHULKER:40
]
Biomes
:
[END_BARRENS, END_MIDLANDS, THE_END, SMALL_END_ISLANDS
]
Delay
: -1
MaxNearbyEntities
: 16
MaxSpawnDelay
: 800
MinSpawnDelay
: 200
PlayerRange
: 16
SpawnCount
: 4
SpawnRange
: 4
Spawner9:
Entities
:
[ENDER_DRAGON:100
]
Biomes
:
[END_HIGHLANDS
]
Delay
: -1
MaxNearbyEntities
: 1
MaxSpawnDelay
: 800
MinSpawnDelay
: 200
PlayerRange
: 16
SpawnCount
: 1
SpawnRange
: 8
SkyGrid World Block Selection:
(found in the SkygridBlocks folder)
Overworld (world.txt):
Code (Text):
# SkyGrid World Block Selection Guide:
# Each line in the materials file corresponds to a block and its chance of appearing.
# Format: BlockID:Percentage (use block names or IDs).
# Example: "STONE:50" means a 50% chance of Stone appearing.
# You can include as many blocks as you want, and their percentages can be anything.
# The total percentage doesn't need to add up to 100%.
# You can use any of the materials in the Bukkit Material page here: [https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html]
# Block Distribution Rules:
# 1. No Percentage Specified for a Block:
# - If a percentage is not specified for a block, the code assigns it a default percentage of 1.0. This ensures that all blocks are accounted for in the distribution process.
# - For example:
# STONE:50
# DIRT:49
# SAND:
# Explanation:
# -The code will interpret SAND as having a default percentage of 1.0 since no percentage is specified. After allocating 50% for STONE and 49% for DIRT, the remaining 1% will be distributed to SAND.
# 2. Total Percentage Exceeds 100%:
# - When the total percentage exceeds 100%, the code scales down the percentages proportionally to ensure they sum up to 100%. This prevents over-allocation of blocks.
# - For example:
# STONE:80
# DIRT:60
# SAND:
# -RIVER-
# AIR:120
# WATER:
# Explanation:
# - The initial total percentage for each list is calculated. To scale down the percentages, the scaling factor is calculated by dividing 100 by the sum of the initial percentages. Each percentage is multiplied by its respective scaling factor to adjust it accordingly.
# 3. Biome-Dependent Allocation:
# - Blocks can be listed under specific biome headers, allowing for biome-dependent allocation.
# - If the percentages within a biome list do not add up to 100%, the remaining percentage is redistributed among the blocks within that specific biome's list.
# - For example:
# STONE:50
# DIRT:30
# SAND:
# AIR:
# -OCEAN-
# WATER:30
# SAND:20
# SANDSTONE:
# Explanation:
# - Each biome header gets its own redistribution percentage. For each biome list, percentages are calculated separately. Here, the remaining percentage is redistributed evenly among the blocks within each biome list.
# - When the block percentages in a biome's list don't add up to 100%, the leftover percentage is redistributed among the blocks within that specific biome's list. This ensures that the total percentage for that biome accurately represents the distribution of blocks in the world.
# Biome-Specific Block Generation:
# - Customize the block generation in your world based on different biomes.
# - Specify unique block materials and percentages for each biome in the world.
# - Biomes are signified by the -BIOME_NAME- header, and everything under the biome header will generate only in that biome unless another biome is specified.
# - Multiple biomes in the header of the material files are supported. You can now specify multiple biomes separated by commas.
# - Supported biomes can be found here: [https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/Biome.html]
# How to Use/Configure Biome-Specific Blocks:
# - Specify block materials and their respective percentages for each biome in your world.
# - Example:
# DIRT:20
# STONE:20
# GRASS_BLOCK:20
# -OCEAN,COLD_OCEAN,DEEP_COLD_OCEAN,DEEP_FROZEN_OCEAN,DEEP_LUKEWARM_OCEAN,DEEP_OCEAN,FROZEN_OCEAN,LUKEWARM_OCEAN-
# 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
# BRAIN_CORAL_FAN:1.0
# -WARM_OCEAN-
# SAND:80
# SANDSTONE:20
#
# Material loader version differences:
# Basic Material Loader:
# - Optimized for loading materials with no biome headers i.e. -BIOME_NAME-
# - Materials distribution is enforced much more accurately, with the trade in performance reduction.
# - Since there is no biome headers used the materials will be applied to all biomes equally.
# Advanced material loader:
# - Optimized for loading materials with biome headers, only enables when biomes headers are detected in any of the files.
# - Materials distribution is enforced loosely through a weigh percentage system.
# - All biomes must be included in the text file, omitting any biomes will result in blank chunks where the biomes are located
# - Here are all the current biomes for the Overworld:
#
#-FROZEN_RIVER,FROZEN_OCEAN,DEEP_FROZEN_OCEAN,DEEP_LUKEWARM_OCEAN,LUKEWARM_OCEAN,COLD_OCEAN,DEEP_COLD_OCEAN,OCEAN,DEEP_OCEAN,RIVER,WARM_OCEAN,SWAMP,MANGROVE_SWAMP,DESERT,DARK_FOREST,OLD_GROWTH_PINE_TAIGA,OLD_GROWTH_SPRUCE_TAIGA,BEACH,SNOWY_BEACH,STONY_SHORE,JUNGLE,SPARSE_JUNGLE,BAMBOO_JUNGLE,JAGGED_PEAKS,FROZEN_PEAKS,ICE_SPIKES,STONY_PEAKS,FOREST,FLOWER_FOREST,BIRCH_FOREST,OLD_GROWTH_BIRCH_FOREST,TAIGA,SNOWY_TAIGA,SNOWY_PLAINS,GROVE,SNOWY_SLOPES,PLAINS,SUNFLOWER_PLAINS,MEADOW,MUSHROOM_FIELDS,CHERRY_GROVE,SAVANNA,SAVANNA_PLATEAU,WINDSWEPT_SAVANNA,WINDSWEPT_FOREST,WINDSWEPT_HILLS,WINDSWEPT_GRAVELLY_HILLS,DEEP_DARK,LUSH_CAVES,DRIPSTONE_CAVES,BADLANDS,ERODED_BADLANDS,WOODED_BADLANDS-
ACACIA_LEAVES:
ACACIA_LOG:
AMETHYST_BLOCK:
ANDESITE:
AZALEA:
AZALEA_LEAVES:
BAMBOO:
BEE_NEST:
BIRCH_LEAVES:
BIRCH_LOG:
BLUE_ICE:
BONE_BLOCK:
BOOKSHELF:
BRAIN_CORAL_BLOCK:
BROWN_MUSHROOM_BLOCK:
BUBBLE_CORAL_BLOCK:
BUDDING_AMETHYST:
CACTUS:
CALCITE:
CHERRY_LEAVES:
CHERRY_LOG:
CHEST:0.005
CLAY:
COAL_ORE:
COARSE_DIRT:
COBBLED_DEEPSLATE:
COBBLESTONE:
COPPER_ORE:
CRYING_OBSIDIAN:
CUT_SANDSTONE:
DARK_OAK_LEAVES:
DARK_OAK_LOG:
DARK_PRISMARINE:
DEEPSLATE:10
DIAMOND_ORE:0.001
DIORITE:
DIRT:
DRIPSTONE_BLOCK:
EMERALD_ORE:0.001
FIRE_CORAL_BLOCK:
GLASS:
GOLD_ORE:
GRANITE:
GRASS_BLOCK:10
GRAVEL:
HAY_BLOCK:
HORN_CORAL_BLOCK:
IRON_ORE:3
JUNGLE_LEAVES:
JUNGLE_LOG:
LAPIS_ORE:
LARGE_AMETHYST_BUD:
LAVA_CAULDRON:
MANGROVE_LEAVES:
MANGROVE_LOG:
MELON:
MOSS_BLOCK:
MOSSY_COBBLESTONE:
MUD:
MUDDY_MANGROVE_ROOTS:
MYCELIUM:
OAK_LEAVES:
OAK_LOG:
OBSIDIAN:
PACKED_ICE:
PACKED_MUD:
PODZOL:
POINTED_DRIPSTONE:
PRISMARINE:
PUMPKIN:
RAW_IRON_BLOCK:2
RED_MUSHROOM_BLOCK:
RED_SAND:
REDSTONE_ORE:2
ROOTED_DIRT:
SAND:10
SANDSTONE:
SEA_LANTERN:
SEA_PICKLE:
SNOW_BLOCK:
SPAWNER:0.00001
STONE:10
SUGAR_CANE:
SUSPICIOUS_GRAVEL:
SUSPICIOUS_SAND:
TERRACOTTA:
TUBE_CORAL_BLOCK:
TUFF:
WET_SPONGE:
Nether (world_nether.txt):
Code (Text):
# - Here are all the current biomes for the Nether:
#
#-BASALT_DELTAS,CRIMSON_FOREST,NETHER_WASTES,SOUL_SAND_VALLEY,WARPED_FOREST-
ANCIENT_DEBRIS:0.001
BASALT:13
BLACKSTONE:13
BONE_BLOCK:2
CHEST:0.0001
CRIMSON_NYLIUM:3
CRIMSON_STEM:3
GLOWSTONE:5
GRAVEL:2
LAVA_CAULDRON:3
MAGMA_BLOCK:2
NETHER_BRICKS:2
NETHER_GOLD_ORE:2
NETHER_QUARTZ_ORE:3
NETHER_WART_BLOCK:3
NETHERRACK:13
OCHRE_FROGLIGHT:2
PEARLESCENT_FROGLIGHT:2
SHROOMLIGHT:2
SOUL_SAND:3
SOUL_SOIL:2
SPAWNER:0.00001
VERDANT_FROGLIGHT:1
WARPED_NYLIUM:3
WARPED_STEM:3
WARPED_WART_BLOCK:3
End (world_the_end.txt):
Code (Text):
# - Here are all the current biomes for the End:
#
#-THE_END,END_BARRENS,END_HIGHLANDS,END_MIDLANDS,SMALL_END_ISLANDS-
CHEST:0.00001
CHORUS_FLOWER:4
END_ROD:2
END_STONE:78
END_STONE_BRICKS:30
OBSIDIAN:24
PURPUR_BLOCK:50
SPAWNER:0.000001