abucnasty/factorio-benchmarks

Factorio Benchmarks

JavaScript

112

274 commits

updated Sep 11, 2026

See the code

README

Overview

This is a project space for factorio related discovery.

Blueprints

Blueprints that have been made publically available.

blueprints

Factorio Benchmarks

benchmarks

This directory contains the following:

  1. performance benchmark runs
  2. save files
  3. data results
  4. conclusion files in markdown notation

UPS Wars

A series of community-driven competitions to discover the most UPS-efficient designs for science production in Factorio. Participants submit factory blueprints that are rigorously benchmarked to determine optimal approaches for large-scale manufacturing.

2025 Q1 Nauvis Science Competition

A comprehensive competition series covering vanilla plus space age Nauvis science packs with dozens of contributed designs across multiple science types.

Science TypeEntriesDescription
Automation Science18 designsRed science production using techniques like direct insertion, fluid buses, and lead-follower control
Logistics Science21 designsGreen science with molten fluid buses, wagon tech, and various belt configurations
Chemical Science30+ designsBlue science featuring multi-round elimination brackets, hybrid designs, and component testing
Production Science36 designsPurple science with separate furnace and productivity module benchmarks, plus composite analysis

Simulators

simulators

WIP simulator for calculating quality ratios for use in designs

Contributing

Git LFS (Large File Storage)

This repository uses Git LFS to store large files. The following are tracked via LFS and served from Cloudflare R2:

  • .zip — Factorio save files (all directories)
  • .csv — Benchmark result data (benchmarks/ and competitions/)

You must have Git LFS installed before cloning or contributing, otherwise these files will appear as small pointer text files instead of their actual contents.

Setup:

  1. Install Git LFS: https://git-lfs.com/
  2. Enable it for your git installation (one-time, per machine):
    git lfs install
    

Cloning — download only what you need

There are hundreds of benchmark save files and result CSVs in this repo. To avoid downloading all of them at once, clone with LFS smudging disabled and then pull only what you need:

GIT_LFS_SKIP_SMUDGE=1 git clone <repo-url>
cd factorio-benchmarks

# Pull saves and results for a specific benchmark
git lfs pull --include="benchmarks/2026-07-03-mining-drill-performance-2.1.9/**"

# Or pull everything from a top-level folder (saves + CSVs)
git lfs pull --include="benchmarks/**"

To download everything at once (not recommended on metered connections):

git clone <repo-url>

If you already cloned without LFS, fetch specific files with:

git lfs pull --include="<path/to/benchmark>/**"

Adding new benchmark save files

Simply git add the .zip as normal — the .gitattributes rule routes it through LFS automatically:

git add benchmarks/my-new-benchmark/save.zip
git commit -m "add save file"
git push

Uploading requires an upload token. Set it once per clone using git-credential-store:

# 1. Tell git to use the credential store for the LFS server
git config --local \
  'credential.https://factorio-lfs.abucnasty.workers.dev.helper' \
  store

# 2. Write the credentials to ~/.git-credentials
printf 'https://lfs:<your-upload-token>@factorio-lfs.abucnasty.workers.dev\n' \
  >> ~/.git-credentials
chmod 600 ~/.git-credentials

Contact @abucnasty for an upload token.

Note: Do not use lfs.<url>.Authorization — git-lfs ignores it once access=basic is cached in .git/config (which happens automatically on the first auth negotiation). The credential-store approach works reliably.

Troubleshooting

VS Code shows a username/password dialog for factorio-lfs.abucnasty.workers.dev

This happens because git-lfs cached access=basic in .git/config and VS Code's credential helper is intercepting the request. Fix:

# 1. Remove the cached access type
git config --local --unset 'lfs.https://factorio-lfs.abucnasty.workers.dev.access'

# 2. Make sure credentials are stored (see upload setup above)
printf 'protocol=https\nhost=factorio-lfs.abucnasty.workers.dev\n' | git credential fill
# Should print: username=lfs  password=<token>
# If empty, re-run the credential-store setup above.

Contributors

abucnasty

270 commits

abucnasty/factorio-benchmarks

Factorio Benchmarks

