Page 1 of 1

[0.15, 0.16] Nuclear Fuel

Posted: Sun Apr 30, 2017 10:51 am
by GotLag
Mod Portal

This mod is an attempt to make the fuel cycle more interesting by changing several recipes and replacing the Kovarex Enrichment Process. It is still experimental and I expect recipes will need some adjustment. All feedback is welcomed.

Summary
Reprocessing spent fuel yields plutonium, which can be used to create nuclear weapons or breeder fuel cells. Breeder cells burn up U-238 faster than standard uranium fuel, but when spent breeder cells are reprocessed, they yield much larger quantities of plutonium.
Kovarex Enrichment has been replaced by MOX fuel - I have simply renamed the technology and disabled the original recipe, so that if you have researched it your time and materials have not gone to waste. MOX fuel is simply an alternative recipe for uranium fuel cells, but it uses plutonium instead of U-235, and only 9 U-238 instead of 19.

Using only uranium fuel will lead to a surplus of U-238 (which you might want for making turret ammo), using only breeder fuel will lead to a surplus of plutonium (which you might want for making nuclear weapons), using breeder and MOX cells will get about 50% more energy from your U-238.

Changes & Additions
  • Nuclear Power
    Uranium mining and enrichment is unchanged from vanilla: 1 U-235 combined with 19 U-238 yields 10 uranium fuel cells.
  • Nuclear Fuel Reprocessing
    Reprocessing 5 spent uranium fuel cells now has a chance (currently 25%) of producing 1 plutonium, in addition to the normal U-238.
    1 plutonium + 19 U-238 produces 10 breeder fuel cells - these only provide half as much energy as uranium cells.
    Reprocessing 5 spent breeder cells produces 2 plutonium and a 50% chance of 1 U-235.
  • MOX Fuel
    (Replaces Kovarex Enrichment Process technology)
    1 plutonium + 9 U-238 produces 10 uranium fuel cells.
  • Atomic Bomb
    Atomic rockets now require 5 plutonium instead of 30 U-235. The purpose of this change is to force nuclear weapons production to require an operating reactor, rather than simply mining and processing uranium. The precise recipe is subject to change.
Future Plans
  • Exciting plutonium-based armour power source to complement or replace boring fusion reactor equipment
  • Move breeder cells and reprocessing to new technology
Version History
  • 0.1.3 - 2017/12/24 - Tooltips no longer show spent fuel as an ingredient for fuel cells (thanks to chlue for the fix)
  • 0.1.2 - 2017/12/18 - Moved new "nuclear fuel" item from Kovarex to Rocket Silo tech and fixed migration
  • 0.1.1 - 2017/12/16 - Update to Factorio 0.16
  • 0.1.0 - 2017/04/30 - Initial test release for 0.15

Re: [0.15] Nuclear Fuel

Posted: Sun Apr 30, 2017 12:06 pm
by Sedar
Great idea. Very similar to the Nuclear mod with which I played in 0.14. But I have several suggestions.

GotLag wrote: Nuclear Fuel Reprocessing
Reprocessing 5 spent uranium fuel cells now has a chance (currently 25%) of producing 1 plutonium, in addition to the normal U-238.
Why use "a chance (currently 25%)" if you can multiply х4 the quantity of ingredients? This is desirable, but not critical part.
GotLag wrote: Nuclear Fuel Reprocessing
1 plutonium + 19 U-238 produces 10 breeder fuel cells - these only provide half as much energy as uranium cells.
I really do not like it. If you do not use the reactors simply as boilers (which is very inefficient) then you should know that a complex control network is needed to manage the reactors. And the constant parameter in this network is the "burning" time of the fuel.


Image
But your scheme involves the use of two types of fuel at the same time, which will further complicate the control scheme. This is easily avoided if both types of energy cells will contain the same energy value, but at the same time increasing the material costs in plutonium fuel. Or double the difficulty of obtaining plutonium.

Re: [0.15] Nuclear Fuel

Posted: Sun Apr 30, 2017 12:37 pm
by GotLag
I hadn't considered that about the burn time. I was thinking of controlling fuel supply by using belts and filter inserters to only feed a cell when one is emptied, and switch supply according to the needs of the fuel processing factory.

I can definitely change them to have the same burn time/energy content.

Re: [0.15] Nuclear Fuel

