Overview

LilWorlds features a powerful custom generator system that allows you to create unique world generation patterns without writing Java code. Generators are defined using YAML configuration files in the generators/ folder.

Built-in Generators

VoidGenerator

Pre-configured void world generator with optional spawn platform

Custom Generators

YAML-Based

Create custom generators using simple configuration files

Generator Types

Supported Generator Types

TypeDescriptionUse Case
VOIDEmpty void worldsCreative building, minigames
FLATFlat terrain with custom layersSuperflat worlds, testing
NORMALModified normal terrainCustom overworld generation
AMPLIFIEDAmplified terrain generationExtreme terrain
LARGE_BIOMESLarge biome generationExploration worlds

Built-in VoidGenerator

LilWorlds comes with a pre-configured void generator:

Using VoidGenerator

# Create a void world
/world create void_world NORMAL -g VoidGenerator

# Create void world in different dimension
/world create void_nether NETHER -g VoidGenerator

VoidGenerator Configuration

# generators/VoidGenerator.yml
name: "VoidGenerator"
type: "VOID"
description: "Empty void world with optional spawn platform"

settings:
  # Spawn platform configuration
  spawn-platform: true
  platform-material: "minecraft:stone"
  platform-size: 16
  platform-height: 64
  
  # Environment settings
  biome: "minecraft:the_void"
  structures: false
  decorations: false
  
  # Additional options
  spawn-mobs: false
  weather: false

Creating Custom Generators

Basic Generator Structure

Create a new file in plugins/LilWorlds/generators/ with this structure:

# generators/MyGenerator.yml
name: "MyGenerator"
type: "FLAT"
description: "Description of your generator"

settings:
  # Generator-specific settings
  layers:
    - "minecraft:bedrock"
    - "minecraft:stone,10"
    - "minecraft:grass_block"
    
  # Common settings
  structures: true
  decorations: true
  biome: "minecraft:plains"

Generator Properties

Flat World Generators

Basic Flat Generator

# generators/FlatGrass.yml
name: "FlatGrass"
type: "FLAT"
description: "Simple flat grass world"

settings:
  # Layer configuration (bottom to top)
  layers:
    - "minecraft:bedrock"
    - "minecraft:dirt,3"
    - "minecraft:grass_block"
    
  # Generation settings
  structures: false
  decorations: false
  
  # Biome settings
  biome: "minecraft:plains"

Advanced Flat Generator

# generators/CustomFlat.yml
name: "CustomFlat"
type: "FLAT"
description: "Advanced flat world with custom layers"

settings:
  # Complex layer structure
  layers:
    - "minecraft:bedrock"
    - "minecraft:deepslate,5"
    - "minecraft:stone,20"
    - "minecraft:dirt,5"
    - "minecraft:grass_block"
    - "minecraft:air,10"
    - "minecraft:glass"
    
  # Structure generation
  structures:
    villages: true
    strongholds: false
    mineshafts: false
    dungeons: true
    
  # Decoration settings
  decorations:
    trees: true
    flowers: true
    grass: true
    lakes: false
    
  # Biome configuration
  biomes:
    - "minecraft:plains"
    - "minecraft:forest"
    
  # Spawn settings
  spawn-height: 64
  spawn-biome: "minecraft:plains"

Layer Syntax

layers:
  # Single block layer
  - "minecraft:bedrock"
  
  # Multiple blocks (thickness)
  - "minecraft:stone,10"
  
  # Random thickness range
  - "minecraft:dirt,3-5"
  
  # Weighted random blocks
  - "minecraft:stone,5;minecraft:cobblestone,2"
  
  # Conditional layers
  - "minecraft:snow_block,1[biome=snowy]"

Void Generators

Basic Void Generator

# generators/SimpleVoid.yml
name: "SimpleVoid"
type: "VOID"
description: "Simple empty void world"

settings:
  # No spawn platform
  spawn-platform: false
  
  # Environment
  biome: "minecraft:the_void"
  structures: false
  decorations: false
  
  # Lighting
  ambient-light: 0
  sky-light: false

Void with Islands

# generators/VoidIslands.yml
name: "VoidIslands"
type: "VOID"
description: "Void world with floating islands"

