Page 6 of 10

Re: [0.18] Please post bugs and balance issues here.

Posted: Sun Apr 12, 2020 11:49 am
by steinio
Yeah just skimmed the log for another thing and stumbled over this. Otherwise i never had recognised it.
No need to hurry.

Re: [0.18] Please post bugs and balance issues here.

Posted: Sun Apr 12, 2020 12:45 pm
by bobingabout
steinio wrote:
Sun Apr 12, 2020 11:49 am
Yeah just skimmed the log for another thing and stumbled over this. Otherwise i never had recognised it.
No need to hurry.
On the bright side, it's logging errors instead of crashing.

Calcium Chloride broken

Posted: Mon Apr 13, 2020 9:33 am
by TheTom
"unknown key: 'recipe-name.calcium-chloride'" in the crafint overview.

It also demands limestone with no angel installed. Limestone production emits Carbon Dioxide which seems to have no use except throwing it into the void (again, no angel installed).

Re: Calcium Chloride broken

Posted: Mon Apr 13, 2020 11:41 am
by bobingabout
TheTom wrote:
Mon Apr 13, 2020 9:33 am
"unknown key: 'recipe-name.calcium-chloride'" in the crafint overview.

It also demands limestone with no angel installed. Limestone production emits Carbon Dioxide which seems to have no use except throwing it into the void (again, no angel installed).
I know about the locale error there, I've fixed it for next release.

And yes, CO2 has a use, but not until later, and the thing you use it for current has no use, it's still a work in progress, so... this is correct.


There's an option called Extra Chemistry in bobrevamp, this is what's adding it, but be aware that I changed the Nitrogen dioxide recipe in bobrevamp to be an extra chemistry recipe, so if you turn the option off it'll fall back to needing only Nitrogen and Oxygen instead of Ammonia.

Re: [0.18] Please post bugs and balance issues here.

Posted: Mon Apr 13, 2020 3:44 pm
by TheTom
The dead end (as you say, it is WIP) did just make me consider this to be a bug showing something that should only be shown i.e. for Angel. Now that I know it - well, it is not like I do not have materials to make (yet more) vents ;)

Re: [0.18] Please post bugs and balance issues here.

Posted: Fri Apr 17, 2020 6:34 pm
by Racusthor
Hi Bob,

Since the last update of boblibrary it takes ages starting the game. I haven't actually finished loading yet. It took 700 seconds, but the game starts eventually.

I added some extra logs in the functions so you can see the timestamps en hopefully pin it quicker.

Modified code

Code: Select all

function bobmods.lib.tech.get_redundant_prerequisites(technology)
  log("entered bobmods.lib.tech.get_redundant_prerequisites")
  local redundant = {}
  if
    type(technology) == "string" and
    data.raw.technology[technology]
  then
    if data.raw.technology[technology].prerequisites then
      for i, prerequisite in pairs(data.raw.technology[technology].prerequisites) do
        if bobmods.lib.tech.has_prerequisite_in_tree_only(technology, prerequisite) then
          table.insert(redundant, prerequisite)
        end
      end
    end
  else
    log(debug.traceback())
    bobmods.lib.error.technology(technology)
  end
  log("end of bobmods.lib.tech.get_redundant_prerequisites")
  return redundant
end

function bobmods.lib.tech.get_redundant_prerequisites_smart(technology)
  log("entered bobmods.lib.tech.get_redundant_prerequisites_smart")
  local redundant = {}
  if
    type(technology) == "string" and
    data.raw.technology[technology]
  then
    local technology_trunc = string.gsub(technology, "%A", "")
    for i, prerequisite in pairs(bobmods.lib.tech.get_redundant_prerequisites(technology)) do
      local prerequisite_trunc = string.gsub(prerequisite, "%A", "")
      if technology_trunc ~= prerequisite_trunc then
        table.insert(redundant, prerequisite)
      end
    end
  else
    log(debug.traceback())
    bobmods.lib.error.technology(technology)
  end
  log("end of bobmods.lib.tech.get_redundant_prerequisites_smart")
  return redundant
