
minecraft-world-generation
Create and debug Minecraft 26.x and legacy 1.21.x world generation for datapacks, NeoForge, or Fabric, including biomes, dimensions, features, structures, and biome modifiers. Use for worldgen data or registration, not general gameplay systems.
- Installs
- 168
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/jahrome907/minecraft-agent-skills --skill minecraft-world-generation- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads minecraft-world-generation automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Minecraft World Generation
Use this skill for biome, dimension, feature, or structure data and their
registration. Use minecraft-datapack for non-worldgen data and
minecraft-modding for non-worldgen gameplay code.
Routing Boundaries
Use when: the task changes worldgen data, registration, or injection.Do not use when: the task is non-worldgen datapack work (minecraft-datapack).Do not use when: the task is non-worldgen mod systems (minecraft-modding).
Choose the delivery path
| Approach | Best When | Platform |
|---|---|---|
| Datapack JSON | Change data supplied by a pack | Vanilla, any server |
| Mod + Datagen | Registering new biomes/dimensions, code-driven | NeoForge / Fabric |
| Biome Modifier (NeoForge) | Adding features/spawns to existing biomes | NeoForge |
| BiomeModification API (Fabric) | Adding features/spawns to existing biomes | Fabric |
Worldgen registries are datapack registries: their files load at world load and their registry path determines the data path. Read the NeoForge registry guide before choosing a mod-specific registry path.
Version boundary
Use Minecraft 26.x for new work. Use Java 25 and start each JSON schema from the exact target's vanilla data or generated output. Do not copy a 1.21 shape into a 26.x pack merely because it parses as JSON.
Preserve an established 1.21.x project on Java 21 and its matching schema unless the task explicitly includes an upgrade. Keep examples matched to the project version.
The 26.1 migration primer
removes minecraft:random_patch and minecraft:no_bonemeal_flower. It replaces
the random-patch pattern with a separate minecraft:simple_block configured
feature and placements for count, random offset, and block-predicate filtering.
Inspect the relevant primer section before migrating code or data.
Read legacy 1.21 JSON patterns only when the project targets that version. Those examples are not release artifacts for 26.x.
Data layout and reference graph
26.3 uses worldgen/feature/; through 26.2 this was worldgen/configured_feature/.
In 26.3, feature fields are at the root, block states use id / properties,
and biome spawn settings belong in environment attributes. See the
26.3 migration primer.
data/<namespace>/
├── worldgen/
│ ├── biome/
│ │ └── my_biome.json
│ ├── feature/
│ │ └── my_ore.json
│ ├── placed_feature/
│ │ └── my_ore_placed.json
│ ├── noise_settings/
│ │ └── my_dimension_noise.json
│ ├── structure/
│ │ └── my_structure.json
│ ├── structure_set/
│ │ └── my_structures.json
│ ├── processor_list/
│ │ └── my_processors.json
│ ├── template_pool/
│ │ └── my_pool.json
│ └── carver/
│ └── my_carver.json
├── dimension/
│ └── my_dimension.json
├── dimension_type/
│ └── my_type.json
├── tags/
│ └── worldgen/
│ └── biome/
│ └── is_forest.json
└── neoforge/
└── biome_modifier/ (NeoForge mod only)
└── add_ores.json
Build and review the graph from its leaves upward:
- Define a feature, then its placed feature.
- Reference placed features from a biome or biome modifier at the intended decoration step.
- Define a structure, then its structure set; a jigsaw structure also needs a template pool, processor list, and structure template.
- Define a dimension type and noise settings before a dimension that references them.
Use fully qualified identifiers across namespaces. An external minecraft: or
dependency reference is valid when that dependency supplies the registry entry;
do not create a local copy merely to satisfy static checking. If the same pack
contains that external namespace and registry directory, treat it as local and
verify the target exists.
Biomes and dimensions
For 26.x biome and dimension data, use the exact target's vanilla data or
datagen output as the schema source. The older effects and dimension-type
fields do not model newer environment behavior. The 11 decoration steps still
organize placed features; choose the semantically appropriate step and keep ore
placement in underground_ores.
The version-labeled 1.21.5 biome and dimension examples are in legacy 1.21 JSON patterns.
26.3 feature pattern
This berry-bush example follows the 26.3 vanilla data. Keep older packs on their original schema; do not port them by changing metadata alone.
At data/<namespace>/worldgen/feature/my_plant.json:
{
"type": "minecraft:simple_block",
"to_place": {
"id": "minecraft:sweet_berry_bush",
"properties": { "age": "3" }
}
}
At data/<namespace>/worldgen/placed_feature/my_plant.json:
{
"feature": "<namespace>:my_plant",
"placement": [
{ "type": "minecraft:count", "count": 96 },
{
"type": "minecraft:offset",
"x": { "type": "minecraft:trapezoid", "min": -7, "max": 7, "plateau": 0 },
"y": { "type": "minecraft:trapezoid", "min": -3, "max": 3, "plateau": 0 },
"z": { "type": "minecraft:trapezoid", "min": -7, "max": 7, "plateau": 0 }
},
{
"type": "minecraft:block_predicate_filter",
"predicate": {
"type": "minecraft:all_of",
"predicates": [
{ "type": "minecraft:matching_block_tag", "tag": "minecraft:air" },
{ "type": "minecraft:matching_blocks", "blocks": "minecraft:grass_block", "offset": [0, -1, 0] }
]
}
}
]
}
NeoForge biome modifiers
Biome modifiers load from
data/<modid>/neoforge/biome_modifier/<path>.json. They can target a biome id
or tag and add or remove placed features, among other changes. The current
Biome Modifiers guide
documents their schemas, decoration steps, and datagen.
For neoforge:add_features, features accepts a placed-feature id, list, or
tag. Vanilla placed features may be referenced in biome JSON or added with a
modifier, but NeoForge cautions against doing both because feature-order cycles
can crash world loading. Prefer a copy under the mod namespace when an injected
vanilla feature would create that risk.
When targeting a biome from an optional dependency, put the target in a biome
tag entry with required: false, then use that tag in the modifier. This lets
the pack load when the dependency is absent.
Structures and dimensions
For any current release, derive structure, template-pool, dimension, and dimension-type JSON from that release's vanilla data or datagen output. Confirm the reference graph before launching a test world:
structure_setreferencesstructure.- Jigsaw
start_poolreferencestemplate_pool; each single-pool element references its structure template and processor list. dimension.typereferencesdimension_type; a noise generator's stringsettingsreferencesworldgen/noise_settings.
For Fabric registration or mod datagen, use the exact loader and API version's documentation rather than copying 1.21 code into a 26.x project.
The detailed 1.21 structure and dimension examples are in legacy 1.21 JSON patterns.
Development Workflow
- Create or edit worldgen JSON files in
data/<namespace>/worldgen/(or equivalent mod resources path). - Run the bundled validator to catch JSON and cross-reference errors before loading:
Omit
./scripts/validate-worldgen-json.sh --root /path/to/datapack-or-mod-resources --feature-registry feature # Strict mode treats warnings as failures: ./scripts/validate-worldgen-json.sh --root /path/to/datapack-or-mod-resources --feature-registry feature --strict--feature-registry featurefor packs through 26.2. - Fix any reported errors and re-validate until clean. The validator checks:
- JSON validity for
worldgen/**andneoforge/biome_modifier/** - Cross-reference integrity for
placed_feature -> feature(or legacyconfigured_feature) - Cross-reference integrity for
structure_set -> structureand biome/biome_modifier feature targets - Cross-reference integrity for
jigsaw structure -> start_poolandtemplate_pool -> structure template / processor_list
- JSON validity for
- Compare biome and dimension-type JSON against the exact target's vanilla
registry shape before in-game testing. The helper does not run Mojang codecs:
valid JSON and local references do not prove that fields such as
carvers,effects, or dimension settings match that release's schema. - In-game biome and structure testing:
/locate structure <namespace>:my_structure /locate biome <namespace>:my_biome /place feature <namespace>:my_oreplace featuretakes a feature ID (configured_featurethrough 26.2), not its placed-feature wrapper. - For dimension testing, use
/execute in(dimension must exist at world load, not added via/reload):execute in <namespace>:my_dimension run tp @s 0 100 0 - Check
latest.logfor worldgen errors (missing biome references, malformed noise settings). - Note:
/reloadrefreshes datapack JSON but does not re-generate already-generated chunks. Test new worldgen in a fresh world or newly generated chunks. For existing test worlds, use a disposable copy and a purpose-built chunk reset/regeneration workflow;/fillonly replaces blocks and is not a substitute for world generation.
References
- Minecraft Wiki — World generation: https://minecraft.wiki/w/Custom_world_generation
- Minecraft Wiki — Biome: https://minecraft.wiki/w/Biome/JSON_format
- Minecraft Wiki — Features: https://minecraft.wiki/w/World_generation/Configured_feature
- NeoForge Biome Modifiers: https://docs.neoforged.net/docs/worldgen/biomemodifier/
- Fabric BiomeModifications: https://wiki.fabricmc.net/tutorial:biomemodification
- misode's data pack generator (worldgen UI): https://misode.github.io/worldgen/
FAQ
What does the minecraft-world-generation skill do?
Create and debug Minecraft 26.x and legacy 1.21.x world generation for datapacks, NeoForge, or Fabric, including biomes, dimensions, features, structures, and biome modifiers. Use for worldgen data or registration, not general gameplay systems.
How do I install minecraft-world-generation?
Run npx skills add https://github.com/jahrome907/minecraft-agent-skills --skill minecraft-world-generation in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/minecraft-world-generation/ (personal) or .claude/skills/minecraft-world-generation/ (project).
Which AI agents can use minecraft-world-generation?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is minecraft-world-generation safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains minecraft-world-generation?
It is published by jahrome907 in jahrome907/minecraft-agent-skills. It has 168 recorded installs.
More from jahrome907/minecraft-agent-skills
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. Use for loader-based gameplay code and assets; use minecraft-multiloader when one codebase must target both modern loaders.
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. Use for client-side visual or audio assets without gameplay code.
minecraft-testing
jahrome907/minecraft-agent-skills
Open the skill to read its SKILL.md instructions.
minecraft-datapack
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.
minecraft-server-admin
jahrome907/minecraft-agent-skills
Set up, operate, tune, and troubleshoot Minecraft Java 26.x and legacy 1.21.x servers across Paper, Purpur, Folia, Velocity, Fabric, and NeoForge. Use for infrastructure, backups, proxies, and live operations, not plugin or mod development.
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. Use for JavaPlugin APIs, events, commands, schedulers, configuration, PDC, and Adventure, not client mods or vanilla datapacks.
Popular ai & agents skills
google-agents-cli-publish
google/agents-cli
This skill should be used when the user wants to "publish an agent", "publish my ADK agent", "register an agent with Gemini", "publish to Gemini" (formerly Gemini Enterprise), or needs guidance on the agents-cli publish gemini command. Also use when the user wants to "manage agents in Agent Registry", "list/update/delete registered agents", or "register an MCP server". Covers ADK vs A2A registration modes, programmatic and interactive usage, flag reference, auto-detection from deployment metadata, Agent Registry fleet management, and troubleshooting. Part of the agents-cli skills suite. Do NOT use for deployment (use google-agents-cli-deploy).
google-agents-cli-eval
google/agents-cli
This skill should be used when the user wants to "run an evaluation", "evaluate my agent", "evaluate my ADK agent", "write an eval dataset", "analyze eval failures", "compare eval results", "optimize agent", or needs guidance on the Gemini platform eval methodology and the Quality Flywheel. Covers eval metrics, dataset schema, LLM-as-judge scoring, and common failure causes. Applies to any agents-cli project, whatever framework the agent is written in. Do NOT use for agent API code patterns (ADK: use google-agents-cli-adk-code), deployment (use google-agents-cli-deploy), or project scaffolding (use google-agents-cli-scaffold).
skill-creator
anthropics/skills
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
codex-pet
prime-skills/runcomfy-agent-skills
Codex Pet generator on RunComfy. Build a Codex-compatible Codex Pet spritesheet.webp + pet.json from a single reference image, drop it into ${CODEXHOME:-$HOME/.codex}/pets/ / and Codex picks it up as a custom Codex Pet next to the 8 built-ins. This skill produces the exact Codex Pet atlas Codex expects (1536x1872 PNG/WebP, 8 cols x 9 rows, 192x208 cells, 9 animation states — idle, running-right, running-left, waving, jumping, failed, waiting, running, review). Calls OpenAI GPT Image 2 edit ONCE via the local RunComfy CLI as runcomfy run openai/gpt-image-2/edit to produce a canonical Codex Pet pose, then assembles all 9 animation rows programmatically with ImageMagick micro-transforms — no Codex Pro, no $imagegen, no OPENAIAPIKEY required, only RUNCOMFYTOKEN. Triggers on "codex pet", "create codex pet", "make codex pet", "hatch codex pet", "/hatch image", "desktop pet codex", "codex pets", "spritesheet.webp", or any explicit ask to build a custom pet for OpenAI Codex.
full-output-enforcement
leonxlnx/taste-skill
Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.
executing-plans
obra/superpowers
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available