Skip to content

mod for Factorio.Collect and distribute resource automatically, hacked to add extra support for mods and stuff

Notifications You must be signed in to change notification settings

TheCrazyInsanity/Factorio_auto_resource_exsupport

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

  • Collect and distribute resources(including ammo) automatically, just like playing RTS game!
  • If you play sandbox mode, please create character first or it will lead script error. Open console, execute "/c game.player.create_character()"
  • If you find a bug feel free commit issue with details
  • Do not support Multiplayer, never tested.
  • In Wave Defense the system give you some turret and a rocket-silo at first, these can not be recognized by mod, you need click them open the GUI such the mod can get the event notify.
  • Do not support previous save because game don't give a API to read all entities. The script only can get notify event by player building or robot building. If you load a previous save, game will run but the mod will not able to recognize all entities you built, you need rebuild them.
  • May not work with some Mod.

Demo

  • Video : TBD
  • Screenshot:

How it works

  • When you build a furnace/chest/machine/... the mod will remember it and collect production, add ingredients preiodicty. Because the lua API don't give such a "production complete" event notify, the script check this every XX ms.

Performance

The entity number will affect the efficiency but I tested it with about 10000 entities it works well, CPU load <10%, 60 FPS stable

Feature list

  • Supported resources: all items needed by all science pack + artillery shell. To avoid waste I set a max value for each type. Check code for details. If the resource reach the limit the script will not collect it from machine, you can still use belt+inserter+chest to collect.
	local store100M={
		"iron-ore",
		"copper-ore",
		"uranium-ore",
		"stone",
		"coal",
		"water",
		}
	local store1K={
		"iron-plate",
		"copper-plate",
		"steel-plate",
		"stone-brick",
		}
	
	local store25K={
		"crude-oil",
		"heavy-oil",
		"light-oil",
		"lubricant",
		"petroleum-gas",
		"sulfuric-acid",
		}
	local store200={
		"transport-belt",
		"pipe",
		"inserter",
		"copper-cable",
		"iron-gear-wheel",
		"electronic-circuit",
		"stone-wall",
		"firearm-magazine",
		"piercing-rounds-magazine",
		"grenade",
		"plastic-bar",
		"sulfur",
		"advanced-circuit",
		"engine-unit",
		"iron-stick",
		"rail",
		"electric-furnace",
		"productivity-module",
		
		"processing-unit",
		"battery",
		"electric-engine-unit",
		"flying-robot-frame",
		
		"speed-module",
		
		"rocket-control-unit",
		"low-density-structure",
		"rocket-fuel",
		"solid-fuel",
		"automation-science-pack",
		"logistic-science-pack",
		"military-science-pack",
		"chemical-science-pack",
		"production-science-pack",
		"utility-science-pack",
		"space-science-pack",
		"solar-panel",
		"accumulator",
		"radar",
		"explosives",
		"explosive-cannon-shell",
		"artillery-shell",
		}
  • Supported "machine" types: chest/furnace/assemblemachine/oilrefine/chemicalplant/turret are all "machine" that will be managed by mod. Check code for details
local Kchest={}
Kchest["wooden-chest"]=true
Kchest["iron-chest"]=true
Kchest["steel-chest"]=true
Kchest["storage-tank"]=true
Kchest["pumpjack"]=true

local Kmachine={
	["assembling-machine-1"]=true,
	["assembling-machine-2"]=true,
	["assembling-machine-3"]=true,
	["stone-furnace"]=true,
	["steel-furnace"]=true,
	["electric-furnace"]=true,
	["oil-refinery"]=true,
	["chemical-plant"]=true,
	["stone-furnace"]=true,
	["steel-furnace"]=true,
	["electric-furnace"]=true,
	["rocket-silo"]=true,
}

  • specific ingredient:
local _fuel={"coal","solid-fuel"}
local _fuel_list={
	["gun-turret"]={{"piercing-rounds-magazine","firearm-magazine"}},
	["artillery-turret"]={{"artillery-shell"}},
	["flamethrower-turret"]={{"light-oil","heavy-oil","crude-oil"}},
	["boiler"]={_fuel,{"water"}},
	["burner-mining-drill"]={_fuel},
	["stone-furnace"]={_fuel},
	["steel-furnace"]={_fuel},
	["heat-exchanger"]={{"water"}},
}
  • Max fuel: default value is 3, it means if a machine has 1 fuel, script will add 2 fuel; if it has 4 fuel, the script will take 1 fuel away.

  • "steam" will not be managed, because different temperature works different(nuclear power)

  • Furnace batch mode: Click the FT button to select type and put furnace. If you don't like this select "none"

  • Resources exchange: Click the button, follow the tips. Fluid types are not supported. If want give back the resource, put the resource to chest.

About

mod for Factorio.Collect and distribute resource automatically, hacked to add extra support for mods and stuff

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Lua 100.0%