end

function bobmods.lib.tech.prerequisite_cleanup()
  log("Running technology prerequisite cleanup...")
  for technology_name, technology in pairs(data.raw.technology) do
	log("first for loop")
    for i, prerequisite in pairs(bobmods.lib.tech.get_redundant_prerequisites_smart(technology_name)) do
	  log("second for loop")
      bobmods.lib.tech.remove_prerequisite(technology_name, prerequisite)
      log("removed " .. prerequisite .. " from " .. technology_name)
    end
  end
end
Log files

Code: Select all

  
  48.859 Loading mod boblibrary 0.18.6 (data-final-fixes.lua)
  48.860 Script @__boblibrary__/technology-functions.lua:342: Running technology prerequisite cleanup...
  48.860 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.860 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.860 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.860 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.860 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.860 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.860 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.860 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.860 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.860 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.860 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.860 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.860 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.860 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.860 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.860 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.860 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.860 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.861 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.861 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.861 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.861 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.861 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.861 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.861 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.861 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.861 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.861 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.861 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.861 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.861 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.861 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.861 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.861 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.864 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.864 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.864 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.864 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.864 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  48.917 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  48.917 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  48.917 Script @__boblibrary__/technology-functions.lua:344: first for loop
  48.917 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  48.917 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  49.163 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  49.163 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  49.163 Script @__boblibrary__/technology-functions.lua:344: first for loop
  49.163 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  49.163 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  92.948 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  92.948 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  92.948 Script @__boblibrary__/technology-functions.lua:346: second for loop
  92.948 Script @__boblibrary__/technology-functions.lua:348: removed space-science-pack from physical-projectile-damage-7
  92.948 Script @__boblibrary__/technology-functions.lua:344: first for loop
  92.948 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  92.948 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  92.948 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  92.948 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  92.948 Script @__boblibrary__/technology-functions.lua:344: first for loop
  92.948 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  92.948 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  92.948 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  92.948 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  92.948 Script @__boblibrary__/technology-functions.lua:344: first for loop
  92.948 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  92.948 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  92.951 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  92.951 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  92.951 Script @__boblibrary__/technology-functions.lua:344: first for loop
  92.951 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  92.951 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  92.959 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  92.960 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  92.960 Script @__boblibrary__/technology-functions.lua:344: first for loop
  92.960 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  92.960 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  92.996 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  92.996 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  92.996 Script @__boblibrary__/technology-functions.lua:344: first for loop
  92.996 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  92.996 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
  93.160 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
  93.160 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
  93.160 Script @__boblibrary__/technology-functions.lua:344: first for loop
  93.160 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
  93.160 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 136.666 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 136.666 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 136.666 Script @__boblibrary__/technology-functions.lua:346: second for loop
 136.666 Script @__boblibrary__/technology-functions.lua:348: removed space-science-pack from stronger-explosives-7
 136.666 Script @__boblibrary__/technology-functions.lua:344: first for loop
 136.666 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 136.666 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 136.667 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 136.667 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 136.667 Script @__boblibrary__/technology-functions.lua:344: first for loop
 136.667 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 136.667 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 136.671 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 136.671 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 136.671 Script @__boblibrary__/technology-functions.lua:344: first for loop
 136.671 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 136.671 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 136.698 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 136.698 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 136.698 Script @__boblibrary__/technology-functions.lua:344: first for loop
 136.698 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 136.698 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 136.850 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 136.850 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 136.850 Script @__boblibrary__/technology-functions.lua:344: first for loop
 136.850 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 136.850 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 136.850 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 136.850 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 136.850 Script @__boblibrary__/technology-functions.lua:344: first for loop
 136.850 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 136.850 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 136.850 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 136.850 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 136.850 Script @__boblibrary__/technology-functions.lua:344: first for loop
 136.850 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 136.850 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 180.330 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 180.330 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 180.330 Script @__boblibrary__/technology-functions.lua:346: second for loop
 180.330 Script @__boblibrary__/technology-functions.lua:348: removed space-science-pack from refined-flammables-7
 180.330 Script @__boblibrary__/technology-functions.lua:344: first for loop
 180.330 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 180.330 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 180.335 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 180.335 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 180.335 Script @__boblibrary__/technology-functions.lua:344: first for loop
 180.335 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 180.335 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 180.335 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 180.335 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 180.335 Script @__boblibrary__/technology-functions.lua:344: first for loop
 180.335 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 180.335 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 180.335 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 180.335 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 180.335 Script @__boblibrary__/technology-functions.lua:344: first for loop
 180.335 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 180.335 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 180.420 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 180.420 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 180.420 Script @__boblibrary__/technology-functions.lua:344: first for loop
 180.420 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 180.420 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 180.800 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 180.800 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 180.800 Script @__boblibrary__/technology-functions.lua:344: first for loop
 180.800 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 180.800 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 180.800 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 180.800 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 180.800 Script @__boblibrary__/technology-functions.lua:344: first for loop
 180.800 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 180.800 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 262.728 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 262.728 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 262.728 Script @__boblibrary__/technology-functions.lua:346: second for loop
 262.728 Script @__boblibrary__/technology-functions.lua:348: removed space-science-pack from energy-weapons-damage-7
 262.728 Script @__boblibrary__/technology-functions.lua:344: first for loop
 262.728 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 262.728 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 262.728 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 262.728 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 262.728 Script @__boblibrary__/technology-functions.lua:344: first for loop
 262.728 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 262.728 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 262.728 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 262.728 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 262.728 Script @__boblibrary__/technology-functions.lua:344: first for loop
 262.728 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 262.728 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 262.739 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 262.739 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 262.739 Script @__boblibrary__/technology-functions.lua:346: second for loop
 262.739 Script @__boblibrary__/technology-functions.lua:348: removed military-science-pack from weapon-shooting-speed-3
 262.739 Script @__boblibrary__/technology-functions.lua:344: first for loop
 262.739 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 262.739 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 262.739 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 262.739 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 262.739 Script @__boblibrary__/technology-functions.lua:344: first for loop
 262.739 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 262.739 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 262.797 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 262.797 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 262.797 Script @__boblibrary__/technology-functions.lua:344: first for loop
 262.797 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 262.797 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 263.053 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 263.053 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 263.053 Script @__boblibrary__/technology-functions.lua:344: first for loop
 263.053 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 263.053 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 263.053 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 263.053 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 263.053 Script @__boblibrary__/technology-functions.lua:344: first for loop
 263.053 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 263.053 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 263.053 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 263.053 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 263.053 Script @__boblibrary__/technology-functions.lua:344: first for loop
 263.053 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 263.053 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 263.081 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 263.082 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 263.082 Script @__boblibrary__/technology-functions.lua:344: first for loop
 263.082 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 263.082 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 263.117 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 263.117 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 263.117 Script @__boblibrary__/technology-functions.lua:344: first for loop
 263.117 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 263.117 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 263.278 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 263.278 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 263.278 Script @__boblibrary__/technology-functions.lua:344: first for loop
 263.278 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 263.278 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 263.278 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 263.278 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 263.278 Script @__boblibrary__/technology-functions.lua:344: first for loop
 263.278 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 263.278 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 263.278 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 263.278 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 263.278 Script @__boblibrary__/technology-functions.lua:344: first for loop
 263.279 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 263.279 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 306.734 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 306.734 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 306.734 Script @__boblibrary__/technology-functions.lua:346: second for loop
 306.734 Script @__boblibrary__/technology-functions.lua:348: removed space-science-pack from artillery-shell-range-1
 306.734 Script @__boblibrary__/technology-functions.lua:344: first for loop
 306.734 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 306.734 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 350.314 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 350.314 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 350.314 Script @__boblibrary__/technology-functions.lua:346: second for loop
 350.314 Script @__boblibrary__/technology-functions.lua:348: removed space-science-pack from artillery-shell-speed-1
 350.314 Script @__boblibrary__/technology-functions.lua:344: first for loop
 350.314 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 350.314 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 350.314 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 350.314 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 350.314 Script @__boblibrary__/technology-functions.lua:344: first for loop
 350.314 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 350.314 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 350.314 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 350.314 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 350.314 Script @__boblibrary__/technology-functions.lua:344: first for loop
 350.314 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 350.315 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 350.403 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 350.403 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 350.403 Script @__boblibrary__/technology-functions.lua:344: first for loop
 350.403 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 350.403 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 350.403 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 350.403 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 350.403 Script @__boblibrary__/technology-functions.lua:344: first for loop
 350.403 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 350.403 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 350.788 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 350.788 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 350.788 Script @__boblibrary__/technology-functions.lua:344: first for loop
 350.788 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 350.788 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 350.788 Script @__boblibrary__/technology-functions.lua:315: end of bobmods.lib.tech.get_redundant_prerequisites
 350.788 Script @__boblibrary__/technology-functions.lua:337: end of bobmods.lib.tech.get_redundant_prerequisites_smart
 350.788 Script @__boblibrary__/technology-functions.lua:344: first for loop
 350.788 Script @__boblibrary__/technology-functions.lua:320: entered bobmods.lib.tech.get_redundant_prerequisites_smart
 350.788 Script @__boblibrary__/technology-functions.lua:298: entered bobmods.lib.tech.get_redundant_prerequisites
 
