Agent skill

Minecraft Datapack

by Jahrome907 in Jahrome907/minecraft-agent-skills

Create, edit, and debug vanilla Minecraft 26.x and 1.21.x datapacks, including functions, advancements, recipes, loot tables, predicates, tags, and pack metadata.

MITAuto-check passed

Install Minecraft Datapack

skills CLI
$ npx skills add Jahrome907/minecraft-agent-skills --skill minecraft-datapack -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Jahrome907/minecraft-agent-skills minecraft-datapack --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Jahrome907/minecraft-agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/minecraft-datapack .claude/skills/minecraft-datapack && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
minecraft-datapack
GitHub stars
169
Token cost
~2.7k tokens
SKILL.md length
741 words
Files
4 (incl. scripts, references)
Skills in repo
13
Repo updated
First seen
Licence
MIT

At a glance

Create, edit, and debug vanilla Minecraft 26.x and 1.21.x datapacks, including functions, advancements, recipes, loot tables, predicates, tags, and pack metadata.

  • Works in 6 steps: Edit .mcfunction or .json files → Run the bundled validator to catch JSON… → If errors, fix and re-validate until clean → …
  • The deliverable is a datapack file tree without Java
  • SKILL.md covers Skill Scope, Pack Metadata, Directory Layout and pack.mcmeta, plus 8 more sections
  • Runs JavaScript and Shell scripts from its folder; calls jq

What it does

Minecraft Datapack is an agent skill from Jahrome907/minecraft-agent-skills. Create, edit, and debug vanilla Minecraft 26.x and 1.21.x datapacks, including functions, advancements, recipes, loot tables, predicates, tags, and pack metadata. Use when the deliverable is a datapack file tree without Java or loader APIs.

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts and reference files (for example `references/data-examples.md` and `scripts/validate-datapack.sh`).

It works with Java. The repository describes itself as: Minecraft AI agent skills and dual-target plugin bundle for Codex and Claude Code. The licence is MIT.

When your agent uses it

  • The deliverable is a datapack file tree without Java

Example prompts

  • “/minecraft-datapack”

Requirements

  • Node.js
  • A Bash shell

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Edit .mcfunction or .json files
  2. Run the bundled validator to catch JSON and path errors before loading
  3. If errors, fix and re-validate until clean
  4. Run /reload in-game (or /minecraft:reload if a mod intercepts it)
  5. Test with target command (e.g., /function mypack:setup, trigger an advancement)
  6. Check latest.log for runtime errors (missing references, bad selectors)

What it can do on your machine

