Highly optimized and stable spigot fork
<- Showcase ->
<- Features & Configs ->
/knockback
/clearlag
/unloadchunks
/config
/ping
/setmaxplayers
Recoded chunk ticking & block ticking
Custom tickloop implementation
Dynamic paralellised entity tracking
Eigencraft & PandaWire redstone implementations
World Generator Configs
Recode of one of the heaviest parts in any spigot: Activation Range & AntiXray
Best HCF enderpearls system
Heavily optimized networking
Phase & VClipping fixes
Ghost bucket fix
One of the best entity tracker packets recode (capable of hundreds of players)
Best Fishing Rod & Arrow mechanics
Optimized chunk packets & chunk serialization
Fix for commonly known backpacking issue on HCF servers
Player TP tracker for improved player tracking accuracy
Fix for drop & eat bug
Heavily optimized player logins
Option to launch pots when clicking certain blocks (eg: hoppers/chests)
PaperSpigot console improvements
Enchant Limiter to increase or decrease any enchantment level (Works with enchant table & anvils)
Heavily optimized TNT & Redstone mechanics
Explosion Destroyer for durability checking & obsidian damage by TNT
Ingame GUI editor for easier configuring
Async data saving (eg: worlds, user cache, stats)
Best bow boosting configurations
Many more fixes & optimizations
# ================ âš¡ AzuriteSpigot âš¡ ================
# 
#                Azurite configuration               
#      You will find all the main mechanics here     
# 
# ======================================================
serverBranding: AzuriteSpigot # Used for commands and server ping data
worlds:
  ticking:
    disableBlockLighting: false
    randomTickSpeed: 3
    tickBlocks: true
    tickTileEntities: true
    tickBeacons: true
    tickBrewingStands: true
    tickHoppers: true
    tickVillages: false
    tickFurnaces: true
    tickChunks: true
    tickBiomeCache: true
    tickWeather: true
  commands:
    enableSpigotConfigCommand: true
    enablePingCommand: true
    enableTPSCommand: true
    enableChunkUnloadCommand: true
    enableClearLagCommand: true
    enableSetMaxPlayersCommand: true
  chunks:
    cacheChunkMaps: true # IMPORTANT! This patch is from paper and we highly suggest using. However if you get chunk corruption bugs turn this off. We have fixed a major issue with it.
    chunkLoadingThreads: 3
    playersPerThread: 100
    chunkUnloading: true
    unloadPerTick: 150
  async-pathsearch:
    enableAsyncPathSearch: true
    pathSearchThreads: 3
    minimumDistanceToTarget: 0.0
    entitiesPathSearchOffload:
    - BAT
    - BLAZE
    - CHICKEN
    - COW
    - CREEPER
    - ENDERMAN
    - HORSE
    - IRON_GOLEM
    - MAGMA_CUBE
    - MUSHROOM_COW
    - PIG
    - PIG_ZOMBIE
    - RABBIT
    - SHEEP
    - SKELETON
    - SILVERFISH
    - SLIME
    - SNOWMAN
    - SQUID
    - WITCH
    - ZOMBIE
  projectiles:
    arrowTrajectoryRandomness: 1.0
    rodTrajectoryRandomness: 1.0
    snowballTrajectoryRandomness: 1.0
    eggTrajectoryRandomness: 1.0
    pearlTrajectoryRandomness: 1.0
    potionTrajectoryRandomness: 1.0
  sounds:
    itemFizzSounds: true
    fluidFizzSounds: true
    mobRandomSounds: true
    explosionSounds: true
    footstepSounds: false
  particles:
    dispenserEffects: true
    spawnerParticles: true
    explosionParticles: true
    tntParticles: true
    footstepParticles: false
  modifiers:
    furnaceModifier: 1.0
    brewingModifier: 1.0
    fallDamageModifier: 1.0
    critDamageModifier: 1.5
  events:
    firePlayerMoveEvent: true
    fireBlockPhysicsEvent: true
    fireHopperMoveItemEvent: true
    fireSandBlockChangeEvent: true
    fireSandPhysicsEvent: true
    fireRedstonePhysicsEvent: true
    fireTNTDispenseEvent: true
  blocks:
    redstoneOptimization: EIGENCRAFT # Redstone implementation. Choose EIGENCRAFT/PANDAWIRE/DEFAULT
    gravelFall: true
    grassSpread: true
    grassSpreadLight: true
    leafDecaying: true
    dropFloatingPlants: true
    dropExplosionBlocks: true
    dispenserRandomness: true # Optimizes cannons
    pistonPushEntities: true # Push entities with piston
    pistonMaxBlockPush: 12 # Maximum blocks pushed by pistons
    infiniteWaterSources: true
    waterDestroyRedstone: true
    oldEnchantingSystem: false # Toggle for 1.7 enchanting system
    generating:
      cobbleGenerating: true # Cobble generation from lava and water
      stoneGenerating: true # Stone generation from lava and water
      obsidianGenerating: true # Obsidian generation from lava and water
    sponges:
      spongeRadius: 4 # Sponge activation radius, 0 to disable
      spongePreventWaterFlow: false
      spongeInstantBreak: false
  spawners:
    chunkMobLimit: 0 # Number of mobs in a chunk to prevent spawning. 0 - to disable requirement
    minimumSpawnDelay: 200
    maximumSpawnDelay: 800
    spawnCount: 4
    spawnRange: 4.0 # Spawn range for entities around the spawner
    playerSpawnRange: 16.0 # Radius for players around to spawn
    maximumNearbyEntities: 0 # Amount of entities around the spawner to prevent spawning. 0 - to disable requirement
    lightLevelCheck: true
  players:
    playerBorderDamage: false
    playerMovedTooQuicklyCheck: true # Toggle spigots moved too quickly check.
    checkPlayerSleep: true
    playerIdleTimer: false
    playerPhaseLeniency: 1.0E-7 # Defines the length a player can go inside a block, if you experience issues with server setting back due to phase, we recommend setting it to 0.0625
    playerPhaseChestsAndAnvils: false # Toggles chests & anvil bounding boxes, it is only recommended enabling this if you want to have protection against people glitching through chests & anvils
    dynamicParalellisedTracking: true # Async player tracking. Server will decide when it should be used
    playersNeededParalellisedTracking: 100 # How many players should be tracked for us to run paralellised
    hideEntitiesThrownHidden: false # Toggle hiding entities thrown by hidden players
    protRandomness: true # Toggle protection randomness (HCF server toggle off and check below)
    protectionModifier: 25.0 # Protection damage modifier. If prot randomness is disabled make sure to change this to 20-23. Lower for more damage and higher for less damage
    armorDamageDivision: 4.0 # Armor damage modifier (HCF should be 12)
    optimizePlayerPrinter: false # Remove block place delay
    autoRespawnPlayer: false
    potionLaunchOnClick:
    - HOPPER
    - CHEST
    - ENDER_CHEST
    networking:
      ipConsoleLog: false
      writeAddPlayerPacketsLazily: false # Write add player packets lazily instead of using our queue implementation.
      networkBlockingJoin: true # PaperSpigot patch for preventing blocking while ticking. Toggle off if you have issues with your anticheat on join.
      tickPlayerLatency: true # Tick player latency on tablist
      parentNettyThreads: 1 # 1 Is sufficient as it is just responsible for accepting connections and offloading to child group
      childNettyThreads: 0 # Default is 4, 0 is recommended which uses all processors available but will increase cpu usage.
    knockback:
      globalActiveKnockback: Default # Which profile should we use as the default
      overrideDefaultKnockback: true # Should we use our custom knockback
      overrideRodKnockback: true # Should we use our custom knockback
      overrideArrowKnockback: true # Should we use our custom knockback
    patches:
      patchArrowBounceBug: true # Toggles the arrow hit delay in knockback profiles.
      patchDoubleHitBug: false # Toggles the double hit bug fix
      patchDropEatBug: true
      patchGhostBuckets: true # This makes sure the server uses the correct location for placing liquids by waiting for the client tick packet
      patchProjectileMisdirection: true # This makes the server use the correct yaw & pitch for projectiles
      patchHCFRegenBug: true # This makes regeneration weaker as players in teamfights are often invincible with regular regen.
      obfuscateEntityEquipment: true # Obfuscates equipment to deny a few cheats
    menus:
      fillerEnabled: true
      fillerType: STAINED_GLASS_PANE
      fillerData: 7
      pageType: CARPET
      pageData: 2
      pageBackDisplay: '&dPrevious Page'
      pageBackLore:
      - '&e(Current Page: &2%page%/%max-pages%&e)'
      pageForwardDisplay: '&dNext Page'
      pageForwardLore:
      - '&e(Current Page: &2%page%/%max-pages%&e)'
      backButtonType: BED
      backButtonData: 0
      backButtonDisplay: '&cBack'
  mobs:
    mobAI: true
    naturalMobSpawn: true
    ironGolemFallDamage: true
    snowGolemFallDamage: true
    babyZombieSpawning: true
    zombieOnChickenSpawning: true
    villagerZombieSpawning: true
    skeletonOnSpiderSpawning: true
    entityCollisions: true # Toggle this off if you want the best performance
    entityCollisionsDelay: 1 # A delay of 4 is recommended
