• Content Count

  • Joined

  • Last visited

 Content Type 




Klei Bug Tracker

Game Updates

Hot Lava Bug Reporter

Everything posted by boiledDupe

  1. I was looking through the decompiled game code (for a mod I'm writing) and if I'm not mistaken I encountered a coding bug. I noticed that the `LogicValueChanged` event args is really a global event, even though subscribers are expecting them to be an instance event. Essentially anywhere where code is consuming `LogicValueChanged.newValue` is not getting what it thinks it's getting (because it could come from another building instance). This can cause other buildings acting on the event fired from another, or running animation cycles that are unnecessary. An example `RocketControlStation.OnLogicValueChanged` only gates the rest of the method if the port id matches. Since the port Id is shared across all instances, the rest of this method will execute for all `RocketControlStations` on the map.
  2. Sure it's a bit complicated tho: Here we have a "clock". It's a timer sensor with a counter in advanced mode that counts to two. Each green pulse that this clock fires is used as signals for almost all the components. The timer sensor is defined with .1 and .1 (to fire a green pulse every once every .2s). The signal counter for the clock makes sure the green signal doesn't last .1s The next part of the diagram is the random number generator. Taking in the clock signal, each signal counter is set to a different relative prime number. In this case, 2,7,5,9 that will generate a somewhat random number of green signals. Each of those are set to a corresponding bit writer B The next part is the trickle down effect (below). It uses a 4-bit memory here technique to store / set the value above. This takes the most amount of space to completely fill out the pixel packs. I have 20 pixel packs tall, and this requires 4 wide, so it becomes very unwiedly. Lastly for the top is the takeoff signal. This is green once the rocket is launched and it has a feedback loop to make the random number bits to stay on. This is using the same technique as the 4-bit memory above, and this causes the pixels to slowly go back to the green/on state and stay there. The last part is the numeric display: This part is a bit of a mess, but it really boils down to hard coded series of bits to make each of the images for the count down. Those are then processed via a signal selector that uses the same clock mechanism (in the center) with two additional sequence counters to drive the signal selectors. That collection of timers/sequence counters and signal selectors drives the display to do 0-4 In the top right the signals to the pixel packs can be overridden with some or gates to make them all "appear on". This is useful when the countdown should not be displayed. The Top and gates, atmo sensor, and sequence counter is general rocket automation to determine when to trigger the rocket and start the animations. There's one more sequence counter to the left of the pixel pack that drives the countdown It's connected to the rocket ready to launch signal. Once green, the gantry retracts, the countdown starts, and the "Launch Rocket" signal is set to Red. This allows us to keep the dupe hostage until the countdown finishes at which poi nt the "Launch Rocket" signal will go back to green. The other junk in the top left is the hard coded bit array. A few or's, etc to just condense the signals being sent to the signal selectors. Here's a save copy for deeper referenceThe Unstoppable Beyond Cycle 51.sav Hope this helps! Also, I'm currently working on some mods to make this a lot better and not require so much space to accomplish the same thing.
  3. I decided to create an over the top pixel animation for rocket launching sequences. Not very practical since it required a lot of animation wire and space to wire it up correctly. Anyway I thought I'd share, LMK what you think! Oxygen Not Included 2021-10-02 20-51-44.mp4
  4. Maybe a building to convert radbolts into a solid and fed to the plants / used as a fertilizer. The current mechanism of having radition emitting radbolts or nuclear waste, etc. makes it less accessible early.
  5. Menu to open up the build items was missing. Keyboard shortcuts to toggle still worked, same as click/tool tips - so it was a render bug. Toggling `esc` menu also didn't correct it as it does other UI glitches
  6. I like just having a total weight limit that = buildings+debris+dupes. To avoid piping tons of liquid/gasses, among other things. Then you can still have storage bins, but have to be careful not to fill them, etc. Also avoids having the rocket from hell with 20 dupes in the crew...
  7. Yeah, just need a way to close the "dump everything in storage bins" style exploit otherwise why have cargo holds. Maybe a weight limit for the spacefarer module - or limit it to one storage bin?
  8. Or allow having multiple spacefearer modules that allow dupes to go from one to another (if adjacent) through a top/bottom hatch. Then you could have your rec building in another module - but I do like the idea of a space-only rec building (maybe low power consumption too) like a ball pit.
  9. Yeah makes sense. What makes it slightly frustrating is that if I want to do it the "fancy" way with automated loaders, then I do need something conductive to reduce the building heat that they generate (and by extension then the food within them). I actually put back in the pre-fridge exchange in my blueprint as that is a cost-effective way of cooling down the food prior to the deep freeze room. The game really wants me to dump it on the ground as debris and call it a day - but IMO this feels backwards. The current setup/needs just feels a little broken atm.
  10. Yup here's a screen shot of my blueprint (with oil in the lower gap. The thing I didn't realize is that the room temperature matters & not the food temperature for the deep freeze buff. I can now remove the "pre-refrigerate phase" - so thanks for sharing! That also removes my main criticism (on how comlpex it is would be to cool down an item of food to that temperature, esp with item combination (two 1kg bbq becomes one 2kg bbq item with temp averaged). Some of my other criticisms still remains wrt to the loaders. I'm personally not a big fan of the diagonal grab, as IMO it feels a bit cheap.
  11. I have debug enabled on the machine, and prior to this happening I hit some short cut (maybe backspace) to disable fog of war, and that maybe created a large image? Since then I have a newer update installed, and can no longer reproduce. I took a look and was only able to find ~600-700kb png files in the save folders.
  12. I'm having a bit of a hard time making a deep freezer box, and for the issues I'm addressing I wonder if it's worth the effort. Food in a -20 Celsius CO2 box takes a long time to cool down. I can use metal tiles and a heat sink to cool the food prior to drop - or another room with H2, but just seems overly complicated In my current setup I pre-refrigerate the food coming in as the fridge does a good job of bringing it down to 1C quickly Fridges in a cool box warm food up to 1C if the food was colder It's difficult to work with Conveyer loaders (high mass intake) and shipping filters (lacking support for multi select of food types) making it a challenge to ship the right amount of ingredients to cooking stations vs mess hall. BBQ is a good example where it could be turned into surf n turf or eaten outright. I prefer the closed box approach vs dupes grabbing things diagonally or opening up the box to dupes. With a shipping loader, it will make it difficult to use the automation of Fridges (where I'd like to store most of the food) to react to oversupply (like shutting down a farm, or allowing/disallowing BBQ for consumption in favor of burgers) If the food is unreachable to a dupe it's difficult to understand how much food is in the colony. Here's an early design blueprint I have, and I know the challenges and how I can make it better (bigger heat sink, smarter automation for delivering food to cook stations) but it does start to fell more like a chore to build all that out esp considering in the real world I'd just have a true freezer. Some suggestions: Have a freezer building, but still require a sterile environment to work correctly. Increase the conductivity of food, so that it doesn't take ages to cool down in CO2 Allow the use of multi select shipping filters Include unreachable food as a subcategory of calorie metrics Disable the pre-filling of Conveyer loaders when disabled and/or allow setting the max size of the loader.
  13. Here is the stack trace, but I can repro it consistently by clicking on "load game" from the main menu. Texture has out of range width / height at LoadScreen.SetPreview (System.String filename, System.String basename, UnityEngine.UI.Image preview, System.Boolean fallbackToTimelapse) [0x00000] in <f9baef9e89cf46d89f61eedc4adbd93b>:0 at LoadScreen.AddColonyToList (System.Collections.Generic.List`1[T] saves) [0x00000] in <f9baef9e89cf46d89f61eedc4adbd93b>:0 at LoadScreen.RefreshColonyList () [0x00000] in <f9baef9e89cf46d89f61eedc4adbd93b>:0 at LoadScreen.OnActivate () [0x00000] in <f9baef9e89cf46d89f61eedc4adbd93b>:0 at KScreen.Activate () [0x00000] in <6a81623675ea4347b1cfdd3156c4d89d>:0 at MainMenu.LoadGame () [0x00000] in <f9baef9e89cf46d89f61eedc4adbd93b>:0 at KButton.SignalClick (KKeyCode btn) [0x00000] in <6a81623675ea4347b1cfdd3156c4d89d>:0 at KButton.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) [0x00000] in <6a81623675ea4347b1cfdd3156c4d89d>:0 at UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) [0x00000] in <04d0cd30fbf9474897ce2cf447facfe7>:0 at UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) [0x00000] in <04d0cd30fbf9474897ce2cf447facfe7>:0 at UnityEngine.EventSystems.StandaloneInputModule.ReleaseMouse (UnityEngine.EventSystems.PointerEventData pointerEvent, UnityEngine.GameObject currentOverGo) [0x00000] in <04d0cd30fbf9474897ce2cf447facfe7>:0 at UnityEngine.EventSystems.StandaloneInputModule.ProcessMousePress (UnityEngine.EventSystems.PointerInputModule+MouseButtonEventData data) [0x00000] in <04d0cd30fbf9474897ce2cf447facfe7>:0 at UnityEngine.EventSystems.StandaloneInputModule.ProcessMouseEvent (System.Int32 id) [0x00000] in <04d0cd30fbf9474897ce2cf447facfe7>:0 at UnityEngine.EventSystems.StandaloneInputModule.ProcessMouseEvent () [0x00000] in <04d0cd30fbf9474897ce2cf447facfe7>:0 at UnityEngine.EventSystems.StandaloneInputModule.Process () [0x00000] in <04d0cd30fbf9474897ce2cf447facfe7>:0 at UnityEngine.EventSystems.EventSystem.Update () [0x00000] in <04d0cd30fbf9474897ce2cf447facfe7>:0 Build: U34-477203-SD
  14. The gulp fish excreted water and was able to freeze itself in place
  15. Prob not. The exploit "splits" one 1kg seed into two seeds (999g), (1g). The 1g seed then is perfectly viable to plant. If you feed them to pacu I imagine they still have a KG to Calorie conversion.
  16. I see, it uses a mechanism to "split" the seed into two containers (based on capacity restrictions), and then you replant the "smaller" seed. Rinse and repeat. Interesting exploit. Maybe the growth rate should be proportional to the percentage of seed planted? Plant 10% of a seed, and it takes 10 times longer to mature
  17. You could detect the radiation of a collided radbolt (therefore identifying that it's full), and allow dup entry. dup entry is disallowed once they leave the building
  18. Hi, I'd like to start modding, but I saw that you recommend decompiling. Why not just publish your symbols somewhere and I can skip that step? If you aren't obfuscating your code then there should be little concern of publishing them. I'd also like a small high level overview of the architecture / organization. The same spiel you'd give to a newly hired engineer. It would be also nice to have a few sample trivial mods in the vein of changing text / color, new component, etc. Any architecture pitfalls / known challenges would be good to know too like "this area of code will change a lot w/new DLC", etc.