Fission Reactor Preserves Heat After Blowing Up
EnderLord0042 opened this issue ยท 7 comments
Issue description:
If you set the fission reactor to burn fuel very fast, and its temperature climbs to an insane level, then it will melt down. However, if you rebuild another fission reactor in the same exact spot, it will be considered the same fission reactor. This will preserve the amount of Fissile Fuel it contains, but it will also preserve the temperature. This can cause a second reactor to melt down without even being turned on.
Steps to reproduce:
1.Build a fission reactor with a decent number of fuel rods, Infinite Water, infinite fissile fuel, and infinite waste disposal.
2.Set the fuel to burn at the maximum speed for your reactor (depends on the number of fuel rods)
3.Let it melt down
4.Rebuild the same reactor, and watch it melt down without being turned on, as temperature is preserved.
Version (make sure you are on the latest version before reporting):
Forge: 1.16.5-forge-36.0.46
Mekanism: Mekanism-1.16.5-10.0.21.448
I just hit this one too, it's glaring nasty / surprise behavior!
Per convo with Thiakil tho, it doesn't really work to just reset the temp when a meltdown happens - the meltdown happens over a fixed number of ticks, isn't always catastrophic, and will not always result in an explosion / breaking bricks. (Tho, for most reasonable config settings it probably will!)
It is absolutely the case that from the user perspective (and mine, before I read code), the interpretation @orchidalloy gives ("obviously not the same reactor") is totally reasonable.
In my case there were only one or two pieces of casing left....
Something like the following logic may be in order: if, at the end of the Meltdown object lifecycle, some number of blocks (perhaps one, perhaps more?) have been removed, suspending the multiblock - the reactor is considered "destroyed". At this point the multiblock state could be deleted. Alternatively - the reactor switched to the "off" or "SCRAM" state, and/or the damage and heat capacity state reset to nominal/ambient/merely near-catastrophic. Either of these would prevent the unexpected behavior.
It might also work to have the reactor multiblock state keep track of its last update tick time, and if it has been suspended due to not being formed after a meltdown, to gradually return to a "reset" state, just as the dissipating radiation is leading the user to the expectation that the event has ended.
The fuel should also be lost - that's what a meltdown is, by definition, after all. Right now it keeps on burning in a normal way after "melting down", as if nothing had happened. (Maybe in the far future it would be fun to have an option to add persistently and highly radioactive "Corium" blocks / radioactive lava variants which need to be carefully abated before rebuilding there?)
One of the above mitigations should certainly happen at very least in the case that all logic controllers are destroyed - in that case I think there is literally no way to rebuild the reactor without some chance of it immediately melting down again, since a tick will surely pass with the meltdown RNG roll condition being satisfied on "rebuild".
Alternatively, give users some warning or indication that this is about to happen (perhaps by always rendering the damage state of the reactor somehow?) It can take a long time to rebuild after a meltdown - the parts are expensive - and to have them all vanish again rudely to a nonsensical and unexpected second blast without even fueling or turning on the "new" reactor seems capriciously and drastically unfair. It really felt like it put me off of playing this mod, tbh.
If any of these fixes seem sensible, I'm happy to implement them, btw.
(As a side note, it seems wacky to me that you can even break a running reactor at all without causing at least a radiation leak - and just reform it in the state it was broken - I get how multiblocks are functioning code-wise, but of all the things that are "radioactive inside" and sensitive to breakage, this morally seems like it ought to be the big one....)
This is why it's not even fun to have reactor explosions turned on in the mod. Radiation is good enough of a punishment, but then you also have to rebuild your base, spend the materials for a brand new reactor and it can't even be in the same place because it will explode again instantly.
You can design a reactor that is completely immune to meltdowns through redundant safety systems, and that's fun, but beginners don't have this knowledge and are punished for experimenting by completely losing all of their work and progress. You practically need to test in creative mode beforehand or follow an external tutorial.
It's just not a well thought out aspect of the mod. Logically it makes sense to design nuclear reactors in a game to explode dramatically like Chernobyl, but gameplay-wise it takes away from the experience way more than it adds. You still need risks and consequences to make it fun, but it's often too severe.
It was totally fun the first time it exploded! (due to some power switching logic for coolant pumps failing with a faulty/undertested auto-off redstone circuit). I also liked seeing how much quicker I could build it the second time, after a bit of progress.
The "reactor is suspended in the about-to-explode state in a pocket dimension after it exploded and reappears in place of the new reactor you just build making it explode again within a moment of placing the last block, which would otherwise be a fine moment of redemption" - total nonsense and not so much fun.
Just to add to this, it not only preserves the heat but the damage state. I'm currently testing with MekanismGenerators-1.16.5-10.0.21.448 in creative, made a relatively simple setup, pushed it to explode and rebuilt exactly. The newly formed reactor has a 230%+ damage value.
Brief summary of the above commit that got linked to this of the behavior/changes I made that will be included in 10.1 for a fission reactor's meltdown:
- Release the correct amount of radiation instead of at least double the amount, and even more if you have "bad" RNG
- Not persist the waste in the reactor if you rebuild it (as it was released during meltdown)
- Disable itself so it doesn't automatically reactivate if you rebuilt it
- Reset the temperature of the reactor to ambient
- Lower the reactor's damage to 75% (this percentage is configurable)
I don't think this is a bug, but I will put it on the list of things to discuss with aidan if we want to just reset the temperature + damage when it enters a meltdown or not.