Giter Club home page Giter Club logo

yafc-ce's Introduction

YAFC: Community Edition

Why new repo?

The original YAFC repository has been inactive for a year. Bugfixes piled up, but there was no one to review and merge them. This repository aims to fix that.

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 analyser. 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 deeply recursive Pyanodon recipes, which the tools like Helmod could not handle. YAFC uses Google's OrTools as a model solver to handle them extremely well.

Among other things YAFC has Never Enough Items, which is FNEI on steroids. In addition to showing the recipes, it shows which ones you probably 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. Navigate to the Releases,
  2. Download the zip file for your given OS,
  3. Extract the zip file to your preferred location,
  4. Run either ./YAFC or ./YAFC.exe (OS-dependent),
  5. Once YAFC is opened, make sure to locate your mod folder. Refer to the wiki for your given OS.

Project features

  • Works with any combination of mods for Factorio 0.17+.
  • Multiple pages, the Undo button (Ctrl+Z).
  • Dependency Explorer tool that allows to see which objects are needed for what.
  • Never Enough Items tool that helps to find out how to produce any item, and also which way YAFC thinks is 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 sheets: You can attach a nested sheet to any recipe. When a sheet is collapsed, you will see a summary for all recipes in it. Nested sheets have their own set of links. For example, you can create a nested sheet for electronic circuits, and put copper cables inside that sheet. If you add an internal link for copper cables, it will be separate, so you can calculate copper cables just for electronic circuits.
    • Auto modules: You can add modules to recipes by using a single slider. Based on your milestones, it will automatically add modules you have access to. It will prioritize putting modules into buildings that benefit the most from them.
      Expand to see it in actionAutoModules.gif
    • Fluid temperatures, although without mixing them, allow to calculate energy generation.
    • Fuel, including electricity. You can even add energy generation exactly enough for your sheet. Howerver, 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: YAFC tries to find objects that can be fully automated. For example, wood in a vanilla game cannot be fully automated because it requires to cut trees.
    • Cost analysis: YAFC assigns a cost to each object. The cost is a sum of logistic actions you need to perform to get that object, using the most optimal recipes. YAFC cost is very useful to quickly compare items and recipes. This cost also helps to find which recipes are suboptimal.
    • Flow analysis: YAFC calculates a base that produces enough science packs for all non-infinite research. It knows how much of everything you will probably need.

More gifs can be found here (Traffic warning!)

Possible incompatibilities

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

I am playing Seablock / Other "scripted progression" mod, and YAFC thinks that items are inaccessible

No ultimate solution to this has been found, but you can open Dependency Explorer and manually mark a bunch of items or technologies as accessible.

For Seablock specifically, please check this issue that contains a small list of things to enable at first.

For mod authors: You can 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 0.5.4.0.

Contributing

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).

yafc-ce's People

Contributors

shadowtheage avatar shpaass avatar veger avatar dalestan avatar blu3wolf avatar saklad5 avatar klaborda avatar petebuffon avatar sweini avatar aidiakapi avatar supertux88 avatar dorus avatar theunkn0wn1 avatar snowth avatar akiiino avatar dependabot[bot] avatar masc23 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.