Read from SKILL.md and the folder at commit dd57c5a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (JavaScript and Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • jq

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • minecraft.wiki
    • minecraft.net

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Minecraft Datapack loads about 2.7k tokens when it runs, and up to ~4k if it reads all its reference files. Until then it costs about 65 tokens; SKILL.md has 741 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~65
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from Jahrome907/minecraft-agent-skills at commit dd57c5a, republished under its MIT licence (© Jahrome907). 741 words, ~2,659 tokens.

Download SKILL.mdSave it as .claude/skills/minecraft-datapack/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
minecraft-datapack
description
Create, edit, and debug vanilla Minecraft 26.x and 1.21.x datapacks, including functions, advancements, recipes, loot tables, predicates, tags, and pack metadata. Use when the deliverable is a datapack file tree without Java or loader APIs.

Minecraft Datapack Skill

Inspect pack.mcmeta and the target Minecraft version before editing. Preserve an existing target unless migration is requested; metadata numbers alone do not make older command or registry schemas compatible. Check the edited files with the bundled validator and test in-game when available.

Skill Scope

Routing Boundaries
  • Use when: the deliverable is datapack files (pack.mcmeta, data/...) and .mcfunction/JSON content.
  • Do not use when: the request is command-only snippets not tied to a datapack file tree (minecraft-commands-scripting).
  • Do not use when: the request requires loader APIs, Java code, or runtime mod behavior (minecraft-modding).

Pack Metadata

Minecraft VersionPreferred pack metadata
1.21 / 1.21.1pack_format: 48
1.21.2 / 1.21.3pack_format: 57
1.21.4pack_format: 61
1.21.5pack_format: 71
1.21.6pack_format: 80
1.21.7 / 1.21.8pack_format: 81
1.21.9 / 1.21.10min_format: [88, 0], max_format: [88, 0]
1.21.11min_format: [94, 1], max_format: [94, 1]
26.1min_format: [101, 1], max_format: [101, 1]
26.2min_format: [107, 1], max_format: [107, 1]

Use pack_format for a legacy-only target through data pack format 81. Starting with data pack format 82 in 1.21.9, define both explicit min_format and max_format values. A range that includes a legacy format below 82 must also retain pack_format and supported_formats; do not include supported_formats for a modern-only range. For a legacy-compatible range, supported_formats may be one integer, a two-integer inclusive range, or an object with integer min_inclusive and max_inclusive fields. For exact patch targeting, use [major, minor] arrays for both min_format and max_format, including .0 versions such as [88, 0]. A single integer is equivalent to [major, 0] for min_format, while a single integer in max_format allows any minor version on that major line. Do not write decimal JSON numbers such as 94.1.

Keep pack.mcmeta exact for the patch you target instead of trying to span the multiple Minecraft releases with one metadata block.


Directory Layout

my-datapack/
├── pack.mcmeta
└── data/
    ├── <namespace>/           ← use your pack's name (e.g., mypack)
    │   ├── function/
    │   │   ├── main.mcfunction
    │   │   └── tick.mcfunction
    │   ├── advancement/
    │   │   └── custom_advancement.json
    │   ├── recipe/
    │   │   └── custom_recipe.json
    │   ├── loot_table/
    │   │   └── custom_loot.json
    │   ├── predicate/
    │   │   └── is_night.json
    │   ├── item_modifier/
    │   │   └── add_name.json
    │   └── tags/
    │       ├── block/
    │       │   └── climbable.json
    │       ├── entity_type/
    │       │   └── bosses.json
    │       └── function/
    │           └── custom_flow.json  ← manually invoked tag
    └── minecraft/
        └── tags/function/
            ├── load.json             ← engine tag; runs on /reload
            └── tick.json             ← engine tag; runs every game tick

pack.mcmeta

1.21.8 and earlier
json
{
  "pack": {
    "pack_format": 81,
    "description": "My Custom Datapack v1.0"
  }
}
Deliberate legacy-to-modern compatibility range

Use this form only when the pack actually supports both sides of the format-82 boundary. Mojang requires the retained legacy fields for this range.

json
{
  "pack": {
    "pack_format": 81,
    "supported_formats": [81, 88],
    "min_format": [81],
    "max_format": [88],
    "description": "My compatible datapack"
  }
}
1.21.9 / 1.21.10
json
{
  "pack": {
    "min_format": [88, 0],
    "max_format": [88, 0],
    "description": "My Custom Datapack v1.0"
  }
}
1.21.11
json
{
  "pack": {
    "min_format": [94, 1],
    "max_format": [94, 1],
    "description": "My Custom Datapack v1.0"
  }
}
26.2
json
{
  "pack": {
    "min_format": [107, 1],
    "max_format": [107, 1],
    "description": "My Custom Datapack v1.0"
  }
}

Function Tags (load / tick)

The engine recognizes the minecraft:load and minecraft:tick tags, so these files must use the minecraft namespace. A load.json or tick.json in a custom namespace is a valid custom tag name, but it has no automatic behavior.

data/minecraft/tags/function/load.json
json
{
  "values": [
    "<namespace>:setup"
  ]
}
data/minecraft/tags/function/tick.json
json
{
  "values": [
    "<namespace>:tick"
  ]
}
data/<namespace>/function/setup.mcfunction
mcfunction
# Runs once on /reload
scoreboard objectives add deaths deathCount
scoreboard objectives add kills playerKillCount
tellraw @a {"text":"[MyPack] Loaded!","color":"green"}
data/<namespace>/function/tick.mcfunction
mcfunction
# Runs every tick — KEEP THIS SHORT
# Only put fast, targeted operations here
execute as @a[scores={deaths=1..}] run function mypack:on_death_check

Commands and Function Syntax

Execute subcommands (datapack-specific patterns)
mcfunction
# Chained execute — common datapack pattern for conditional per-player logic
execute as @a[gamemode=!spectator] at @s if block ~ ~-1 ~ #minecraft:logs run give @s minecraft:apple

# store result into score (bridge between NBT world and scoreboard state)
execute store result score @s mypack.health run data get entity @s Health

# in: run logic in another dimension
execute in minecraft:the_nether run say This runs in the Nether
Storage NBT (datapack-specific global state)
mcfunction
# Storage is the datapack-native key-value store — persists across /reload
data modify storage mypack:data config.difficulty set value "hard"
data get storage mypack:data config.difficulty

# Copy live entity data into storage for macro use or cross-function state
data modify storage mypack:log last_player_pos set from entity @s Pos

For full command syntax, selectors, and scoreboard operations see the Minecraft Wiki — Commands reference. The minecraft-commands-scripting skill covers command-only work in depth.


Macros (1.20.2+)

Macro functions let you pass dynamic arguments to a function.

Define a macro function (data/mypack/function/greet.mcfunction)
mcfunction
# Macro argument: $(name)
$tellraw @a {"text":"Welcome $(name)!","color":"gold"}
$scoreboard players set $(name) points 0
Call with run function + with
mcfunction
# Pass values from storage
data modify storage mypack:tmp input set value {name:"Steve"}
function mypack:greet with storage mypack:tmp input

# Pass values from entity NBT
function mypack:greet with entity @p {}

# Pass value from block NBT
function mypack:greet with block 0 64 0 {}

Show full SKILL.md (310 more words)Show less

Registry data examples

Read references/data-examples.md when authoring advancements, recipes, loot tables, predicates, or tags. Load only the relevant section and keep existing namespaces and version targets.

Worldgen Overrides

Override biome noise (data/minecraft/worldgen/noise_settings/overworld.json)

Edit inside an existing copy — do NOT create from scratch without the full JSON. Get the vanilla version from the Minecraft jar: jar xf minecraft.jar data/.

Override a biome's spawn costs
json
{
  "spawn_costs": {
    "minecraft:zombie": {
      "energy_budget": 0.12,
      "charge": 0.7
    }
  }
}

Installation & Testing

Place the pack folder or ZIP under the world's datapacks/ directory, with pack.mcmeta at its root. Then use these in-game commands:

text
/datapack list
/datapack enable "file/my-datapack"
/datapack disable "file/my-datapack"
/reload
Development workflow
  1. Edit .mcfunction or .json files
  2. Run the bundled validator to catch JSON and path errors before loading:
    bash
    ./scripts/validate-datapack.sh --root /path/to/datapack
  3. If errors, fix and re-validate until clean
  4. Run /reload in-game (or /minecraft:reload if a mod intercepts it)
  5. Test with target command (e.g., /function mypack:setup, trigger an advancement)
  6. Check latest.log for runtime errors (missing references, bad selectors)

Common Errors

ErrorCauseFix
Unknown or invalid commandSyntax error in functionCheck whitespace, selector, trailing space
Datapack did not loadInvalid JSON in any fileValidate with jq . < file.json
pack metadata mismatchWrong pack_format or min_format / max_format valuesUpdate pack.mcmeta for the exact 1.21.x patch
Function not running on tickMissing engine tick tag or wrong namespaceCheck data/minecraft/tags/function/tick.json
Macro error$ line but no withProvide with storage/entity/block

Validator Script

Use the bundled validator script before shipping a datapack update:

bash
# Run from the installed skill directory (for example `.codex/skills/minecraft-datapack`):
./scripts/validate-datapack.sh --root /path/to/datapack

# Strict mode treats warnings as failures:
./scripts/validate-datapack.sh --root /path/to/datapack --strict

What it checks:

  • JSON validity for pack.mcmeta and data/**/*.json
  • Legacy pluralized path mistakes for loot tables, functions, and block/item/function tags
  • data/minecraft/tags/function/load.json and tick.json references resolve to local .mcfunction files
  • custom-namespace load.json and tick.json names, which are valid but do not run automatically

References

© Jahrome907, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (scripts, references) in .codex/skills/minecraft-datapack of Jahrome907/minecraft-agent-skills.

  • SKILL.md
  • references/data-examples.md
  • scripts/jq-shim.mjs
  • scripts/validate-datapack.sh

Open the folder on GitHubat commit dd57c5a

Compare with similar skills

Minecraft Datapack next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Minecraft Datapack compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Minecraft Datapack this skillJahrome907/minecraft-agent-skills169—~2.7kAutomated safety check: PassMIT
Brainstormingxpinjection/test-driven-spring-boot11254 repos~2.6kAutomated safety check: PassMIT
Android API Diffgkd-kit/gkd43k—~796Automated safety check: PassGPL-3.0
Video Cover Imageitwanger/toBeBetterJavaer18k—~3.3kAutomated safety check: PassNone
Lancedb Update Lance Dependencylancedb/lancedb12k—~1.1kAutomated safety check: PassApache-2.0
Java SDK E2E Test with Replay Snapshotgithub/copilot-sdk11k—~1.8kAutomated safety check: PassMIT

Similar skills

  • Brainstorming

    xpinjection/test-driven-spring-boot

    You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior.

    112 GitHub starsUsed in 54 repos~2.6k tokens
    Agent WorkflowsAuto-check passed
  • Android API Diff

    gkd-kit/gkd

    Looks up Android framework Java and AIDL APIs across versions with the android-api-diff CLI: signatures, availability, source files and hidden-API access code.

    43k GitHub stars~796 tokensUpdated yesterday
    MobileAuto-check passed
  • Video Cover Image

    itwanger/toBeBetterJavaer

    Generate matched 3:4, 16:9, and 4:3 short-video cover images from toBeBetterJavaer video scripts or AI/Java technical topics.

    18k GitHub stars~3.3k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Update LanceDB to a specific Lance release or tag. An agent skill from lancedb/lancedb.

    12k GitHub stars~1.1k tokensUpdated today
    DatabasesAuto-check passed
  • Official

    Creates a Java SDK end-to-end test for the Copilot SDK that runs against a recorded YAML snapshot through a replay proxy, so CI needs no real authentication.

    11k GitHub stars~1.8k tokensUpdated today
    Testing & QAAuto-check passed
  • Fory Release

    apache/fory

    Prepare an Apache Fory release candidate from a clean release branch, including the version bump, RC tag, JVM staging, ASF source artifacts, SVN upload, and vote email.

    4.6k GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed

More from Jahrome907/minecraft-agent-skills

All 13 skills in this repo
  • Minecraft CI Release

    Jahrome907/minecraft-agent-skills

    Set up and review CI, artifact publishing, versioning, and release management for Minecraft 26.x or legacy 1.21.x mods and Paper plugins.

    169 GitHub stars~3.6k tokensUpdated 26 days ago
    Auto-check passed
  • Minecraft Commands Scripting

    Jahrome907/minecraft-agent-skills

    Write and debug Minecraft Java 26.x and 1.21.x commands, selectors, execute chains, scoreboards, NBT, and RCON scripts.

    169 GitHub stars~1.3k tokensUpdated 26 days ago
    Auto-check passed
  • Minecraft Modding

    Jahrome907/minecraft-agent-skills

    Create, modify, debug, or migrate Minecraft mods for current NeoForge or Fabric 26.x, legacy 1.21.x, and Forge 1.20.1.

    169 GitHub stars~4.3k tokensUpdated 26 days ago
    Auto-check passed
  • Minecraft Plugin Dev

    Jahrome907/minecraft-agent-skills

    Create, modify, and debug server plugins for current Paper 26.x on Java 25 or legacy Bukkit-derived 1.21.x servers on Java 21.

    169 GitHub stars~4.3k tokensUpdated 26 days ago
    Auto-check passed
  • Minecraft Resource Pack

    Jahrome907/minecraft-agent-skills

    Create and debug Minecraft 26.x and 1.21.x resource packs, including pack metadata, textures, models, blockstates, item definitions, sounds, fonts, animations, and shaders.

    169 GitHub stars~3.2k tokensUpdated 26 days ago
    Auto-check passed
  • Minecraft Testing

    Jahrome907/minecraft-agent-skills

    Design and implement automated tests for current Minecraft 26.x or legacy 1.21.x mods and plugins using JUnit, MockBukkit, NeoForge Game Tests, or Fabric Game Tests.

    169 GitHub stars~3.8k tokensUpdated 26 days ago
    Auto-check passed

Works with

Questions about Minecraft Datapack

What does Minecraft Datapack do?

Create, edit, and debug vanilla Minecraft 26.x and 1.21.x datapacks, including functions, advancements, recipes, loot tables, predicates, tags, and pack metadata. Minecraft Datapack is an agent skill from Jahrome907/minecraft-agent-skills.x datapacks, including functions, advancements, recipes, loot tables, predicates, tags, and pack metadata.

When should I use Minecraft Datapack?

Minecraft Datapack fits situations like: the deliverable is a datapack file tree without Java.

How do I install Minecraft Datapack in Claude Code?

Run `npx skills add Jahrome907/minecraft-agent-skills --skill minecraft-datapack -a claude-code`. Or copy the skill folder (.codex/skills/minecraft-datapack in Jahrome907/minecraft-agent-skills) into .claude/skills/minecraft-datapack in your project. Claude Code loads it when a task matches its description.

How do I install Minecraft Datapack in Codex?

Run `npx skills add Jahrome907/minecraft-agent-skills --skill minecraft-datapack -a codex`. Or copy the skill folder (.codex/skills/minecraft-datapack in Jahrome907/minecraft-agent-skills) into .agents/skills/minecraft-datapack in your project. Codex loads it when a task matches its description.

Can I use Minecraft Datapack in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Jahrome907/minecraft-agent-skills --skill minecraft-datapack -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/minecraft-datapack, .gemini/skills/minecraft-datapack, .github/skills/minecraft-datapack and .opencode/skills/minecraft-datapack in your project.

What does Minecraft Datapack need to run?

Going by SKILL.md and its folder, Minecraft Datapack needs JavaScript and a shell for the scripts in its folder and the command-line tools its instructions call (jq). Our summary lists: Node.js; A Bash shell.

Does Minecraft Datapack access the network?

SKILL.md names 2 domains. As links in the text: minecraft.wiki and minecraft.net. This is read from the text; nothing was executed.

Is Minecraft Datapack safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Minecraft Datapack use?

Minecraft Datapack is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Minecraft Datapack use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.4k tokens, read only when the agent opens those files.

What are the alternatives to Minecraft Datapack?

Skills that share tags, products or a category with Minecraft Datapack: Brainstorming (xpinjection/test-driven-spring-boot, 112 stars), Android API Diff (gkd-kit/gkd, 43k stars), Video Cover Image (itwanger/toBeBetterJavaer, 18k stars) and Lancedb Update Lance Dependency (lancedb/lancedb, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Minecraft Datapack?

Jahrome907 (a GitHub user) maintains it in Jahrome907/minecraft-agent-skills, which has 169 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on September 13, 2026.

Source: Jahrome907/minecraft-agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.