Greenhouse Controller
alaindustrial:crystal_farm_controller
Summary
The Crystal Greenhouse makes amethyst renewable without cancelling the trip to a geode — it turns one geode you have found into a source. Before it, the mod's whole crystal branch bottlenecked on the vanilla amethyst shard: the resonant shard and the Spatial Crystal are made from it, and those in turn feed the Resonance Coil, the teleport chip, the Lapotron Crystal and the Resonant Crystal. There was nowhere to get a shard except by breaking one out of a geode.
The greenhouse is a building, not a machine. The player raises the sealed room themselves, puts crystal seedbeds inside, feeds them shards — and they start bearing real vanilla amethyst clusters. Not lookalikes, the very same blocks: they look the same, sound the same, break the same and answer Fortune the same, because the drop is decided by the vanilla loot table.
What sets it apart from the incubator. The incubator is about chance and an instant result: put it in, pay in uranium and EU/FE, take it out. The greenhouse is about waiting and watching: the result is deterministic, and the price is time. These are two different genres of machine, and they deliberately do not overlap.
Building the room
The greenhouse is made of five blocks, but only two of them are mandatory — the Greenhouse Decking and the Greenhouse Controller:
| Block | Role |
|---|---|
| Greenhouse Decking | shell: floor, walls, ceiling — everything that is not glass |
| Greenhouse Glazing | shell: the glazing, which merges into a single sheet once the room forms |
| Greenhouse Door | the way in; closes itself behind the player |
| Greenhouse Controller | the brain: scans the room, drives growth, reports what is wrong |
| Crystal Seedbed | placed inside; clusters grow on it |
The controller is set into a wall with its panel facing out — the room's interior lies on the far side of the face it looks at. A controller in the floor or the ceiling will not do: it is a panel meant to be read.
Any closed shape
The room does not have to be a box. The controller floods the air inside and accepts anything that air is held by: a dome, a stepped pyramid, an L-shaped wing, a two-storey greenhouse with an opening between the floors. The only limits are on volume:
| Parameter | Value | config key |
|---|---|---|
| Smallest volume | 27 blocks | |
| Largest volume | 4096 blocks | |
| Maximum distance from the controller | 24 blocks | |
| Rescan interval | 40 ticks (2 s) |
Volume, not edge length: "three blocks across" means nothing for a dome.
The distance limit is the second, harsher safeguard beside the volume cap. It is not about balance: an unsealed room would otherwise carry the flood fill dozens of blocks off to the side, reading chunks that may not be loaded.
Any glass works — vanilla, stained, another mod's through #c:glass_blocks. A stained-glass greenhouse falls out of that on its own; there is no separate code for it. Any vanilla door is accepted too, not only the mod's own.
What the player sees while building
The scan is invisible, so forming shows itself three ways at once:
- the shell loses its seams — the decking and the glazing each have a second texture with no
frame, and a finished room reads as one surface instead of a stack of crates; along the outline the frame stays, tracing the silhouette;
- a sound — one chord at the moment it closes, only on the transition;
- particles — a flash along the seam of the floor.
Take a wall apart and the shell snaps straight back to its crumbly look.
When the room will not close
Right-click the controller and it reports into chat what is wrong. If the greenhouse has formed before, the message also carries the coordinates of the missing block, and smoke rises from it every two seconds.
The line is signed [Ala Industrial]: chat is one column shared with the server and every other mod, and unsigned it is anybody's guess who is talking. The verdict arrives before the sentence has been read — green for closed, red for not — and the numbers and coordinates are lifted out of the running text in white, because those are what the player goes looking for.
| State | What is reported |
|---|---|
| Formed | volume, seedbed count, whether there is water |
| Not closed | coordinates of the missing block if it can be worked out; otherwise just "not closed" |
| Too small | no coordinates |
| Controller not in a wall | the controller's coordinates |
| Second controller | the other controller's coordinates |
Coordinates are not always shown, and that is deliberate. The flood fill cannot say where it leaks: it goes out through the hole and keeps going until it hits the distance limit. So the hole is found not from the fill but from the list of shell cells remembered from the last successful forming the missing block is the one of them that stopped being a shell block. A greenhouse that has never formed has nothing to compare against, and then coordinates are not shown at all: sending the player to look in the wrong place is worse than honestly saying "not closed".
The seedbed
It is crafted dead — the same crystalline stone as vanilla budding amethyst, only with the colour gone out of it. Feed it an amethyst shard (right-click), and it fills with colour and starts bearing.
- One shard per click. The charge shows in the line above the hotbar, and the pitch of the sound
climbs as it fills.
- A block of amethyst counts as four shards — exactly what vanilla puts into its recipe.
- You can top it up at any time, without waiting for the charge to run out.
- The ceiling is 16 buds in the queue. A block of amethyst is refused by an almost-full bed:
it gives four buds at once, and taking it for a single free slot would silently burn three quarters of a scarce item. Shards can always top it up.
Clusters grow on the seedbed's free faces, going through the vanilla stages small bud → medium → large → cluster. A finished cluster is knocked down with a pickaxe and gives 4 shards (vanilla table, Fortune applies). An unripe bud gives nothing — as in vanilla.
A seedbed outside a greenhouse says so honestly. You can charge it anywhere and the counter will climb exactly the same — and nothing will grow. So when you feed a block that no formed greenhouse is watching, a warning comes instead of the counter.
Energy
| Field | Value |
|---|---|
| Role | consumer with buffer, optional |
| Buffer (EU/FE) | 4000 |
| Max input (EU/FE/tick) | 32 (LV) |
| EU/FE per growth event | 64 |
Energy here is an accelerator, not a condition. A greenhouse without a single cable works, just slowly. EU/FE is spent only on a growth event that actually happened: energy buys crystals, not dice rolls.
Growth and balance
Growth is probabilistic, like vanilla amethyst: every ticks each seedbed rolls a die. Every bed has its own die — a shared roll would make the whole greenhouse grow in lockstep, and that would read as a machine rather than as something alive.
One crystal costs four events: the bud has to appear and then grow three times.
There are three accelerators and they multiply: water, power and the sprinkler. None of them is required.
| Conditions | Divisor | Real time | Minecraft days |
|---|---|---|---|
| Nothing | 270 | ≈ 1 h 30 min | 4.5 |
| Power only | 135 | ≈ 45 min | 2.25 |
| Sprinkler only | 135 | ≈ 45 min | 2.25 |
| Water only | 90 | ≈ 30 min | 1.5 |
| Water and power | 45 | ≈ 15 min | 0.75 |
| Water and sprinkler | 45 | ≈ 15 min | 0.75 |
| Power and sprinkler | 67 | ≈ 22 min | 1.1 |
| All three | 22 | ≈ 7 min | 0.37 |
A Minecraft day is 20 real minutes; the last column is converted at that rate. The division is integer, which is why the full set gives 22 and not 22.5.
That is the time for ONE bed, not for the greenhouse. Beds grow in parallel, each on its own die, so a hall of 25 gives up a crystal about every 3.6 minutes with not a single accelerator, and about every 18 seconds with the full set. Scale buys more here than the accelerators do: a greenhouse is meant to grow outwards.
The third accelerator is the sprinkler. Put one inside an assembled room with nutrient solution in its tank and the controller will find it by itself on the next scan. The sprinkler's own aura has nothing to do with it: seedbeds do not react to bone meal and do not tick on their own, so what works here is the controller's axis. The solution is charged per crystal actually produced, not per attempt — exactly like EU/FE.
| Parameter | Value | config key |
|---|---|---|
| Growth attempt interval | 100 ticks (5 s) | |
| Base divisor | 270 | |
| Speed-up from water | ÷3 | |
| Speed-up from power | ÷2 | |
| Speed-up from the sprinkler | ÷2 | |
| Solution per growth event | 50 mB | |
| Buds per shard | 1 |
The economy. A shard goes in — a crystal comes out — four shards come back. The return is fourfold, paid for with an hour and a half. A full seedbed charge (16 buds) costs 16 shards and hands back 64 over roughly a day of a loaded chunk.
The numbers are held by the L1 test CrystalGrowthTest: it checks both that a shard comes back worth more than itself and that the return has not shot up — a farm that prints amethyst breaks the branch just as reliably as a farm that eats it.
The door
An ordinary vanilla door by its mechanics — hinges, two halves, redstone — with one addition: it closes itself.
| Parameter | Value | config key |
|---|---|---|
| Auto-close delay | 100 ticks (5 s) | |
| Recheck for a blocked doorway | 10 ticks |
An open door does NOT unseal the greenhouse. The scanner looks at what a block is, not at whether it is ajar — exactly as with the reactor airlock — so a greenhouse with its door wide open keeps growing. This page used to say the opposite; an audit caught that it was never true.
The "an open door breaks the seal" variant was considered and rejected: it is honest, but then every trip inside would blank the whole shell and repaint it five seconds later — a hall-sized greenhouse would blink twice per visit, and that is thousands of block updates each way.
So the door closes not for the mechanics, but because a greenhouse standing wide open looks bad, and because the room is otherwise sealed — a door left open is exactly the way mobs walk in.
- Nothing holds the door open, redstone included. A signal used to mean "this one is being held
open on purpose" and the timer stood down; the greenhouse is now shut unconditionally. The cost is named rather than hidden: under a lever left up the door opens once, closes after five seconds, and will not open again until the signal is toggled — the close deliberately does not clear POWERED, or vanilla would open the door on the very next neighbour update and it would flap for as long as the lever is up. A bay driven by a button pulse is unaffected.
- The door will not close on anyone standing in the doorway — the check covers both halves and
counts living creatures only: a shard dropped underfoot does not hold the door. Since redstone stopped holding it, this is the only thing between the timer and a door shut in someone's face.
Block properties
| Block | Hardness | Blast | Tool | Note |
|---|---|---|---|---|
| Greenhouse Decking | 3.0 | 6.0 | pickaxe | formed/edge properties |
| Greenhouse Glazing | 3.0 | 6.0 | pickaxe | , formed/edge properties |
| Greenhouse Door | 3.0 | 6.0 | pickaxe | , broken by a piston |
| Controller | 3.0 | 6.0 | pickaxe | formed property, horizontal facing |
| Seedbed | 3.0 | 6.0 | pickaxe | amethyst sound, charges/tended properties |
The seedbed always comes back dead: the charge is spent time, and a working bed must not go into your pocket.
Recipes
| What | Pattern | Output |
|---|---|---|
| Greenhouse Decking | TGT / GTG / TGT — T: tempered iron plate, G: glass | 4 |
| Greenhouse Glazing | GGG / GTG / GGG | 8 |
| Greenhouse Door | GG / GG / TT — G: greenhouse glazing | 2 |
| Controller | KAK / CMC / KKK — K: greenhouse decking, A: amethyst shard, C: electronic circuit, M: machine casing | 1 |
| Seedbed | QSQ / SAS / QSQ — Q: quartz, S: smooth basalt, A: block of amethyst | 1 |
The seedbed is built around a block of amethyst — just as vanilla budding amethyst is amethyst. At the same time, not one greenhouse recipe asks for the thing the greenhouse exists for: shards go into feeding, not into building, or the farm would have to be paid for with the very shortage it mends.
Progression
- Tier: LV, and even that is optional.
- Wakes the branch up:
resonant_shard,spatial_crystal, and through them the Resonance Coil, the
teleport chip, the Lapotron Crystal and the Resonant Crystal.
- Requires a geode found first — the first shards come from there. The greenhouse makes the source
renewable; it does not conjure it out of nothing.
Performance
The only ticking object in a greenhouse is the controller. Neither the seedbeds nor the clusters growing on them have a block entity or a random tick: a farm of a hundred beds adds one ticking object to the world. That is also what makes the rule "it only grows in a formed room" true by construction rather than by a check somebody can forget.
Related
- Incubator — the neighbouring genre: probabilistic instant mutation against
deterministic growth over time.
- Trellis — the precedent for perennial growth with no block entity.
- Reactor Controller — the neighbouring multiblock; all they
share is the geometry of the shell, the scanners differ (a box against a volume flood fill).
Crafting
Shaped Crafting
▶
Greenhouse Controller