GT New Horizons · Insanely Ultimate Voltage (UIV)
Pseudostable Black Hole Containment Field
The Pseudostable Black Hole Containment Field (Black Hole Compressor or BHC) is a UIV tier multiblock for compressing materials with a black hole. The BHC is a direct upgrade from the Neutronium Compressor and Hot Isostatic Pressurization Unit because it can process both types of compressor recipes, runs at 500% speed, uses only 70% of the EU/t normally required, and offers up to 32 parallels per voltage tier. However, the BHC cannot process any recipes without a stabilized black hole, including those that do not specifically require one. Create a black hole by supplying a black hole seed through an input bus. The black hole starts at 100% stability and decays by 1% per second until it reaches 0%, at which point it becomes unstable and voids all recipes until it is closed. The decay can be temporarily halted by supplying 1 L/s of spacetime to the input hatches behind the lasers, but every 30 seconds of halting the decay doubles the spacetime cost per second. Close a black hole by supplying a black hole collapser through an input bus, or wait 15 minutes for it collapse naturally.
Construction
The BHC has no tiered components. Buses/hatches may replace any absorbent casing anywhere on the structure, except the four casings behind the lasers which are reserved for spacetime specifically. Multi-amp and laser energy hatches are supported, but there cannot be more than one and the BHC cannot overclock beyond the tier of the energy hatch. It also can only tier skip ONE time (ie. UIV energy hatches can run up to UMV recipes). Right-click the controller with a screwdriver to disable animations. Use the Multiblock Structure Hologram Projector to visualize/build the structure.
Unique to the BHC is the black hole utility hatch which can assist with automation. Static mode emits a constant redstone signal while a black hole is open, and pulse mode emits a redstone pulse every second while a black hole is open. The pulse is perfectly synced to the internal timing of the machine. Switch modes in the GUI of the hatch.
Structure
- Controller: Middle of structure, 6th layer
- 3667-3671 Extreme Density Space-Bending Casing
- 950-985 Background Radiation Absorbent Casing
- 144 Naquadah Alloy Frame Box
- 64 Hawking Radiation Realignment Focus
- 0+ Black Hole Utility Hatch: Any absorbent casing
- 1+ Energy Hatch: Any absorbent casing
- 1+ Input Bus/Hatch: Any absorbent casing (inputs), the casing behind each laser (spacetime)
- 1+ Output Bus: Any absorbent casing
Usage
The BHC is a direct upgrade from the Neutronium Compressor and Hot Isostatic Pressurization Unit because it can process both types of compressor recipes, runs at 500% speed, uses only 70% of the EU/t normally required, and offers up to 32 parallels per voltage tier, as seen in the following table. The effective voltage for determining parallels is strictly based on the EU/t throughput and is NOT capped by the tier of the energy hatch like overclocks are. For example, a 256A UIV laser energy hatch is equivalent to running at MAX voltage. It also extends infinitely beyond MAX voltage.
| Parallels | ULV | LV | MV | HV | EV | IV | LuV | ZPM | UV | UHV | UEV | UIV | UMV | UXV | MAX | M+1 | M+2 | M+3 | M+4 | M+5 | ... |
| 50-100% Stability | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 72 | 80 | 88 | 96 | 104 | 112 | 120 | 128 | 136 | 144 | 152 | 160 | ... |
| 20-49% Stability | 16 | 32 | 48 | 64 | 80 | 96 | 112 | 128 | 144 | 160 | 176 | 192 | 208 | 224 | 240 | 256 | 272 | 288 | 304 | 320 | ... |
| 0-19% Stability | 32 | 64 | 96 | 128 | 160 | 192 | 224 | 256 | 288 | 320 | 352 | 384 | 416 | 448 | 480 | 512 | 544 | 576 | 608 | 640 | ... |
Black Holes
Open a black hole by supplying a black hole seed through an input bus. The stability of the black hole starts at 100% and decays by 1% per second regardless if the machine is active or not. The number of parallels is doubled below 50% stability and quadrupled below 20% stability. Recipes that do not require a black hole additionally have unlimited parallels below 20% stability.
-
100% Stability -
49% Stability -
19% Stability -
5% Stability -
Unstable
By default, a black hole lasts 100 seconds, but the decay can be temporarily halted by supplying 1 L/s of spacetime to the input hatch(es) behind the lasers. Only one input hatch is actually necessary, but the cost can be split between all four if desired. The BHC also does not consume any excess spacetime so it is safe to stock in bulk. It is highly recommended to halt the decay when the black hole is below 20% stability to maximize parallels. The only problem is that the spacetime cost doubles every 30 seconds that the decay is halted, whether continuous or not, as seen in the following tables and equation where s is the total runtime in seconds. Once the black hole inevitably reaches 0% stability, it becomes unstable which voids all recipes until it is closed, including any that were in the middle of processing.
|
|
|
Close a black hole by supplying a black hole collapser through an input bus, or wait 15 minutes for it collapse naturally. The black hole collapser takes priority over any other recipe, but it does not interrupt a recipe in the middle of processing. That means it can save future recipes from being voided, but it cannot save the one in the middle of processing after the black hole has become unstable.
Recipes
The BHC cannot process any recipes without a stabilized black hole, whether or not it specifically requires one. Despite not appearing in NEI, basic compressor recipes (ie. blocks and superdense plates) require programmed circuit 20 and Neutronium Compressor recipes (ie. singularities) require programmed circuit 21. There are no conflicts between them, but they cannot co-exist in the same input bus because it always ignores one of them. The BHC cannot overclock beyond the tier of the energy hatch and can only tier skip ONE time (e.g. UIV energy hatches can run up to UMV recipes).
The following tables list every recipe that specifically requires a stabilized black hole by their machine mode and the length of their recipe in normal and batch mode at various energy hatch tiers. Bold signifies those that require tier skipping and may need a higher amp energy hatch to support the maximum number of parallels. At base voltage, each parallel consumes 0.65A of power so a 256A laser energy hatch can support up to 390 parallels and a 1,024A laser energy hatch can support up to 1,560 parallels. Higher amp laser energy hatches are not necessary other than for increasing the maximum number of parallels.
| UHV | UEV | UIV | UMV | UXV | ||||||||||
| Normal | Batch | Normal | Batch | Normal | Batch | Normal | Batch | Normal | Batch | |||||
| SD Transcendent Metal | 31.35 s | 31.35 s | 15.65 s | 15.65 s | 7.80 s | 7.80 s | 3.90 s | 6.35 s | 1.95 s | 6.35 s | ||||
| SD Dragonblood | 8.00 s | 8.00 s | 8.00 s | 8.00 s | 4.00 s | 6.35 s | 2.00 s | 6.35 s | 1.00 s | 6.40 s | ||||
| SD Quantum | 14.00 s | 14.00 s | 14.00 s | 14.00 s | 7.00 s | 7.00 s | 3.50 s | 6.35 s | 1.75 s | 6.35 s | ||||
| SD Hypogen | 19.60 s | 19.60 s | 19.60 s | 19.60 s | 9.80 s | 9.80 s | 4.90 s | 6.35 s | 2.45 s | 6.35 s | ||||
| SD Creon | 31.35 s | 31.35 s | 31.35 s | 31.35 s | 15.65 s | 15.65 s | 7.80 s | 7.80 s | 3.90 s | 6.35 s | ||||
| SD Mellion | 31.35 s | 31.35 s | 31.35 s | 31.35 s | 15.65 s | 15.65 s | 7.80 s | 7.80 s | 3.90 s | 6.35 s | ||||
| SD Six-Phased Copper | 31.35 s | 31.35 s | 31.35 s | 31.35 s | 15.65 s | 15.65 s | 7.80 s | 7.80 s | 3.90 s | 6.35 s | ||||
| SD Spacetime | 31.35 s | 31.35 s | 31.35 s | 31.35 s | 15.65 s | 15.65 s | 7.80 s | 7.80 s | 3.90 s | 6.35 s | ||||
| SD Superconductor Base UMV | 31.35 s | 31.35 s | 31.35 s | 31.35 s | 15.65 s | 15.65 s | 7.80 s | 7.80 s | 3.90 s | 6.35 s | ||||
| SD Metastable Oganesson | 94.05 s | 94.05 s | 94.05 s | 94.05 s | 47.00 s | 47.00 s | 23.50 s | 23.50 s | 11.75 s | 11.75 s | ||||
| SD Hot Proto-Halkonite Steel (Creon) | ---- | ---- | 2.25 s | 6.35 s | 2.25 s | 6.35 s | 1.10 s | 6.35 s | 0.55 s | 6.35 s | ||||
| SD Hot Proto-Halkonite Steel (Mellion) | ---- | ---- | 2.25 s | 6.35 s | 2.25 s | 6.35 s | 1.10 s | 6.35 s | 0.55 s | 6.35 s | ||||
| SD Hot Proto-Halkonite Steel (Infinity) | ---- | ---- | 9.00 s | 9.00 s | 9.00 s | 9.00 s | 4.50 s | 6.35 s | 2.25 s | 6.35 s | ||||
| Pseudo Star | ---- | ---- | ---- | ---- | 9.60 s | 9.60 s | 9.60 s | 9.60 s | 4.80 s | 6.35 s | ||||
| Gravitational Lens | ---- | ---- | ---- | ---- | 24.00 s | 24.00 s | 24.00 s | 24.00 s | 12.00 s | 12.00 s | ||||
| SD Magmatter | ---- | ---- | ---- | ---- | 31.35 s | 31.35 s | 31.35 s | 31.35 s | 15.65 s | 15.65 s | ||||
| SD Eternity | ---- | ---- | ---- | ---- | 31.35 s | 31.35 s | 31.35 s | 31.35 s | 15.65 s | 15.65 s | ||||
| SD Shirabon | ---- | ---- | ---- | ---- | 94.05 s | 94.05 s | 94.05 s | 94.05 s | 47.00 s | 47.00 s | ||||
| SD White Dwarf Matter | ---- | ---- | ---- | ---- | ---- | ---- | 31.35 s | 31.35 s | 31.35 s | 31.35 s | ||||
| SD Black Dwarf Matter | ---- | ---- | ---- | ---- | ---- | ---- | 31.35 s | 31.35 s | 31.35 s | 31.35 s | ||||
| SD Universium | ---- | ---- | ---- | ---- | ---- | ---- | 31.35 s | 31.35 s | 31.35 s | 31.35 s | ||||
| SD MHDCSM | ---- | ---- | ---- | ---- | ---- | ---- | 900 s | 900 s | 900 s | 900 s | ||||
| UHV | UEV | UIV | UMV | UXV | ||||||||||
| Normal | Batch | Normal | Batch | Normal | Batch | Normal | Batch | Normal | Batch | |||||
| Gangue Singularity | 24.00 s | 24.00 s | 24.00 s | 24.00 s | 12.00 s | 12.00 s | 6.00 s | 6.35 s | 3.00 s | 6.35 s | ||||
| Iron Singularity (from fluid) | ---- | ---- | 0.05 s | 0.05 s | 0.05 s | 0.05 s | 0.05 s | 0.05 s | 0.05 s | 0.05 s | ||||
| Copper Singularity (from fluid) | ---- | ---- | 0.05 s | 0.05 s | 0.05 s | 0.05 s | 0.05 s | 0.05 s | 0.05 s | 0.05 s | ||||
| Tin Singularity (from fluid) | ---- | ---- | 0.05 s | 0.05 s | 0.05 s | 0.05 s | 0.05 s | 0.05 s | 0.05 s | 0.05 s | ||||
| Leaden Singularity (from fluid) | ---- | ---- | 0.05 s | 0.05 s | 0.05 s | 0.05 s | 0.05 s | 0.05 s | 0.05 s | 0.05 s | ||||
| Transcendent Nanite Electrode | ---- | ---- | 48.00 s | 48.00 s | 48.00 s | 48.00 s | 24.00 s | 24.00 s | 12.00 s | 12.00 s | ||||
| Spaghettic Singularity | ---- | ---- | ---- | ---- | 0.20 s | 6.40 s | 0.20 s | 6.40 s | 0.10 s | 6.40 s | ||||
| Cryptic Singularity | ---- | ---- | ---- | ---- | 0.20 s | 6.40 s | 0.20 s | 6.40 s | 0.10 s | 6.40 s | ||||
| Eternal Singularity | ---- | ---- | ---- | ---- | 20.00 s | 20.00 s | 20.00 s | 20.00 s | 10.00 s | 10.00 s | ||||
| Universium Nanite Electrode | ---- | ---- | ---- | ---- | ---- | ---- | 96.00 s | 96.00 s | 96.00 s | 96.00 s | ||||
| Blank Computational Singularity | ---- | ---- | ---- | ---- | ---- | ---- | 900 s | 900 s | 900 s | 900 s | ||||
Extremes
The superdense magnetohydrodynamically constrained star matter (MHDCSM) plate and blank computational singularity are by far the longest recipes, cannot be overclocked, and requires halting the decay for at least 800s. Regardless of the energy hatch, that is going to consume a lot of spacetime, especially if waiting for the black hole to decay below 50% or 20% stability before starting. Just one second of error can waste a lot of spacetime and/or void the output so it is NOT recommended to use either automation method in the next section.
Instead, craft these manually with the exact amounts listed in the following tables. The targets are the amounts required for one Stargate. Despite having enough parallels, only one blank computational singularity can be crafted at a time due to the integer limit on the input fluid.
| Target | Energy Hatch | Start at 100% Stability (900s Runtime) | Start at 49% Stability (951s Runtime) | Start at 19% Stability (981s Runtime) | ||||||||||||
| Parallels | Iterations | Spacetime Per | Total | Parallels | Iterations | Spacetime Per | Total | Parallels | Iterations | Spacetime Per | Total | |||||
| 6,912 SD MHDCSM Plate | 262k UXV | 176 | 40 | 3,355,443,170 L | 134,217,726,800 L | 352 | 20 | 11,005,853,666 L | 220,117,073,320 L | 704 | 10 | 22,011,707,362 L | 220,117,073,620 L | |||
| 6,912 SD MHDCSM Plate | 1M UXV | 184 | 38 | 3,355,443,170 L | 127,506,840,460 L | 368 | 19 | 11,005,853,666 L | 209,111,219,654 L | 736 | 10 | 22,011,707,362 L | 220,117,073,620 L | |||
| 6,912 SD MHDCSM Plate | 4M UXV | 192 | 36 | 3,355,443,170 L | 120,795,954,120 L | 384 | 18 | 11,005,853,666 L | 198,105,365,988 L | 768 | 9 | 22,011,707,362 L | 198,105,366,258 L | |||
| 6,912 SD MHDCSM Plate | 16M UXV | 200 | 35 | 3,355,443,170 L | 117,440,510,950 L | 400 | 18 | 11,005,853,666 L | 198,105,365,988 L | 800 | 9 | 22,011,707,362 L | 198,105,366,258 L | |||
| Target | Energy Hatch | Start at 100% Stability (900s Runtime) | Start at 49% Stability (951s Runtime) | Start at 19% Stability (981s Runtime) | ||||||||||||
| Parallels | Iterations | Spacetime Per | Total | Parallels | Iterations | Spacetime Per | Total | Parallels | Iterations | Spacetime Per | Total | |||||
| 16 Blank Comp Singularity | 262k UXV | 176 | 16 | 3,355,443,170 L | 53,687,090,720 L | 352 | 16 | 11,005,853,666 L | 176,093,658,656 L | 704 | 16 | 22,011,707,362 L | 352,187,317,792 L | |||
| 16 Blank Comp Singularity | 1M UXV | 184 | 16 | 3,355,443,170 L | 53,687,090,720 L | 368 | 16 | 11,005,853,666 L | 176,093,658,656 L | 736 | 16 | 22,011,707,362 L | 352,187,317,792 L | |||
| 16 Blank Comp Singularity | 4M UXV | 192 | 16 | 3,355,443,170 L | 53,687,090,720 L | 384 | 16 | 11,005,853,666 L | 176,093,658,656 L | 768 | 16 | 22,011,707,362 L | 352,187,317,792 L | |||
| 16 Blank Comp Singularity | 16M UXV | 200 | 16 | 3,355,443,170 L | 53,687,090,720 L | 400 | 16 | 11,005,853,666 L | 176,093,658,656 L | 800 | 16 | 22,011,707,362 L | 352,187,317,792 L | |||
Automation
The challenge in using the BHC effectively is knowing when to open a black hole, when to start injecting spacetime, when to stop injecting spacetime, and when to close the black hole without voiding any recipes. Everything has to be timed perfectly because there is no way to accurately read the stability of the black hole.
Method 1: OpenComputers
The core mechanic behind this approach is using an OpenComputers script to automatically control the timing of the BHC. It can calculate the exact amount of spacetime needed for the desired runtime, provide some basic void protection without using spacetime, and is fully customizable. This approach can fit entirely within the interior of the structure, is quick to set up, protects against voiding, and prevents a black hole from being created if there are no seeds available, no collapsers available, or not enough spacetime available. It is also very TPS friendly and can be spammed since the whole setup is less intensive than the black hole utility hatch itself. The only downside is that OpenComputers may be slightly confusing if not used before, but the following guide walks through every step of setting it up.
| STEP 1 | |
| Inside the BHC, place a screen (Tier 3), computer case (Tier 3), keyboard, adapter, redstone I/O, transposer (any tier), and neutronium energy cell. Sneak right-click the controller with an MFU and insert it into the adapter to wirelessly connect to the BHC. Ensure the adapter is within 16 blocks of the controller.
Insert the bare minimum components into the computer case. These could be even lower tier but there is no reason not to use the best components.
Place a wireless receiver, wireless transmitter, and black hole utility hatch set to PULSE MODE facing into the redstone I/O. Also place a regular input bus underneath the transposer. All sides can be changed in the script as necessary. |
|
| STEP 2 | |
| Place a super stock replenisher above the transposer. Insert a high-capacity fluid storage cell and then overestimate the amount of spacetime required in case it needs to run longer than expected for void protection. For example, a BHC with a max run time of 220s is expected to consume only 450L of Spacetime but set the filter to 1,000L to be extra safe.
Place a fluid storage bus set to EXTRACT ONLY on the side of the super stock replenisher and connect it to the the spacetime subnetwork (light blue). Power the subnetwork with a neutronium energy anchor. Place an ME interface next to the transposer with black hole seeds in the first slot and black hole collapsers in the second slot. Connect the ME interface and super stock replenisher to the main network (green). |
|
| STEP 3 | |
| On another side of the interior, place buses/hatches as shown. From left-to-right: one ME output bus, two advanced stocking input buses, and one advanced stocking input hatch. Enable auto-pull on all, add circuits 20 and 21, and set the refresh times to 20 ticks.
Connect the ME output bus to the main network (green) and the rest to the BHC subnetwork (blue). Add an ME drive and neutronium ME controller to the latter, and insert enough cells to hold any recipes. Add a pair of kissing ME dual interfaces between the networks for holding patterns and inserting ingredients. Add a lever (manual override), a level emitter with the settings shown, and a NOT gate just before a wireless transmitter on channel 1. This informs the script that there are items present in the subnetwork. Add a fluid discretizer to the BHC subnetwork if on GTNH 2.8. |
|
| STEP 4 | |
| On one side of the exterior, connect a stocking input hatch to the spacetime subnetwork (light blue). Filter it to spacetime and add a machine controller cover set to ENABLE WITH REDSTONE on its side. Set the tick rate to 5 ticks to save TPS.
This allows the spacetime to be controlled by the wireless transmitter in the first step, without disconnecting the hatch or any other components from the network. Store any black hole seeds, black hole collapsers, and spacetime on the main network (green). Scale this approach by changing the config in the script. |
|
| STEP 5 | |
| After booting up the computer, follow the commands on screen to install OpenOS.
Create a new script by typing Run the script by typing |
|

