Kore Skill
Teaches and guides use of Kore, the Kotlin library for generating Minecraft Java Edition datapacks.
npx -y skills add Kore-Minecraft/Kore-SkillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Teaches and guides use of Kore, the Kotlin library for generating Minecraft Java Edition datapacks. Covers Gradle setup, modules (kore, oop, helpers, bindings), DSL patterns, generation APIs, and where to read official documentation. Use when the user works with Kore, io.github.ayfri.kore, Minecraft datapacks in Kotlin, or asks how to build or structure Kore projects without browsing the full Kore repository.
The file declares its own license as GPL-3.0-only. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
7.9 KB, as published. Nobody here has run it
Kore user guide (for assistive teaching)
Kore is a Kotlin library for Minecraft Java Edition 1.20+ datapacks: type-safe builders for functions, JSON data, commands, selectors, and worldgen. Bedrock and older MC versions are out of scope unless the user explicitly targets a fork.
The agent should not assume the user has the Kore monorepo checked out. Prefer official docs and Maven artifacts. Use the documentation index for page-by-page lookup.
Activation boundaries
Use this skill when the user asks about:
- Kore project setup or dependency configuration.
- Building datapacks in Kotlin with Kore DSL.
- Choosing between
kore,oop,helpers, andbindings. - Finding official Kore docs for a concrete feature.
Do not use this skill as the primary guidance for:
- Bedrock edition tooling.
- Vanilla datapack-only workflows with no Kotlin/Kore intent.
- General Kotlin language teaching unrelated to Kore.
Default response procedure
Follow this order unless the user already provided a narrower request:
- Confirm target: user wants Kore for Java datapacks.
- Provide minimal setup (dependency + compiler flag + JDK/Gradle baseline).
- Give a small, runnable DSL skeleton (
dataPack,function,generate*). - Route to exactly one or two official docs pages for next depth.
- Add optional module guidance (
oop/helpers) only if needed.
Prerequisites checklist
- JDK 21+ and Gradle (Kore template uses the wrapper).
- Dependency:
implementation("io.github.ayfri.kore:kore:<VERSION>")(start with thekoremodule only). - Kotlin compiler option: add
-Xcontext-parameters(required by Kore). - Optional: Kore Template for a ready project.
Snapshots: Sonatype snapshot repo plus VERSION-SNAPSHOT when the user needs unreleased features (see Getting Started).
Gotchas
-Xcontext-parametersis required. Missing it often produces confusing compile errors.function("...")path is logical datapack path, not a filesystem path with.mcfunctionextension.- Start with
koreonly. Addingoopandhelperstoo early increases API noise and weakens guidance quality. - If behavior seems undocumented, check Known Issues before proposing workarounds.
- Prefer stable docs and artifacts by default; use snapshots only when the user explicitly needs unreleased features.
Installable modules (pick by need)
| Module | Coordinates io.github.ayfri.kore: | Role |
|---|---|---|
kore | kore | Core DSL: datapacks, functions, data-driven JSON, commands. Always the first dependency. |
oop | oop | Higher-level gameplay: entities, teams, scoreboards, timers, boss bars, spawners, game state, events. |
helpers | helpers | Cross-cutting utilities: raycasts, renderers, scoreboard math, state delegates, scheduler patterns, VFX. |
bindings | bindings | Experimental: import existing datapacks and generate Kotlin bindings. |
Add oop / helpers only when the user’s feature set justifies the extra API surface.
Mental model (minimum viable understanding)
- Entry:
dataPack("namespace_id") { ... }builds aDataPack. - Functions:
function("path/without_mcf_extension") { ... }emit.mcfunctionfiles; commands and helpers live in these blocks. - Output:
DataPackexposesgenerate(),generateZip(),generateJar()(see Creating a Datapack for paths and options). - Style: heavy use of lambdas and extension functions on
DataPackto split large packs into register functions (documented in Getting Started).
Suggested order for help or self-study
- Getting Started (project, first pack,
pack {},loadpatterns). - Creating a Datapack (lifecycle,
generate*APIs, structure). - Configuration (JSON formatting, dev-friendly output).
- Commands and Functions (command DSL, function layout, tags).
- Cookbook (end-to-end recipes).
- Concepts as needed: Selectors, Chat Components, Scoreboards, Components.
- Data-driven: Tags, Predicates, Loot Tables, Recipes, Advancements, Worldgen, etc.
- Macros when reusing command fragments.
- Optional modules: OOP Utilities, Helpers Utilities, Bindings.
- Known Issues before debugging odd behavior.
Migration from hand-written datapacks: From Datapacks to Kore.
LLM-friendly and machine-readable docs
- llms.txt (short index)
- llms-full.txt (expanded)
Point users or tools at these when they want crawlable, consolidated reference outside the website navigation.
Progressive disclosure rules
- Read
./references/REFERENCE.mdwhen the user asks for a specific feature area, page path, or topic map. - Prefer linking only the most relevant docs page first; avoid dumping many links unless explicitly asked.
- Use
llms.txtorllms-full.txtonly when broad, machine-readable indexing is requested.
Quality loop before final answer
Before finalizing guidance:
- Verify the answer stays inside Java Edition + Kore scope.
- Verify setup includes dependency and
-Xcontext-parameterswhen setup is discussed. - Verify all links point to official Kore docs or clearly-labeled template/repo resources.
- Trim generic Kotlin/Minecraft advice that is not Kore-specific.
Working inside the Kore repository (contributors)
If the task is Kore development rather than using Kore: contributor docs live under website/src/jsMain/resources/markdown/doc/ in the repo. The public site mirrors that content at https://kore.ayfri.com/docs/.... For internals (generators, architecture), use Contributing and Architecture and Patterns.
Full documentation map
For a complete topic list with links, read reference.md.