Posted: Sun Apr 30, 2017 1:07 pm
by Sedar
GotLag wrote: I can definitely change them to have the same burn time/energy content.
Exactly what is needed!

btw: Pay attention to Your reactors, if they heat up to 1000 degrees while working, then the "current" fuel inside them burns for nothing. Therefore, it is best to load fuel for 1 piece and store steam in tanks connected to turbines. If the steam ends then load more fuel. => repeat. ;)

Re: [0.15] Nuclear Fuel

Posted: Mon May 01, 2017 7:05 am
by ZombieMooose
I agree with this mod.

Good job on the graphics as well.

Re: [0.15] Nuclear Fuel

Posted: Fri May 05, 2017 1:37 pm
by Malryn
You are a saint!

I was missing this part of the game with your Nuclear Reactor mod back in .14.

Re: [0.15] Nuclear Fuel

Posted: Sat May 06, 2017 5:33 am
by GotLag
Actually, I won't be changing the burn time on breeder fuel.

0.15.7 changed reactors to output the empty cell when burning has completed, so you can use belt sensors and/or inserters to detect burn completion.

In addition, I've just released a new mod, Reactor Interface, which makes the reactor's temperature, fuel state, fuel inventory and spent fuel inventory available to the circuit network. This should make automatic control much, much simpler. By keeping the fuel inventory empty until burn progress reaches zero, you can switch fuels on a per-reactor basis any time you like. It should also make it easier to increase efficiency by withholding fuel based on current temperature.

Re: [0.15] Nuclear Fuel

Posted: Sun May 14, 2017 11:47 am
by Optera
How much does this speed up the initial setup?
From pure numbers it would seem turning all randomly produced u235 directly into fuel cells to get plutonium would be way faster than the base game's waiting for 40 u235 to start the Kovarex process.

PS: Inventory sensor also reads reactor temperature and centrifuge progress. ;)

Edit:
You should enable productivity modules for uranium fuel cell from plutonium and plutonium fuel cell to be in line with the base uranium fuel cell recipe.

Code: Select all

table.insert(data.raw.module["productivity-module"].limitation, recipeName)

Re: [0.15] Nuclear Fuel

Posted: Wed Jun 14, 2017 8:02 pm
by T2k3
hey, just dropping by to ask if you plan to incooperate bob's thorium in your nuclear fuel mod? as the discussion progress (see Bob's mods|Thorium ideas) bobingabout will leave this to other mod authors to use.

Re: [0.15] Nuclear Fuel

Posted: Thu Jun 15, 2017 7:50 pm
by loganb
Very cool! Thank you for this work, it already makes the nuclear cycle more interesting, KEP is a disappointment.

If you're still developing the mod, some suggestions that may add more depth to the gameplay: Place special requirements on breeding the require a custom nuclear design.

Not sure if it's possible in a mod, but for example: Make the output of the reactor output a spent fuel UNLESS it's peak temperature during the burn was over 900C, then output a different spent fuel item that recycles into plutonium. The idea is to make it so that players have to design a special breeder reactor that operates at a higher temperature. It would play well with Optera's inventory sensor too, since it could be used to force the reactor to run at higher temps

The idea is to add depth to make it so that players have to build a purpose-built breeder reactor and can't simply breed in a normal power-generating design.

Re: [0.15] Nuclear Fuel

Posted: Thu Jun 15, 2017 9:56 pm
by GotLag
Changing the recipe on the fly means the mod script would have to monitor each reactor's temperature at frequent intervals and change the recipe on the fly, and the last thing any large factory needs is more lua overhead. It's an interesting idea though, and if I can find a practical way of doing it I'll look into it.

Re: [0.15] Nuclear Fuel

Posted: Sun Dec 17, 2017 2:24 pm
by agmike
Hello. I've tried this mod in 0.16, and I noticed the mox fuel research (which replaces Kovarex process) does not account for nuclear fuel added in this patch, and does not unlock the recipe. Is it intentional, or a bug?
Also, after disabling the mod the mox fuel research changes back to Kovarex process, however neither the Kovarex process nor nuclear fuel recipe became available. I could only fix this by resetting the tech and unlocking it again.

Re: [0.15] Nuclear Fuel

Posted: Sun Dec 17, 2017 10:13 pm
by GotLag
Argh. That item wasn't included in the changelogs so I missed it. I've moved its unlocking to Rocket Silo tech and updated the migration script so it should be correctly unlocked if you've already researched that.