mod list

Code: Select all

      "name": "AfraidOfTheDark"
      "name": "air-filtering"
      "name": "ammo-loader"
      "name": "angelsaddons-cab"
      "name": "angelsaddons-crawlertrain"
      "name": "angelsaddons-oresilos"
      "name": "angelsaddons-petrotrain"
      "name": "angelsaddons-pressuretanks"
      "name": "angelsaddons-smeltingtrain"
      "name": "angelsaddons-warehouses"
      "name": "angelsbioprocessing"
      "name": "angelsindustries"
      "name": "angelsinfiniteores"
      "name": "angelspetrochem"
      "name": "angelsrefining"
      "name": "angelssmelting"
      "name": "auto-research-18"
      "name": "AutoDeconstruct"
      "name": "AutoTrash"
      "name": "belt-balancer"
      "name": "belt-brush"
      "name": "beltlayer"
      "name": "Big_Brother"
      "name": "Bio_Industries"
      "name": "blueprint_flip_and_turn"
      "name": "bobassembly"
      "name": "bobelectronics"
      "name": "bobenemies"
      "name": "bobequipment"
      "name": "bobgreenhouse"
      "name": "bobinserters"
      "name": "boblibrary"
      "name": "boblocale"
      "name": "boblogistics"
      "name": "bobmining"
      "name": "bobmods_gfxtweak"
      "name": "bobmodules"
      "name": "bobores"
      "name": "bobplates"
      "name": "bobpower"
      "name": "bobrevamp"
      "name": "bobtech"
      "name": "bobvehicleequipment"
      "name": "bobwarfare"
      "name": "Bottleneck"
      "name": "bullet-trails"
      "name": "cargo-ships"
      "name": "CircuitProcessing"
      "name": "crafting_combinator"
      "name": "Dectorio"
      "name": "DiscoScience"
      "name": "Electric Furnaces"
      "name": "ElectricTrain"
      "name": "even-distribution"
      "name": "Factorissimo2"
      "name": "FARL"
      "name": "Fill4Me"
      "name": "Flare Stack"
      "name": "Flow Control"
      "name": "FluidMustFlow"
      "name": "FNEI"
      "name": "helmod"
      "name": "improved-ftl"
      "name": "InfiniteTech"
      "name": "LandfillPainting"
      "name": "LoaderRedux"
      "name": "LogisticTrainNetwork"
      "name": "LSlib"
      "name": "LTN_Combinator"
      "name": "LTN_Content_Reader"
      "name": "LTN_screensaver"
      "name": "miniloader"
      "name": "MoreScience"
      "name": "MoreScience-BobAngelsExtension"
      "name": "MoreScience-ScienceCostTweakerExtension"
      "name": "MoreScience-SpaceExtension"
      "name": "Nanobots"
      "name": "nixie-tubes"
      "name": "only-smelting"
      "name": "OpteraLib"
      "name": "PickerAtheneum"
      "name": "PickerExtended"
      "name": "production-monitor"
      "name": "PumpAnywhere"
      "name": "qol_research"
      "name": "rewire-tool"
      "name": "rso-mod"
      "name": "rusty-locale"
      "name": "ScienceCostTweakerM"
      "name": "ShinyAngelGFX"
      "name": "ShinyBobGFX"
      "name": "ShinyIcons"
      "name": "SpaceMod"
      "name": "Squeak Through"
      "name": "stdlib"
      "name": "textplates"
      "name": "themightygugi_alwaysday"
      "name": "Warehousing"
      "name": "Waterfill_v17"
      "name": "YARM"

