Schall Radioactive Waste


Provides different ways to handle the nuclear wastes (e.g., U-238) that are often in excess stockpiles. Adds an incinerator, which is particularly useful for peaceful mode. Combat-addicted players can also use it to intentionally raise the pollution level (evolution factor) quickly! Adds radiological warfare (optional), which is the more “evil” way to make use of the waste. Includes dirty bomb, decontamination capsule. (Locale: English, Deutsch, 正體中文, Português Brasileiro)

2 months ago
0.17 - 1.1
5017

FAQ

Q: Can I put non-radioactive wastes (e.g., burner inserter, stone furnace) into the incinerator?
A: It is named as "radioactive waste incinerator". As the name suggests, the incinerator is designed for waste items of the nuclear/radioactive branch only.
It is very unlikely I will ever support burning everything, especially I feel many components on the above-mentioned "wastes" can be reused. Saying the burner inserter, it should have very high resemblance to the other inserters, in terms of structure and material used. It should be possible to recycle its components, instead of being so "wasteful" to simply burn it. Not to say, I already have Schall Uncraft to such component recycling.
In case you still want to enable such incineration recipes, they can be added through the public function call as mentioned in below section of this page.

Q: Can I put other modded radioactive wastes (e.g., plutonium, thorium) into the incinerator? Can I use them to craft dirty bomb?
A: Yes and yes. Although not built-in supported by this mod, it is quite simple to allow additional items for such uses, but the public function calls as mentioned in below section of this page.
Please contact the mod author(s) of your favourite mod and let them read the instructions below.
It is also possible to do a compatibility mod on your own, as the syntax is actually very simple.

Q: I realize of the level number on tech "radiological warfare 1". Are there level 2 or 3, or more weapons choices?
A: Not yet, but possible. The number is there, because the compatibility will be better if I decide to add more levels later on... I have yet to see user opinions on it. If there are good ideas, you will see the number going up.

Instructions to Fellow Modders

Adding Optional Dependency

Your mod should work with or without this mod. Your mod should require this mod to utilize it. So first of all, in "info.json" of your mod folder, please add an optional dependency "? SchallRadioactiveWaste", to make sure the load order is correct.

Here is an example:

"dependencies": ["base >= 0.17.0", "? SchallRadioactiveWaste"]

Adding Incineration Recipes

Inserting recipe prototypes are done by the function calls of this mod, which are created in data stage. You simply need to make the call for each desired item. The calls can be made in either data.lua, data-updates.lua or data-final-fixes.lua.

Syntax as the following:

if mods["SchallRadioactiveWaste"] then
SchallRadioactiveWaste_add_incineration_recipe(name, emissionsmul, timemul)
end

name is the internal name of item (e.g., "uranium-238", "uranium-235", "used-up-uranium-fuel-cell").
emissionsmul is the pollution emissions multiplier of the recipe. Default value: 1. A higher value will release more pollution to the area. Use this value to indicate the toxicity (half-life and ionization) of the item.
timemul is the time multiplier of the recipe. Default value: 1. A higher value will make the incineration cycle longer. Use this value to indicate the difficulty (bulkiness, melting/boiling point) of the incineration.
The function call returns the internal name of the recipe, which may or may not be useful to your code.

Note that these two parameters are multiplier values, not absolute values. They are multiplied with the base emissions (30 per minute) and base time (3 seconds) respectively. Both base values can be adjusted through mod options (under "Options" → "Mod settings" → "Startup").
Also note that the overall pollution are proportional to both recipe time and emissions. If the recipe time is halved, the emissions should be doubled to keep the overall pollution at the same amount.
Please use the below table as reference, when assigning appropriate values to your items.

PS: Incineration recipes are always enabled. NO technology recipe unlocks required.

Adding Dirty Bomb Alternate Recipes

Inserting recipe prototypes are done by the function calls of this mod, which are created in data stage. You simply need to make the call for each desired item. The calls can be made in either data.lua, data-updates.lua or data-final-fixes.lua.

Syntax as the following:

if mods["SchallRadioactiveWaste"] then
SchallRadioactiveWaste_add_dirty_bomb_alternate_recipe(name)
end

name is the internal name of item (e.g., "uranium-238", "plutonium-238").
The function call returns the internal name of the recipe, which is needed for technology recipe unlock lines to your code.

PS: Dirty bomb alternate recipes are NOT enabled by default. You will need to insert the "unlock-recipe" lines to technology prototype of your choice.

You may combine the function call into the technology prototype directly, like:

{
type = "technology",
name = "custom-plutonium-dirty-bomb-tech",
...
effects =
{
{
type = "unlock-recipe",
recipe = SchallRadioactiveWaste_add_dirty_bomb_alternate_recipe("plutonium-238")
},
},
...
},

Adding Nuclear Projectiles with Radioactive Contamination Effects

Inserting such effects are done by the function calls of this mod, which are created in data stage. You simply need to make the call for each desired item. The calls can be made in either data.lua, data-updates.lua or data-final-fixes.lua.

Syntax as the following:

if mods["SchallRadioactiveWaste"] then
SchallRadioactiveWaste_add_radioactive_effects(name, cluster_count, distance, distance_deviation)
end

name is the internal name of projectile / artillery-projectile / land-mine (e.g., "atomic-rocket", "Schall-atomic-artillery-projectile", "Schall-atomic-land-mine").
cluster_count is the amount of dirty fragments released. Default value: 60. A higher value will release more pollution to the area. Use this value to indicate the toxicity (half-life and ionization) of the item.
distance has default value: 2. distance_deviation has default value: 50. Both are used to adjust how far the spread is. For more details, see Factorio documentation on Types/ClusterTriggerItem.
The function call returns the boolean whether any changes are made, which may or may not be useful to your code.

Note that the effects will only actually apply when mod option "Enable Radiological warfare" is checked (under "Options" → "Mod settings" → "Startup").
If the mod option is disbled, the function call will simply does nothing. So there is NO need to check the mod option value yourself, I have already done it to you. The syntax above is already sufficient from you.
Please use the below table as reference, when assigning appropriate values to your items.

List of Incineration Recipes by Compatible Mods

If your mod has any new incineration recipes created, you may write me the details in the Discussion section. I will keep updating this page, so players will know what can be incinerated even if multiple nuclear mods are used! Mod authors can use this table to set the appropriate multipliers for each element and isotope.

Item Created by Emissions Multiplier Time Multiplier Total Emissions
uranium-238 Vanilla 1 1 1
uranium-235 Vanilla 300 1 300
used-up-uranium-fuel-cell Vanilla 10 1 10
uranium-concentrate Schall Uranium Processing 2 1 2
uranium-low-enriched Schall Uranium Processing 15 1 15
plutonium-238 Plutonium Energy 3 0.85 2.55
plutonium-239 Plutonium Energy 700 0.85 595
used-up-MOX-fuel Plutonium Energy 22.3 0.9 20

Note that these two parameters are multiplier values, not absolute values. They are multiplied with the base emissions (30 per minute) and base time (3 seconds) respectively. Both base values can be adjusted through mod options (under "Options" → "Mod settings" → "Startup").
Total Emissions is the amount of emissions released per item, which is a useful indicator for comparison. It is the product of two multiplier values, so again is a relative value.

List of Nuclear Projectiles by Compatible Mods

If your mod has any new nuclear projectiles created, you may write me the details in the Discussion section. I will keep updating this page, so players will know what can create radioactive contamination effects even if multiple nuclear mods are used! Mod authors can use this table to set the appropriate multipliers for each projectile.

Item Created by cluster_count distance distance_deviation
Schall-dirty-rocket Schall Radioactive Waste 60 2 50
atomic-rocket Vanilla 90 2 75
Schall-atomic-artillery-projectile Schall Artillery 90 2 75
Schall-atomic-land-mine Schall Land Mine 90 2 75
plutonium-atomic-rocket Plutonium Energy 84 2.8 70
plutonium-atomic-artillery-projectile Plutonium Energy 84 2.8 70
Schall-plutonium-atomic-artillery-projectile Plutonium Energy 84 2.8 70

Dirty bomb of this mod is using the projectile "Schall-dirty-rocket", which is making use of depleted uranium as main ingredient. So in principle, it is less toxic (represented by cluster_count) and thus less far (represented by distance_deviation) than the atomic bomb and its variants, where their radioactive isotopes have higher radiation intensity.

Full List of New (or Changed) Items

Ammos

  • (1 new, 1 changed) rocket:
    • Dirty bomb
    • Atomic bomb [added with radioactive contamination effects]

Thrown

  • 1 capsule:
    • Decontamination capsule

Structures

  • 1 resource-related:
    • Radioactive waste incinerator

Recipes

  • 3 incineration-related:
    • Incineration - Used up uranium fuel cell
    • Incineration - Uranium-238
    • Incineration - Uranium-235
  • 1 capsule-related:
    • Decontamination capsule
  • 2 ammo-related:
    • Dirty bomb [made from used up uranium fuel cell]
    • Dirty bomb - Uranium-238 [made from uranium-238 instead]

Technologies

  • 1 weapon-related:
    • Radiological warfare 1