Re: [0.15, 0.16] Nuclear Fuel

Posted: Mon Dec 18, 2017 8:45 pm
by agmike
Thanks, got the recipe after update

Re: [0.15, 0.16] Nuclear Fuel

Posted: Sat Dec 23, 2017 5:46 pm
by chlue
Hello,

I suggest you add 'allow_decomposition = false' to the recipes in recipes.lua. This would stop the tooltips from suggesting spent fuel as ingredients. (maybe only needed on "breeder-fuel-reprocessing")

chlue

Re: [0.15, 0.16] Nuclear Fuel

Posted: Sat Dec 23, 2017 6:20 pm
by GotLag
Thanks for the tip, will fix that in the morning.

Re: [0.15, 0.16] Nuclear Fuel

Posted: Mon Dec 25, 2017 1:59 pm
by agmike
I had suspicions this mod does not work very well if you want nuclear fuel, so I've made a small test setup to see how much nuclear fuel I'll be able to produce with reasonable sized reactor (2x4, without ore processing).
Test setup
Basically, if you you don't want to stockpile huge amounts of unused Pu, you can't really produce nuclear fuel. It requires U-235, so you have to use Pu cells to get it from recycling (its twice faster and has twice the chance of yielding U-235). However it always yields 2 Pu per 5 used cells, and you only spend one to make 10. Then you have to use MOX cells to get rid of the Pu, but they have 200s cycle in reactor and still have a good chance of giving Pu back! In my setup before I hit hard Pu limit (100 items) I produced about 1 nuclear fuel per 2 minutes, but after that it fell down to 1 nuclear fuel per two hours. I guess one could use more reactors, maybe even without power output, but it doesn't look very nice, at least for me.

I'm thinking this could be fixed by changing the nuclear fuel recipe to require 10 uranium fuel cells instead of U-235. This way you can either make it from U-235, or Pu using mox fuel recipe.

Re: [0.15, 0.16] Nuclear Fuel

Posted: Sat Jan 06, 2018 8:04 pm
by Col. Sandurz
I suggest modifying the nuclear fuel recipe to use plutonium instead of U235, like you did with nuclear bombs. Aside from fixing the issue agmike mentioned, everyone who has watched Back to the Future knows it's actually plutonium that you need to generate 1.21 gigawatts of power.

In fact, I think this recipe change should also be done to any future item that requires U235, since your mod removes the means to produce it in sufficient quantities.

Re: [0.15] Nuclear Fuel

Posted: Sat Mar 16, 2019 3:35 pm
by mmppolton
GotLag wrote:
Sun Dec 17, 2017 10:13 pm
Argh. That item wasn't included in the changelogs so I missed it. I've moved its unlocking to Rocket Silo tech and updated the migration script so it should be correctly unlocked if you've already researched that.
anohter bug in relating to some that is miss is the heavy tank mod use 235 for it nuke which have the same issue who shuld i talk to about fix it

Re: [0.15, 0.16] Nuclear Fuel

Posted: Thu Aug 20, 2020 12:50 pm
by mrudat
For the benefit of combatability, I (attempted to) calculate the approximate fuel value of the various nuclear materials, and here are my results:

Edit: Presuming that I haven't made a mistake somewhere, I think I'm going to pretend that Classic mode doesn't exist.

TLDR, the results:
  • Classic:
    • Image= 12.83GJ (680/53)
    • Image = -45.28GJ (-2400/53)
    • Pu = 83GJ (4400/53)
    • Image = 1242.3MJ
  • New:
    • Image= 16GJ
    • Image= -107.2GJ
    • Pu = 52.8GJ
    • Image = 1513.8MJ
Classic Cycle
Basic Fuel: 10Image = Image + 19Image
MOX Fuel: 10Image = Pu + 9Image
Breeder Fuel: 10ImageB = Pu + 19Image

Fuel consumption: Image = 8GJ + Image
Breeder Fuel consumption: ImageB = 4GJ + ImageB

