📦 Packages (.cmk)

One file. Your entire setup. Share it with friends, back it up, or install someone else's cool creation.

New in v4.0 — Packages live in config/CommandMaker/packages/

What's a .cmk File?

It's just a ZIP file with a fancy extension. Inside is everything that makes your Command Maker setup work:

Think of it like a modpack, but for Command Maker content. Or a playlist. Or a recipe book. Whatever analogy works for you.

The Two Commands You Actually Need

CommandDoes
/cmd package MySetupExport everything. Packs your entire config + functions into MySetup.cmk
/cmd import MySetupInstall it. Safely merges into your existing config — nothing gets overwritten
/cmd import MySetup --overwriteSame thing, but replaces anything that conflicts

What's Inside the ZIP

MySetup.cmk                          ← just a ZIP, rename to .zip to peek inside
├── module.json                       ← who made it, what version, what it does
├── aliases.json                      ← all the aliases
├── syntax.json                       ← syntax patterns
├── events.json                       ← event triggers
├── scoreboards.json                  ← custom scoreboards
├── cooldowns.json                    ← cooldown configs
├── variables.json                    ← preset variables
├── permissions.json                  ← permission grants (if any)
└── functions/
    ├── my_cool_function.mcfunction
    └── another_one.mcfunction

Importing Is Safe (Promise)

When you import a package, the mod is careful about it:

  1. New aliases get added. Existing ones? Left alone.
  2. Syntaxes, events, scoreboards — merged in. Nothing overwritten unless you say so.
  3. Functions get extracted to your Functions folder.
  4. If anything would conflict, it tells you instead of silently breaking stuff.

Use --overwrite if you actually want to replace existing stuff.

Sharing Your Setup

  1. Get everything dialed in — aliases, events, scoreboards, the works.
  2. Run /cmd package MyCoolSetup
  3. Find MyCoolSetup.cmk in config/CommandMaker/packages/
  4. Send it to a friend. Post it online. Back it up.
  5. They drop it in their packages/ folder and run /cmd import MyCoolSetup
  6. Done. 🎉

Other Handy Commands

CommandDoes
/cmd module listSee what .cmk files you've got
/cmd module info <name>Preview a package without installing it
/cmd module export <name>Export config only (skip functions)

The module.json Metadata

Every package has a little info card at the top level:

{
  "name": "MyCoolSetup",
  "version": "1.0",
  "author": "Steve",
  "description": "TPA system, welcome messages, and a scoreboard. Boom.",
  "cmVersion": "4.0.0"
}
🔮 On the horizon: We're building a web-based GUI editor where you can drag and drop items into slots, design in-game menus, and export it all as a .cmk file. No coding. Pure visual design. Stay tuned.
Note: Packages don't include player-specific data (like custom variables set with /cmd setvar). They package configuration, not runtime state.