factions:
  fixFreecamCegging: false # Only enable if it is an issue! May cause performance issues
  sandMerging: false
  tntMerging: false
  hidePistonAnimations: false
  hideTntEntity: false
  hideSandEntity: false
  fixSandChunkUnloading: true
  optimizeTNTMovement: false
  optimizeSandMovement: false
  fixEastWestCannon: true
  durability:
    explosionDestroyer: false
    durabilityItemChecker: potato
    damageOnlyByTNT: false
    blockDurabilities:
    - obsidian:3
    - bedrock:5
    - end_stone:5
    blockResistances:
    - obsidian:35.0
    - bedrock:60.0
    - end_stone:45.0
    - anvil:2000.0
# ================ âš¡ AzuriteSpigot âš¡ ================
# 
#           Enchantment limit configuration          
#    Increase or decrease the limit of any enchant   
# 
# ======================================================
enchant-limits:
  unbreaking: 3
  armor:
    protectionAll: 4
    protectionFire: 4
    protectionFall: 4
    protectionExplosion: 4
    protectionProjectile: 4
    thorns: 3
    aquaAffinity: 1
    waterBreathing: 3
    depthStrider: 3
  tools:
    efficiency: 5
    silkTouch: 1
    fortune: 3
  swords:
    sharpness: 5
    baneOfArthropods: 5
    smite: 5
    fireAspect: 2
    knockback: 2
    looting: 3
  bows:
    power: 5
    punch: 2
    flame: 1
    infinity: 1
  rods:
    lure: 3
    luckOfTheSea: 3
