No description
Find a file
shpaass fcb32cec22
Some checks are pending
Release build check / build (Release) (push) Waiting to run
release Yafc 2.15.0
2025-09-01 15:12:19 +02:00
.githooks ci: Add a pre-push hook that checks formatting 2024-10-05 09:30:17 +02:00
.github ci: disable crowdin 2025-05-14 20:29:08 +02:00
CommandLineToolExample feat: remove expensive mode 2024-10-20 21:03:29 +02:00
Docs Fix tff typo 2025-07-22 09:54:29 +02:00
lua Use system build vars when building liblua52.so 2025-08-25 13:06:38 +02:00
Yafc release Yafc 2.15.0 2025-09-01 15:12:19 +02:00
Yafc.I18n fix: fix dotnet build Yafc and similar commands. 2025-08-25 19:16:57 -04:00
Yafc.I18n.Generator feat(i18n): Generate identifiers for localization keys. 2025-05-05 18:14:32 -04:00
Yafc.Model fix(#444): Hide table icons when the goods don't escape the table. 2025-08-14 08:08:22 -04:00
Yafc.Model.Tests fix(#501): Milestone checks now look at the current project. 2025-07-24 23:48:30 -04:00
Yafc.Parser fix: support table version of EntityIDFilter 2025-08-13 10:42:15 -04:00
Yafc.UI fix: improve the logic of closing a utility window 2025-08-29 14:21:16 +02:00
.editorconfig chore(style): Suppress IDE0306: Collection initialization can be simplified. 2025-02-14 11:36:38 -05:00
.gitignore feat(i18n): Generate identifiers for localization keys. 2025-05-05 18:14:32 -04:00
build.sh fix: fix dotnet build Yafc and similar commands. 2025-08-25 19:16:57 -04:00
changelog.txt release Yafc 2.15.0 2025-09-01 15:12:19 +02:00
crowdin.yml change: Update Crowdin integration. 2025-05-05 18:14:39 -04:00
Directory.Build.props feat: remove builder's path from the stack trace 2024-06-23 19:10:29 +02:00
exclusion.dic chore(style): Fix or ignore some more spelling complaints. 2025-02-14 11:52:10 -05:00
FactorioCalc.sln feat(i18n): Generate identifiers for localization keys. 2025-05-05 18:14:32 -04:00
LICENSE Create LICENSE 2020-05-18 23:46:19 +03:00
licenses.txt feat: Optionally, download missing fonts when changing the language. 2025-05-03 20:27:06 -04:00
output.temp style-change: add recommended commit prefixes 2024-10-05 17:50:05 +02:00
README.md docs: make mod-fixes discoverable from landing 2025-01-27 08:45:04 +01:00
set-up-git-hooks.sh ci: Add a pre-push hook that checks formatting 2024-10-05 09:30:17 +02:00

YAFC: Community Edition

yafc_icon.png

Why new repo?

The original YAFC repository was inactive for a long time. Bugfixes piled up, but there was no one to merge them.
This repository addresses that by providing continuous support to the development.

Have you talked with the author?

Yes, we have their approval.

Expand to see the screenshot yafc_author_approval.png

What is YAFC?

Yet Another Factorio Calculator or YAFC is a planner and analyzer. The main goal of YAFC is to help with heavily modded Factorio games.

Expand to see what YAFC can do Main.gif

YAFC is more than just a calculator. It uses multiple algorithms to understand what is going on in your modpack to the point of calculating the whole late-game base. It knows what items are more important and what recipes are more efficient.

It was created as an answer to recursive Pyanodon recipes that tools like Helmod could not handle. YAFC uses Google's OrTools as a model solver to handle them extremely well.

YAFC also has its own Never Enough Items, which is FNEI on steroids. In addition to showing the recipes, it shows which ones you want to use and how much.

Getting started

YAFC is a desktop app. The Windows build is the most tested, but OSX and Linux are supported too. See Linux and OSX installation instructions.

  1. Make sure that you have VC Redist installed. It's needed for Google OrTools.
  2. Navigate to the Yafc Releases,
  3. Download the zip file for your given OS,
  4. Extract the zip file to your preferred location,
  5. Run either ./Yafc or ./Yafc.exe (OS-dependent),
  6. Once YAFC is opened, make sure to locate your mod folder. Refer to the wiki for your given OS.

We also have the following materials to improve your Yafc experience:

If you want to build Yafc from source, you need to install .NET 8.
You can run build.sh with Git Bash to build for all systems, or just a single line from it that contains dotnet publish to build for your system.

Project features

  • Works with any combination of mods for Factorio 2.0+. The most recent version that supports Factorio 1.1 is 0.9.1.
  • Multiple pages, the Undo button (Ctrl+Z).
  • Dependency Explorer that allows to see which objects are needed for what.
  • Never Enough Items that helps to find out how to produce any item, and which option YAFC considers optimal.
  • Main calculator sheet:
    • Links: YAFC will try to balance production/consumption only for linked goods. Unlinked goods are calculated but not balanced. It is a core difference from Helmod, which attempts to balance everything and breaks on deeply recursive recipes.
    • Nested tables: You can attach a nested table to any recipe. When a table is collapsed, you will see a summary for all recipes in it. Nested tables have their own set of links. For example, if a nested table has copper cables that are linked inside, then these cables will be calculated only inside the nested table.
    • Auto modules: You can add modules to recipes by using a single slider. It will add modules based on your milestones and will prioritize modules in buildings that benefit most.
      Expand to see it in actionAutoModules.gif
    • Fluid temperatures, without mixing.
    • Fuel and electricity. You can even add exactly enough energy for your sheet. However, inserters are not included.
  • Multiple analyses:
    • Accessibility analysis shows inaccessible objects. Mods often hide objects, and Factorio has a bunch of hidden ones too. However, it is impossible to find objects that are spawned by mods or map scripts. This analysis may fail for modpacks like Seablock, but you can mark some objects as accessible manually.
    • Milestone analysis: You can add anything as a milestone. YAFC will display that milestone icon on every object that is locked behind it, directly or indirectly. Science packs are natural milestones, and so they are added by default.
    • Automation analysis finds objects that cannot be fully automated. For example, wood in a vanilla.
    • Cost analysis assigns a cost to each object. The cost is a sum of logistic actions you need to perform to get that object when using optimal recipes. It helps to compare which recipe is better.
    • Flow analysis calculates a base that produces enough science packs for all non-infinite research.
  • Load projects from the command line.

Possible incompatibilities

  • For Seablock, please check this issue that has a list of things to enable at first.
  • For other mods with scripted progression, YAFC might also think that items are inaccessible. There is no silver bullet against that, but you can open Dependency Explorer and manually mark a bunch of items or technologies as accessible.

For mod authors: You can add a mod-specific fix to Yafc. Here is a guide about it. You can also detect YAFC by checking the data.data_crawler variable during the data stage. It will be equal to yafc a.b.c.d where a.b.c.d is yafc version. For instance, yafc 2.5.6.0.

YAFC loads mods in environment that is not completely compatible with Factorio. If you notice any bugs, please report them in the issues.

Contributing

Do you want to discuss things about YAFC? Feel free to join our channel on the Pyanodons Discord!
Do you want to make a Pull Request to YAFC? Great! Please check out the Contributor's Guide to make sure the review process of your PR is smooth.

License

  • GNU GPL 3.0
  • Copyright 2020 © ShadowTheAge
  • This readme contains gifs featuring Factorio icons. All Factorio icons are copyright of Wube Software.
  • Powered by free software: .NET core, SDL2, Google Or-Tools, Lua and others (see full list).