Fradow

  • Content Count

    47
  • Joined

  • Last visited

Community Reputation

80 Excellent

About Fradow

...

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Enable
  1. While filling the wiki for some Unusual uses of game mechanisms, Oil Wells and the 10% of pipes mechanisms piqued my interest. This is not really new but nobody seemed to really dig that and a commenter even said “Not worth the effort”. Oh boy, were they wrong (though obviously, that kinda depend on your definition of “effort”). Presenting the self-powered Petroleum Well: What makes that possible Apart from the 10% of pipes mechanism, in pursuit of making the build self-powered, like REALLY self-powered, including the heat source, all pumps and the Oil Well itself, we have to know what we are dealing with. This rests on the fact that you transform 1kg/s of water at 4.179 SHC into 3.33kg/s of crude oil at 1.69 SHC, or the equivalent of 5.628 SHC. Hotter water means more heat creation. Since we are dealing with temperatures above 125°C, heat = power, thanks to Steam Turbines. How does it translate into power? Well, heating 1kg/s water from 95°C to 550°C (number explained later) takes 1 900kDTU/s, while cooling Petroleum from 535°C (again, number explained later) to 125°C takes 2 400kDTU/s. This means we can heat incoming water with outgoing petroleum and still have about 600kDTU/s, or about 600W, left over for operations. That's going to be our absolute limit for everything. It's not a lot, so that means squeezing every last drip of power and optimizing everywhere possible. The Oil Well itself also produces 33.3g/s of 300°C Nat Gas, which can be used as well. It’s pretty negligible though, as it only accounts for 12kDTU/s when cooled down to 125°C. Now on the power consumption side, no matter how you build the setup, you need: - 95% Oil Well uptime => 228W. It’s the average uptime once you factor in backpressure release. - 32% Liquid Pump uptime => 77W. You could do without with some atmosphere heat exchanger, but since it has to be pumped anyway for a Petroleum Generator, there is no point optimizing there - 6% Gas Pump uptime => 15W - Liquid Shutoff => 10W (required to inject 10% packets) That’s about 330W of baseline power consumption, before you factor in a heat source. As for heat source, unless you use the Core / a volcano (or other niche heat sources), the obvious choice is a Thermium Aquatuner. This particular variant of the build requires some space materials and the self-powered part isn’t possible without (unless you don’t factor the heat source in), plus a few other things require Thermium anyway (or would need to be more complex to cool elements before pumping them). That means you have about 270W available for an Aquatuner and the accompanying Tepidizer needed to get rid of excess cooling (since the Aquatuner is used as a heat source, cooling need to be eliminated somehow). Spoiler alert: it’s possible. A big inconvenience is that, while water doesn’t exchange heat with Natural Gas in the Oil Well internal storage, outgoing crude oil does exchange heat with the natural gas before being ejected. This puts a hard limit on how efficient the setup can get. Build presentation A lot of small details need to be done right to have a functioning and optimized build: - Oil Well return feed: a 10% liquid injector is required especially as the Oil Well backpressure can only be relieved when there is liquid over the input pipe (even if it’s not used): if there is no liquid, the Dupe gets stuck mid-animation and nothing is done. - Handling Steam that forms on load: while it doesn’t break anything, Steam will form when you reload. A well placed split-turbine can gulp that down for free and generate power in the process. Some automation is required so that Steam is never pumped. - Extracting all the power: margins are very close, you really need to extract all the heat from the outgoing Petroleum/Nat Gas. This requires 2.5 Steam Turbines. One less turbine to make the build more compact works, but you’ll have a hotter output (around 140/145°C) and not enough power, losing the “self-powered” part. - Insulating the heat exchanger from the Oil Well: to have water as hot as possible exit from the heat exchanger, the last Petroleum tile should be as hot as possible. This means insulating it from the Oil Well room. A perfect solution is a 1g Chlorine layer below the Mesh Tile (don’t put it in the Mesh Tile, otherwise it will break on load). A liquid-gas bypass could probably have been used as well, but I didn’t try it. - Heat Exchanger length: one layer is not enough, even with Thermium/Aluminium (unless it's much longer). Three layers is too efficient and loose some power because it pulses Steam Turbines too often. Two layers is a sweet-spot, and that width is more than enough: there isn't a lot of heat capacity to be exchanged here (a lot less than in a 10kg/s Petroleum Boiler) - Clearance: since Oil Well are in the Oil Biome, just above the Core, clearance will be limited. This is the minimum you can get to keep the build self-powered. You can sacrifice some aspects to gain on clearance, I talk about that later. Result With this build, there is about 16% Aquatuner uptime and 3% Tepidizer uptime, which translates to about 220W. That means about 50W of spare power. In practice, since some heat is transferred to Natural Gas, which is only released every few cycles, the build is slowly loosing power during operation, and there is a spike of power that recharges batteries during and just after Backpressure release. That's why there are several Jumbo Batteries (although that much is overkill, but since they are power positive with Steam Turbines anyway, why not). This spare power is a nice safety margin, and I don't recommend trying to use it for something else. It would be more trouble than it's worth. Materials For this build, I’ve chosen to use Space Materials, which makes it much easier: - The Aquatuner obviously needs to be Thermium to go up to 550°C. This could be replaced by another heat source pre-space, and remove the Tepidizer in the process (which isn't used all that much anyway). - Since a Thermium AT is used, it makes sense to use Supercoolant. Obviously, the cooling loop could be Polluted Water as well, at the detriment of power usage. - The Gas Pump needs to be Thermium as well because Nat Gas is well over 300°C. It's possible to do without by using a Liquid-Gas bypass and cooling Nat Gas before pumping it, but that would alter the design and make it more bulky. - Everything insulated is made out of Ceramic, in an effort to cut down on space materials - The Liquid Pump is Thermium, but could be made out of Steel since the Petroleum is below 275°C (at least on this variant, and all variants that are efficient enough) - The Mesh Tile should be made out of Gold Amalgam to get up to operating temperature faster (lowest SHC) - Everything radiant was made out of Gold, and could be replaced by Iron or Copper. Note that even using Thermium, 1 layer of that size is not enough to get the build self-powered. - Anything that overheats should be made out of Steel. Everything that doesn’t is made out of Gold or Gold Amalgam and can safely be replaced by Iron or Copper. Lead should be avoided because a lot of parts go higher than 330°C. Priming the build There are a few details to take care when building the setup: - 1g Chlorine (or any lower) must be injected at the right place. There is space for a vent, but it should ideally be done after there is already an atmosphere in the Oil Well room. Use a combination of Valve, Shut-off and Timer to do that. - Transitioning from Crude Oil to Petroleum: the Petroleum will push the Crude oil up to the last cell of the first layer, but won’t be able to push the last one. Mopping is required on that last cell. You’ll also need to mop the second layer, otherwise petroleum will stay on top of Crude Oil. This is the reason why the heat exchanger is Dupe-accessible. You’ll also need to separate Crude Oil from Petroleum. A Shut-off left in is a good safety option. - Until it’s up to operating temperature, an external power source is needed. It can be removed once it’s up to operating temperature, as long as the build doesn't stop. For safety, I encourage you to leave it connected. - The heat source should be at 540°C for safety before being at operating temperature. Once it is, you can crank it up a bit until your first cell of Petroleum is around 530°C/535°C. Don’t go too high or you’ll have Sour Gas to deal with. While this particular build is at 550°C, other less efficient builds were as high as 570°C to get Petroleum at the right temperature. What about clearance/space? If you have a lower clearance from the Core, or want to use less space, there are a few trade-offs that can be made at the cost of performance. Any of those trade-offs will give up the “self-powered” part: - Reducing to 2 Steam Turbines will have Petroleum / Nat Gas exiting at around 140/145°C, losing about 100W. - You can actually reduce to 1 Steam Turbine and move the 2 others off-site. This means less cooling used up and slightly more Tepidizer uptime. - You can sacrifice the insulating Chlorine to gain 2 cells of clearance and make the build easier to prime. Make the Petroleum flow right of the Mesh Tile rather than under it. - You can sacrifice one layer to gain 3 cells of clearance. Even if you use a Thermium/Aluminium, this will greatly impact performance - On the other hand, if you have more space, a left-to-right staircase would multiply heat because of this bug, making the build more power-positive. Other possible builds While I’m not going to pursue other builds, I encourage you to try variations using the same principle: - A pre-space build could be made. It’s going to be a bit more bulky (especially to pre-cool nat gas so that a Steel gas pump can pump it), and require an external heat source (core, volcano, metal refinery …). - You can superheat the water much higher (up to Thermium limit) and get Sour Gas. This will result in a very different build. - As you might have guessed, Electrolyzers are also prone to superheated water, and will delete a fair amount of heat. It remains to be seen if this is more efficient than an ATST. Conclusion While it was a fun experiment to design around all those details, I don't think this build will become mainstream. It's a bit complicated, use Space Materials and need some attention for priming. It can fill a niche where you want to tame a single Oil Well and avoid doing a 3.33kg/s Petroleum Boiler (perhaps on DLC?), but if you want to have 10kg/s Petroleumoutput , you'll probably be best served by doing some simple Oil Well tamers and a single Petroleum Boiler, rather than 3 Petroleum Wells.
  2. Is that an exploit? If so, is it still current? If the answer is yes to both, you picked my curiosity. Unfortunately search results don't return any relevant result to that, any chance you could link me the right way? As for other exploits involving Dupes, I thought hard about it but couldn't think of anything else that could be exploited. But you never know when a bug is going to surface that can be exploited...
  3. Indeed, I was pretty sure I was not the first one to discover that, and I'm very bad at searching for prior art. And I'm a naughty boy, except not with Electrolyzers.
  4. Update: in addition to degrading performance, the quick-fix leads to massive Steam/Water deletion in standard Steam Turbine builds. It should not be used as-is, and will not be integrated to Stock Bug Fix.
  5. Yeah the water do loop past the Oil Well, and that prevents if from backing up. I already have working designs of that. It does output some Steam on load, but nothing a well-placed Steam Turbine can't deal with. There are a few other details that require attention, but the design already passed the proof of concept stage. As I said, a write-up is coming in the next few days Good to know, I assumed it behaved like a Bridge and would happily merge packets. Just tested it to be sure, and indeed the automation can be replaced by anything that output a green signal.
  6. While playing around with a certain building (cue upcoming write-up), I accidently discovered (or very probably re-discovered) a simple but very useful design centered around the use of the 10% pipe capacity to avoid state change The 10% liquid/gas injector Proposals for a better name are welcomed. The goal of the design is to inject 10% packets into a line of known liquid/gas, without ever merging with existing packets that could already be on that line. This is achieved by limiting the flow of an input to 10%, then using a shutoff to selectively inject new packets when no packet is detected on the line. To do that detection, an element sensor configured to the element on the line is set up just before the shutoff output. As pointed by @wachunga below, anything that outputs a green signal can be used: Shutoffs behave like buildings and won't merge packets by default, contrary to valve and bridges. With that, you can guarantee a line full with 10% packets, even with an irregular input. What is it useful for? There happens to be a certain building that can take a liquid input at exactly 1kg/s, can output another without any upper-bound temperature, creating heat in the process, and have the bad tendency of rejecting some packets, while requiring liquid packets on its input pipe at all times to work.
  7. This is an intended behavior called temperature clamping. It's explained on the Thermal Conductivity wiki page. It can be abused as well.
  8. The most comprehensive I know of is Hotep Thunderbolt's one (he doesn't come on the forums, but is okay with his designs being shared here). The Integrated rocket refueler Having large LOX/LH tanks, it obviously doesn't emphasis spinning up fast. It has some power-saving by merging the Hydra and the LOX/LH maker, and according to his descriptions, has runned 8-9 hundreds cycles on triple speed without any noticeable issue, including save/load cycles (there is an OnLoad detector)
  9. I finally got around doing a write-up on the previously linked bug: It's unclear to me if it's the same bug or not just from the description.
  10. After spending the week-end on it, I posted a more complete description of the bug on vanilla (since I don't use DLC). Bug should be the same. in both versions of the game.
  11. This bug has also been reported for Spaced Out! I’m reposting here because I’ve taken a bit of time observing details on it, but cannot confirm if those details are identical on DLC (99% chances they are) and the save game provided is in base game. An exploit has been posted, that deletes or create about 1.6MDTU/s to 2MDTU/s in water temperature range. I used that exact build for reproduction and observation. Credit to @ghkbrew for finding this build. Let's start with the bug, visualized: Here is a save file containing it, just un-pause, and the setup will automatically pause a few seconds after the bug happens. You’ll be able to see cold water being outputted from hot water. Piped output bug sandbox.sav At the heart of the issue is what I believe to be a race condition: 2 parts of the game tries to access and modify the same thing at the same time, resulting in both seeing the initial value, but ignoring each other's changes during calculations. Those 2 parts are: The internal storage of buildings (coded in C#, moddable) The temperature calculation of elements (coded in C++, in the Sim, non-moddable) Basically, what happens, with the Water Sieve example: The internal storage has 0kg of cold water The building converts some water, and input 5kg of hot water into the storage During the frame the water is outputted, just before it is taken out of internal storage, the temperature calculation algorithm somehow transforms those 5kg of hot water into 5kg of cold water. That’s the bug. Now you have 5kg of cold water in the internal storage That cold water is outputted to the pipe output during the same frame as temperature calculation, and you know have 0kg of cold water Rinse and repeat What exactly is the bug? It’s hard to say, since it comes from the Sim. The Sim could be using an invalid Mass, an invalid Temperature, both, or a corrupted cache value. While the example exploit shows a build with a Water Sieve, it’s not limited to that, but should include every building with an internal storage and a piped output. I’ve seen this happen with the Desalinator and Oil Refinery as well. The exploit explained shows heat deletion, but you can also create heat by doing the inverse. You could for example get 400°C Petroleum out of 90°C Crude Oil, and there are probably other ways to exploit it that the community hasn't discovered yet. Why is it important? Apart from exploit potential, it happens randomly to players who play the game as expected and don't understand why sometimes the water output of their Water Sieve is widely different from the input, deleting or creating heat in the process. There has been other instances of beginners being hit by this bug. As for the exploit shown, it deletes about between 1.6MDTU/s to 2MDTU/s depending on how close to water temperature range you get. The equivalent of 20 AETN, for the low, low cost of 120W. How to fix that bug? A quick-fix can be done by not keeping a zero-mass object. I’ve confirmed it works, but it’s going to have a performance impact, since it was obviously kept for performance reasons. To confirm yourself, uncomment the commented patch in the provided mod to run any save with patched internal storage. A real fix would be to fix the temperature calculation on internal storage. I suspect something is really off because the bug shows on the UI even when there is nothing being passed through. More technical details. To acquire that many details, I used a mission-specific mod. That mod is specific to the save file included above as it uses hard-coded values to log only what’s relevant. Here is the mod, configured in “logging” mode: Water Temperature Observer.zip Here is the unpolished source file for that mod, which contains, commented out, the quick-fix mentioned above, that remove the instruction to keep zero-mass elements. You need to uncomment and rebuild the mod (note: not tested on DLC/mergedown). The bug won’t trigger anymore with that patch. Patches.cs When we look at the log output, the bug is also very visible, and always happen the same way. Left is a sequence without the bug, and right is a sequence with the bug happening. I've annotated what happens, and circled cold temps in blue and hot temps in red. Special thanks to the modding community for helping me build this mod!
  12. Nice build, but how do you go from 2kg/s to 3.7kg/s? It's the exact same space between doors (it's a 6 cells width room). The 2kg/s output I mentionned was after taking back what's needed to feed lavatories, and is specific to a 0 Athletics Dupe (I forgot to specify that, I'll edit). For the output, things that should make a difference are: the Dupes Athletics. Faster movement means more lavatories use, but a Dupe too fast might go through doors before the Duplicant Sensor activates to close the door. your game performance. Since AI has a different behavior depending on game performance, it will have an impact (good or bad? I'm not too sure, I'd say bad since AI takes more time taking decision when the game is slow) any modification with the automation. If you can reliably interrupt the Dupe more often in a way that reproduce the bug, you can have a better output. I chose to keep the automation simple, I really don't care about optimizing that build any further, as my hope is that it will get fixed, not to exploit it in survival. having a shorter room. But any shorter than that might run into issues because of overlapping Duplicant Sensors or Dupe going through doors too fast.
  13. It's funny that you post about that, I just got started investigating this exploit, that seems related: Long story short, there is definitely something going on with pipe outputs and temperature: I've reproduced the build in the comment that I linked and it also happens, albeit much less reliably, with the Desalinator. Those weird temperature reading you are seeing may very well be are a separate manifestation of the same underlying bug. I couldn't find an obvious bug with code-analysis on the decompiled source, but I'll definitely have fun trying to pinpoint where it comes from this week-end. I'll report if I find anything interesting.
  14. This bug is old news, but somehow seemed to never have been reported. A Lavatory will use input water and produce output polluted water when pathing from the Dupe to the lavatory is interrupted. This produce a 6.7kg of excedent water, which should come from the Dupe bladder, but the Dupe bladder isn't emptied in this case. Exploit This can be exploited to create 2kg/s of polluted water from a single Dupe. I attached a save file with just that exploit on max difficulty. Possible fixes To fix that, a few propositions that don’t seem too hard to implement from an outsider view: The Lavatory should only count a use when a Dupe actually relieved itself. OR A Dupe could “make a mess” just after being interrupted from a Lavatory errand.
  15. This exploit is known in the chinese community, but I couldn’t find any english-language reference. Here is the chinese video used as source material. This exploit revolve around several facts: The main bug: when a Dupe pathing to a Lavatory becomes invalid, the Lavatory will flush, taking in 5kg of Water and outputting 11.7kg of Polluted Water, but the Dupe bladder doesn't get reset. That allows chaining that behavior to create Polluted Water. When that’s used, a Dupe won’t instantly make a mess. There is actually a sizable delay (at least 4 slots) until that happens. I’ve not investigated how long that delay actually is. This allows having a specific schedule where the Dupe can rest and eat. The 30% Stress penalty inflicted by a full bladder can be counteracted by a Morale bonus (20% stress reduction maximum for high Morale) + Tickled Tootsies buff from walking on carpeted tiles (15% stress reduction). By adding flowers for a non-allergic Dupe, you can go up to "Glum" Stress difficulty setting, but if you go up to "Frankly Depressing", you will need to find an additional 10% stress reduction source (for example, by feeding the Dupe Frost Burgers) Here is the prison (I reworked a bit the example from the video): Working details: - During work time, the Dupe will try both lavatory alternately, each time getting interrupted when it gets close to it, triggering lavatories each time. - During Sleep time / Downtime, both doors will be closed so that the Dupe cannot path to lavatories (otherwise, sleep/eating gets interrupted) and will sleep and eat. A 3rd Downtime slot might be needed for Ravenous Dupes. - Lavatories output will equalize to 37°C. It’s possible to delete or create using that equalization effect. Given enough time, unless you are dumping heat or cold, the output will be at 37°C precisely. It’s possible to remove the cot and sleep slots, as the Dupe will take some micro-naps, but I’ve found this does not improve the output, probably because of those naps animations. Removing eating slots will eventually cause the Dupe to die of starvation because, even if they take micro-suppers, they are not enough to sustain it long-term because they get interrupted too fast. Note: on some rare occasions, the Dupe might succeed in getting through the door before it locks. When that happens, the system will take around a cycle to get operational again. To initialize it, you need to prime it with a bit of water, and of course jail a Dupe inside. No other special consideration is needed apart from setting the Dupe on the specific schedule. The Infinite Storage will auto-initialize.The system will be initialized in around a cycle, when the Dupe bladder is full. Running costs: - 120W from the fridge (it can be replaced by a more clever food delivering system if you care) - Less than 60W for about 33% Sieve utilisation plus the other negligible buildings power usage. - Filtration medium needs to be delivered, and polluted dirt/clay can be taken out - Oxygen needs to be piped to the Dupe. And there you have it, your artificial Polluted Water geyser! Edit: Bug report created. It contains a save file on max difficulty, which has not been tested for a long time, but properly demonstrate the exploit.