17 releases
0.6.0 | Oct 1, 2022 |
---|---|
0.5.2 | Nov 10, 2021 |
0.5.1 | Feb 25, 2021 |
0.5.0 | Nov 19, 2020 |
#333 in Games
48 downloads per month
24KB
450 lines
Pactorio
Mod packager for Factorio
Installation
The latest precompiled binaries are available on github.
Alternatively you can install pactorio from crates.io with cargo.
cargo install pactorio
Building from source
cargo build --release
Usage
pactorio [FLAGS] [OPTIONS]
option | description |
---|---|
-c, --compact | Output info.json compactly |
-z, --zip | Output a zip file instead |
--compression <method> | Specify the compression method, ignored without the -z/--zip flag default: stored possible values: stored, bzip2, deflate, zstd |
-d, --dir <directory> | Set working directory |
-i, --input <file> | Specify the config file to use default: pactorio.toml |
-o, --output <directory> | Specify the output directory default: release |
-u, --upload [<api-key>] | Upload to mod portal Requires an API key, which can be created on https://factorio.com/profile |
-h, --help | Prints help information (use -h for a summary) |
-V, --version | Prints version information |
Configuration
By default, pactorio uses pactorio.toml
as its config file.
It is similar to the info.json
file and uses TOML syntax.
Here is an example of a pactorio config file.
# Information about your package, similar to info.json
# https://wiki.factorio.com/Tutorial:Mod_structure#info.json
[package]
# Mandatory, internal name of your mod
name = "example_mod"
# Mandatory, version of your mod, "main.major.minor"
version = "0.1.0"
# Mandatory, display name of your mod
title = "Example mod"
# Mandatory, author of your mod, You
author = "You"
# Optional, for example your email address
contact = "you@example.com"
# Optional, link to the homepage of your mod
homepage = "https://you.example.com"
# Optional, short description of your mod
description = "Example mod. Does something and some other things. "
# Optional, default: "0.12", usually needs to be added
factorio_version = "1.0"
# Dependencies are separated into four parts, All four of them are optional
# They are under a table named "deps", you can also use "dependencies"
# Required dependencies
[deps.required]
# Same as "base >= 1.0" in info.json
base = ">= 1.0"
# Conflict or incompatible dependencies
[deps.conflict] # or [deps.incompatible]
# Same as "! bad_mod" in info.json
bad_mod = ""
# Same as "! incomp < 3" in info.json
incomp = "< 3"
# Optional dependencies
[deps.optional]
# Same as "opt_dep = 0.2.1" in info.json
opt_dep = "= 0.2.1"
# Hidden optional dependencies
[deps.hidden]
# Same as "hidden_dep > 2.0" in info.json
hidden_dep = "> 2.0"
# Optional, source directory
[source]
# Pactorio will use all the files under this directory
# Optional, default: "src"
dir = "src"
# A list of glob patterns to represent the files to include
# Relative to your source directory
# Optional, default: ["**/**"]
include = ["**/**"]
# A list of glob patterns to represent the files to ignore
# Relative to your source directory
# Optional, default: []
ignore = []
Changelog
See CHANGELOG.md
Dependencies
~16–27MB
~406K SLoC