Re: [0.18] Please post bugs and balance issues here.

Posted: Fri Apr 17, 2020 7:18 pm
by bobingabout
Racusthor wrote:
Fri Apr 17, 2020 6:34 pm
Hi Bob,

Since the last update of boblibrary it takes ages starting the game. I haven't actually finished loading yet. It took 700 seconds, but the game starts eventually.
It added an entire second to load time on my end, and I did fear it would take even longer if you had more mods, or a slower computer.

Racusthor wrote:
Fri Apr 17, 2020 6:34 pm
I added some extra logs in the functions so you can see the timestamps en hopefully pin it quicker.

Log files
unfortuantely, not really all that useful, except to point out that it's doing a lot, and taking a long time to do it...
Racusthor wrote:
Fri Apr 17, 2020 6:34 pm
mod list

Code: Select all

      "name": "AfraidOfTheDark"
      "name": "air-filtering"
      "name": "ammo-loader"
      "name": "angelsaddons-cab"
      "name": "angelsaddons-crawlertrain"
      "name": "angelsaddons-oresilos"
      "name": "angelsaddons-petrotrain"
      "name": "angelsaddons-pressuretanks"
      "name": "angelsaddons-smeltingtrain"
      "name": "angelsaddons-warehouses"
      "name": "angelsbioprocessing"
      "name": "angelsindustries"
      "name": "angelsinfiniteores"
      "name": "angelspetrochem"
      "name": "angelsrefining"
      "name": "angelssmelting"
      "name": "auto-research-18"
      "name": "AutoDeconstruct"
      "name": "AutoTrash"
      "name": "belt-balancer"
      "name": "belt-brush"
      "name": "beltlayer"
      "name": "Big_Brother"
      "name": "Bio_Industries"
      "name": "blueprint_flip_and_turn"
      "name": "bobassembly"
      "name": "bobelectronics"
      "name": "bobenemies"
      "name": "bobequipment"
      "name": "bobgreenhouse"
      "name": "bobinserters"
      "name": "boblibrary"
      "name": "boblocale"
      "name": "boblogistics"
      "name": "bobmining"
      "name": "bobmods_gfxtweak"
      "name": "bobmodules"
      "name": "bobores"
      "name": "bobplates"
      "name": "bobpower"
      "name": "bobrevamp"
      "name": "bobtech"
      "name": "bobvehicleequipment"
      "name": "bobwarfare"
      "name": "Bottleneck"
      "name": "bullet-trails"
      "name": "cargo-ships"
      "name": "CircuitProcessing"
      "name": "crafting_combinator"
      "name": "Dectorio"
      "name": "DiscoScience"
      "name": "Electric Furnaces"
      "name": "ElectricTrain"
      "name": "even-distribution"
      "name": "Factorissimo2"
      "name": "FARL"
      "name": "Fill4Me"
      "name": "Flare Stack"
      "name": "Flow Control"
      "name": "FluidMustFlow"
      "name": "FNEI"
      "name": "helmod"
      "name": "improved-ftl"
      "name": "InfiniteTech"
      "name": "LandfillPainting"
      "name": "LoaderRedux"
      "name": "LogisticTrainNetwork"
      "name": "LSlib"
      "name": "LTN_Combinator"
      "name": "LTN_Content_Reader"
      "name": "LTN_screensaver"
      "name": "miniloader"
      "name": "MoreScience"
      "name": "MoreScience-BobAngelsExtension"
      "name": "MoreScience-ScienceCostTweakerExtension"
      "name": "MoreScience-SpaceExtension"
      "name": "Nanobots"
      "name": "nixie-tubes"
      "name": "only-smelting"
      "name": "OpteraLib"
      "name": "PickerAtheneum"
      "name": "PickerExtended"
      "name": "production-monitor"
      "name": "PumpAnywhere"
      "name": "qol_research"
      "name": "rewire-tool"
      "name": "rso-mod"
      "name": "rusty-locale"
      "name": "ScienceCostTweakerM"
      "name": "ShinyAngelGFX"
      "name": "ShinyBobGFX"
      "name": "ShinyIcons"
      "name": "SpaceMod"
      "name": "Squeak Through"
      "name": "stdlib"
      "name": "textplates"
      "name": "themightygugi_alwaysday"
      "name": "Warehousing"
      "name": "Waterfill_v17"
      "name": "YARM"
