Repository navigation
Singularity Chamber
The Singularity Processing Chamber is a late-game, single-block machine that converts one resource into another at high throughput. It keeps its input in long-scale cache slots, runs up to nine jobs in parallel, and writes its output straight into the ME network.
The recipe index is built lazily from every source it can read, so recipes registered by other mods (inscriber presses from Cells, grinder recipes that follow the ore dictionary, and so on) are picked up automatically. When several recipes can consume the same input, the highest priority one wins:
| Priority | Source | Notes |
|---|---|---|
| 1 | Black Hole recipes | end-game black hole crafting |
| 2 | Multi-step inscriber chains | a press + inscribe chain merged into one step |
| 3 | Single-step press | inscriber press recipes |
| 4 | Single-step inscribe | circuit / processor printing |
| 5 | Hardcoded | crystal charging, fluix aggregation, crystal seed growth |
| 6 | Grinder | AE2 grinder recipes, looked up lazily per key |
| 7 | CraftTweaker | custom recipes |
Per input type only one recipe is chosen — the highest-priority recipe whose materials are available, or one that already has an active job. A running high-priority recipe will not release its materials to a lower-priority one, so a merged chain always wins over a single-step circuit recipe.
Only items that match at least one recipe are accepted into the input cache.
import mods.ae2enhanced.SingularityChamber;
// output, inputs, time in ticks
SingularityChamber.addRecipe(<minecraft:diamond> * 2, [<minecraft:coal> * 64], 100);
SingularityChamber.removeRecipe("ct_minecraft:diamond");The third argument is the job's base time in ticks. Custom recipe IDs are prefixed ct_ (the generated ID is ct_ plus the output's registry name), so they can be removed by ID.
| Recipe source | Base time (ticks) |
|---|---|
| Black Hole | 20 |
| Inscriber press / inscribe | 100 |
| Merged inscriber chain | 200 |
| Crystal charging | 100 |
| Fluix aggregation | 60 |
| Crystal seed growth | 600 |
| Grinder | 10 per turn |
-
27 input types, each held as a
longcount. - Fill the cache by pushing items in through any side (pipes, hoppers) or by pouring them in through the GUI; click a cached entry in the GUI to take it back.
- Up to 9 concurrent jobs — matching the nine visible job columns. Batches of the same recipe aggregate into a single job.
| Slot | Card | Effect |
|---|---|---|
| 1 | Virtual Parallel Card | Sets the machine's parallel channel count |
| 2–5 | Speed / Capacity upgrade cards (any AE2 IUpgradeModule) |
See below |
- Parallel channels = virtual parallel card value × 4^(capacity cards).
- Job time = base recipe time × 8^(capacity cards) / 4^(speed cards).
Capacity cards trade time for channels, which spreads the same energy cost over more ticks; speed cards trade energy per tick for speed.
The chamber has its own FE buffer, capped at Integer.MAX_VALUE (2.1G FE). A batch can only start when the buffer can cover it (energyPerBatch × batches ≤ buffered energy). After that, the job's total cost is paid down evenly across its remaining ticks, and any shortfall is pulled live from the ME network (1 AE = 2 FE). If a tick's cost cannot be paid, the job suspends where it is and resumes once energy is available.
Finished output is injected into the ME network first. Whatever the network rejects goes into the 9-slot output buffer — products are never destroyed. The buffer is retried against the network every 10 ticks and is also pushed into adjacent inventories.
The GUI button cycles three modes:
- Ignored — always run.
- Run on HIGH signal — pause unless the block is powered.
- Run on LOW signal — pause while the block is powered.
Output flushing is not affected by the redstone pause, so the buffer cannot pile up while the machine is stopped.
Breaking the chamber keeps its energy, input/output caches, cards and in-progress jobs inside the dropped item's BlockEntityTag. Placing the block restores all of it — no progress is lost when you relocate the machine.
- 9×3 input cache (virtual slots — pour in or take back)
- Nine job columns with progress bars, output icons and job tooltips
- 9-slot output buffer
- Five card slots on the right
- Redstone mode button
Counts are shown with k/M/G/T/P/E abbreviations; ∞ marks a saturated parallel count.
The chamber has its own JEI recipe category showing each recipe's processing time and its output per batch.
| Key | Default | Meaning |
|---|---|---|
Chamber.energyPerBatch |
16384 | Total FE consumed per recipe batch |
Chamber.requireChannel |
true | Whether the chamber needs an ME channel to inject output into the network; disable for channel-less operation |