Void Reservoirs (Immersive + ExDeorum Mixin)

Enables Immersive Petroleum reservoirs and Immersive Engineering mineral veins in Ex Deorum void worlds, with configurable dense reservoir spacing.

Void Reservoirs is a small Forge 1.20.1/1.21.1 compatibility mod for packs using:

  • Ex Deorum
  • Immersive Engineering
  • Immersive Petroleum

It restores Immersive Petroleum reservoir generation, Immersive Engineering mineral vein generation, and Immersive Petroleum Derrick/Well usability in void Overworlds.

Summary

Ex Deorum's void world generator skips normal biome decoration. That also prevents data-only worldgen systems from running, including Immersive Petroleum reservoirs and Immersive Engineering excavator mineral veins.

Void Reservoirs restores those specific systems without re-enabling normal terrain generation, ores, trees, structures, vegetation, or other biome clutter.

It also adds void-world compatibility for Immersive Petroleum Derricks. In normal worlds, Derricks expect bedrock below the drill column so they can create an Immersive Petroleum Well. In true void worlds, that bedrock does not exist, so Derricks can otherwise do nothing or show a blank GUI. Void Reservoirs can create the required Well block automatically.

Features

  • Restores Immersive Petroleum reservoir generation in void Overworlds
  • Restores Immersive Engineering mineral vein generation in void Overworlds
  • Does not generate normal terrain, ores, trees, structures, vegetation, or biome clutter
  • Adds configurable dense reservoir generation for skyblock progression
  • Adds optional one-reservoir-per-chunk mode
  • Adds void-Overworld Derrick support
  • Allows Derricks to create Immersive Petroleum Wells without natural bedrock
  • Adds optional non-creative IP Well block breakability for cleanup
  • Intended for server-side modpack use
  • Useful for skyblock packs that still want pumpjacks, Derricks, and excavators to matter

What "void Overworld" Means

In this mod, a void Overworld means the normal Minecraft Overworld dimension using a supported void-world chunk generator.

Currently, this targets Ex Deorum's void world generator.

The mod does not globally change Immersive Petroleum reservoir behavior in normal Overworld terrain.

Configuration

After first launch, the server config is generated at:

saves/<world>/serverconfig/voidreservoirs-server.toml

Example config:

[voidReservoirs]
denseVoidReservoirs = true
oneReservoirPerChunk = true
reservoirSpacingChunks = 2
reservoirRadiusBlocks = 14
chunkReservoirMarginBlocks = 1

voidDerrickCreatesWell = true
voidDerrickWellY = -64

voidWellBreakable = true
voidWellDestroyProgress = 0.01

Reservoir Options

denseVoidReservoirs

Enables the custom dense reservoir mask for void Overworlds.

denseVoidReservoirs = true

oneReservoirPerChunk

Makes each generated void-Overworld chunk get one disconnected Immersive Petroleum reservoir island.

oneReservoirPerChunk = true

Reservoir fluid type is still chosen by Immersive Petroleum using the normal reservoir definition weights. KubeJS or datapack reservoir weights still apply.

reservoirSpacingChunks

Controls the spacing between dense reservoir islands when oneReservoirPerChunk is disabled.

reservoirSpacingChunks = 2

Examples:

2 = very dense, roughly every other chunk
3 = common
4 = moderate
8 = much farther apart

reservoirRadiusBlocks

Controls the approximate reservoir island radius in block columns when oneReservoirPerChunk is disabled.

reservoirRadiusBlocks = 14

The default is intentionally compact enough to keep neighboring dense reservoirs separated.

chunkReservoirMarginBlocks

Controls the empty border around each per-chunk reservoir island when oneReservoirPerChunk is enabled.

chunkReservoirMarginBlocks = 1

A margin prevents neighboring chunk reservoirs from touching and merging into one giant Immersive Petroleum reservoir island.

Derrick / Well Options

voidDerrickCreatesWell

Allows Derricks in void Overworlds to create the required Immersive Petroleum Well block even when no natural bedrock exists below the drill column.

voidDerrickCreatesWell = true

voidDerrickWellY

