A tool designed for complex GT packs. In specific, aims to achieve:
It achieves this by automatically doing machine balancing math for you. You define a machine process once, then you can modify total system I/O or overclocks by only changing a few lines, and gtnh-flow
will recompute everything in seconds. Outputs are given visually in either png or pdf (searchable!) format using graphviz.
git clone https://github.com/OrderedSet86/gtnh-flow.git
)pip install -r requirements.txt
)sudo apt-get install graphviz
)(The next steps will ask you to run some commands - use Powershell or WSL for this.)
git clone https://github.com/OrderedSet86/gtnh-flow.git
or download it using Code (green button) -> Download ZIP on Github, then unzip.https://www.python.org/downloads/windows/
. pip --version
and python --version
should both return valid version numbers from the command line. Python should be version 3.pip install -r requirements.txt
https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224
. It is important that Graphviz is added to the System PATH for either all users or current users and you may need to restart Windows for this change to take effect.projects/
. You can look at existing projects to see how to structure it. In flow
's current form, you need to specify exact I/O and eut/duration in seconds, as well as which voltage you wish to actually run the machine at (for calculating overclocks). In addition, at least one machine will need a number
or target
argument to be specified, which tells the program how to balance the rest of the machines in the network. (The green nodes in the example above are the number
ed nodes.)python factory_graph.py
, then inputting whatever your project is called (eg "power/benzene/iv").output/
!The idea of gtnh-flow is to automatically do all the machine balancing math for you. But you need to specify at least one machine for the information to propagate out to the rest of the graph. Both "target" and "number" provide this information. Examples:
"number": 3
means "there are exactly 3 of this machine""target": sulfuric acid: 1000
means "there are exactly enough of this machine to produce 1000 sulfuric acid per second"config_factory_graph.yaml
.config_factory_graph
lets you automatically burn fuels and choose which ones to ignore. This is on by default.chlorine 1
and chlorine 2
. This will cause it to no longer automatically be used in any machine that needs chlorine, just the one you want. You can see this technique used regularly for platline.gtnh-flow
cannot solve certain parallel edge product situations - this is hopefully being resolved in version 2, which is currently in pre-alpha development. It will take a while as I am trying to avoid the way Factorio solvers work, which is to define an "objective" value for every item in the game. This is impractical to do and permanently maintain for GTNH.