# ================ âš¡ AzuriteSpigot âš¡ ================
# 
#               Messages configuration               
#         You will find all the language here        
# 
# ======================================================
messages:
  insufficientPerm: '&dAzuriteSpigot &7┃ &cYou do not have access to this command.'
  onlyPlayer: '&dThis command can only be used by players.'
  playerNotFound: '&ePlayer &d%player% &ecould not be found.'
  notValidType: '&eValue &d%value% &eis not type &a%type%&e.'
  player:
    disconnectSpam: disconnect.spam
    loggedInAnotherLocation: You logged in from another location
    factionsDurabilityChecker: '&eDurability: &d%durability%'
  command:
    ping-command:
      playerPing: '&d[Ping] &eYour Ping: &d%ping%ms'
      otherPlayerPing: '&d[Ping] &e%player%''s Ping: &d%ping%ms'
    config-command:
      configReloaded: '&eConfigs have been reloaded in &d%ms%ms&e.'
    clear-lag-command:
      clearedLag: '&eYou have cleared &d%entities% &eentities.'
    set-max-players-command:
      setMaxPlayersUsage: '&cUsage: /setmaxplayers <amount>'
      setMaxPlayers: '&eSet max players to &d%amount% &eplayers.'
    unload-chunks-command:
      unloadedChunks: '&eYou have unloaded &d%amount% &echunks.'
    version-command:
      versionMessage:
      - '&fThis server is running &dAzuriteSpigot &fversion 1.8.8-R0.1-SNAPSHOT.'
    tps-command:
      tpsMessage:
      - '&7&m-------------------------'
      - '&d[Server TPS]'
      - '&f(TPS from 1s, 5s, 15s: %server_tps%&f)'
      - '&f(Memory: &e%free_memory%&7/&e%max_memory% MB&f) &7- &f(Uptime: &6%uptime%&f)'
      - '&f(Threads: &b%threads%&f) &7- &f(Alive: &a%alive%&f, Interrupted: &c%interrupted%&f,
        Daemon: &9%daemon%&f)'
      - '&f(Chunks: &2%chunks%&f) &7- &f(Players: &c%players%&7/&c%max_players%&f)'
      - '&f(Entities: &3%entities%&f) &7- &f(Tile Entities: &e%tiles%&f)'
      - '&7&m-------------------------'
  knockback:
    knockbackUsage:
    - '&7&m-------------------------'
    - '&d[Knockback Usage]'
    - '%commands%'
    - '&7&m-------------------------'
    profileNotFound: '&eProfile &d%name% &ecould not be found.'
    knockback-create:
      createUsage: '&d- &f/knockback create <name>'
      createHover: '&eClick to create a new profile.'
      createExists: '&eProfile &d%name% &ealready exists.'
      createProfile: '&eProfile &d%name% &ehas been created.'
    knockback-delete:
      deleteUsage: '&d- &f/knockback delete <name>'
      deleteHover: '&eClick to delete a profile.'
      deleteActive: '&eYou cannot delete &d%name% &eas it is a active profile.'
      deleteProfile: '&eProfile &d%name% &ehas been deleted.'
    knockback-list:
      listUsage: '&d- &f/knockback list'
      listHover: '&eClick to list profiles.'
      listName: '&d- &f%name%'
      listNameActive: '&d- &2%name% &7(Active)'
      listNameHover: '&eClick to view &d%name%''''s &evalues.'
      listMessage:
      - '&7&m-------------------------'
      - '&d[Knockback Profiles]'
      - '%profiles%'
      - '&7&m-------------------------'
    knockback-settype:
      setTypeUsage: '&d- &f/knockback settype <name> <ADVANCED|SIMPLE>'
      setTypeHover: '&eClick to change a profiles type.'
      setTypeAlready: '&eProfile &d%name% &eis already type &c%type%&e.'
      setTypeNotFound: '&eProfile type needs to be: &dSimple/Advanced'
      setTypePrefix: '&eClick new type: '
      setTypeSimple: '&b[Simple]'
      setTypeAdvanced: '&4[Advanced]'
      setTypeSimpleHover: '&eClick to change profile to &dSimple&e.'
      setTypeAdvancedHover: '&eClick to change profile to &dAdvanced&e.'
      setType: '&eProfile &d%name% &eis now type &c%type%&e.'
    knockback-setactive:
      setActiveUsage: '&d- &f/knockback setactive <name>'
      setActiveHover: '&eClick to set an active profile.'
      setActiveAlready: '&eProfile &d%name% &eis already active.'
      setActive: '&eProfile &d%name% &eis now globally active.'
    knockback-view:
      viewUsage: '&d- &f/knockback view <name>'
      viewHover: '&eClick to view a profile.'
      viewSetting: '&d- &f%setting%&7: &d%value%'
      viewSettingHover: '&eClick to set a new value for &d%setting%&e.'
      viewSetActiveClick: '&a[Set Active]'
      viewSetActiveClickHover: '&eClick to set profile &d%name% &eactive.'
      viewDeleteClick: '&c[Delete]'
      viewDeleteClickHover: '&eClick to delete &d%name%&e.'
      viewEditClick: '&6[Edit]'
      viewEditHover: '&eClick to edit &d%name%&e.'
      viewMessage:
      - '&7&m-------------------------'
      - '&d[%name%] &7(%type%)'
      - '%values%'
      - '%clickables%'
      - '&7&m-------------------------'
    knockback-edit:
      editUsage: '&d- &f/knockback edit <name> <setting> <value>'
      editHover: '&eClick to edit a profiles values.'
      editSettingNotFound: '&eSetting &d%setting% &ecould not be found.'
      editTypeNewValue: '&eType a value for &d%setting% &e(Current: &2%current%&e)
        &eType &ccancel &eto cancel.'
      editCancelled: '&eEditing for value &d%setting% &ehas been cancelled.'
      editSettingValue: '&eSet the value of &d%setting% &eto &2%value% &efor profile
        &c%profile%&e.'
    knockback-editmenu:
      editMenuUsage: '&d- &f/knockback editmenu <name>'
      editMenuHover: '&eClick to edit a profile.'
    knockback-set:
      setUsage: '&d- &f/knockback set <name> <player>'
      setHover: '&eClick to set a players profile.'
      setProfile: '&eSet profile &d%profile% &eto player &2%player%&e.'
    knockback-clear:
      clearUsage: '&d- &f/knockback clear <player>'
      clearHover: '&eClick to clear a players profile.'
      clearProfile: '&eReset &d%player%&e''''s active profile.'
  config-editing:
    configEditNewValue: '&eType a value for &d%setting% &e(Current: &2%current%&e)
      &eType &ccancel &eto cancel.'
    configEditCancelled: '&eEditing for value &d%setting% &ehas been cancelled.'
    configEditSetValue: '&eSet the value of &d%setting% &eto &2%value%&e.'
