Skip to content

themuffinator/PakFu

Repository files navigation

PakFu

Version Download PakFu Platforms Interface Build system License

Support Matrix CLI Docs Technical Overview PR CI Nightly

PakFu logo

Browse classic game packages, view assets instantly, and convert content without losing the thread.

Download Latest Release  |  Build From Source  |  Automate With CLI

PakFu is a cross-platform archive manager, asset viewer, and conversion workbench for idTech-era and adjacent games. It gives modders, archivists, and curious players a fast way to open game packages, inspect what is inside, view assets in context, convert useful output, extract or rebuild content, and run repeatable command-line jobs.

Use the GUI when you want to browse archives, preview media, and convert selected assets quickly. Use the CLI when you want the same archive and conversion tools in scripts, build pipelines, or QA checks.

Table of Contents

Overview

  • Current version: 0.1.18.1 (see VERSION).
  • Platforms: Windows, macOS, and Linux.
  • Interfaces: a Qt desktop app for day-to-day work and a documented CLI for automation.
  • Main jobs: open archives, inspect contents, view media and game assets, convert assets, extract selections, rebuild packages, and validate package health.
  • Project state: active development, with releases and nightly builds published through GitHub.

Getting Started

Goal Start here
Install PakFu Get the newest packaged build from Latest Release, or browse all releases.
Open an archive Launch PakFu, choose or auto-detect an installation profile, then use File -> Open Archive..., Quick Inspect Archive, drag-and-drop, or shell Open With.
View or convert assets Select entries in Archive View to inspect assets in the right-side Insights pane, then convert selected files from the GUI or with pakfu --cli --convert.
Automate a job Run pakfu --cli --help, then use the CLI reference for extraction, validation, conversion, manifests, and update checks.
Build from source Follow Building PakFu for toolchains, Meson setup, tests, packaging, and parser-hardening builds.
Check technical support Use the Support Matrix for the current archive, preview, inspector, conversion, and filetype contract.

Game Support

PakFu is built around named game profiles rather than generic archive guesses. Profiles help the app choose palettes, resolve companion files, remember launch/install paths, and make previews and conversions feel aware of the game you are working with.

Family Supported game profiles
Quake and GoldSrc Quake, Quake Rerelease, Half-Life, Quake II, Quake II Rerelease, Quake II RTX, Quake III Arena, Quake Live, Quake 4
Doom and Raven classics DOOM, DOOM II, Final DOOM, Heretic, Hexen, Strife, Heretic II
Wolfenstein, Jedi, and Elite Force Return to Castle Wolfenstein, Wolfenstein: Enemy Territory, Star Wars Jedi Knight II: Jedi Outcast, Star Wars Jedi Knight: Jedi Academy, Star Trek Voyager: Elite Force, Star Trek: Elite Force II
Ritual, Xatrix, Ion Storm, and related titles SiN Gold, Kingpin: Life of Crime, Daikatana, Anachronox, Heavy Metal: F.A.K.K.2, American McGee's Alice
idTech 4 era Doom 3, Doom 3: BFG Edition, Prey, Enemy Territory: Quake Wars
Community and idTech-adjacent releases Gravity Bone, Thirty Flights of Loving, Warsow, Warfork, World of Padman

Filetype-level behavior is intentionally kept in the technical docs so this README can stay focused on what PakFu helps you do. See Supported Formats for the quick doorway into that detail.

Download

Get the latest packaged build from GitHub Releases.

Platform Recommended package Portable package Notes
Windows installer.msi portable.zip The installer is the easiest path for regular desktop use.
macOS installer.pkg portable.zip App bundles include the packaged user guide.
Linux installer.AppImage portable.tar.gz The portable archive includes a deployed runtime tree. Run ./pakfu after extracting.

PakFu can check for updates from the desktop app and from the CLI with --check-updates.

Highlights

  • Open folders and classic package families used across Quake, Doom, GoldSrc, Raven, Ritual, and idTech-derived games.
  • Browse large packages with multiple view modes, async thumbnails, global search, recent files, and persistent workspace state.
  • Mount archives inside archives so nested packages can be inspected without manual extraction first.
  • Preview images, textures, models, maps, fonts, scripts, audio, video, cinematics, sprites, and binary metadata summaries.
  • Detach previews into standalone windows, then dock them back when you are done inspecting.
  • Convert selected assets from the GUI or CLI, including image formats, palette-aware texture formats, CIN/ROQ frames, WAV audio, and best-effort map exports.
  • Extract selected files or whole archives, then rebuild selected content into new package files with Save As.
  • Keep official archives safer with Pure PAK Protector, enabled by default for protected package workflows.
  • Manage per-game installation profiles with auto-detection for the games listed in Game Support.
  • Discover extension commands from manifests and run external tools with declared capabilities.
  • Use platform integration where available: file associations, native file dialogs, installers, update checks, and packaged offline help.