and this just tells me you have A LOT of mods.


However, I've already been working on a new function that returns a list of all prerequisites in the tree, and use that as part of the function that checks if a prerequisite is in the tree.
However, this in itself is slower, takes about 4x as long as the current version, BUT, I'm also adding another "buffered" (though Cached would be a more appropriate word) version of the same function, and in my tests so far it takes only a quater as long.

The reason why the function is so slow in the first place is because for every technology, it looks at the entire tree of prerequisites to see if there's any redundancies, but in theory, if you remove a prerequisite from a technology, it's because it's in the tree, therefore once you've looked at it once, the list of prerequisites in the tree never changes... so just save this list and return it next time you look at the same technology.

This means that if you're looking at something like, advanced electronics 3, which has a HUGE list of prerequisites, it just returns the list instead of having to build the list AGAIN, saving A LOT of time.
now, in bob's mods, that's only 4 times the speed, but the more technologies you put on the tree, the more time would be saved from a caches system, so it could reduce your 302 seconds down to only 10.

Re: [0.18] Please post bugs and balance issues here.

Posted: Fri Apr 17, 2020 7:59 pm
by Racusthor
Good to hear a solution (or workaround) is coming.
In the meantime I found out the reason lies with More-science, which might make sense, since it chances a lot of science as well.
Loading all my mods except More-science takes mere seconds on the technology prerequisite cleanup.

