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