Classic fuel reprocessing: 20Image = Pu + 12Image
Classic breeder reprocessing: 10ImageB = 4Pu + Image
  • Calculations:
    10Image= Image+ 19Image
    Image= 0.1Image+ 1.9Image
    10Image= Pu + 9Image
    Image= 0.1Pu + 0.9Image
    0.1Image+ 1.9Image= 0.1Pu + 0.9Image
    0.1Image+ Image= 0.1Pu
    Pu = Image+ 10Image
    20Image= Pu + 12Image
    20Image= (Image+ 10Image) + 12Image
    20Image= Image+ 22Image
    Image= 0.05Image+ 1.1Image
    Image = 8GJ + Image
    Image = 8GJ + 0.05Image+ 1.1Image
    0.1Image+ 1.9Image = 8GJ + 0.05Image+ 1.1Image
    0.05Image+ 1.9Image = 8GJ + 1.1Image
    0.05Image+ 0.8Image = 8GJ
    Image+ 16Image = 160GJ
    Image = 160GJ - 16Image
    Pu = Image+ 10Image
    Pu = (160GJ - 16Image) + 10Image
    Pu = 160GJ - 6Image
    10ImageB = Pu + 19Image
    10ImageB = (160GJ - 6Image) + 19Image
    10ImageB = 160GJ + 13Image
    ImageB = 16GJ + 1.3Image
    10ImageB = 4Pu + Image
    10ImageB = 4(160GJ - 6Image) + (160GJ - 16Image)
    10ImageB = 640GJ - 24Image + (160GJ - 16Image)
    10ImageB = 800GJ - 40Image
    ImageB = 80GJ - 4Image
    ImageB = 4GJ + ImageB
    ImageB = 4GJ + (80GJ - 4Image)
    ImageB = 84GJ - 4Image
    16GJ + 1.3Image= 84GJ - 4Image
    1.3Image= 68GJ - 4Image
    5.3Image= 68GJ
    Image= 12.83GJ (680/53)
    Image = 160GJ - 16Image
    Image = 160GJ - 16(12.83GJ (680/53))
    Image = 160GJ - 205.3GJ (10880/53)
    Image = 160GJ (8480/53) - 205.3GJ (10880/53)
    Image = -45.28GJ (8480-10880/53)
    Image = -45.28GJ (-2400/53)
    Pu = 160GJ - 6Image
    Pu = 160GJ - 6(12.83GJ (680/53))
    Pu = 160GJ - 77.0GJ (4080/53)
    Pu = 160GJ (8480/53) - 77.0GJ (4080/53)
    Pu = 83GJ (4400/53)
  • Results:
    • Image= 12.83GJ (680/53)
    • Image = -45.28GJ (-2400/53)
    • Pu = 83GJ (4400/53)
  • Sanity Checks:
    • Uranium fuel cell:
      10Image = Image + 19Image
      10Image = -45.28GJ (-2400/53) + 19(12.83GJ (680/53))
      10Image = -45.28GJ (-2400/53) + 243.8GJ (12920/53)
      10Image = 198.5GJ (10520/53)
      Image = 19.8GJ (1052/53)
    • MOX fuel cell:
      10Image = Pu + 9Image
      10Image = 83GJ (4400/53) + 9(12.83GJ (680/53))
      10Image = 83GJ (4400/53) + 115.5GJ (6120/53)
      10Image = 198.5GJ (10520/53)
      Image = 19.8GJ (1052/53)
    • Breeder fuel cell:
      10ImageB = Pu + 19Image
      10ImageB = 83GJ (4400/53) + 19(12.83GJ (680/53))
      10ImageB = 83GJ (4400/53) + 243.8GJ (12920/53)
      10ImageB = 83GJ (4400/53) + 243.8GJ (12920/53)
      10ImageB = 326.8GJ (17320/53)
      ImageB = 32.7GJ (1732/53)
    • Consumption of fuel cell:
      Image = 8GJ + Image
      19.8GJ (1052/53) = 8GJ + Image
      19.8GJ (1052/53) = 8GJ (424/53) + Image
      11.8GJ (628/53) = Image
      Image= 11.8GJ (628/53)
    • Consumption of breeder fuel cell:
      ImageB = 4GJ + ImageB
      32.7GJ (1732/53) = 4GJ + ImageB
      32.7GJ (1732/53) = 4GJ (212/53) + ImageB
      28.7GJ (1520/53) = ImageB
      ImageB = 28.7GJ (1520/53)
    • Fuel cell reprocessing:
      20Image = Pu + 12Image
      20Image = 83GJ (4400/53) + 12(12.83GJ (680/53))
      20Image = 83GJ (4400/53) + 154.0GJ (8160/53)
      20Image = 237.0GJ (12560/53)
      Image = 11.8GJ (628/53)
    • Breeder fuel cell reprocessing:
      10ImageB = 4Pu + Image
      10ImageB = 4(83GJ (4400/53)) + (-45.28GJ (-2400/53))
      10ImageB = 332.0GJ (17600/53) - 45.28GJ (2400/53)
      10ImageB = 286.8GJ (15200/53)
      ImageB = 28.7GJ (1520/53)