Re: [0.18] Please post bugs and balance issues here.

Posted: Mon Apr 20, 2020 11:16 pm
by MeduSalem
Hey,

I don't know whether to post it here or at Angel's because I don't exactly know who is responsible for the balancing problem, but here it goes:

The Thermal Generator Unit takes way too much Plutinium-239. And the Satellite probably also too many Thermal Generator units.

At least I find it impossible to sustain the Plutonium demand when running a single Rocket Silo fully moduled up with PM8s. I then would need like 2 Centrifuges doing Bobingabout Enrichment Process for additional Plutonium with SM8s but then I ran out of the stocked up Uranium-238 and eventually also out of Uranium ore itself. That said I am using Angel's ores/refinement... that may play into the out of resources issue.

I really think that the 10 Plutonium-239 per Thermal Generator is too much. Even 1 is more than sufficient... and the satelite probably also only 5-10 TGs isntead of 20. Especially since there can't be used any PMs on the Bobingabout Enrichment Process and neither on the Thermal Generator Unit or the Satelite to cut back on resource costs.

The balancing issue really stands out because nothing else is causing that much distress on my factory. :D

Also using the latest Bobs and Angel's versions with the latest Factorio version.

Re: [0.18] Please post bugs and balance issues here.

Posted: Tue Apr 21, 2020 12:11 am
by bobingabout
MeduSalem wrote:
Mon Apr 20, 2020 11:16 pm
Hey,