# ================ âš¡ AzuriteSpigot âš¡ ================
# 
#            HCF Enderpearl Configuration            
#      All the options for enderpearl mechanics      
# 
# ======================================================
antiGlitch:
  fixBlockGlitch: true
  fixFenceGlitch: true
  refundSuffocation: true
  refundRiskyPearl: true
  refundOnCritblock: false
  refundIfSoClose: true # Allow for players to spam pearls on a block close to them
  refundCloseDistance: 1.0
  glitchReturnPearl: true
  glitchReturnMessage: ''
  glitchReturnCommand: timer remove %player% Enderpearl
teleport:
  misc:
    instantlyTaliTeleport: false
    entityTpHitDetection: true
    entityTpGetOutOneByOne: true # Deny entity TP system if you are in a one by one
    spawnEndermite: true
    pearlThruFence: true
    pearlThruString: true
    pearlThruWeb: true
    pearlThruPlants: true
    pearlHopperUnderFence: true
    pearlChestUnderFence: true
    pearlParticlesEnabled: true
    pearlParticleCount: 32
    pearlDamage: 5.0
    crossPearlMoveHelper: 0.35 # How much should we move the player inside the block when cross-pearling
    hitBlockTeleport: true # Should we teleport them if they throw an enderpearl directly on the block
    beforeBlockTeleport: true # Should we teleport them if they throw an enderpearl just before the block (Like ViperMC)
    maxTeleportBlocks: 3 # Maximum amount of blocks you can tali teleport through
    launchOnFenceClick: true
    launchOnOtherClick:
    - FURNACE
    - ANVIL
    - SIGN
    - SIGN_POST
    - WALL_SIGN
    - HOPPER
    - CHEST
    - ENDER_CHEST
    - TRAPPED_CHEST
    - WORKBENCH
    - ENCHANTMENT_TABLE
    - BEACON
    - ANVIL
  slabs:
    enabled: true
    crosspearl: true
    diagonal: true
    critblock: true
  stairs:
    enabled: true
    crosspearl: true
    diagonal: true
    critblock: true
  chests:
    enabled: true
    crosspearl: true
    diagonal: true
    critblock: true
  beds:
    enabled: true
    crosspearl: true
    diagonal: true
    critblock: true
  cobblewalls:
    enabled: true
    crosspearl: true
    diagonal: true
    critblock: true
  pistons:
    enabled: true
    crosspearl: true
    diagonal: true
    critblock: true
  end-frames:
    enabled: true
    crosspearl: true
    diagonal: true
    critblock: true
  enchant-tables:
    enabled: true
    crosspearl: true
    diagonal: true
    critblock: true
  anvils:
    enabled: true
    crosspearl: true
    diagonal: true
    critblock: true
  daylight-sensors:
    enabled: true
    crosspearl: true
    diagonal: true
    critblock: true
  trapdoors:
    enabled: true
    crosspearl: true
    diagonal: true
    critblock: true