settings:
  # Main spawn platform
  spawn-platform: true
  platform-material: "minecraft:grass_block"
  platform-size: 32
  platform-height: 64
  
  # Additional islands
  islands:
    - material: "minecraft:stone"
      size: 16
      height: 80
      distance: 100
      count: 5
      
    - material: "minecraft:sand"
      size: 12
      height: 50
      distance: 150
      count: 3
  
  # Environment
  biome: "minecraft:plains"
  structures: false
  spawn-mobs: true

Normal World Generators

Modified Terrain

# generators/CustomTerrain.yml
name: "CustomTerrain"
type: "NORMAL"
description: "Modified normal world generation"

settings:
  # Terrain modification
  terrain:
    height-scale: 1.5
    coordinate-scale: 684.412
    height-stretch: 12.0
    upper-limit-scale: 512.0
    lower-limit-scale: 512.0
    
  # Ore generation
  ores:
    coal:
      min-height: 0
      max-height: 128
      vein-size: 17
      tries-per-chunk: 20
      
    iron:
      min-height: 0
      max-height: 64
      vein-size: 9
      tries-per-chunk: 20
      
    diamond:
      min-height: 0
      max-height: 16
      vein-size: 8
      tries-per-chunk: 1
      
  # Structure generation
  structures:
    villages: true
    strongholds: true
    mineshafts: false
    dungeons: true
    temples: true
    
  # Biome settings
  biomes:
    - "minecraft:plains"
    - "minecraft:forest"
    - "minecraft:mountains"
    - "minecraft:desert"
    
  # Water and lava lakes
  lakes:
    water:
      chance: 4
      min-height: 0
      max-height: 128
      
    lava:
      chance: 80
      min-height: 0
      max-height: 16

Amplified Worlds

# generators/ExtremeHills.yml
name: "ExtremeHills"
type: "AMPLIFIED"
description: "Extreme terrain generation"

settings:
  # Amplification settings
  amplification:
    factor: 2.0
    height-variation: 1.5
    
  # Terrain features
  terrain:
    max-height: 320
    min-height: -64
    sea-level: 63
    
  # Enhanced ore generation for tall worlds
  ores:
    coal:
      min-height: 0
      max-height: 256
      vein-size: 17
      tries-per-chunk: 30
      
  # Biome distribution
  biomes:
    - "minecraft:mountains"
    - "minecraft:extreme_hills"
    - "minecraft:stone_peaks"
    - "minecraft:snowy_peaks"

Advanced Features

Conditional Generation

# generators/ConditionalGen.yml
name: "ConditionalGen"
type: "FLAT"
description: "Generator with conditional features"

settings:
  # Base layers
  layers:
    - "minecraft:bedrock"
    - "minecraft:stone,10"
    - "minecraft:dirt,3"
    - "minecraft:grass_block"
    
  # Conditional features
  conditions:
    # Snow in cold biomes
    - condition: "biome=snowy"
      layers:
        - "minecraft:snow_block,2"
        
    # Sand in desert biomes
    - condition: "biome=desert"
      layers:
        - "minecraft:sand,5"
        - "minecraft:sandstone,3"
        
    # Different structures per biome
    - condition: "biome=plains"
      structures:
        villages: true
        
    - condition: "biome=desert"
      structures:
        desert_temples: true

Multi-Biome Generators

# generators/MultiBiome.yml
name: "MultiBiome"
type: "NORMAL"
description: "Generator with multiple biome configurations"

settings:
  # Biome-specific settings
  biome-configs:
    "minecraft:plains":
      layers:
        - "minecraft:bedrock"
        - "minecraft:stone,30"
        - "minecraft:dirt,4"
        - "minecraft:grass_block"
      structures:
        villages: true
        
    "minecraft:desert":
      layers:
        - "minecraft:bedrock"
        - "minecraft:stone,25"
        - "minecraft:sandstone,8"
        - "minecraft:sand,4"
      structures:
        desert_temples: true
        
    "minecraft:forest":
      layers:
        - "minecraft:bedrock"
        - "minecraft:stone,35"
        - "minecraft:dirt,6"
        - "minecraft:grass_block"
      decorations:
        trees: high
        flowers: medium