New Cycle
Basic Fuel: 10Image = Image + 19Image
MOX Fuel: 10Image = Pu + 9Image
Breeder Fuel: 10ImageB = Pu + 19Image

Basic Fuel Consumption: Image = 8GJ + Image
Breeded Fuel Consumption: ImageB = 4GJ + ImageB

Basic reprocessing: 10Image = Pu + 4Image
Breeder reprocessing: 10ImageB = 6Pu
  • Calculations:
    10Image = Image+ 19Image
    Image = 0.1Image+ 1.9Image
    10Image = Pu + 9Image
    Image = 0.1Pu + 0.9Image
    0.1Image+ 1.9Image= 0.1Pu + 0.9Image
    0.1Image+ Image= 0.1Pu
    Pu = Image+ 10Image
    10Image = Pu + 4Image
    10Image = (Image+ 10Image) + 4Image
    10Image = Image+ 14Image
    Image = 0.1Image+ 1.4Image
    Image = 8GJ + Image
    Image = 8GJ + 0.1Image+ 1.4Image
    0.1Image+ 1.9Image = 8GJ + 0.1Image+ 1.4Image
    1.9Image= 8GJ + 1.4Image
    0.5Image= 8GJ
    Image= 16GJ
    Pu = Image+ 10Image
    Pu = Image+ 10(16GJ)
    Pu = Image+ 160GJ
    10ImageB = Pu + 19Image
    10ImageB = (Image+ 160GJ) + 19(16GJ)
    10ImageB = Image+ 160GJ + 304GJ
    10ImageB = Image+ 464GJ
    ImageB = 0.1Image+ 46.4GJ
    ImageB = 4GJ + ImageB
    0.1Image+ 46.4GJ = 4GJ + ImageB
    ImageB= 0.1Image+ 42.4GJ
    10ImageB = 6Pu
    ImageB = 0.6Pu
    ImageB = 0.6(Image+ 160GJ)
    ImageB = 0.6Image+ 96GJ
    0.1Image+ 42.4GJ = 0.6Image+ 96GJ
    42.4GJ = 0.5Image+ 96GJ
    0 = 0.5Image+ 53.6GJ
    0 = Image+ 107.2GJ
    Image= -107.2GJ
    Pu = Image+ 160GJ
    Pu = (-107.2GJ)+ 160GJ
    Pu = 52.8GJ
  • Results
    • Image= 16GJ
    • Image= -107.2GJ
    • Pu = 52.8GJ
  • Sanity checks:
    • Uranium fuel cell:
      10Image = Image + 19Image
      10Image = (-107.2GJ) + 19(16GJ)
      10Image = (-107.2GJ) + 304GJ
      10Image = 196.8GJ
      Image = 19.68GJ
    • MOX fuel cell:
      10Image = Pu + 9Image
      10Image = 52.8GJ + 9(16GJ)
      10Image = 52.8GJ + 144GJ
      10Image = 196.8GJ
      Image = 19.68GJ
    • Breeder fuel cell:
      10ImageB = Pu + 19Image
      10ImageB = 52.8GJ + 19(16GJ)
      10ImageB = 52.8GJ + 304GJ
      10ImageB = 356.8GJ
      ImageB = 35.68GJ
    • Consumption of fuel cell:
      Image = 8GJ + Image
      19.68GJ = 8GJ + Image
      11.68GJ = Image
      Image = 11.68GJ
    • Consumption of breeder fuel cell:
      ImageB = 4GJ + ImageB
      35.68GJ = 4GJ + ImageB
      31.68GJ = ImageB
      ImageB = 31.68GJ
    • Fuel cell reprocessing:
      10Image = Pu + 4Image
      10(11.68GJ) = (52.8GJ) + 4(16GJ)
      116.8GJ = 52.8GJ + 64GJ
      116.8GJ = 116.8GJ
    • Breeder fuel cell reprocessing:
      10ImageB = 6Pu
      10(31.68GJ) = 6(52.8GJ)
      316.8GJ = 316.8GJ