# ================ âš¡ AzuriteSpigot âš¡ ================
# 
#                 Default (Knockback)                
# 
# ======================================================
type:
  knockbackType: SIMPLE # 
knockback-simple:
  friction: 2.5 # Friction knockback: friction = value
  horizontal: 0.425 # Horizontal knockback: horizontal = value # Horizontal knockback: horizontal = value
  vertical: 0.5 # Vertical knockback. vertical = value # Vertical knockback: vertical = value
  verticalLimit: 0.38 # Limit of vertical knockback # Vertical limit: vertical = 0
  extraHorizontal: 0.25 # Extra horizontal knockback
  extraVertical: 0.01 # Extra vertical knockback
  slowdown: 0.6 # Slowdown player on hit # Slowdown player on hit
  enableOnePointSeven: true # Help players with victim chasing # Help players with victim chasing
  onePointSevenMultiplier: 0.4 # Horizontal knockback multiplier for 1.7
knockback-advanced:
  horizontal: 0.45
  horizontalOnGround: 1.1 # On ground horizontal kb modifier: horizontal *= multiplier
  horizontalSprinting: 0.95 # Sprinting horizontal kb modifier: horizontal *= multiplier
  horizontalInherit: true # Inherit victim motion
  horizontalFriction: 0.35 # Horizontal friction: horizontal = (motion * frictionHorizontal) + victimYaw
  horizontalKnockbackDeduction: 0.8 # Knockback enchantment modifier: horizontal *= ((enchLevel + 1) - kbDeductionValue)
  vertical: 0.35
  verticalOnGround: 1.1 # On ground vertical kb modifier: vertical *= multiplier
  verticalInAir: 0.85 # In air vertical kb modifier: vertical *= multiplier
  verticalSprinting: 1.0 # Sprinting vertical kb modifier: vertical *= multiplier
  verticalInherit: false # Inherit victim vertical motion
  verticalFriction: 0.35 # Vertical friction: vertical += (motion * frictionHorizontal)
  enableOnePointSeven: true
  onePointSevenHorizontal: 0.37 # Horizontal knockback on back-hit: horizontal = value
  enableVerticalLimit: false # Limit vertical if it exceeds yLimit
  verticalLimit: 1.2
  slowdown: 0.6
  cancelSprint: true # Cancel sprint for player on hit