-- Credits: Fox
local component = require('component')
local sides = require('sides')
local event = require('event')
local bhc = component.gt_machine
local r = component.redstone
local t = component.transposer
local progress = 0
local n = 0
-- CTRL+ALT+C to stop the script at any time.
-- ========= CONFIG =========
-- The Maximum Runtime (s) before closing. Include the base 100s.
local maxRuntime = 100
-- The Target Stability (%) for halting decay.
local targetStability = 18
-- Whether or not to use Black Hole Collapsers.
local useCollapser = true
-- Whether or not to consume extra spacetime to save the last recipe.
local voidProtection = true
-- Side Options: [north, south, east, west, up, down]
-- Side of Redstone I/O with Wireless Receiver
local receiverSide = sides.west
-- Side of Redstone I/O with Wireless Transmitter
local transmitterSide = sides.east
-- Side of Redstone I/O with Black Hole Utility Hatch on PULSE mode
local hatchSide = sides.down
-- Side of Transposer with ME Interface
local interfaceSide = sides.east
-- Side of Transposer with Super Stock Replenisher
local stockerSide = sides.up
-- Side of Transposer with Input Bus
local busSide = sides.down
-- Color of Progress Bar
local color = '\27[1;36m'
-- (https://github.com/torch/sys/blob/master/colors.lua)
-- Cyan = '\27[1;36m' || Green = '\27[1;32m' || Red = '\27[0;31m' || Magenta = '\27[0;35m'
-- ====== END CONFIG ======
local function calcSpacetime(target, stored)
local required = 0
for i=101, target do
required = required + 2^(math.floor((i-101)/30))
end
return {stored-required, required}
end
local function parse(number) -- Credits: Navatusein
return tostring(math.floor(number)):reverse():gsub('(%d%d%d)','%1,'):gsub(',(%-?)$','%1'):reverse()
end
local function ready()
local flag = true
-- Black Hole Seed
if t.getStackInSlot(interfaceSide, 1) == nil then
print('BHC: No Seeds Available!')
flag = false
end
-- Black Hole Collapser
if t.getStackInSlot(interfaceSide, 2) == nil and useCollapser then
print('BHC: No Collapsers Available!')
flag = false
end
-- Spacetime
local maxSpacetime = t.getFluidInTank(stockerSide, 1).amount
local minSpacetime = calcSpacetime(maxRuntime, maxSpacetime)
if minSpacetime[1] < 0 then
print(('BHC: Missing %sL Spacetime!'):format(parse(-minSpacetime[1])))
flag = false
end
-- Items
if r.getInput(receiverSide) == 0 then
flag = false
if n == 0 then print('BHC: No Inputs Found, Sleeping...') end
end
return flag
end
local function wait(seconds, addProgress)
for _=1, seconds do
while true do
local _, _, side, oldValue, newValue = event.pull('redstone_changed')
if side == hatchSide and oldValue == 0 and newValue > 0 then
if addProgress and progress < 101 then
progress = progress + 1
if bhc.hasWork() then
io.write(color .. '■')
else
io.write('\27[0m' .. '□')
end
if progress % 20 == 0 and progress < 100 then
io.write((' %s%% '):format(progress))
end
end
break
end
end
end
end
local function waitUntilIdle(addProgress)
while true do
local _, _, side, oldValue, newValue = event.pull(2, 'redstone_changed')
if side == nil then
io.write('\27[0m' .. string.rep('□', 100-progress) .. ']')
break
elseif side == hatchSide and oldValue == 0 and newValue > 0 and progress < 100 then
if addProgress and progress < 101 then
progress = progress + 1
if bhc.hasWork() then
io.write(color .. '■')
else
io.write('\27[0m' .. '□')
end
if progress % 20 == 0 and progress < 100 then
io.write((' %s%% '):format(progress))
end
end
end
end
end
-- ====== THE LOOP ======
local function main()
while true do
-- 0. Standby
if not ready() then
os.sleep(5)
n = 1
else
print(('\nBHC: Opening Black Hole! Target Stability %s%% Max Runtime %ss'):format(targetStability, maxRuntime))
io.write('BHC: Progress [' .. color)
-- 1. Insert Seed
t.transferItem(interfaceSide, busSide, 1, 1)
wait(100 - targetStability, true)
-- 2. Enable Spacetime for N seconds
io.write('\27[0m' .. '|' .. color)
r.setOutput(transmitterSide, 15)
wait(maxRuntime - 100, false)
-- 3. Insert Collapser or Disable Machine
if useCollapser then
t.transferItem(interfaceSide, busSide, 1, 2)
else
bhc.setWorkAllowed(false)
end
-- 4. Save Last Recipe
if voidProtection and bhc.hasWork() then
wait(math.max(0, math.ceil((bhc.getWorkMaxProgress() - bhc.getWorkProgress())/20) - targetStability + 1), false)
end
-- 5. Disable Spacetime
r.setOutput(transmitterSide, 0)
-- 6. Wait until Black Hole is Closed
waitUntilIdle(true)
-- 7. Reset
print('\nBHC: Closing Black Hole!')
bhc.setWorkAllowed(true)
progress = 0
n = 0
end
end
end
main()
The following is a bonus script for calculating the amount of spacetime required for a specific run time. Create the script by typing edit simulate.lua and copy the following code into it. Use middle-click to paste, CTRL+S to save, and CTRL+W to exit. Use the same edit command to change the code at anytime. Run the script by typing simulate N where N is the maximum runtime. For example simulate 130 calculates the spacetime for 130 seconds and prints the result to the screen.
local args = {...}
local maxRuntime = args[1]
local function parse(number) -- Credits: Navatusein
return tostring(math.floor(number)):reverse():gsub('(%d%d%d)','%1,'):gsub(',(%-?)$','%1'):reverse()
end
total = 0
for i=101, maxRuntime do
total = total + math.min(20000000000, 2^(math.floor((i-101)/30)))
end
print('Max Spacetime: ' .. parse(math.min(20000000000, 2^(math.floor((maxRuntime-101)/30)))) .. ' L/s')
print('Running Total: ' .. parse(total) .. ' L\n')
Method 2: ProjectRed
The core mechanic behind this approach is using the black hole utility hatch with a counter to determine when the BHC reaches 10% stability, and then initating a state cell to inject spacetime for a set amount of seconds. Level emitters control when to insert the black hole seed and an activity detector controls when to stop injecting spacetime and insert the black hole collapser. This approach can fit entirely within the interior of the structure, protects against voiding, and prevents a black hole from being created if there are no collapsers available. The only downside is that ProjectRed components can sometimes have unpredictable timing in low TPS environments.
| STEP 1 | |
| Inside the BHC, Place two regular input buses underneath two item importers as shown. The tier of the input bus is irrelevant. The controller is to the left in the image.
On the main network (green), place an ME dual interface above each item importer. Request black hole seeds on the left and black hole collapsers on the right. Keep both passively stocked, although there is no significant consequence for running out of either. The item importers pull the seed/collapser into the input bus below it when triggered by the wireless receivers around them. Sneak right-click the RS latch with a screwdriver twice to change its configuration. |
|
| STEP 2 | |
| On another side of the interior, place buses/hatches as shown. From left-to-right: one ME output bus, two advanced stocking input buses, and one advanced stocking input hatch. Enable auto-pull on all, add circuits 20 and 21, and set the refresh times to 20 ticks.
Connect the ME output bus to the main network (green) and the rest to the BHC subnetwork (blue). Add an ME drive and neutronium ME controller to the latter, and insert enough cells to hold any recipes. Add a pair of kissing ME dual interfaces between the networks for holding patterns and inserting ingredients. Add a lever (manual override), two level emitters with the settings shown, and a NOT gate just before a wireless transmitter on channel 2. This allows a seed to be inserted if there is a collapser present and items in the subnetwork. |
|
| STEP 3 | |
| On the same side of the interior, place a black hole utility hatch set to PULSE MODE facing into the positive side of a counter. Change the counter settings to those shown to halt the decay of the black hole at 10% stability.
The duration of the state cell determines how long to halt the black hole decay for. If not using spacetime, set the counter's maximum and decrement values to 80 and the state cell to 1 second. Once the state cell finishes, it sends a signal through the RS latch and wireless transmitter to insert a black hole collapser. The collapser takes priority over any other recipe but does not interrupt the one in the middle of processing. |
|
| STEP 4 | |
| Place an activity detector cover set to RECIPE PROGRESS on the back of the controller. Also place the remaining redstone gates, wireless transmitters, and wireless receiver. The RS latch receives its signal from the state cell in the previous step to enable spacetime injection.
The AND gate disables the spacetime injection and resets all the previous redstone devices, but only once a collapser has been inserted and the last recipe has finished. If there is no spacetime, it is unable to guarantee that the last recipe is not voided. Sneak right-click the AND gate with a screwdriver to disable the unused input. The 64 tick repeater is necessary for ensuring that the black hole is fully collapsed before resetting everything. |
|
| STEP 5 | |
| On one side of the exterior, connect a stocking input hatch to the main network (green). Filter it to spacetime and add a machine controller cover set to ENABLE WITH REDSTONE on its side. Set the tick rate to 5 ticks to save TPS.
This allows the spacetime to be controlled by the wireless transmitter in the previous step, without disconnecting the hatch or any other components from the network. Store any black hole seeds, black hole collapsers, and spacetime on the main network (green). Scale this approach by increasing the duration of the state cell. |
|
Trivia
- The superstable black hole seed opens a perfectly stabilized black hole that never collapses and quadruples the number of parallels at all times. However, it is uncraftable and therefore limited to creative mode.
- The BHC is the only multiblock in GTNH whose parallels based on voltage tier extends beyond MAX+.
- The spacetime is capped at 1B L/t to avoid an integer overflow (>1,150s runtime). Good luck sustaining that though.









