Description
Pack Master - The Modpack Developer's Swiss Army Knife
Pack Master dumps every piece of game data from your modpack into organized, searchable JSON -- then gives you tools to analyze, compare, audit, and export it.
Whether you're balancing recipes, tracking what changed after a mod update, finding orphaned items, validating your progression gates, or generating scripts to clean up conflicts, Pack Master has you covered.
What It Does
Dump Everything
One command dumps all 27+ datasets to structured JSON:
- Items, blocks, entities, fluids (with full stats, attributes, and categorization)
- Recipes (with shaped patterns, result items, cooking times, smithing details)
- Loot tables (with full pool/entry/condition/function data)
- Advancements (with criteria triggers, rewards, display icons)
- Biomes (with colors, mob spawn tables, ambient effects)
- Enchantments, effects, attributes, sounds, tags
- Villager trades, spawn eggs, worldgen features
- Game rules, brewing recipes, creative tabs, damage types, armor trims, chat types, data packs, and more
Compare Runs
Updated a mod? Run /pm diff latest to see exactly what changed -- added items, removed recipes, changed stats -- with field-level diffs.
Analyze Your Pack
Built-in queries answer common questions:
/pm analyze recipes-for minecraft:diamond
/pm analyze orphan-items --namespace mymod
/pm analyze mod-stats --sort items
/pm analyze duplicate-recipes
/pm analyze enchantment-conflicts
Search Across Everything
/pm search diamond
/pm search "minecraft:*sword"
/pm search --regex "iron|gold"
Export
- CSV/TSV for spreadsheets
- Markdown summary reports
- KubeJS and CraftTweaker starter scripts
Audit Your Pack
Built-in auditors surface problems before they break your players:
/pm audit run # run all enabled auditors
/pm audit run mod_versions # run just one
/pm audit run --dry-run # see the findings without writing a report
/pm audit diff # compare the last two audit runs
Includes a general-purpose mod_versions check that flags mods with missing or placeholder version metadata — useful as a pre-release sanity pass.
Pack-specific auditors self-declare when they apply, so they stay quiet on packs that don't use the files they're looking for.
Quick Start
- Drop the jar in your
mods/folder - Start your server or world
- Run
/pm dump all - Find your data in
packmaster_dumps/
All commands use /pm (or /packmaster). Requires OP level 2.
Key Commands
| Command | What It Does |
|---|---|
/pm dump all |
Dump everything |
/pm dump <dataset> |
Dump one dataset |
/pm list datasets |
See all 26+ datasets |
/pm diff latest |
Compare last two dumps |
/pm runs list |
List previous dump runs |
/pm analyze recipes-for <item> |
Reverse recipe lookup |
/pm analyze orphan-items |
Find items with no recipe |
/pm analyze mod-stats |
Per-mod content breakdown |
/pm search <pattern> |
Search all items/blocks/entities |
/pm export csv <dataset> |
Export to spreadsheet |
/pm export summary |
Generate markdown report |
/pm export scripts --format kubejs --query orphan-items |
Generate scripts |
/pm audit run |
Run all enabled auditors |
/pm audit list |
List auditors and their status |
/pm audit diff |
Compare the last two audit reports |
Output
All data goes to packmaster_dumps/ organized by pack ID and run timestamp. Each run includes:
- manifest.json -- Pack metadata, mod versions, timing
- index.json -- Summary with dataset pointers
- checksums.json -- SHA-256 hashes for quick diffing
- modlist.json -- Complete installed mod list
- datasets/ -- Individual JSON files per entry, organized by mod, category, type
JSON output is deterministic (sorted keys) so diffs are meaningful.
Configuration
Edit packmaster.toml in your config directory:
output_root-- Where to write dumps (default:packmaster_dumps)pretty_json-- Pretty-print output (default:true)dump_on_world_load-- Auto-dump on server start (default:false)max_parallelism-- Thread count for parallel dumps (default: half your CPUs)allow_http_api-- Enable REST API for external tools (default:false)
HTTP API
Enable with allow_http_api = true in config. Provides REST endpoints for external tool integration:
GET /api/v1/statusGET /api/v1/datasetsGET /api/v1/runsGET /api/v1/search?q=diamond
Localhost-only by default with bearer token authentication.
Compatibility
- Minecraft 1.20.1
- Forge 47.3.0+
- Server-side only (works in singleplayer and dedicated servers)
- No dependencies beyond Forge
What's New in 1.0.1
- Hardened HTTP auth (fail-closed, constant-time token compare, bounded search limits)
- Parallel dump execution is now thread-safe: dumpers that touch recipe/loot/advancement/tag/biome registries run on the server main thread
- Analysis and search results stay correct after
/reload(datapacks, recipes, tags all invalidate cached indexes) - Crash-safe file writes (
fsyncbefore atomic rename) - Pack-specific auditors declare applicability instead of reporting zero findings on non-matching packs
- New
mod_versionsauditor +chat_typesdataset +/pm audit run --dry-run - Clickable dump-output paths in chat
- Full changelog in the repository's
CHANGELOG.md
License
MIT -- use it however you like.