Generator Management

Loading Generators

# Reload all generators
/worlds reload generators

# List available generators
/worlds generators list

# Test a generator
/worlds generators test MyGenerator

# Validate generator configuration
/worlds generators validate MyGenerator

Using Generators

# Create world with custom generator
/world create myworld NORMAL -g MyGenerator

# Create with built-in generator
/world create voidworld NORMAL -g VoidGenerator

# Import world with generator
/world import existing_world NORMAL -g CustomFlat

Generator Templates

Creating Templates

# templates/basic-flat.yml
name: "BasicFlat"
type: "FLAT"
description: "Template for basic flat worlds"

template-variables:
  - name: "surface_block"
    type: "material"
    default: "minecraft:grass_block"
    description: "Surface block material"
    
  - name: "thickness"
    type: "integer"
    default: 3
    min: 1
    max: 10
    description: "Dirt layer thickness"

settings:
  layers:
    - "minecraft:bedrock"
    - "minecraft:stone,10"
    - "minecraft:dirt,${thickness}"
    - "${surface_block}"

Using Templates

# Create generator from template
/worlds generators create MyFlat --template basic-flat --surface_block minecraft:sand --thickness 5

# List available templates
/worlds generators templates

# Export generator as template
/worlds generators export MyGenerator --as-template

Best Practices

Performance Optimization

Performance Tips:

  • Use void generators for creative/testing worlds
  • Limit complex ore generation in large worlds
  • Disable unnecessary structures and decorations
  • Use efficient biome distributions
  • Test generators in small worlds first

Organization

plugins/LilWorlds/generators/
├── VoidGenerator.yml          # Built-in void generator
├── production/
│   ├── SurvivalFlat.yml      # Production generators
│   └── CreativeVoid.yml
├── experimental/
│   ├── TestGenerator.yml     # Experimental generators
│   └── BetaFeatures.yml
└── templates/
    ├── flat-template.yml     # Reusable templates
    └── void-template.yml

Naming Conventions

# Good naming examples
name: "SurvivalFlat"          # Clear purpose
name: "CreativeVoid"          # Environment indication
name: "MinigamePlatform"      # Use case specific
name: "TestingGround"         # Temporary/testing

# Avoid
name: "Generator1"            # Non-descriptive
name: "MyGen"                 # Too generic
name: "test"                  # Unclear purpose

Troubleshooting

Common Issues

Validation

# Validate specific generator
/worlds generators validate MyGenerator

# Test generator without creating world
/worlds generators test MyGenerator --dry-run

# Check generator compatibility
/worlds generators check MyGenerator --minecraft-version 1.20

Examples and Use Cases

Minigame Arenas

# generators/PvPArena.yml
name: "PvPArena"
type: "VOID"
description: "PvP arena with platforms"

settings:
  spawn-platform: true
  platform-material: "minecraft:stone_bricks"
  platform-size: 64
  platform-height: 100
  
  # Additional platforms
  platforms:
    - material: "minecraft:cobblestone"
      size: 16
      height: 110
      positions:
        - [32, 32]
        - [-32, 32]
        - [32, -32]
        - [-32, -32]
  
  biome: "minecraft:plains"
  structures: false
  spawn-mobs: false

Skyblock Worlds

# generators/Skyblock.yml
name: "Skyblock"
type: "VOID"
description: "Classic skyblock starting island"

settings:
  spawn-platform: true
  platform-material: "minecraft:grass_block"
  platform-size: 8
  platform-height: 64
  
  # Starting resources
  features:
    - type: "tree"
      material: "minecraft:oak_log"
      position: [2, 1, 2]
      
    - type: "chest"
      position: [0, 1, 0]
      contents:
        - "minecraft:ice,2"
        - "minecraft:lava_bucket,1"
        - "minecraft:bread,5"
  
  biome: "minecraft:plains"

Next Steps

World Creation

Learn to create worlds with your custom generators

Performance Guide

Optimize generator performance for your server

API Integration

Integrate generators with other plugins

Commands Reference

Complete command reference for generator usage