rodHorizontal: 1.1 # Horizontal fishing rod knockback
rodVertical: 1.0 # Vertical fishing rod knockback
rodSpeed: 1.0 # Multiplies the number given with the rod's vector magnitude
bowBoostDirectional: false # Should bow boosting be enabled using the direction player is facing
bowBoostKbOnlyShooter: false # Should bow boosting direction only be enabled for shooter
bowHorizontal: 0.9 # Horizontal bow knockback (Bow boosting recommended: 1.1)
bowVertical: 0.9 # Horizontal vertical knockback (Bow boosting recommended: 0.35)
bowPunchMultiplier: 1.1 # Punch enchantment modifier: horizontal *= (punchLevel + 1) * bowPunchMultiplier
potionFall: 0.05 # Fall speed value
potionSpeed: 0.5 # Throwing multiplier value
potionVerticalOffset: -10.0 # Vertical throwing offset value
potionFast: true # Make heal potions throwing smoother
hitDelay: 20 # Delay between victim can get hit
hitDelayArrow: 20 # Delay between victim can get hit by an arrow (Patches arrow bounce bug)
comboMode: false # Enable combo mode
comboHeight: 2.3 # Maximum height of combo
comboTicks: 10 # Maximum combo ticks
comboVelocity: -0.05 # Vertical deduction on hit
# ================ âš¡ AzuriteSpigot âš¡ ================
# 
#                 Default (Generator)                
# 
# ======================================================
world:
  generateOceans: true # Generate any oceans
  generateWaterLakes: true # Generate any water lakes
  generateLavaLakes: true # Generate any lava lakes
  cavesMultiplier: 1.0 # Multiply the amount of cave generation
  sugarCaneMultiplier: 1.0 # Multiply the amount of cane generation
  biomeReplacements:
  - Ocean;none
  - Plains;none
  - Desert;none
  - Extreme Hills;none
  - Forest;none
  - Tauga;none
  - Swampland;none
  - River;none
  - Hell;none
  - The End;none
  - FrozenOcean;none
  - FrozenRiver;none
  - Ice Plains;none
  - Ice Mountains;none
  - MushroomIsland;none
  - MushroomIslandShore;none
  - Beach;none
  - DesertHills;none
  - ForestHills;none
  - TaigaHills;none
  - Extreme Hills Edge;none
  - Jungle;none
  - JungleHills;none
  - JungleEdge;none
  - Deep Ocean;none
  - Stone Beach;none
  - Cold Beach;none
  - Birch Forest;none
  - Birch Forest Hills;none
  - Roofed Forest;none
  - Cold Taiga;none
  - Cold Taiga Hills;none
  - Mega Taiga;none
  - Mega Taiga Hills;none
  - Extreme Hills+;none
  - Savanna;none
  - Savanna Plateau;none
  - Mesa;none
  - Mesa Plateau F;none
  - Mesa Plateau;none
  spawn:
    spawnBiomeRadius: 0 # Radius of spawn biome (0, 0 coords) # Use custom biome to spawn within a certain radius
    spawnBiome: plains
    spawnBiomeRivers: true # Generate rivers in spawn biome
    spawnBiomeLakes: true # Generate lakes in spawn biome
