Greenhouse Controller

Greenhouse Controller

alaindustrial:crystal_farm_controller
AgricultureLVImplementedagriculturecrystalamethystmultiblockgreenhousefarming

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:

BlockRole
Greenhouse Deckingshell: floor, walls, ceiling — everything that is not glass
Greenhouse Glazingshell: the glazing, which merges into a single sheet once the room forms
Greenhouse Doorthe way in; closes itself behind the player
Greenhouse Controllerthe brain: scans the room, drives growth, reports what is wrong
Crystal Seedbedplaced 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:

ParameterValueconfig key
Smallest volume27 blocks
Largest volume4096 blocks
Maximum distance from the controller24 blocks
Rescan interval40 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:

frame, and a finished room reads as one surface instead of a stack of crates; along the outline the frame stays, tracing the silhouette;

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.

StateWhat is reported
Formedvolume, seedbed count, whether there is water
Not closedcoordinates of the missing block if it can be worked out; otherwise just "not closed"
Too smallno coordinates
Controller not in a wallthe controller's coordinates
Second controllerthe 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.

climbs as it fills.

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

FieldValue
Roleconsumer with buffer, optional
Buffer (EU/FE)4000
Max input (EU/FE/tick)32 (LV)
EU/FE per growth event64

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.

ConditionsDivisorReal timeMinecraft days
Nothing270≈ 1 h 30 min4.5
Power only135≈ 45 min2.25
Sprinkler only135≈ 45 min2.25
Water only90≈ 30 min1.5
Water and power45≈ 15 min0.75
Water and sprinkler45≈ 15 min0.75
Power and sprinkler67≈ 22 min1.1
All three22≈ 7 min0.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.

ParameterValueconfig key
Growth attempt interval100 ticks (5 s)
Base divisor270
Speed-up from water÷3
Speed-up from power÷2
Speed-up from the sprinkler÷2
Solution per growth event50 mB
Buds per shard1

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.

ParameterValueconfig key
Auto-close delay100 ticks (5 s)
Recheck for a blocked doorway10 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.

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.

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

BlockHardnessBlastToolNote
Greenhouse Decking3.06.0pickaxeformed/edge properties
Greenhouse Glazing3.06.0pickaxe, formed/edge properties
Greenhouse Door3.06.0pickaxe, broken by a piston
Controller3.06.0pickaxeformed property, horizontal facing
Seedbed3.06.0pickaxeamethyst 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

WhatPatternOutput
Greenhouse DeckingTGT / GTG / TGT — T: tempered iron plate, G: glass4
Greenhouse GlazingGGG / GTG / GGG8
Greenhouse DoorGG / GG / TT — G: greenhouse glazing2
ControllerKAK / CMC / KKK — K: greenhouse decking, A: amethyst shard, C: electronic circuit, M: machine casing1
SeedbedQSQ / SAS / QSQ — Q: quartz, S: smooth basalt, A: block of amethyst1

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

teleport chip, the Lapotron Crystal and the Resonant Crystal.

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.

deterministic growth over time.

share is the geometry of the shell, the scanners differ (a box against a volume flood fill).

Crafting

Shaped Crafting
Greenhouse Decking
Amethyst Shard
Greenhouse Decking
Electronic Circuit
Machine Casing
Electronic Circuit
Greenhouse Decking
Greenhouse Decking
Greenhouse Decking
Crafting Table
Greenhouse Controller
Greenhouse Controller