Controls the Y-level where automatically created void-world Well blocks are placed.

voidDerrickWellY = -64

The default mimics vanilla Overworld bedrock height. For skyblock convenience, pack makers may want to raise this value so Derricks require fewer pipes, concrete, and water.

Examples:

-64 = vanilla-like bottom-world well
0   = shorter drill path
32  = much shorter skyblock-friendly drill path

voidWellBreakable

Makes Immersive Petroleum Well blocks non-creative-breakable for cleanup.

voidWellBreakable = true

voidWellDestroyProgress

Controls how quickly the IP Well block can be mined when voidWellBreakable is enabled.

voidWellDestroyProgress = 0.01

Example KubeJS Reservoir Setup

This mod makes Immersive Petroleum reservoirs generate properly in void worlds.

If you also want to customize which fluids can appear, their weights, or their long-term capacity behavior, you can do that separately with KubeJS.

Example:

ServerEvents.recipes(event => {
  function replaceReservoir(path, fluid, weight) {
    const id = `immersivepetroleum:reservoirs/${path}`

    event.remove({ id: id })

    event.custom({
      type: 'immersivepetroleum:reservoirs',
      name: path,
      fluid: fluid,

      // Huge reservoir size.
      fluidminimum: 2147483647,
      fluidcapacity: 2147483647,

      // Long-term regeneration after pressure is gone.
      // Lower values make the reservoir effectively infinite, but slow over time.
      fluidtrace: 3,

      // Around half capacity.
      // This lets pressure eventually end so Pumpjacks can take over.
      equilibrium: 1073741823,

      weight: weight,

      dimensions: {
        isBlacklist: true,
        list: ['minecraft:the_end']
      },

      biomes: {
        isBlacklist: false,
        list: []
      }
    }).id(id)
  }

  replaceReservoir('oil', 'immersivepetroleum:crudeoil', 4)
  replaceReservoir('aquifer', 'minecraft:water', 3)
  replaceReservoir('lava', 'minecraft:lava', 3)
})

That example gives roughly:

oil     ≈ 40%
aquifer ≈ 30%
lava    ≈ 30%

The reservoir starts huge, then pressure eventually drops. After that, Pumpjacks can continue extracting at a slower long-term rate.

Existing Worlds

This mod affects newly generated chunks and newly generated Immersive Petroleum reservoir data.

Existing reservoir data is not rerolled automatically.

To force Immersive Petroleum to regenerate reservoir data, back up the world first, then delete:

world/data/ImmersivePetroleum-ReservoirRegions.dat
world/data/ImmersivePetroleum-ReservoirRegions/

Then restart the server and generate or revisit chunks.

Requirements

  • Minecraft 1.20.1/1.21.1
  • Forge/NeoForge
  • Ex Deorum
  • Immersive Engineering
  • Immersive Petroleum

Compatibility Notes

Void Reservoirs is designed for void Overworld modpacks.

Reservoir generation and automatic Derrick Well creation are limited to detected void Overworlds.

Optional Immersive Petroleum Well block breakability is intended as a cleanup feature for void-world pack use.

Intended Use

This mod is intended for skyblock and void-world modpacks where:

  • Immersive Petroleum reservoirs should exist despite the lack of terrain generation
  • Immersive Petroleum Derricks should work without natural bedrock
  • Immersive Petroleum pumpjacks should remain useful
  • Immersive Engineering excavators should still have mineral vein data
  • Oil, aquifers, lava reservoirs, and mineral veins should exist without normal terrain generation

The Void Reservoirs (Immersive + ExDeorum Mixin) Team

profile avatar
Owner
  • 2
    Projects
  • 39
    Downloads

More from DeadSix

  • JEI Drops project image

    JEI Drops

    JEI Drops shows real block loot sources directly in JEI, including tool-sensitive drops like Silk Touch, Fortune, shears, and hand-breaking.

    • 6
    • June 20, 2026
  • JEI Drops project image

    JEI Drops

    JEI Drops shows real block loot sources directly in JEI, including tool-sensitive drops like Silk Touch, Fortune, shears, and hand-breaking.

    • 6
    • June 20, 2026