https://github.com/fgardt/factorio-scanner
Factorio tools to render and work with blueprint strings, (de)serialize prototype dumps and more
https://github.com/fgardt/factorio-scanner
factorio factorio-blueprints factorio-tool rust
Last synced: 4 months ago
JSON representation
Factorio tools to render and work with blueprint strings, (de)serialize prototype dumps and more
- Host: GitHub
- URL: https://github.com/fgardt/factorio-scanner
- Owner: fgardt
- License: mit
- Created: 2023-10-30T22:14:52.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-07-23T01:50:29.000Z (6 months ago)
- Last Synced: 2025-07-23T03:27:41.558Z (6 months ago)
- Topics: factorio, factorio-blueprints, factorio-tool, rust
- Language: Rust
- Homepage:
- Size: 25 MB
- Stars: 23
- Watchers: 1
- Forks: 4
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Factorio-Scanner
> [!NOTE]
> The current main branch contains WIP changes for porting the code to factorio 2.0.
> For the latest 1.1 compatible version see the [`factorio-1.1.109`](https://github.com/fgardt/factorio-scanner/tree/factorio-1.1.109) tag.
Collection of crates that help with deserializing and serializing Factorio blueprint strings, prototype and locale dumps and mod settings.
End goal is to build a blueprint renderer that properly supports blueprints with modded entities by first loading a prototype dump and then rendering the blueprint.
Building additional tools might also happen along the way (cli tool to edit `mod-settings.dat` files for example).
## Crates
- [`blueprint`](/blueprint/): blueprint string (de)serializing
- [`factorio_api`](/factorio_api/): internal factorio mod portal api
- [`locale`](/locale/): locale dump (de)serializing
- [`mod_util`](/mod_util/): mod settings (de)serializing (`.json` and `.dat` files), mod list (de)serializing, dependency resolver, property tree (de)serializing (binary format only)
- [`prototypes`](/prototypes/): prototype (de)serializing & rendering
- [`types`](/types/): generic type (de)serializing, sprite loading, layering, merging, ...
- [`serde_helper`](/serde_helper/): util functions for deserialized defaults & serialization skip conditions
- [`scanner`](/scanner/): the actual rendering tool that connects everything
### Versions
> [!WARNING]
> There are no stability guarantees as of now.
> Consider all of this to be unstable!
The prerelease part of the version number for the [`types`](/types/) and [`prototypes`](/prototypes/) crates matches the corresponding factorio version they target.
Since the other parts are either only documented on the wiki (for example [blueprint string format](https://wiki.factorio.com/Blueprint_string_format) and [mod settings](https://wiki.factorio.com/Tutorial:Mod_settings) [file format](https://wiki.factorio.com/Mod_settings_file_format)) or not explicitly documented at all there is no factorio engine version to use for these crates.
## Scanner
See [`scanner's readme`](/scanner/README.md) for more information.