Questionable Contraptions

Oxygen Not Included226 views3 favorites16 min readby SalmonUpdated Apr 3View on Steam ↗

Plant Mutations

Back Ground:
There is a maximum 80% chance that a plant can mutate that is determined by the max radiation a plant can handle. The radiation is checked only at the time of harvest, and only the bottom of the plant (the 1 tile above a farm plot) is used.
For example:
Sleet Wheat & Gas Grass have a max radiation of 12200 Rads / cycle. So say the tile at the base of the plant has a radiation of 2600 rads/cycle, then the chance to mutate is:
2600 / 12200 * 0.80 = 0.17 * %100 = 17% (remember this can't exceed 80% because of game code)

Also important, is the agriculture skill of a duplicant. If a seed does not drop, then there is nothing to be mutated. There is a base chance of 10% for a seed to drop, increased by 3.3% for every level. So at lvl 20, there's a 76% to drop a seed, and at lvl 27 (acheivable with Bionic dupes) there is a 99% chance.

Basic Mutator:
Here is a basic setup to mutate plants. Simply stack radiation lamps and turn them on only when a dupe is harvesting the plant. It will turn on the plant is being fertilized but not nearly long enough to kill the plant from the radiation if it were to high like for this Alveo Vera.
And here the chance for each mutable plant to mutate in this setup. (Orange = Base game, Green = SO, Blue = FPP, Purple = PPP)

Getting Silly:
Instead of simply placing plants the proper distance away from a research reactor, or even making a dedicated reactor that stops and starts much like the previous design, I find using colliding radbolts for our radiation source to be the coolest.
The Theory:
When radbolts hit other radbolts they release 33x their combine value in rads. so if we collide two 100 radbolts we get 6,600 rads/cycle for ~ 1 second.

100 Radbolts (RB) is the max amount a RB chamber can shoot out from storage. But we can combine any number of RB into one by shooting them into the same RB reflector pointing at itself.

When the reflector is sent a red signal, it will stop reflecting and allow the now mega RB to pass and collide with another RB preciously when we want it to.

So I made this:
Gif of it running: https://www.reddit.com/r/Oxygennotincluded/comments/1lwsidh/guarantee_mutated_plants_with_the_rad_bolt/
It does exactly what is described above, but includes timers for growth speed and harvest timing, logic to count the number of radbolts, and also a way to mutate seakomb by removing the water that would absorb radiation. The last feature was just because I could, not because you'd want to.
Automation:
Line Color
Function
Yellow/Lime
A cycle sensor set to be green for the amount of cycles it takes for plant to grow, and red for when its harvestable. When Green, dupes can pass by without triggering RB to fire.
Green
After the dupe waits 3s, and the cycle sensor is red, a signal is sent to both RB Chambers to have them start firing.
Orange
RB Sensors and a Signal Counter count to 3 RB. At 3, the output of the Signal Counter is held for 10 seconds (long enough last past the harvest), the Signal Counter resets, and the RB Chambers stop firing.
Blue
When a dupe goes to harvest a plant they stand on a weight plate delayed with a filter gate for 0.1s (1.3 for leftmost gate) (based on position and speed of the dupe harvesting but also serves as a 1 way gate for signals), after which the signal turns off the RB reflectors and sends them flying.
Pink
A red signal triggers both reflectors to turn off and allow RB to pass. The extra reflector between the two help with the timing so they collide right on the plant.
No Color
Lights to increase speed of harvest. This does affect timings.
Manual switches to release RB if it malfunctions.
Disabling the Greenhouse so its not used, but plants inside can still be Farmer's Touched.
Sun Lamp For Gas Grass.
Door To remove water for Sea Komb.
Circuit to stop RB production from Shine Bugs when RB Chambers are full.
Why Do this?:
Because we are collecting RB the whole time the plant is growing, and their final radiation will be multiplied by 33, for Sleet Wheat, we would only need to collect (after initially filling the RB Chambers):
12200 Rads/Cycle / 33 / 18 cycles to grow = 20.5 Rads / Cycle
Using similar math we can find value of the 3 RB we are shooting (set inside the RB Chamber)
12200 / 2 (two RB Chambers) / 33 / 3 = 61

Note:
Only 1 dupe can do the harvesting and all timings are based on how fast they harvest (because that determines when the RB collide via the Blue circuit). So I'd recommend saving right before a harvest and then reloading if the timing wasn't correct. I'd also recommend Bionic Dupes because they won't lvl up and alter the timing.
I only show the different setups to grow different types of plants for the explanation, if this is only used for 1 planter box it becomes much more automatic because you don't need to change the timing between harvests. I also don't show any of the cooling loops you'd need to implement.
I use Shinebugs for the radiation source but you can use any other source like Wheeze Worts.

Digital Logic

In my theory crafting for trying to get harvest times synced up automatically, I thought I could use a 4 bit subtractor to figure out the the time till harvest based on some shared clock. While the idea was a bit much to implement, I did make the components.

4 bit counter
Because You can't mirror components, here are a left and right counter - both have the same output.
4 bit Subtractor
This is a subtractor. In this image it represents:
1100 - 1111 = 1011 (or) 15 - 12 = 11 (11 = -3 in unsigned binary)
Its not a traditional series of subtractors for each bit, but instead holds the borrow bit in memory as each bit is cycled through. I'll explain useful parts of this circuit later but as a whole its useless in ONI so I wont go through it.
Single Pulse Counters (rising and falling edge)
To emit a single green pulse there are 2 ways, detecting when a signal goes red to green (rising edge) or green to red (falling edge).
Using a signal counter set to 1, and in advance mode. we can get a rising edge detector.
For a falling edge detector we can simply negate the rising edge version.

We can also combine the two to create a dual edge detector. This is what I use in my subtractor to cycle through the bits by clicking the switch only once and not twice for each bit. And can be used in the 4bit counters for the same reason.
Memory
Memory is useful for when buffer gates + filter gates would become cumbersome.
Signal Counter and Memory toggle
The signal counter and Memory toggle do the exact same thing, they just have different footprints. i.e a signal counter with max count of 1 will behave almost the exact same way. Both will output green if they receive a green at the input, and output red if they receive green @ reset. But a memory gate will turn back to green as soon as the reset signal returns to red while a signal counter needs to have its input go back to red, then green to ouput green again.
Memory with Ribbons
The above does not work if you have a ribbon with multiple signals on it, because unlike other components, the signal counter and memory gate (along with the buffer gate) only read and write the first bit.
So instead we can use a multiplexor or an AND gate.
Both function the exact same. The only difference could be a small delay in the AND gate memory because the turns red 1 bit at a time because of how I setup the reset (a ribbon writer that continually writes to the next bit). The Multiplexor memory is from KBN on the ONI Forums.

Super Ranching

Separating the baby from the mother
Because baby critters do not produce eggs, and have a smaller metabolism (even smaller when cramped) it can be more food efficient to only let them into ranches when adults
Dartles and Dreckos (not pips)
1 Tile high Critters (yes pips)
The door periodically closes and causing the adults to pathfind to a tile where they don't drown while the babies stay put. For pips, just make sure the left wall is a liquid tile - like the side of the dartle dreck ranch - so they don't climb out.
2 Tile high Critters and Spigot Seals
The pneumatic door periodically closes dropping the adult critters. The spigot seal version has some variance in when they are dropped because the adults can jump back before the door closes - spigot seals can't drown.

2x2 Critters

Pacu Sorting
To keep the Pacu in 1 tile, we can surround them with .1kg blobs of liquid that they can't swim into. This also keeps our fish feeder from flooding and taking overpressure damage
The tenth egg a pacu lays is one that will be an adult when the first pacu dies. So We count 10 eggs and put it in a pile. When it hatches, it enters one of the fish traps where it stays until it matures. Once it does, it'll actually make the trap think there are no critters in it for a moment and we use that to drop it and open a door below so it falls down, and then flops to the water. Its not perfect, a more regular pacu sorting could be better, but this is not called the normal contraptions guide.

Shoving Critters in Small Ranches
If you ever thought having a dozen 96 tile ranches took up to much space, you can use 1 ranch with a wall that you can melt and resolidify. Originally done with Refined Phosphorus, with the addition of resin from PPP (gatherable from Lura plants or shine bug eggs), we can make it easier and at room temperature. Another bonus is that resin forms a solid tile at only 25kg where as phosphorus forms a tile at 161kg. That difference in mass means it takes much less energy to change phase.
In this setup we have 2 tiles of 30kg of resin, and 1 tile of 0.1kg phyto oil (because it has a very low SHC). As the cycle sensor goes between green and red signal, the resin will either melt (due to warm water) or freeze (due to cold hydrogen). I have the sources for both detached to show that you could easily stack this design - using the same hot and cold source. Also, we do not care how cold the H2 gets so we don't need automation, as well as little to no cooling because of how infrequently it runs (a little bit every cycle). Same goes for the liquid tepidizer.
My Magnum Opus: The Dartle Dropper
Dartles can sustain their population as long as they are groomed. While my original idea was to groom them continually then count which ranches all laid an egg then drop them into a pit of Rhexes - which created a very complicated and 80% functional design - by instead using husbandry skill of 20 or more you can guarantee they lay an egg with 1 groom. So with a couple of timers, door droppers and the above contraptions you can build this.For a gif of it working you can check out my eariler reddit post.https://www.reddit.com/r/Oxygennotincluded/comments/1mnkcra/infinite_dartlerhex_ranch/
The automation, from left to right is as follows:
  • The baby critter storage automation ensure that ungroomed adults don't escape with the groomed critters.
  • The main automation consist of a timer that counts to 5 cycles twice (the left signal counter). After the first 5 cycles the door to the chamber is closed via the memory gate. This prevents dartles from entering and getting eaten before they lay an egg. After the next 5 cycles the door crusher starts and does not stop until a dartle has not stepped on the weight plate for 100s. The timer starts again when the first dartle of the next batch steps on the weight plate.
  • In the Rhex pit, the critter sensor is meant to stop the grooming of dartles if it coincides with a rhex grooming time. And of course we have pump for melted brine and the resin melter shown previously.
  • The wattage sensor so everything can run on the same wire without overloading. It makes the tepidizer wait until enough space is available on the wire.
There are things that could / should be added. Currently there is no cooling loop or way to manage the Rhex population. I only care about the brine so they can eat each other as far as I care, and it doesn't matter if they are crowded because of the resin melter contraption.

Glossy Dreckos

I've seen Glossy drecko farms done three ways.

  1. You make a box and the time they spend in hydrogen is determined by their time on the roof for the most part if you bother putting H2 in at all.
  2. You optimize the ranch so dreckos spend as much time as possible in H2.
  3. You use automation to guide the dreckos to their food, sometimes using 2 rooms.
In the design below I use the last method to make a satisfying and compact ranch.
.Its very simple, they can only path-find to the right when the door is open, but always can path-find to the left to leave. The door opens once a cycle, and because the dreckos are hungry by then, they go straight for the food so we open it for only 5% a cycle - they can leave regardless of the doors state and will never re-enter till the door closes.
I use a NOT-gate to disable the shearing and groom station while the door is open to make sure ranchers don't distract the dreckos while they eat.

Ez Lura Beeta Farm

Seeing other people's Lura farm design with Beetas made me think the temps were harder to manage than I thought. But you don't actually need to manage temperature much at all.


This design is like a lot of others, but we really only care about keeping the beetas in vacuum. Only if the environment is exactly 10 degrees would both the Luras and Bees be live. So here, we are just betting on the Bees hitting a Lura before they die.

But, if we keep the ends open - because we don't manage the Lura temperature - then the Bees will naturally pathfind out to sting nearby critters and dupes. And as long as you have 12 Luras to eat 1 bee per cycle, then they will never actually escape. (okay they can escape on faster speeds in this setup)

Flydo and Sweepy Pump Magma

Flydos can't use a pitch pump directly, but we can use a Sweepy to mop up liquids for us that they can deliever. (and an auto sweeper can't). Two Flydo's mean that they can replace each other's batteries, and a vacuum means they can be made out of regular plastic.
Power Calculation
*W = J / s
** s = J / W
An Eco battery uses takes 144,000 J to charge (480 W / 300 s) and gives 120,000 J in return.
A Flydo uses 50 W .
So a Flydo will last 4 cycles on 1 Eco Battery. Giving a total energy used per cycle of 144kJ / 4 cycles = 36,000 J.

