Sorry it's taken so long to get the update out on the plugin pages. I've been busy, and even though the update has been done for a while, I just haven't had time to post it.
In this version, a lot has been overhauled to simplify the installation process where possible for all versions except Folia, due to some limitations with their API.
Major Changes
The datapack is no longer required for (Spigot, Bukkit, Paper, Pufferfish, Purpur, Leaf), since a custom generator has been built using the API to strip world chunk data of everything except biomes. This was done to support multi-world setups beyond the default 3 worlds.
⚠️⚠️⚠️ The plugin now creates 3 completely custom worlds and leaves the default ones untouched. So if you're switching from an old version and using (Spigot, Bukkit, Paper, Pufferfish, Purpur, Leaf), you'll need to do a few extra things. Like copying over your saved region data to the new worlds, and so on. ⚠️⚠️⚠️
If you're making a brand new server, you can just proceed as normal. Download the plugin and launch the server—no more extra steps like creating a datapack folder. Use the built-in /tpr
command to teleport to the SkyGrid worlds. Portals, beds, and similar stuff are now isolated from the standard worlds. For example, going through a portal in the SkyGrid Overworld takes you to a SkyGrid Nether or End, depending on the type.
New Features
Custom Ender Eye Portal Tracking
Stand-alone end portals have been added to the SkyGrid Overworld. The plugin has custom logic to let Ender Eyes track these portals.
- Eyes follow a smooth arc to the nearest registered portal
- They hover with particles for 5 seconds so players can catch them
- Then they get refunded to the player
- If no portal exists, the eye pops with a small explosion and gets refunded
- Portal data is stored in a fast binary file (
portals.dat
) - Only works with
END_PORTAL
blocks in the grid - Replaces the missing stronghold structure
Auto Mini-Chunk Regen
You can now mark any chunk to auto-regen on a timer. Great for farms, mob grinders, or any spot you want to reset without doing anything. Use easy in-game commands:
/miniregen add
to start a regen job
/miniregen remove
to stop it
You can tab-complete the interval, alias, distribution, or group name.
New 1.21.5–1.21.7 Content
All the new blocks and mobs have been added to the grid. Things like:
- Firefly Bush
- Leaf Litter
- Wildflowers
- Bush
- Short Dry Grass
- Cactus Flowers
- Happy Ghast Spawners
- ... and more
/miniregen Command
/miniregen add [seconds] [alias] [distribution] [group]
/miniregen remove [alias]
/miniregen remove group [groupName]
Examples
# Regen this chunk every 5 minutes
/miniregen add 300 farmZone spring_to_life
# Stop that job
/miniregen remove farmZone
# Remove all jobs in the "farm" group
/miniregen remove group farm
Sample Materials List
Here's a sample mini_regen_materials.<code>yml </code>
setup:
distributions:
spring_to_life:
FIRELY_BUSH: 1.0
LEAF_LITTER: 0.5
WILDFLOWERS: 0.7
SHORT_DRY_GRASS: 0.4
TALL_DRY_GRASS: 0.4
CACTUS_FLOWER: 0.2
LODESTONE: 0.8
Chest System Updates
The chest system now supports more loot customization:
- Mix Minecraft loot tables and your own custom ones
- Set custom item spawn chances
- See the SkyGridX Chest Settings Guide for full details
New tipped arrow logic adds random potion effects to arrows in chests for more variety.
End Fight Changes
The dragon fight is easier now:
- The End portal was moved to the same Y level as the obsidian platform
- A big dome around the fight area has been cleared of blocks
- Easier to shoot crystals and hit the dragon
- End pillars regenerate but no longer have cages
Bug Fixes
- Fixed enchanted books not combining properly
- Fixed enchantment text only showing in English (now uses server language)
- Lots of smaller bug fixes not listed
There’s been a ton of changes. If you need help with anything or run into issues, let me know on the plugin Discord Or submit issues on GitHub.
Folia version for 1.21.7 will come when they updated their api to 1.21.7
Has all same features as latest SkyGridx, but is optimized for folia specifically.
What is included in the latest update:
Plugin Update: Enhanced Chest System and Loot Distribution!
What's New?
-
Updated Loot Tables:
I've refreshed the loot tables to use the newest vanilla loot tables wherever possible. For example, in the jungle you'll now find loot from the updated jungle temple. Custom loot tables have also been improved – there are more items, more food options, more wood, and all the armor trims are now available across every dimension. Additionally, custom chests now include a wider selection of tools with more enchantment variety, and I've even swapped out wooden tools for gold ones for better balance. -
Increased Distribution:
The probability of finding chests and spawners has been boosted by 2-3 times in all dimensions. This means chests are now easier to locate, and with the updated loot tables, the rewards will be even more enticing. -
Dynamic Loot & Performance Boost:
Chests now populate their loot when they are opened instead of at the moment they're generated. This change not only improves performance by eliminating the need to calculate loot for every chest during chunk generation but also means that if loot tables are updated later, players will receive the new, updated loot instead of outdated items.
Enhanced Chest Modes
- Two Ways to Populate Chests:
- Custom Loot Tables:
Define exactly which items appear in your chests using either a compact or an expanded format. You can customize item display names (with color codes), set how enchantment levels are shown (either as numbers with a prefix or as Roman numerals), and even use filler items to adjust the rarity of valuable items.
- Custom Loot Tables:
#############################
# [Legacy (Compact) Format] #
#############################
ChestSettings:
ChestOld:
Items: [MATERIAL_ENUM:weight:maxAmount]
Biomes: [BIOME_ENUM]
##########################################
# [Expanded Format / Enchanment Support] #
##########################################
ChestSettings: # ChestSettings (Parent Key) Under this key, create one or more named chest configurations (e.g., "Chest1").
ChestNew: # Chest key can be anything, really. If you use special characters, make sure to put them inside parentheses like this: "N@me". It is used as a unique identifier for each chest (there should not be two that are the same).
Items:
- MATERIAL_ENUM: # Use the exact item names from https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
- Weight: <numeric value> # The chance (in percent) for the material to be placed in the chest.
- MaxAmount: <numeric value> # The max amount of that material that will be allowed chest wide.
- CustomName: <custom display name> # Supports use of Minecraft color codes like "§0" for Black and so on.
- LevelType: <Standard or Roman> # Item-wide setting for enchantment display
- Enchantments:
- ENCHANTMENT_ENUM: # Use exact enchantment names from https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/enchantments/Enchantment.html
- Weight: <numeric chance in percent>
- MinLevel: <minimum level>
- MaxLevel: <maximum level>
- LoreColor: <color> # (Optional) Valid colors: BLACK, DARK_BLUE, DARK_GREEN,DARK_AQUA, DARK_RED, DARK_PURPLE, GOLD, GRAY,DARK_GRAY, BLUE, GREEN, AQUA, RED, LIGHT_PURPLE,YELLOW, WHITE.
Biomes:
- BIOME_ENUM # Use the exact biome names from https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/Biome.html
- Minecraft-based Loot Tables:
Use vanilla Minecraft’s loot generation with our updated loot table selections. Simply list the loot table names with their weights, and the plugin will automatically handle loot generation.
#########################
# [New Vanilla Support] #
#########################
ChestSettings: # ChestSettings (Parent Key)
ChestMulti: # Chest key can be anything, really. If you use special characters, make sure to put them inside parentheses like this: "N@me". It is used as a unique identifier for each chest (there should not be two that are the same).
LootTables: # LootTables (Parent Key)
- SIMPLE_DUNGEON: # Each loot table entry is defined as a map where the key is a loot table enum (from Bukkit’s LootTables, such as SIMPLE_DUNGEON, ABANDONED_MINESHAFT, etc.) Bukkit LootTables: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/loot/LootTables.html
- Weight: 80.6 # The chance (in percent) for the material to be placed in the chest.
- VILLAGE_ARMORER:
- Weight: 19.4
Biomes: # Biomes (Parent Key)
- DESERT # Use the exact biome names from https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/Biome.html
Plugin Update: Enhanced Chest System and Loot Distribution!
What's New?
-
Updated Loot Tables:
I've refreshed the loot tables to use the newest vanilla loot tables wherever possible. For example, in the jungle you'll now find loot from the updated jungle temple. Custom loot tables have also been improved – there are more items, more food options, more wood, and all the armor trims are now available across every dimension. Additionally, custom chests now include a wider selection of tools with more enchantment variety, and I've even swapped out wooden tools for gold ones for better balance. -
Increased Distribution:
The probability of finding chests and spawners has been boosted by 2-3 times in all dimensions. This means chests are now easier to locate, and with the updated loot tables, the rewards will be even more enticing. -
Dynamic Loot & Performance Boost:
Chests now populate their loot when they are opened instead of at the moment they're generated. This change not only improves performance by eliminating the need to calculate loot for every chest during chunk generation but also means that if loot tables are updated later, players will receive the new, updated loot instead of outdated items.
Enhanced Chest Modes
- Two Ways to Populate Chests:
- Custom Loot Tables:
Define exactly which items appear in your chests using either a compact or an expanded format. You can customize item display names (with color codes), set how enchantment levels are shown (either as numbers with a prefix or as Roman numerals), and even use filler items to adjust the rarity of valuable items.
- Custom Loot Tables:
#############################
# [Legacy (Compact) Format] #
#############################
ChestSettings:
ChestOld:
Items: [MATERIAL_ENUM:weight:maxAmount]
Biomes: [BIOME_ENUM]
##########################################
# [Expanded Format / Enchanment Support] #
##########################################
ChestSettings: # ChestSettings (Parent Key) Under this key, create one or more named chest configurations (e.g., "Chest1").
ChestNew: # Chest key can be anything, really. If you use special characters, make sure to put them inside parentheses like this: "N@me". It is used as a unique identifier for each chest (there should not be two that are the same).
Items:
- MATERIAL_ENUM: # Use the exact item names from https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
- Weight: <numeric value> # The chance (in percent) for the material to be placed in the chest.
- MaxAmount: <numeric value> # The max amount of that material that will be allowed chest wide.
- CustomName: <custom display name> # Supports use of Minecraft color codes like "§0" for Black and so on.
- LevelType: <Standard or Roman> # Item-wide setting for enchantment display
- Enchantments:
- ENCHANTMENT_ENUM: # Use exact enchantment names from https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/enchantments/Enchantment.html
- Weight: <numeric chance in percent>
- MinLevel: <minimum level>
- MaxLevel: <maximum level>
- LoreColor: <color> # (Optional) Valid colors: BLACK, DARK_BLUE, DARK_GREEN,DARK_AQUA, DARK_RED, DARK_PURPLE, GOLD, GRAY,DARK_GRAY, BLUE, GREEN, AQUA, RED, LIGHT_PURPLE,YELLOW, WHITE.
Biomes:
- BIOME_ENUM # Use the exact biome names from https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/Biome.html
- Minecraft-based Loot Tables:
Use vanilla Minecraft’s loot generation with our updated loot table selections. Simply list the loot table names with their weights, and the plugin will automatically handle loot generation.
#########################
# [New Vanilla Support] #
#########################
ChestSettings: # ChestSettings (Parent Key)
ChestMulti: # Chest key can be anything, really. If you use special characters, make sure to put them inside parentheses like this: "N@me". It is used as a unique identifier for each chest (there should not be two that are the same).
LootTables: # LootTables (Parent Key)
- SIMPLE_DUNGEON: # Each loot table entry is defined as a map where the key is a loot table enum (from Bukkit’s LootTables, such as SIMPLE_DUNGEON, ABANDONED_MINESHAFT, etc.) Bukkit LootTables: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/loot/LootTables.html
- Weight: 80.6 # The chance (in percent) for the material to be placed in the chest.
- VILLAGE_ARMORER:
- Weight: 19.4
Biomes: # Biomes (Parent Key)
- DESERT # Use the exact biome names from https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/Biome.html
Has all same features as latest SkyGridx, but is optimized for folia specifically.
What is included in the latest update:
Update Overview
This update makes chest loot in the plugin much more customizable and easier to manage. I’ve added new options that let you change how items look and how their enchantments are shown. I’ve also reworked some of the world file settings to improve overall control. Here’s what’s new:
Custom Item Names and Enchantment Options
-
Custom Item Names: You can now give items their own names using Minecraft color codes. For example, you can name an item "§6HolyDirt" to have it appear in gold. This makes your chests look more personalized and fun!
-
New Enchantment Display Options: Instead of setting the display style for each enchantment one by one, you now choose one style for the whole item. With the new LevelType setting, you have two options:
- Standard: Shows numbers like "lvl_1", "lvl_2", etc.
- Roman: Shows numbers as Roman numerals like "I", "II", and so on. (Note: Roman numerals work up to 3999.)
If you don’t choose a style, it will automatically use the Roman style.
-
LoreColor for Enchantments: Each enchantment can now have its own custom color in the item’s description. This lets you match your server’s theme or simply make items more eye-catching. You can use common color names like RED, BLUE, GREEN, and many more.
-
Better Distribution Control:
With these changes, you now have even more control over how items are distributed in chests. The updated settings allow you to manage both how many items appear in each slot and how they are spread out across the chest. So, a lower MaxItemsPerSlot means more distributed items in the chest, while higher migth result in less distrbution if not set up properly.
World File Configuration Rework
- World Files in YAML:
I have updated the format for the world configuration files. Material text files have been converted to YAML, and the way biomes are set up has changed. If you use custom world settings, you will need to update them according to the new format.
Here are the updated settings files so that you can see the changes:
ChestSettings.yml
# ------------------------------------------------------------------------------
# Chest Settings
#
# This file configures how chests are populated in specific biomes using a
# weight-based system for random item selection. Each chest configuration
# also respects a global "MaxItemsPerSlot" to control the number of items that
# can appear in any single slot.
#
# New Settings:
# - CustomName:
# Allows you to set a custom display name for an item using Minecraft color codes. For example, "§6HolyDirt" will display the name in gold.
#
# - LevelType (Item-wide):
# * Standard: Displays levels as numbers with a "lvl_" prefix (e.g., "Mending lvl_1", "Fortune lvl_2").
# * Roman: Displays levels as Roman numerals (e.g., "Mending I", "Fortune II"). Note: I have added roman numeral conversion that supports values up to 3999.
# * Default: If omitted or unrecognized, defaults to Roman.
#
# - Enchantments:
# Each enchantment entry now supports:
# * Weight: The chance (in percent) for the enchantment to be applied.
# * MinLevel / MaxLevel: The range for the enchantment level.
# * LoreColor: The color used to display the enchantment in the item's lore. Valid colors include: BLACK, DARK_BLUE, DARK_GREEN, DARK_AQUA, DARK_RED, DARK_PURPLE, GOLD, GRAY, DARK_GRAY, BLUE, GREEN, AQUA, RED, LIGHT_PURPLE, YELLOW, WHITE.
#
# Advanced Weighting: Filler Items & Rare Items
# - You can add "filler" items (for example, AIR) with a high weight to reduce the overall odds of rare items appearing. For example, setting AIR to a weight of 90 while giving DIAMOND a weight of 0.3 will make diamonds extremely rare.
#
# ------------------------------------------------------------------------------
#
# 1) MaxItemsPerSlot (Global)
# - Sets a hard limit on how many items of a single type can be placed in one
# slot, regardless of the item’s maxAmount. Default: 2
#
# 2) ChestSettings (Parent Key)
# - Under this key, create one or more named chest configurations (e.g., "Chest1").
#
#
# [Legacy (Compact) Format]
#
# ChestSettings:
# ChestOld:
# Items: [ITEM_NAME:weight:maxAmount]
# Biomes: [BIOME_NAME]
#
# [New Expanded Format]
#
# ChestSettings:
# ChestNew:
# Items:
# -ITEM_NAME: # Use the exact item names from https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
# - Weight: <numeric value>
# - MaxAmount: <numeric value>
# - CustomName: <custom display name> # Supports use of Minecraft color codes like "§0" for Black and so on.
# - LevelType: <Standard or Roman> # Item-wide setting for enchantment display
# - Enchantments:
# - ENCHANTMENT_NAME: # Use exact enchantment names from https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/enchantments/Enchantment.html
# - Weight: <numeric chance in percent>
# - MinLevel: <minimum level>
# - MaxLevel: <maximum level>
# - LoreColor: <color> # (Optional) Valid colors: BLACK, DARK_BLUE, DARK_GREEN,DARK_AQUA, DARK_RED, DARK_PURPLE, GOLD, GRAY,DARK_GRAY, BLUE, GREEN, AQUA, RED, LIGHT_PURPLE,YELLOW, WHITE.
# Biomes:
# - BIOME_NAME # Use the exact biome names from https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/Biome.html
#
#
# 3) How the Code Chooses Items (Weight-Based):
# - The plugin sums all item 'weight' values in a chest config, then picks an item for each empty slot in proportion to those weights.
# Example: With four items each having weight 5, the total weight is 20, and each item has a 25% chance per slot.
#
# 4) Reducing Item Chance (Filler Items):
# - To lower the odds of high-value items appearing, you can add filler items (e.g., AIR) with a high weight to dilute the selection.
# For instance, AIR with weight 90 dilutes the chance of DIAMOND (e.g., weight 0.3) being chosen.
#
# 5) maxAmount vs. MaxItemsPerSlot:
# - maxAmount: The total maximum number of a given item allowed in the entire chest.
# - MaxItemsPerSlot: The maximum number of that item that can be placed in any one slot.
#
# 6) YAML Tips:
# - Use standard YAML naming rules for chest configurations (alphanumeric, underscores,
# or quoted strings for spaces/special characters).
# - Both "compact" and "expanded" list styles are supported.
#
# ------------------------------------------------------------------------------
#
MaxItemsPerSlot: 2
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
# Explanation of the example above (Legacy Format):
# - 'Chest1' is the identifier for this chest configuration.
# - Items are listed using the "MATERIAL:weight:maxAmount" format.
# * MYCELIUM:30:5 => weight = 30, maxAmount = 5
# * RED_MUSHROOM:20:5 => weight = 20, maxAmount = 5
# etc.
#
# The total weight is 30 + 20 + 20 + 10 + 10 + 10 = 100.
# Therefore, MYCELIUM has a 30% chance per slot, RED_MUSHROOM 20%, etc.
#
# Once an item reaches its maxAmount (here, 5), it will no longer be selected.
#
# MaxItemsPerSlot (global, default 2) limits how many of an item can appear in any one slot.
#
# 'Biomes: [MUSHROOM_FIELDS]' indicates that this configuration applies to chests
# generated in the MUSHROOM_FIELDS biome.
#
# ------------------------------------------------------------------------------
#
# New Expanded Format Example:
#
# The example below shows the new options in use.
#
#
# ChestSettings:
# ChestNew:
# Items:
# - MYCELIUM:
# - Weight: 30
# - MaxAmount: 5
# - CustomName: §6HolyDirt
# - LevelType: Standard # Options: Standard (shows levels as "lvl_1") or Roman (shows as "I"); defaults to Roman.
# - Enchantments:
# - FORTUNE:
# - Weight: 100
# - MinLevel: 1
# - MaxLevel: 400
# - LoreColor: RED
# - LOOTING:
# - Weight: 30
# - MinLevel: 1
# - MaxLevel: 300
# - LoreColor: BLUE
# - AIR:
# - Weight: 90
# - MaxAmount: 999 # Filler item to reduce the odds of rare items appearing.
# Biomes:
# - MUSHROOM_FIELDS
#
#
# In this expanded example:
# - 'MYCELIUM' uses a custom name (displayed in gold) and an item-wide LevelType of Standard. All enchantments on this item will display levels as "lvl_x".
# - The FORTUNE enchantment is set to use a LoreColor of RED, while LOOTING uses BLUE.
# - 'AIR' is added as a filler item with a high weight (90) to reduce the chance that rare items (like DIAMOND, if present with a low weight) are chosen.
#
# ------------------------------------------------------------------------------
#
# You can define multiple chest configurations for different biome groups.
#
# Overworld Biomes:
#
Chest2:
Items:
- WOODEN_AXE:
- Weight: 20
- MaxAmount: 1
- Enchantments:
- VANISHING_CURSE:
- Weight: 50
- MinLevel: 1
- MaxLevel: 1
- EFFICIENCY:
- Weight: 70
- MinLevel: 1
- MaxLevel: 4
- UNBREAKING:
- Weight: 30
- MinLevel: 1
- MaxLevel: 3
- WOODEN_PICKAXE:
- Weight: 20
- MaxAmount: 1
- Enchantments:
- VANISHING_CURSE:
- Weight: 50
- MinLevel: 1
- MaxLevel: 1
- EFFICIENCY:
- Weight: 40
- MinLevel: 1
- MaxLevel: 4
- FORTUNE:
- Weight: 30
- MinLevel: 1
- MaxLevel: 3
- UNBREAKING:
- Weight: 30
- MinLevel: 1
- MaxLevel: 3
- CROSSBOW:
- Weight: 20
- MaxAmount: 1
- Enchantments:
- VANISHING_CURSE:
- Weight: 50
- MinLevel: 1
- MaxLevel: 1
- MULTISHOT:
- Weight: 30
- MinLevel: 1
- MaxLevel: 1
- PIERCING:
- Weight: 30
- MinLevel: 1
- MaxLevel: 4
- QUICK_CHARGE:
- Weight: 30
- MinLevel: 1
- MaxLevel: 3
- UNBREAKING:
- Weight: 30
- MinLevel: 1
- MaxLevel: 3
- 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
- ARMADILLO_SCUTE:10:2
- MACE:2:1
- OMINOUS_BOTTLE:10:2
- OMINOUS_TRIAL_KEY:2:1
- TRIAL_KEY:2:1
- BREEZE_ROD:10:2
- RESIN_CLUMP:10: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, 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, PALE_GARDEN]
#
#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 Example:
#
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: [THE_END, END_BARRENS, END_HIGHLANDS, END_MIDLANDS, SMALL_END_ISLANDS]
#
# Note: To add additional chest configurations (e.g., Chest5, Chest6, etc.),
# simply create a new key under ChestSettings with its own Items and Biomes.
#
world.yml
# SkyGrid World Block Selection Guide:
# This YAML configuration file defines the block distributions for different biomes
# in your SkyGrid world. The configuration is split into two main sections:
#
# 1. biomes: Maps each biome to a specific distribution.
# 2. distributions: Defines the block materials and their respective percentages.
#
# Important Notes:
# - Each biome must be assigned a distribution.
# - Percentages represent the relative chance of each block appearing.
# - The total percentage for each distribution does not need to sum to 100%.
# The system will handle scaling as necessary.
# - Ensure that all block names correspond to valid Bukkit `Material` enums.
# Reference: [Bukkit Material Documentation](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html)
#
# Example Usage:
# - To assign the same distribution to multiple biomes, map each biome to the desired distribution.
# - You can define multiple distributions and assign them to different biomes as needed.
#
# Supported Biomes:
# - Refer to [Bukkit Biome Documentation](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/Biome.html) for a list of supported biomes.
biomes:
MUSHROOM_FIELDS:
distribution: custom_mushroom_fields
distributions:
custom_mushroom_fields:
# Each block and its chance of appearing.
# Format: BlockID:Percentage
# Example: "STONE:50" means a 50% chance of Stone appearing.
# The total percentage does not need to sum to 100%; the system will scale as needed.
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
# You can define additional distributions here and assign them to different biomes.
# For example:
# alternate_distribution:
# STONE: 40
# DIRT: 40
# SAND: 20
# To assign this distribution to a biome, add it under the 'biomes' section:
# biomes:
# SOME_OTHER_BIOME:
# distribution: alternate_distribution
# Optional default distribution for biomes not explicitly defined in the 'biomes' section.
# This ensures that a fallback distribution is available.
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
Update Overview
This update makes chest loot in the plugin much more customizable and easier to manage. I’ve added new options that let you change how items look and how their enchantments are shown. I’ve also reworked some of the world file settings to improve overall control. Here’s what’s new:
Custom Item Names and Enchantment Options
-
Custom Item Names: You can now give items their own names using Minecraft color codes. For example, you can name an item "§6HolyDirt" to have it appear in gold. This makes your chests look more personalized and fun!
-
New Enchantment Display Options: Instead of setting the display style for each enchantment one by one, you now choose one style for the whole item. With the new LevelType setting, you have two options:
- Standard: Shows numbers like "lvl_1", "lvl_2", etc.
- Roman: Shows numbers as Roman numerals like "I", "II", and so on. (Note: Roman numerals work up to 3999.)
If you don’t choose a style, it will automatically use the Roman style.
-
LoreColor for Enchantments: Each enchantment can now have its own custom color in the item’s description. This lets you match your server’s theme or simply make items more eye-catching. You can use common color names like RED, BLUE, GREEN, and many more.
-
Better Distribution Control:
With these changes, you now have even more control over how items are distributed in chests. The updated settings allow you to manage both how many items appear in each slot and how they are spread out across the chest. So, a lower MaxItemsPerSlot means more distributed items in the chest, while higher migth result in less distrbution if not set up properly.
World File Configuration Rework
- World Files in YAML:
I have updated the format for the world configuration files. Material text files have been converted to YAML, and the way biomes are set up has changed. If you use custom world settings, you will need to update them according to the new format.
Here are the updated settings files so that you can see the changes:
ChestSettings.yml
# ------------------------------------------------------------------------------
# Chest Settings
#
# This file configures how chests are populated in specific biomes using a
# weight-based system for random item selection. Each chest configuration
# also respects a global "MaxItemsPerSlot" to control the number of items that
# can appear in any single slot.
#
# New Settings:
# - CustomName:
# Allows you to set a custom display name for an item using Minecraft color codes. For example, "§6HolyDirt" will display the name in gold.
#
# - LevelType (Item-wide):
# * Standard: Displays levels as numbers with a "lvl_" prefix (e.g., "Mending lvl_1", "Fortune lvl_2").
# * Roman: Displays levels as Roman numerals (e.g., "Mending I", "Fortune II"). Note: I have added roman numeral conversion that supports values up to 3999.
# * Default: If omitted or unrecognized, defaults to Roman.
#
# - Enchantments:
# Each enchantment entry now supports:
# * Weight: The chance (in percent) for the enchantment to be applied.
# * MinLevel / MaxLevel: The range for the enchantment level.
# * LoreColor: The color used to display the enchantment in the item's lore. Valid colors include: BLACK, DARK_BLUE, DARK_GREEN, DARK_AQUA, DARK_RED, DARK_PURPLE, GOLD, GRAY, DARK_GRAY, BLUE, GREEN, AQUA, RED, LIGHT_PURPLE, YELLOW, WHITE.
#
# Advanced Weighting: Filler Items & Rare Items
# - You can add "filler" items (for example, AIR) with a high weight to reduce the overall odds of rare items appearing. For example, setting AIR to a weight of 90 while giving DIAMOND a weight of 0.3 will make diamonds extremely rare.
#
# ------------------------------------------------------------------------------
#
# 1) MaxItemsPerSlot (Global)
# - Sets a hard limit on how many items of a single type can be placed in one
# slot, regardless of the item’s maxAmount. Default: 2
#
# 2) ChestSettings (Parent Key)
# - Under this key, create one or more named chest configurations (e.g., "Chest1").
#
#
# [Legacy (Compact) Format]
#
# ChestSettings:
# ChestOld:
# Items: [ITEM_NAME:weight:maxAmount]
# Biomes: [BIOME_NAME]
#
# [New Expanded Format]
#
# ChestSettings:
# ChestNew:
# Items:
# -ITEM_NAME: # Use the exact item names from https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
# - Weight: <numeric value>
# - MaxAmount: <numeric value>
# - CustomName: <custom display name> # Supports use of Minecraft color codes like "§0" for Black and so on.
# - LevelType: <Standard or Roman> # Item-wide setting for enchantment display
# - Enchantments:
# - ENCHANTMENT_NAME: # Use exact enchantment names from https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/enchantments/Enchantment.html
# - Weight: <numeric chance in percent>
# - MinLevel: <minimum level>
# - MaxLevel: <maximum level>
# - LoreColor: <color> # (Optional) Valid colors: BLACK, DARK_BLUE, DARK_GREEN,DARK_AQUA, DARK_RED, DARK_PURPLE, GOLD, GRAY,DARK_GRAY, BLUE, GREEN, AQUA, RED, LIGHT_PURPLE,YELLOW, WHITE.
# Biomes:
# - BIOME_NAME # Use the exact biome names from https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/Biome.html
#
#
# 3) How the Code Chooses Items (Weight-Based):
# - The plugin sums all item 'weight' values in a chest config, then picks an item for each empty slot in proportion to those weights.
# Example: With four items each having weight 5, the total weight is 20, and each item has a 25% chance per slot.
#
# 4) Reducing Item Chance (Filler Items):
# - To lower the odds of high-value items appearing, you can add filler items (e.g., AIR) with a high weight to dilute the selection.
# For instance, AIR with weight 90 dilutes the chance of DIAMOND (e.g., weight 0.3) being chosen.
#
# 5) maxAmount vs. MaxItemsPerSlot:
# - maxAmount: The total maximum number of a given item allowed in the entire chest.
# - MaxItemsPerSlot: The maximum number of that item that can be placed in any one slot.
#
# 6) YAML Tips:
# - Use standard YAML naming rules for chest configurations (alphanumeric, underscores,
# or quoted strings for spaces/special characters).
# - Both "compact" and "expanded" list styles are supported.
#
# ------------------------------------------------------------------------------
#
MaxItemsPerSlot: 2
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
# Explanation of the example above (Legacy Format):
# - 'Chest1' is the identifier for this chest configuration.
# - Items are listed using the "MATERIAL:weight:maxAmount" format.
# * MYCELIUM:30:5 => weight = 30, maxAmount = 5
# * RED_MUSHROOM:20:5 => weight = 20, maxAmount = 5
# etc.
#
# The total weight is 30 + 20 + 20 + 10 + 10 + 10 = 100.
# Therefore, MYCELIUM has a 30% chance per slot, RED_MUSHROOM 20%, etc.
#
# Once an item reaches its maxAmount (here, 5), it will no longer be selected.
#
# MaxItemsPerSlot (global, default 2) limits how many of an item can appear in any one slot.
#
# 'Biomes: [MUSHROOM_FIELDS]' indicates that this configuration applies to chests
# generated in the MUSHROOM_FIELDS biome.
#
# ------------------------------------------------------------------------------
#
# New Expanded Format Example:
#
# The example below shows the new options in use.
#
#
# ChestSettings:
# ChestNew:
# Items:
# - MYCELIUM:
# - Weight: 30
# - MaxAmount: 5
# - CustomName: §6HolyDirt
# - LevelType: Standard # Options: Standard (shows levels as "lvl_1") or Roman (shows as "I"); defaults to Roman.
# - Enchantments:
# - FORTUNE:
# - Weight: 100
# - MinLevel: 1
# - MaxLevel: 400
# - LoreColor: RED
# - LOOTING:
# - Weight: 30
# - MinLevel: 1
# - MaxLevel: 300
# - LoreColor: BLUE
# - AIR:
# - Weight: 90
# - MaxAmount: 999 # Filler item to reduce the odds of rare items appearing.
# Biomes:
# - MUSHROOM_FIELDS
#
#
# In this expanded example:
# - 'MYCELIUM' uses a custom name (displayed in gold) and an item-wide LevelType of Standard. All enchantments on this item will display levels as "lvl_x".
# - The FORTUNE enchantment is set to use a LoreColor of RED, while LOOTING uses BLUE.
# - 'AIR' is added as a filler item with a high weight (90) to reduce the chance that rare items (like DIAMOND, if present with a low weight) are chosen.
#
# ------------------------------------------------------------------------------
#
# You can define multiple chest configurations for different biome groups.
#
# Overworld Biomes:
#
Chest2:
Items:
- WOODEN_AXE:
- Weight: 20
- MaxAmount: 1
- Enchantments:
- VANISHING_CURSE:
- Weight: 50
- MinLevel: 1
- MaxLevel: 1
- EFFICIENCY:
- Weight: 70
- MinLevel: 1
- MaxLevel: 4
- UNBREAKING:
- Weight: 30
- MinLevel: 1
- MaxLevel: 3
- WOODEN_PICKAXE:
- Weight: 20
- MaxAmount: 1
- Enchantments:
- VANISHING_CURSE:
- Weight: 50
- MinLevel: 1
- MaxLevel: 1
- EFFICIENCY:
- Weight: 40
- MinLevel: 1
- MaxLevel: 4
- FORTUNE:
- Weight: 30
- MinLevel: 1
- MaxLevel: 3
- UNBREAKING:
- Weight: 30
- MinLevel: 1
- MaxLevel: 3
- CROSSBOW:
- Weight: 20
- MaxAmount: 1
- Enchantments:
- VANISHING_CURSE:
- Weight: 50
- MinLevel: 1
- MaxLevel: 1
- MULTISHOT:
- Weight: 30
- MinLevel: 1
- MaxLevel: 1
- PIERCING:
- Weight: 30
- MinLevel: 1
- MaxLevel: 4
- QUICK_CHARGE:
- Weight: 30
- MinLevel: 1
- MaxLevel: 3
- UNBREAKING:
- Weight: 30
- MinLevel: 1
- MaxLevel: 3
- 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
- ARMADILLO_SCUTE:10:2
- MACE:2:1
- OMINOUS_BOTTLE:10:2
- OMINOUS_TRIAL_KEY:2:1
- TRIAL_KEY:2:1
- BREEZE_ROD:10:2
- RESIN_CLUMP:10: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, 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, PALE_GARDEN]
#
#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 Example:
#
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: [THE_END, END_BARRENS, END_HIGHLANDS, END_MIDLANDS, SMALL_END_ISLANDS]
#
# Note: To add additional chest configurations (e.g., Chest5, Chest6, etc.),
# simply create a new key under ChestSettings with its own Items and Biomes.
#
world.yml
# SkyGrid World Block Selection Guide:
# This YAML configuration file defines the block distributions for different biomes
# in your SkyGrid world. The configuration is split into two main sections:
#
# 1. biomes: Maps each biome to a specific distribution.
# 2. distributions: Defines the block materials and their respective percentages.
#
# Important Notes:
# - Each biome must be assigned a distribution.
# - Percentages represent the relative chance of each block appearing.
# - The total percentage for each distribution does not need to sum to 100%.
# The system will handle scaling as necessary.
# - Ensure that all block names correspond to valid Bukkit `Material` enums.
# Reference: [Bukkit Material Documentation](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html)
#
# Example Usage:
# - To assign the same distribution to multiple biomes, map each biome to the desired distribution.
# - You can define multiple distributions and assign them to different biomes as needed.
#
# Supported Biomes:
# - Refer to [Bukkit Biome Documentation](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/Biome.html) for a list of supported biomes.
biomes:
MUSHROOM_FIELDS:
distribution: custom_mushroom_fields
distributions:
custom_mushroom_fields:
# Each block and its chance of appearing.
# Format: BlockID:Percentage
# Example: "STONE:50" means a 50% chance of Stone appearing.
# The total percentage does not need to sum to 100%; the system will scale as needed.
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
# You can define additional distributions here and assign them to different biomes.
# For example:
# alternate_distribution:
# STONE: 40
# DIRT: 40
# SAND: 20
# To assign this distribution to a biome, add it under the 'biomes' section:
# biomes:
# SOME_OTHER_BIOME:
# distribution: alternate_distribution
# Optional default distribution for biomes not explicitly defined in the 'biomes' section.
# This ensures that a fallback distribution is available.
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
- Resolved an issue where custom mob spawners weren't applying your configuration settings correctly after updating to the 1.21.4 API. They will now function as intended instead of using the hardcoded defaults.
- Further enhanced both the chest and spawner systems. You can now increase chest counts without issues; I tested it with 100% chest density, and it didn't crash (though I don't recommend this). For example, use 5% instead of 0.05% if you want more chests in the Overworld. The same applies to spawners.
Chest Settings
- Added
RESIN_CLUMP
as a possible chest loot item for the overworld.
Spawner Settings
- Added the
CREAKING
mob as a possible selection for overworld spawners
Overworld Skygrid Materials
RESIN_BLOCK
PALE_HANGING_MOSS
PALE_MOSS_BLOCK
PALE_MOSS_CARPET
PALE_OAK_LOG
PALE_OAK_LEAVES
OPEN_EYEBLOSSOM
CREAKING_HEART
Other Changes
- Changed the default
processDelay
to be zero instead of 10. - Paper check added to fist boot for force loaded async chunks while initial generation.
- Moved to 1.21.4 API for Paper and Spigotmc
- Fixed a bug that caused chest item max limits set in configuration files to be exceeded.
- Updated to improve performance and memory efficiency and migrated to the 1.21.3 API.
- Updated the beehive handling to directly place bees into beehives, leveraging new options available in the latest API.
- Removed the Pregenerator functionality and spun it off into a standalone plugin, offering more settings and customizations like autorun when server is empty and more. It can be found here: chunker
New:
- Basalt Ore Generation: Added support for generating ores in basalt blocks when basalt is formed.
Bug Fix:
- Fixed an issue with the
BlockFromToEvent
where the plugin was incorrectly checking adjacent blocks of the destination block. This prevented liquids from flowing as they should when updated by any blocks touching the source block. The event handler now correctly checks the adjacent blocks of the source block, ensuring proper event cancellation when necessary.
Configuration:
- Updated
ores.yml
: Added default ores/block generation configurations for basalt.
If you just want normal basalt generation, you can set it up like this:
BASALT:
BASALT: 100
If not, here is the new default file:
# 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 generated in the world can be replaced by any block you want as long as it's 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 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 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
# For if the block generated is basalt
BASALT:
ANCIENT_DEBRIS: 0.1
BASALT: 44.9
BLACKSTONE: 20
GILDED_BLACKSTONE: 3.0
NETHER_GOLD_ORE: 3.0
NETHER_QUARTZ_ORE: 5.0
POLISHED_BASALT: 12
POLISHED_BLACKSTONE: 12
Update:
- The pregen command's default radius now adapts to the world's border instead of being hardcoded to 29999984, ensuring compatibility with custom world borders.
- you can use this if set your world border manually using /worldborder set #
- Usage: /pregen <ParallelTasksMultiplier> <PrintUpdateDelayin(Seconds/Minutes/Hours)> <world> <Radiusin(Blocks/Chunks/Regions) or default>
Command Examples:
- /pregen 6 5s world 1000b
- /pregen 2 2m world_nether 500c
- /pregen 1 12h world_the_end 100r
- /pregen 4 10s world default
1.21 Update:
Added chest items for Overworld:
- MACE
- OMINOUS_BOTTLE
- OMINOUS_TRIAL_KEY
- TRIAL_KEY
- BREEZE_ROD
Added spawner entities for Overworld:
- BREEZE
- BOGGED
Added blocks for Overworld
- CHISELED_COPPER
- COPPER_BULB
- COPPER_GRATE
- VAULT
- TRIAL_SPAWNER
- HEAVY_CORE
For VAULT and TRIAL_SPAWNER there is a 50% chance applied to determine if it will be set Ominous.
Note: These blocks where added to the default files, you can still add any other blocks from the available in the materials page. https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
Pre-generator Rework:
- Usage: /pregen <ParallelTasksMultiplier> <PrintUpdateDelayin(Seconds/Minutes/Hours)> <world> <Radiusin(Blocks/Chunks/Regions)>
For more information you can check out the page here.
Bug Fixed
- Fixed some issues with pregenerator unloading chunks to soon,
- Extend unloading until chunk is entity ticking to ensure chunks are fully generated
New Datapack
- Made my own simple data pack Void-Biomes-1.21, currently Void Worldgen has not been updated to 1.21 yet, so in the future if you want you can use that instead.
- The data pack only generate the biome data for the Minecraft worlds, the only structure is the end portal and pillars
- The Void-Biomes-1.21 data pack should improve performance (~20%) if used in place of the old Void Worldgen data pack since it is not generating structure boundary boxes for any structures.
Optimization and Memory Usage Reduction:
- Boosted pregenerator performance by up to 25%
- Enhanced generator, custom chest, spawner, and related utility classes to utilize the fastutil library, yielding a performance increase of up to 3-7% and significantly reducing memory usage (observed differences of up to 1.5GB in certain scenarios).
- Optimized the custom chest class by minimizing the number of times the chest block is accessed. Used a "fake" chest represented by an array for item placement calculations, accessed the chest instance only twice, and implemented multithreading to significantly reduce processing time to get random chest items.
- Improved material loading by adopting a new alias, resulting in more balanced loading between materials with and without biomes. Fetching random materials for both world and biome is now notably faster, reducing thread blocking during operations like /tpr. Additionally, precomputing wherever feasible and implementing caching mechanisms have been employed to further reduce fetch times for random materials. CPU usage during /tpr decreased from consistently hitting 100% across all cores for 2-3 seconds to a range of 80-90% for less than a second (test done with simulation-distance=8 and view-distance=8).
Note: Many main classes have been almost fully overhauled to use the fastutil library. If you encounter any issues, please submit them on the GitHub issue page. I tried my best to test every scenario I can think of, but I can't always catch every issue.
Updated Command:
/gclogs(on)/(off)
: Updated to/eclogs(on)/(off)
. This change comes as the more general event control has been introduced and it's no longer just growth control.
Updated Permissions:
gc.gclogson
: Updated toec.gclogson
. Grants permission to enable event control logging using /eclogson. (Default OP)gc.gclogsoff
: Updated toec.gclogsoff
. Grants permission to disable event control logging using /gclogsoff. (Default OP)
New Configuration Settings:
TPR Command Settings:
- Added a new option for the server to randomly teleport players on first join,
onFirstJoin
by default is false, this provides servers without a spawn the option to random teleport the player only the first time they connect to the server. - Added a new delay option for usage of
/tpr
commands,b2bDelay
adds a fourth timer to prevent players from using the/tpr
command back-to-back. Players must wait for this duration before they can use any/tpr
commands again. - Moved the list of blocks considered unsafe to teleport to settings file, under
DANGEROUSBLOCKS
, this list is used by the code to determine what materials you do not want the player to be teleported on top of when they use the /tpr command.
Event Control Settings:
EventControl
: Lets you turn off and on all the newly added grid integrity checks, these monitor server events to prevent the following: BlockIgniteEvent, BlockFadeEvent, BlockFromToEvent, StructureGrowEvent, BlockSpreadEvent, BlockGrowEvent, BlockFormEvent, and EntityChangeBlock.- There is also a new list of materials in
GRAVITY_AFFECTED_BLOCKS
which is used to determine what blocks you do not want snow to form on in the grid or general gravity-affected blocks that you do not want to fall due to server overload.
# 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: 5
# 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
Generator Update:
- Auto populates
BEEHIVE
andBEE_NEST
, currently only 2 are added to reduce the use of resources. - Updated generator to improve efficiency, offloading some of the work off the main thread when possible.
Other Updates:
- Grid and Block Pallets: New block pallet changes for more variety and better distribution.
- The chest loading has been simplified and optimized. Improved method for filling chests with items to increase performance.
- Updated
FirstBootChecker
to consider any missing files as a first boot not just the world.txt file in theSkygridBlocks
folder. - Reduced the chunks preloaded in the initial check on first boot to 4 chunk distance instead of 16.
- Update chest settings to add the missing biome
THE_END
to the end chest settings.
Thank you for your continued support! Please report any bugs/issues/feature suggestions on my GitHub.
New Features, Commands, Permissions, and Performance Improvements
New Features and Commands:
New Commands
- /tpro: Random teleport in the Overworld.
- /tprn: Random teleport in the Nether.
- /tpre: Random teleport in the End.
- These are shorthand versions of the previous /tpr [world] command with the advantage of being able to set the permissions individually.
Updated Command
- /tpr [world]: Random teleport in the Overworld, Nether, or End. Updated to add
overworld
to the autocomplete. Using/tpr
with no arguments still defaults tooverworld
.
Permissions:
Added Permissions for every command
sg.tpr
: Allows teleportation to Overworld, Nether, and End using the/tpr [world]
command. (Default all)sg.tpr.overworld
: Grants permission to use the/tpro
command for teleportation in the Overworld. (Default all)sg.tpr.nether
: Grants permission to use the/tprn
command for teleportation in the Nether. (Default all)sg.tpr.end
: Enables usage of the/tpre
command for teleportation in the End. (Default all)sg.tpr.*
: Provides access to all teleportation commands. (Default OP)sg.fogon
: Allows enabling fog using the/fogon
command. (Default OP)sg.fogoff
: Allows disabling fog with the/fogoff
command. (Default OP)sg.gclogson
: Grants permission to enable GrowthControl logging using/gclogson
. (Default OP)sg.gclogsoff
: Grants permission to disable GrowthControl logging using/gclogsoff
. (Default OP)sg.pregen
: Grants permission to use the pre-generation command with customizable parameters. (Default OP)sg.pregenoff
: Grants permission to disable pre-generation using the/pregenoff
command. (Default OP)sg.patch
: Allows patching files to update materials and entities to another version. (Default OP)sg.regen
: Grants permission to regenerate all loaded chunks using the/regen
command. (Default OP)sg.*
: Provides access to all SkyGrid commands. (Default OP)
Configuration:
New Configuration File settings.yml
Generator Settings
processDelay
: Delay in ticks before processing chunks after chunk load event (default: 10).- Environment-specific grid generation height minY and maxY settings for Nether, End, and Normal worlds.
TPR Command Settings
- Delay in seconds before using the /tpr commands again (default: 30). You can change it individualy for each environment.
- Max and Min coordinates for random teleportation.
- Default Y coordinate for teleport destination.
Fog Settings
autoEnable
: Automatically enable fog when the plugin starts (default: false).
# 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:
# 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
# Fog settings
fog:
# Auto-enable fog setting
# Set to true to automatically enable fog when the plugin starts.
autoEnable: true
Performance Improvements:
- Made the plugin faster and more efficient by using better data handling methods.
- Reduced unnecessary code execution to improve speed.
Bug Fixes:
- Fixed the problem with empty chunks in the spawn chunk region. Spawn chunks are now force-loaded using Paperlib async operations before the player connects, then regenerated to prevent the issue or fix it if present.
I hope you enjoy the new features, performance improvements, and added flexibility with configurations! Feel free to reach out with any feedback or issues :) https://github.com/DavidS-Repo/SkyGridx/issues
Made significant improvements and added new features
New Features:
- /regen Command:
- Introducing the /regen command, allowing you to refresh all currently loaded areas with new materials from your configuration file. This is useful for those who modify biomes in the files and helps fix any bugged areas with empty chunks.
Performance Improvements:
- Material Manager Enhancements:
- Made the plugin run faster and handle large amounts of data more efficiently.
- Reading files is now quicker, making the plugin respond faster.
- Optimized how materials are loaded and distributed to improve overall performance.
Material Loading Process:
- Separated Loaders:
- The process of loading materials is now divided into two types:
- Basic Material Loader:
- For simpler setups without specific biomes.
- Ensures materials are evenly distributed across all biomes.
- Advanced Material Loader:
- For setups that include specific biomes.
- Uses a system that distributes materials based on their specified weights.
- Requires all biomes to be listed in the configuration file to prevent missing areas in the game.
- Basic Material Loader:
- You can play around with using either one or see what works best for you, all the biomes are listed in the world text files.
- The process of loading materials is now divided into two types:
Bug Fixes:
- Teleportation Cooldown:
- Fixed an issue where players could bypass the cooldown for teleportation by disconnecting and reconnecting. Now, cooldowns are enforced properly.
Additional Improvements:
- Updated Descriptions:
- Improved world text file descriptions to better explain the new material loaders, making it easier to understand and use all the features.
I hope you enjoy the new features and improvements!
Feel free to reach out with any feedback or issues :)