mods
mods copied to clipboard
Special Vanilla Contemplations, Part 1
these observations are on the current dev
branch, commit 38675ef0c
Unused items & fluids
- [ ] paper
- [ ] ferric chloride solution, cupric chloride solution
- [x] resin & liquid resin
- [x] liquid rubber
- [ ]
solid-lithium
- [ ]
crystal-full-red
,-blue
,-harmonic
- [ ] all the crystals from Bioprocessing are mostly useless: they are only used in sawblades & bio modules, this makes half the mod feel useless
Crafting machines with no compatible recipes
- [ ] Sintering oven
Library issues
- [x] Angel's mods appear to add dependency on science pack techs to pure upgrade technologies. In vanilla, all the pure upgrade techs that don't unlock any recipe nor new bonuses also do not have explicit dependencies on science packs. It feels not intended that this should change by activating angel's mods. Affected techs:
-
weapon-shooting-speed-2
through-6
-
physical-projectile-damage-2
through-6
-
research-speed-2
through-6
-
stronger-explosives-2
through-6
-
mining-productivity-2
&-3
-
inserter-capacity-bonus-3
&-4
-
Technology issues at Automation Science tier
-
[x] Tech:
bio-wood-processing
Requires: automation science packs
Depends on: none
Building unlocks: none
Recipe unlocks:bio-resin-wood-processing
Action: resin has no use -
[ ] Tech:
angels-sulfur-processing-1
Requires: automation science packs
Depends on:basic-chemistry-2
Building unlocks: none
Recipe unlocks:liquid-sulfuric-acid
Action: At this point in the game, the only unlocked recipe is not craftable. There is no source for sulfur dioxide gase yet. I recommend moving this recipe to the logistic science techangels-sulfur-processing-2
, removing this tech, and re-numbering. Note: with industry overhaul, this tech depends on lead processing, which is the earliest possible source for sulfur dioxide. -
[ ] Tech:
bio-paper-1
Requires: automation & logistic science packs
Depends on:bio-processing-brown
Building unlocks: none
Recipe unlocks:solid-wood-pulp
,paper-bleaching-1
Action: paper has no use, but pulp is required for other stuff later on
Logistic Science tier
-
[ ] Tech:
advanced-ore-refining-1
Requires: automation & logistic science packs
Depends on:slag-processing-1
,ore-crushing
Building unlocks: 2 buildings
Recipe unlocks:angelsore-crushed-mix1-processing
,angelsore-crushed-mix3-processing
Action: Recipe iconangelsore-crushed-mix3-processing
is wrong, it does not show copper as result, neither does it show the nugget ingredient as-mix1-processing
recipe does. -
[ ] Tech:
advanced-ore-refining-2
Requires: automation & logistic science packs
Depends on:geode-processing-2
,advanced-ore-refining-1
Building unlocks: 3 buildings
Recipe unlocks:angelsore-chunk-mix1-processing
,angelsore-chunk-mix2-processing
Action: Recipe icons for both recipes is wrong, it does not show correct ore as result, neither does it show the slag ingredient ascrushed-mix1-processing
recipe does. -
[ ] Tech:
chlorine-processing-1
Requires: automation & logistic science packs
Depends on:gas-processing
,ore-crushing
Building unlocks: none
Recipe unlocks: 3 recipes +liquid-ferric-chloride-solution
,liquid-cupric-chloride-solution
Action: ferric & cupric chloride solutions have no use, recipes should be removed. -
[ ] Tech:
chlorine-processing-2
Requires: automation & logistic science packs
Depends on:gas-steam-cracking
,chlorine-processing-1
Building unlocks: none
Recipe unlocks:liquid-glycerol
Action: Recipe is not craftable because epichlorhydrin ingredient is not craftable. Furthermore, glycerol liquid has only one use:solid-nitroglycerin
, which only makes explosives. Not sure what is to happen with this tech in special-vanilla mode. -
[x] Tech:
resins
Requires: automation & logistic science packs
Depends on:basic-chemistry-3
Building unlocks: none
Recipe unlocks: none
Action: Resin & liquid resin have no use. Tech is empty, needs to be removed. All subsequent techs need to be removed, too. -
[x] Tech:
rubbers
Requires: automation & logistic science packs
Depends on:angels-oil-processing
Building unlocks: none
Recipe unlocks: none
Action: rubber has no use and is already hidden. This tech is empty, useless, and should be removed. -
[x] Tech:
resin-1
Requires: automation & logistic science packs
Depends on:angels-nitrogen-processing-2
,angels-advanced-chemistry-1
,resins
Building unlocks: none
Recipe unlocks: none
Action: empty tech with no use, same for subsequent tiers-2
and-3
-
[ ] Tech:
plastics
Requires: automation & logistic science packs
Depends on:angels-advanced-chemistry-1
Building unlocks: none
Recipe unlocks: none
Action: This tech is currently empty. I suggest moving recipesolid-plastic
into this tech, and removing it from the three subsequent techsplastic-1
,bio-plastic-1
,bio-arboretum-swamp-1
-
[ ] Tech:
lubricant
Requires: automation & logistic science packs
Depends on:oil-steam-cracking-1
Building unlocks: none
Recipe unlocks:mineral-oil-lubricant
Action: In special vanilla,gas-residual
is not unlocked byoil-steam-cracking-1
, maybe make this tech depend ongas-steam-cracking-1
instead, otherwise the only recipe is not craftable at time of research. -
[x] Tech:
rubber
Requires: automation & logistic science packs
Depends on:angels-advanced-chemistry-2
,rubbers
Building unlocks: none
Recipe unlocks: none
Action: empty tech with no use -
[ ] Tech:
water-treatment-3
Requires: automation & logistic science packs
Depends on:water-treatment-2
,advanced-electronics
Building unlocks: 2 buildings
Recipe unlocks: 2 recipes +solid-lithium
Action: Lithium has no use -
[ ] Tech:
powder-metallurgy-1
Requires: automation & logistic science packs
Depends on:angels-metallurgy-2
Building unlocks:sintering-oven
,powder-mixer
Recipe unlocks: none
Action: sintering oven has no compatible recipes -
[ ] Tech:
bio-paper-2
Requires: automation & logistic science packs
Depends on:bio-paper-1
Building unlocks: none
Recipe unlocks: 4 recipes
Action: paper has no use, but pulp is required for other stuff later on. To this day the purpose of this tech and its recipes is not clear to me: it adds unreasonable complexity for minimal boos in yield of pulp. -
[x] Tech:
bio-arboretum-desert-1
Requires: automation & logistic science packs
Depends on:bio-arboretum-1
,bio-nutrient-paste
,rubbers
Building unlocks: none
Recipe unlocks: 3 recipes
Action: Liquid rubber has no use, this tech and all its recipes are entirely pointless. Same is true for subsequent tier-2
-
[x] Tech:
bio-arboretum-temperate-1
Requires: automation & logistic science packs
Depends on:resins
,bio-fermentation
,bio-arboretum-1
Building unlocks: none
Recipe unlocks: 4 recipes
Action: Liquid resin has no use, this tech and all its recipes are entirely pointless. Same is true for subsequent tier-2
-
[ ] Tech:
angels-bio-yield-module
Requires: automation & logistic science packs
Depends on:gardens-2
,effectivity-module
,productivity-module
Building unlocks: none
Recipe unlocks:angels-bio-yield-module
Action: This is the only module that has crystals as ingredients. Either make all modules use crystals, or none. This is very inconsistent. -
[ ] Tech:
angels-construction-robots-2
Requires: automation & logistic science packs
Depends on:cargo-robots
,angels-construction-robots
Building unlocks: 2 buildings
Recipe unlocks: none
Action: Both recipes require red circuits, this tech should depend onadvanced-electronics
-
[ ] Tech:
angels-vequipment
Requires: automation & logistic science packs
Depends on:logistic-science-pack
Building unlocks: none
Recipe unlocks:angels-burner-generator-vequip
,angels-repair-roboport-vequip
Action:- This tech only provides equipment for vehicles. It is entirely useless without having previously unlocked a vehicle. The most logical prerequisite tech is
engine
orautomobilism
and it should depend on that instead of on the science pack directly. This was previously reported for Industry overhaul (#428). -
angels-repair-roboport-vequip
requires red circuits, but it is worse than theangels-construction-roboport-vequip
unlocked by a subsequent tech, and the better one only requires green circuits. Please take a look and adjust ingrendiets.
- This tech only provides equipment for vehicles. It is entirely useless without having previously unlocked a vehicle. The most logical prerequisite tech is
Library issues
[ ] Angel's mods appear to add dependency on science pack techs to pure upgrade technologies. In vanilla, all the pure upgrade techs that don't unlock any recipe nor new bonuses also do not have explicit dependencies on science packs. It feels not intended that this should change by activating angel's mods. Affected techs:
weapon-shooting-speed-2
through-6
physical-projectile-damage-2
through-6
research-speed-2
through-6
stronger-explosives-2
through-6
mining-productivity-2
&-3
inserter-capacity-bonus-3
&-4
This is due to the requirement of unit-test-006: https://github.com/Arch666Angel/mods/blob/38675ef0c0f2faf2d962de382ae828b543c65c32/angelsrefining/prototypes/override/refining-override-base.lua#L3-L43
Either we ignore these in the unit test, or we keep explicit dependencies... I let someone else decide, I can do the corresponding changes if need be.
Can you change the unit test so that it checks if the tech adds new recipes or new bonuses? These techs do neither, they just give a boost to a previously unlocked bonus.
I would not do it conditionally, I rather just code an exception for certain techs... And then we can create the exceptions still dynamically if we want afterwards...
Do I understand correctly that this only affects techs from vanilla and angel's? Bob's mods introduce many such upgrade techs, which should stay untouched as well.
It could dynamically add the upgrade techs from bobs mods as well, I think I did not fix the upgrades from bobs mods yet.
Moreover, we could create another part of the unit test that verifies it does not have additional prerequisites other than a previous tier...
I implemented this in https://github.com/Arch666Angel/mods/commit/26c443cbe1748ee47abe8ba33b987f44c483bd21:
The clue of the change from https://github.com/Arch666Angel/mods/blob/d81799b46564fa0f5e1340c43f8ab15a68adb46c/angelsdev-unit-test/unit-tests/unit-test-006.lua#L197 to https://github.com/Arch666Angel/mods/blob/26c443cbe1748ee47abe8ba33b987f44c483bd21/angelsdev-unit-test/unit-tests/unit-test-006.lua#L286
In general, when the technology is a pure bonus tech (only unlocks bonusses, no recipes) then it will not check if it has sufficient prerequisites.
- For example, it will no longer produce an error for
"physical-projectile-damage-2"
which require"logistic-science-pack"
, but there are no prerequisites that also require"logistic-science-pack"
or any prerequisites that unlock a recipe that produces"logistic-science-pack"
. - On the other hand, it will still produce an error if a prerequisite requires higher science packs. A fictional example, it will produce an error for
"physical-projectile-damage-2"
in case it depended on"physical-projectile-damage-1"
, if"physical-projectile-damage-1"
required"chemical-science-pack"
to be researched.
There is one exception to this general rule: the first pure bonus technology (=the one that does not has another pure bonus technology as prerequisite, e.g. "physical-projectile-damage-1"
or "artillery-shooting-speed-1"
) must still depend on a correct prerequisite.
- For example,
"laser-shooting-speed-1"
depends on"laser"
. Both techs require"chemical-science-pack"
as ingredient. If however the dependency on"laser"
would be omitted, an error would be thrown that"laser-shooting-speed-1"
requires higher science packs than its prerequisites provide. - This error will not be thrown if this would be the case for
"laser-shooting-speed-1"
(see explanation of the general case above).
https://github.com/Arch666Angel/mods/commit/26c443cbe1748ee47abe8ba33b987f44c483bd21 also removes the prerequisites of the bonus technologies mentioned in https://github.com/Arch666Angel/mods/issues/691#issuecomment-928078254. Due to the change of the unit test 006 behavior, no additional errors occur in the test log.
@adoa, if you agree with this change, please check this one off the list.
This sounds exactly as it should be.
Unused items & fluids
- [ ] paper
- [ ] ferric chloride solution, cupric chloride solution
- [ ] resin & liquid resin
- [ ] liquid rubber
- [ ]
solid-lithium
- [ ]
crystal-full-red
,-blue
,-harmonic
These unused items / fluids and more are detected by unit test 007 (#709)
As from the unit tests added in #709, https://github.com/Arch666Angel/mods/commit/a0ea5cbaedc28fa5287fefa0124ea8d0f6fbe3c2 fixes the milling drum and electro whinning cell not being used in some cases.
Some more things to check off the list:
Unused items & fluids
- [ ] resin & liquid resin
- [ ] liquid rubber
Logistic Science tier
- [ ] Tech:
resins
Requires: automation & logistic science packs Depends on:basic-chemistry-3
Building unlocks: none Recipe unlocks: none Action: Resin & liquid resin have no use. Tech is empty, needs to be removed. All subsequent techs need to be removed, too.- [ ] Tech:
rubbers
Requires: automation & logistic science packs Depends on:angels-oil-processing
Building unlocks: none Recipe unlocks: none Action: rubber has no use and is already hidden. This tech is empty, useless, and should be removed.- [ ] Tech:
resin-1
Requires: automation & logistic science packs Depends on:angels-nitrogen-processing-2
,angels-advanced-chemistry-1
,resins
Building unlocks: none Recipe unlocks: none Action: empty tech with no use, same for subsequent tiers-2
and-3
- [ ] Tech:
rubber
Requires: automation & logistic science packs Depends on:angels-advanced-chemistry-2
,rubbers
Building unlocks: none Recipe unlocks: none Action: empty tech with no use
https://github.com/Arch666Angel/mods/commit/2607345fe046f953d596cd75fd90029ca88471d8 introduces 3 new petrochem triggers: https://github.com/Arch666Angel/mods/blob/2607345fe046f953d596cd75fd90029ca88471d8/angelspetrochem/data.lua#L12-L15 When these triggers are set to false, the corresponding solid and liquid item are hidden together with their corresponding recipes (petrochem only). Also handles the corresponding technologies. Note: These triggers are not configured exactly correct; they are still too permissive in some overhaul cases, but they are restrictive enough to handle all special vanilla cases. Calling it good enough for this issue.
Technology issues at Automation Science tier
- [ ] Tech:
bio-wood-processing
Requires: automation science packs Depends on: none Building unlocks: none Recipe unlocks:bio-resin-wood-processing
Action: resin has no use- [ ] Tech:
bio-arboretum-desert-1
Requires: automation & logistic science packs Depends on:bio-arboretum-1
,bio-nutrient-paste
,rubbers
Building unlocks: none Recipe unlocks: 3 recipes Action: Liquid rubber has no use, this tech and all its recipes are entirely pointless. Same is true for subsequent tier-2
- [ ] Tech:
bio-arboretum-temperate-1
Requires: automation & logistic science packs Depends on:resins
,bio-fermentation
,bio-arboretum-1
Building unlocks: none Recipe unlocks: 4 recipes Action: Liquid resin has no use, this tech and all its recipes are entirely pointless. Same is true for subsequent tier-2
https://github.com/Arch666Angel/mods/commit/2607345fe046f953d596cd75fd90029ca88471d8 introduces 3 new bioprocessing triggers depending on the aforementioned petrochem triggers: https://github.com/Arch666Angel/mods/blob/2607345fe046f953d596cd75fd90029ca88471d8/angelsbioprocessing/data.lua#L52-L55 When these triggers are set to false, the corresponding liquid tree generation items are hidden together with their corresponding recipes (bioprocessing only). Also handles the corresponding technologies and early game recipes.
Some more things to (partially) check off the list with https://github.com/Arch666Angel/mods/commit/2d263e2e61c5fd9fd4073256352db4380d0d9a60. See comment below why it's not checked off yet.
Crafting machines with no compatible recipes
- [ ] Sintering oven
@KiwiHawk can you extend unit test 009 such that it verifies that each (visible) recipe can be crafted in a machine (or character)?
I believe I did hide too many sintering ovens is this
Special vanilla (BA)
case:
The test should say something like
There is no suitable machine or character that can craft recipe "recipe_name" (crafting category "crafting_category_name").
In this example case I would expect something to be craftable in sintering oven 3 & 4:
https://github.com/Arch666Angel/mods/blob/2d263e2e61c5fd9fd4073256352db4380d0d9a60/angelssmelting/prototypes/override/smelting-override-support.lua#L23-L33
@KiwiHawk can you also extend unit test 008 to dynamically add items that can be looted from enemies to the items_to_ignore
list:
https://github.com/Arch666Angel/mods/blob/25b1c093ee1a64b3a6ea7c521c446a09962b313a/angelsdev-unit-test/unit-tests/unit-test-008.lua#L4
This will prevent these items from throwing the following errors in this Special vanilla (BA)
case:
angelsdev-unit-test: No recipe is creating item "small-alien-artifact" as a product.
angelsdev-unit-test: No recipe is creating item "small-alien-artifact-red" as a product.
angelsdev-unit-test: No recipe is creating item "small-alien-artifact-orange" as a product.
angelsdev-unit-test: No recipe is creating item "small-alien-artifact-yellow" as a product.
angelsdev-unit-test: No recipe is creating item "small-alien-artifact-green" as a product.
angelsdev-unit-test: No recipe is creating item "small-alien-artifact-blue" as a product.
angelsdev-unit-test: No recipe is creating item "small-alien-artifact-purple" as a product.
You can use LuaEntityPrototype.loot
, but make sure count_max > 0
and probability > 0
(i think they can also be set to nil
)
@KiwiHawk can you also extend unit test 008 to dynamically add fluids that can be pumped from the sea to the fluids_to_ignore
list:
https://github.com/Arch666Angel/mods/blob/25b1c093ee1a64b3a6ea7c521c446a09962b313a/angelsdev-unit-test/unit-tests/unit-test-008.lua#L5
This will prevent this fluid from throwing the following error in this Special vanilla (BA)
case:
No recipe is creating fluid "water-viscous-mud" as a product.
You can use LuaEntityPrototype.fluid
, but make sure the pump is not hidden.
I fixed this issue with the puffer nests. I'm still not sure why the puffer nest entity has placeable_by
set though.