View And Convert Assets

PakFu is meant to be useful before you extract anything. Open a package, pick an entry, and the app routes it to the right preview or inspector: textures, images, scripts, maps, models, audio, cinematics, fonts, sprites, and metadata all live in the same workspace.

Conversion is just as direct. Select assets in the GUI and convert them from the menu or context actions, or use pakfu --cli --convert for batch jobs. PakFu can turn game textures into normal image files, export frames from built-in cinematic decoders, decode supported game audio to WAV, and produce best-effort map exports where the format supports it.

PakFu workspace showing a Quake II installation profile PakFu archive view showing folders inside a sample package
Workspace
Pick a game profile, open archives, inspect recent work, and keep validation, capabilities, changes, and search close at hand.
Archive View
Browse package contents, search paths, mount nested archives, preview selected assets, and send selections into extraction or conversion workflows.

Supported Formats

The README keeps this high-level: PakFu opens game packages, previews common game-asset families, extracts content, converts supported assets, and rebuilds writable package formats.

The detailed filetype tables live in the technical docs:

CLI Quick Reference

Usage:

pakfu[.exe] --cli [options] [archive-or-folder]

Common commands:

pakfu --cli --info pak0.pak
pakfu --cli --list pak0.pak
pakfu --cli --extract --prefix maps -o maps_out pak0.pak
pakfu --cli --validate pak0.pak
pakfu --cli --compare rebuilt.pk3 source.pk3
pakfu --cli --convert png --prefix textures -o converted_textures source.pk3
pakfu --cli --asset-graph json -o graph.json source.pk4
pakfu --cli --package-manifest json -o manifest.json source.pk3
pakfu --cli --preview-export gfx/conback.lmp -o previews pak0.pak
pakfu --cli --mount nested/maps.pk3 --list source.pk3
pakfu --cli --check-updates

The complete command surface, options, examples, and exit-code notes live in the CLI Reference.

GUI Workflow

  • Start from the Workspace tab to manage game installations, recent files, open archives, changed assets, validation checks, runtime capabilities, and global search.
  • Open archives, folders, or standalone media files from the File menu, drag and drop, shell integration, or recent files.
  • Use Quick Open/Search (Ctrl+K) to jump between workspace items and archive entries quickly.
  • Switch between details, list, icon, large-icon, and gallery views depending on whether you are scanning filenames or inspecting media.
  • Double-click nested packages to mount them in place.
  • Use context-menu or File-menu actions for extraction, conversion, Save As, rename, cut/copy/paste, imports, and safe rebuilds.
  • Preview changes apply to open archive tabs and standalone viewer windows without restarting PakFu.
  • Preferences keep everyday settings up front, with advanced preview and rendering controls tucked away until needed.

Installations (Game Profiles)

PakFu stores game profiles with default directories, palette preferences, and launch settings. Profiles make archive browsing more useful because PakFu can resolve palettes, sibling assets, companion model files, and expected game paths.

Auto-detection and profile presets cover the games listed in Game Support, with install-specific defaults for palettes, sibling asset lookup, and expected content paths.

Updates and Releases

PakFu can check GitHub Releases at runtime. GUI update checks run after the main window opens so startup stays responsive.

Downloaded update assets are verified against release-manifest size and SHA-256 data before PakFu opens the download folder or starts an installer handoff. For release policy, artifact names, and pipeline details, see the Release Policy.

Environment Variables

Troubleshooting switches such as media diagnostics, crash-output overrides, native dialog overrides, and multi-instance control are documented in Technical Overview: Environment Variables.

Documentation

Build From Source Toolchains, Meson setup, tests, parser hardening, and local packaging notes.
CLI Reference Documented automation commands for listing, extraction, validation, conversion, manifests, extension diagnostics, update checks, and game-profile actions.
Technical Overview Runtime architecture, preview pipeline, conversion backend, extension host, update behavior, and environment variables.
Support Matrix Format support with fixture-backed or implementation-backed evidence.
Dependencies Required and optional libraries, Qt modules, and packaging toolchain inventory.
Extensions Manifest schema, JSON payloads, trust model, and GUI/CLI extension workflow.
Core Library Public source-level API for non-UI archive, format, search, game-profile, and extension code.
Release Policy Versioning, release assets, update manifests, workflows, and validation tools.
Changelog Release-by-release product changes.
Credits Project acknowledgements, compatibility notes, and third-party attribution.

Credits

PakFu is created by themuffinator (DarkMatter Productions). Project attributions, compatibility acknowledgements, and third-party credits are maintained in Credits.

License

PakFu is licensed under GPLv3. See LICENSE.