I don't know whether to post it here or at Angel's because I don't exactly know who is responsible for the balancing problem, but here it goes:

The Thermal Generator Unit takes way too much Plutinium-239. And the Satellite probably also too many Thermal Generator units.

At least I find it impossible to sustain the Plutonium demand when running a single Rocket Silo fully moduled up with PM8s. I then would need like 2 Centrifuges doing Bobingabout Enrichment Process for additional Plutonium with SM8s but then I ran out of the stocked up Uranium-238 and eventually also out of Uranium ore itself. That said I am using Angel's ores/refinement... that may play into the out of resources issue.

I really think that the 10 Plutonium-239 per Thermal Generator is too much. Even 1 is more than sufficient... and the satelite probably also only 5-10 TGs isntead of 20. Especially since there can't be used any PMs on the Bobingabout Enrichment Process and neither on the Thermal Generator Unit or the Satelite to cut back on resource costs.

The balancing issue really stands out because nothing else is causing that much distress on my factory. :D

Also using the latest Bobs and Angel's versions with the latest Factorio version.
200 Plutonium for a satellite does seem a little high... okay, I'll look into it.

Re: [0.18] Please post bugs and balance issues here.

Posted: Mon Apr 27, 2020 3:37 am
by Recon419A
With just Bob's mods installed, pumping, distilling, and electrolysing water and then burning the resultant hydrogen is sufficiently energy positive that it's an effective means of power generation.

Edit: I should also mention that when I added more fluid-burning generators while keeping the load the same (in a testing setup), I was able to decrease the total hydrogen consumption, implying that either A) you have implemented load-dependent efficiency, in which case good for you; or B) there's some sort of error going on with fluid-burning generator fuel consumption.

Re: [0.18] Please post bugs and balance issues here.

Posted: Mon Apr 27, 2020 11:45 am
by bobingabout
Recon419A wrote:
Mon Apr 27, 2020 3:37 am
I should also mention that when I added more fluid-burning generators while keeping the load the same (in a testing setup), I was able to decrease the total hydrogen consumption, implying that either A) you have implemented load-dependent efficiency, in which case good for you; or B) there's some sort of error going on with fluid-burning generator fuel consumption.
Back when I still had source access, one of the entities I edited was the reactor.
I added a read for the line "scale_energy_usage = true", and if it's found... Scales so that the fuel consumption is reduced to match the energy demand.
I also changed it to have an energy_source tag instead of a burner tag, allowing it to be fueled by a fluid (or even Electricity) if you want it to be.

This was back in 0.17 beta, so the public first saw it in 0.17. I didn't actually use it until near the end of the 0.17 run.

Keep in mind I edited a lot of things, you only see in game the things the Dev's accepted.

Re: [0.18] Please post bugs and balance issues here.

Posted: Mon Apr 27, 2020 5:32 pm
by Recon419A
Not using reactors here; just unlocked blue science. I'm more referring to the fact that with fluid burning generators, adding more reduces fuel consumption rather than simply redistributing it. I discovered that while testing the limits of a "water burning" power plant as described above.

Re: [0.18] Please post bugs and balance issues here.

Posted: Mon Apr 27, 2020 5:33 pm
by Recon419A
I also think it's a balance issue that you can turn water into electricity via electrolysis and combustion.

Edit: By that I mean specifically vanilla water from an offshore pump.

Re: [0.18] Please post bugs and balance issues here.

