pakker/docs/README.md
NotAShelf be3dc4689a
docs: detail basic behaviour; cleanup wording
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I31709798494a3180074f3a0ff81141766a6a6964
2026-05-03 13:06:13 +03:00

1.9 KiB

Pakker

Fast, reliable multiplatform modpack manager for Minecraft, written in Rust. Pakker manages Minecraft modpacks across CurseForge, Modrinth, and GitHub. It handles project resolution, dependency linking, lockfile updates, exports, and remote modpack workflows from a single CLI.

Core Features

  • Create and import modpacks
  • Add, remove, update, and inspect projects
  • Resolve dependencies across supported platforms with automatic cross-platform project merging
  • Manage pack configuration and per-project overrides
  • Export CurseForge, Modrinth, and serverpack layouts

New in Pakker

  • Work with forked packs and remote repositories
  • Interactively set, configure, and test API credentials

Quick Start

  1. Run pakker init to create a new modpack.
  2. Use pakker add or pakker add-prj to add projects.
  3. Run pakker export when you want distributable output.

How It Works

Pakker maintains two files in your modpack directory:

  • pakker.json: pack metadata, paths, overrides, and per-project settings
  • pakku-lock.json: resolved project state with platform IDs, file URLs, and dependency links

When you add a project, Pakker queries the supported platforms, merges results into a single project record with cross-platform identifiers, resolves dependencies recursively, and updates the lockfile. The resolver detects circular dependencies and links related projects via pakku_links.

Acknowledgments

Pakker is greatly inspired by Pakku, and commits to bringing similar functionality with improved performance and additional features through a Rust implementation. Pakku is by no means a bad project, but I found it difficult to work with the Kotlin code.

Many thanks to teksturepako for Pakku, as well as his infinite patience, code reviews and suggestions to bring Pakker to its current state.