A Liquid pump use's 240 W, over a whole cycle [240 * 600] is 144000 J.

Given that that pipes only carry 10kg of mass / s, even though the Flydo has more throughput, the pipes limit us to the same mass flow rate. The Flydo mass flow rate is a little as a result because of its travel time.

A Sweepy mopping uses 27.14 W. If we ignore it charging when it doesn't need to at night and assume it always working, then it uses ~ 16,284 J / cycle.

Now, if we ignore the travel time and that pumps will pick up smaller than 10kg packets of liquid, then in our setup with a Sweepy and 2 Flydos and a Seepy dock, a pump would have to be limited to 3678.5 kg/cycle of liquid pumped to be as efficient as the 2 Flydos and Sweepy. [ 2*36000 + 16284J / (x) = 144000 J / (6000 kg per cycle)].

Actually testing it, the Flydos and sweepy only pumped 57% of the mass compared to the pump. Factoring that in and we get x = 6452 kg / cycle which is not possible, meaning that pumps will always be more efficient than our robots. But by how much?
Flydos: 25 J / kg [2*36000 + 16284 / 6000(.57)]
Pump: 24 J / kg [144000 / 6000]
We are still assuming full 10kg packets from the pump and that the sweepy is always drawing max power (the robot not the dock).

Thank to Nigit for teaching that Flydo can use pitcher pumps, but they first have to take up some amount of liquid from the sweepy dock, then they can use the pump to fill up to 200kg (their max carry weight is 400 kg but when delivering to bottle emptiers or drainers they only do trips of 200kg it seems). This does not seem like intended behavior so it may be fix in later updates (tested in patch 707956).
But with this improvement to their throughput, their efficiency would only improve, probably past liquid pumps.

Flydos for Off-gassing Polluted Water

As we saw before Flydos will drop off liquids from sweepy docks to bottle emptiers / drainers. By simply putting a mechanized airlock underneath them, the Flydos will try to pathfind through it for some reason, disabling the building, cancelling the errand, and dropping the bottle.
Bottle emptiers seem to just work. For bottle drainers, the tile above it must be covered by a block.
This worked for me regardless of what side of the door they sit on top of.
Also important is having the pneumatic door set to not allow Flydos to go through, and that the sides of the mechanized door have tiles so they don't leave diagonally (bypassing the pneumatic door permissions)

This guide was created by its original author on the Steam Community. Are you the author and want it removed? Request removal.