Posted: Mon Apr 27, 2020 5:34 pm
by Recon419A
I'll edit this post with the "water power" blueprint when I'm sitting at the appropriate computer.

Edit: Here's the blueprint: https://pastebin.com/JbmXfuZf

I tested this design off-grid with a bunch of Radar Mk.2s. Adding more fluid-burning generators - as you can see, there are far more here than "required" to consume the amount of hydrogen being produced - directly increased the number of radars I could support. Obviously, there are no inputs to this design other than water, so it really shouldn't be producing power on its own (at least from a "real physics" standpoint; I don't know whether the up-front cost justifies it from a game balance standpoint or not).

Re: [0.18] Please post bugs and balance issues here.

Posted: Mon Apr 27, 2020 6:22 pm
by bobingabout
Recon419A wrote:
Mon Apr 27, 2020 5:32 pm
Not using reactors here; just unlocked blue science. I'm more referring to the fact that with fluid burning generators, adding more reduces fuel consumption rather than simply redistributing it. I discovered that while testing the limits of a "water burning" power plant as described above.
To note "Reactor" is the type of entity.
Heat sources (Item or Fluid powered) are just modded reactors.

Re: [0.18] Please post bugs and balance issues here.

Posted: Mon Apr 27, 2020 6:58 pm
by Recon419A
bobingabout wrote:
Mon Apr 27, 2020 6:22 pm

To note "Reactor" is the type of entity.
Heat sources (Item or Fluid powered) are just modded reactors.
Okay, that makes more sense. Do the reactors also have non-linear fuel consumption, then?

Re: [0.18] Please post bugs and balance issues here.

Posted: Mon Apr 27, 2020 7:45 pm
by bobingabout
Recon419A wrote:
Mon Apr 27, 2020 6:58 pm
bobingabout wrote:
Mon Apr 27, 2020 6:22 pm

To note "Reactor" is the type of entity.
Heat sources (Item or Fluid powered) are just modded reactors.
Okay, that makes more sense. Do the reactors also have non-linear fuel consumption, then?
No, it's basically just...

Reactor is 500W (Example)
Consume min(available, 500/60)J of fuel per tick, Add min(consumed, capacity - heat)J of heat energy per tick.

If you turn on the scale tag, it calculates required = min(500/60, capacity-heat), then consumes min(required, available) that amount from the fuel, and adds the consumed amount to heat energy.

Yes, it's maths heavy.

Re: [0.18] Please post bugs and balance issues here.

Posted: Mon May 04, 2020 11:53 pm
by loganb
Hello,

Just wanted to drop in here and comment on balancing for the Plasma Turret—it is way too strong. I am about half way through an Angels + Bobs run (well developed blue science, just got Electronic Circuit Boards, but don't have titanium).

My biter evolution is 78% and a Plasma Turret Mk1 easily rips through everything. I think it should do approximately half the damage, and probably require ECBs. Just a thought and love the mod!

PS: the strength of sniper turrets also seems high, but that's been around forever, so I assume it's already been decided.

Re: [0.18] Please post bugs and balance issues here.

Posted: Tue May 05, 2020 12:11 am
by bobingabout
loganb wrote:
Mon May 04, 2020 11:53 pm
Hello,

Just wanted to drop in here and comment on balancing for the Plasma Turret—it is way too strong. I am about half way through an Angels + Bobs run (well developed blue science, just got Electronic Circuit Boards, but don't have titanium).

My biter evolution is 78% and a Plasma Turret Mk1 easily rips through everything. I think it should do approximately half the damage, and probably require ECBs. Just a thought and love the mod!

PS: the strength of sniper turrets also seems high, but that's been around forever, so I assume it's already been decided.
Plasma has actually been a bob's mods artillery weapon for quite some time now, though it used to only be in the vehicle equipment grid.
I gave it it's own turret in 0.17, and actually did a whole rebalance for it. it probably only seems strong because I gave it it's own damage type that most enemies don't have a resistance to. I'll look into it.