{"id":17302384,"url":"https://github.com/coriolinus/factorio-recipe-planner","last_synced_at":"2025-03-26T22:24:16.991Z","repository":{"id":220423551,"uuid":"751603355","full_name":"coriolinus/factorio-recipe-planner","owner":"coriolinus","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-19T20:41:25.000Z","size":43,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-01T04:16:23.782Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coriolinus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-02-01T23:42:46.000Z","updated_at":"2024-04-19T20:41:28.000Z","dependencies_parsed_at":"2024-02-09T18:25:25.222Z","dependency_job_id":"93717403-9112-4b14-a23e-ad4782475d9f","html_url":"https://github.com/coriolinus/factorio-recipe-planner","commit_stats":null,"previous_names":["coriolinus/factorio-recipe-planner"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coriolinus%2Ffactorio-recipe-planner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coriolinus%2Ffactorio-recipe-planner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coriolinus%2Ffactorio-recipe-planner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coriolinus%2Ffactorio-recipe-planner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coriolinus","download_url":"https://codeload.github.com/coriolinus/factorio-recipe-planner/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245744372,"owners_count":20665263,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-15T11:47:23.794Z","updated_at":"2025-03-26T22:24:16.970Z","avatar_url":"https://github.com/coriolinus.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Factorio Recipe Planner\n\nThis project is comprised of two parts. One is a more general parser for the recipe data. The other uses that data to interactively design factory modules.\n\nNote that everything is WIP for now; neither of the features have yet been fully implemented.\n\n## Data Parser\n\nFactorio recipe data is not included in this repository, but can be found in various places online. Either use a precompiled data set, or extract your own given your currnet mod list.\n\nA script, `get-data.sh`, is provided, which fetches data for the base game. Not affiliated, no guarantee of correctness, etc. It emits a file in the current working directory called `prototype-data.lua`.\n\nTo transform this data into a collection of JSON files, run\n\n```sh\ncargo run --bin into-json --release -- --split-toplevel prototype-data.lua prototype-data\n```\n\nYou can now inspect individual recipes as desired:\n\n```sh\n$ jq '.\"copper-cable\"' prototype-data/recipe.json\n{\n  \"ingredients\": [\n    [\n      \"copper-plate\",\n      1\n    ]\n  ],\n  \"name\": \"copper-cable\",\n  \"result\": \"copper-cable\",\n  \"result_count\": 2,\n  \"type\": \"recipe\"\n}\n$ jq '.\"uranium-processing\"' prototype-data/recipe.json\nFri 02 Feb 2024 01:18:10 AM CET\n{\n  \"category\": \"centrifuging\",\n  \"enabled\": false,\n  \"energy_required\": 12,\n  \"icon\": \"__base__/graphics/icons/uranium-processing.png\",\n  \"icon_mipmaps\": 4,\n  \"icon_size\": 64,\n  \"ingredients\": [\n    [\n      \"uranium-ore\",\n      10\n    ]\n  ],\n  \"name\": \"uranium-processing\",\n  \"order\": \"k[uranium-processing]\",\n  \"results\": [\n    {\n      \"amount\": 1,\n      \"name\": \"uranium-235\",\n      \"probability\": 0.007000000000000001\n    },\n    {\n      \"amount\": 1,\n      \"name\": \"uranium-238\",\n      \"probability\": 0.993\n    }\n  ],\n  \"subgroup\": \"raw-material\",\n  \"type\": \"recipe\"\n}\n```\n\nNote that there is variance between `\"result\"` and `\"results\"`. `\"energy_required\"` appears to be recipe duration in seconds.\n\n## Module Planner\n\nYou tell it things like the assembler type, belt type, modules used, and any assumed-infinite inputs; it tells you what you'll get from one assembler, what you'll need to fill one belt, and what you'll need to\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoriolinus%2Ffactorio-recipe-planner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoriolinus%2Ffactorio-recipe-planner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoriolinus%2Ffactorio-recipe-planner/lists"}