ores:
  emerald:
    emeraldMultiplier: 1.0 # Multiply the amount of emerald generation
  coal:
    coalMultiplier: 1.0 # Multiply the amount of coal generation
    coalSize: 17 # Maximum amount of coal can be generated in 1 chunk
    coalMustTouchAir: false # Generate coal only in caves
  iron:
    ironMultiplier: 1.0 # Multiply the amount of iron generation
    ironSize: 9 # Maximum amount of iron can be generated in 1 chunk
    ironMustTouchAir: false # Generate iron only in caves
  gold:
    goldMultiplier: 1.0 # Multiply the amount of gold generation
    goldSize: 9 # Maximum amount of gold can be generated in 1 chunk
    goldMustTouchAir: false # Generate gold only in caves
  redstone:
    redstoneMultiplier: 1.0 # Multiply the amount of redstone generation
    redstoneSize: 8 # Maximum amount of redstone can be generated in 1 chunk
    redstoneMustTouchAir: false # Generate redstone only in caves
  diamond:
    diamondMultiplier: 1.0 # Multiply the amount of diamond generation
    diamondSize: 8 # Maximum amount of diamonds can be generated in 1 chunk
    diamondMustTouchAir: false # Generate diamonds only in caves
  lapis:
    lapisMultiplier: 1.0 # Multiply the amount of lapis generation
    lapisSize: 7 # Maximum amount of lapis can be generated in 1 chunk
    lapisMustTouchAir: false # Generate lapis only in caves