LinuxCommandLibrary

packwiz

Manage Minecraft modpacks

TLDR

Interactively create a new modpack in the current directory

$ packwiz init
copy

Add a mod from Modrinth or Curseforge
$ packwiz [modrinth|curseforge] add [url|slug|search_term]
copy

List all mods in the modpack
$ packwiz list
copy

Update index.toml after manually editing files
$ packwiz refresh
copy

Export as a Modrinth (.mrpack) or Curseforge (Zip) file
$ packwiz [modrinth|curseforge] export
copy

SYNOPSIS

packwiz <command> [<arguments>...] [<options>...]

PARAMETERS

init
    Initializes a new packwiz modpack in the current directory, setting up the basic configuration files.

refresh
    Updates all mods in the modpack based on their .pw-mod definitions, downloading or updating files as needed.

add <mod-id>
    Adds a new mod to the modpack, creating a .pw-mod file for it. Supports various platforms (CurseForge, Modrinth).

remove <mod-id>
    Removes a mod from the modpack and its associated .pw-mod file.

update [<mod-id>]
    Updates a specific mod or all mods to their latest compatible versions, as specified by their .pw-mod files.

generate
    Generates a distributable modpack archive (e.g., .mrpack or .zip) for release and distribution.

serve
    Starts a local HTTP server to serve the modpack for clients using the packwiz launcher or similar tools.

curseforge / modrinth
    Platform-specific subcommands for operations like importing existing modpacks or managing project data from CurseForge or Modrinth.

DESCRIPTION

packwiz is a command-line utility designed for managing Minecraft modpacks in a declarative and Git-friendly manner. It allows modpack developers to specify their mod lists and configurations using small, human-readable files (e.g., .pw-mod) instead of directly including large mod binaries in version control. This approach facilitates easy collaboration, versioning, and distribution of modpacks. packwiz automates the process of downloading, updating, and generating distributable modpack archives (like .mrpack files) from platforms such as CurseForge and Modrinth, ensuring reproducible builds and streamlined development workflows. It's a powerful tool for both individual modpack creators and large development teams.

CAVEATS

packwiz primarily manages modpack definitions; a separate Minecraft launcher (e.g., MultiMC, Prism Launcher, or the packwiz launcher) is required to actually run the generated modpack. An active internet connection is necessary for downloading mods and updates. Familiarity with Git is beneficial for leveraging its version control capabilities for modpack development.

DECLARATIVE MODPACK DEFINITION

Unlike tools that directly store mod binaries, packwiz uses small .pw-mod files containing metadata (like mod ID, file ID, download URL, checksum) to define each mod. This makes modpack repositories extremely small and easy to version control with Git.

CROSS-PLATFORM COMPATIBILITY

packwiz is written in Go, providing native binaries for Windows, macOS, and Linux, ensuring consistent behavior across different operating systems without requiring a specific runtime environment like Java (for packwiz itself).

HISTORY

packwiz emerged as a modern solution to the challenges of managing large, binary-heavy Minecraft modpacks with traditional version control systems. Its development focused on creating a lightweight, declarative, and Git-friendly alternative to previous methods, allowing for easier collaboration, automated updates, and more reliable modpack distribution. It has gained significant traction in the Minecraft modding community for its robust and efficient approach.

SEE ALSO

git(1), java(1), zip(1)

Copied to clipboard