JavaScript

112

274 commits

updated Sep 11, 2026

See the code

README

Overview

This is a project space for factorio related discovery.

Blueprints

Blueprints that have been made publically available.

blueprints

Factorio Benchmarks

benchmarks

This directory contains the following:

  1. performance benchmark runs
  2. save files
  3. data results
  4. conclusion files in markdown notation

UPS Wars

A series of community-driven competitions to discover the most UPS-efficient designs for science production in Factorio. Participants submit factory blueprints that are rigorously benchmarked to determine optimal approaches for large-scale manufacturing.

2025 Q1 Nauvis Science Competition

A comprehensive competition series covering vanilla plus space age Nauvis science packs with dozens of contributed designs across multiple science types.

Science TypeEntriesDescription
Automation Science18 designsRed science production using techniques like direct insertion, fluid buses, and lead-follower control
Logistics Science21 designsGreen science with molten fluid buses, wagon tech, and various belt configurations
Chemical Science30+ designsBlue science featuring multi-round elimination brackets, hybrid designs, and component testing
Production Science36 designsPurple science with separate furnace and productivity module benchmarks, plus composite analysis

Simulators

simulators

WIP simulator for calculating quality ratios for use in designs

Contributing

Git LFS (Large File Storage)

This repository uses Git LFS to store large files. The following are tracked via LFS and served from Cloudflare R2:

  • .zip — Factorio save files (all directories)
  • .csv — Benchmark result data (benchmarks/ and competitions/)

You must have Git LFS installed before cloning or contributing, otherwise these files will appear as small pointer text files instead of their actual contents.

Setup:

  1. Install Git LFS: https://git-lfs.com/
  2. Enable it for your git installation (one-time, per machine):
    git lfs install
    

Cloning — download only what you need

There are hundreds of benchmark save files and result CSVs in this repo. To avoid downloading all of them at once, clone with LFS smudging disabled and then pull only what you need:

GIT_LFS_SKIP_SMUDGE=1 git clone <repo-url>
cd factorio-benchmarks

# Pull saves and results for a specific benchmark
git lfs pull --include="benchmarks/2026-07-03-mining-drill-performance-2.1.9/**"

# Or pull everything from a top-level folder (saves + CSVs)
git lfs pull --include="benchmarks/**"

To download everything at once (not recommended on metered connections):

git clone <repo-url>

If you already cloned without LFS, fetch specific files with:

git lfs pull --include="<path/to/benchmark>/**"

Adding new benchmark save files

Simply git add the .zip as normal — the .gitattributes rule routes it through LFS automatically:

git add benchmarks/my-new-benchmark/save.zip
git commit -m "add save file"
git push

Uploading requires an upload token. Set it once per clone using git-credential-store:

# 1. Tell git to use the credential store for the LFS server
git config --local \
  'credential.https://factorio-lfs.abucnasty.workers.dev.helper' \
  store

# 2. Write the credentials to ~/.git-credentials
printf 'https://lfs:<your-upload-token>@factorio-lfs.abucnasty.workers.dev\n' \
  >> ~/.git-credentials
chmod 600 ~/.git-credentials

Contact @abucnasty for an upload token.

Note: Do not use lfs.<url>.Authorization — git-lfs ignores it once access=basic is cached in .git/config (which happens automatically on the first auth negotiation). The credential-store approach works reliably.

Troubleshooting

VS Code shows a username/password dialog for factorio-lfs.abucnasty.workers.dev

This happens because git-lfs cached access=basic in .git/config and VS Code's credential helper is intercepting the request. Fix:

# 1. Remove the cached access type
git config --local --unset 'lfs.https://factorio-lfs.abucnasty.workers.dev.access'

# 2. Make sure credentials are stored (see upload setup above)
printf 'protocol=https\nhost=factorio-lfs.abucnasty.workers.dev\n' | git credential fill
# Should print: username=lfs  password=<token>
# If empty, re-run the credential-store setup above.

Contributors

abucnasty

270 commits

Languages

JavaScript

31.2%

Shell

29.0%

TypeScript

21.9%

PowerShell

16.4%

Python

1.4%