Skip to content
Ayfri

Ayfri/Kore

LibraryLive in production

Check the website for the latest documentation.

A Kotlin library to generate Datapacks for Minecraft Java.

145 11 since joining 7KotlinPush 1d agoListed 2mo ago11 open issuesGPL-3.0

kore.ayfri.com

datapackfunctionskorekotlin-dslkotlinserversideminecraftminecraft-datapackminecraft-kotlin
  • Kotlin100.0%
View on GitHub

Report a problem

2 Reviews

1146345502114634550228d ago
TypeScriptPythonShell

Kore brings type-safe Kotlin DSLs to Minecraft Java datapack development. It generates folders, ZIPs, or mod-loader JARs and covers commands, functions, recipes, NBT builders, gameplay abstractions, rendering helpers, scheduling, scoreboard utilities, and experimental bindings for existing packs. Maven Central, a starter template, modular dependencies, and current online documentation provide good entry points for Kotlin workflows.

Minecraft’s rapid version changes are the central maintenance challenge. The project should publish a precise compatibility matrix by Kore, Minecraft, loader, Java, and module version, with generated tests that validate emitted packs against supported releases. Experimental bindings need clear round-trip limitations, while diagnostics should point users from invalid generated output back to the DSL call responsible. Requiring a very recent Java toolchain may also limit adoption and deserves explanation. Kore is best for Kotlin developers building complex, maintainable datapacks who prefer compiler guidance and reusable abstractions over hand-editing JSON and command files, provided they align their toolchain with the project’s supported Minecraft versions.

Kore stands out as a very focused and useful Kotlin DSL for Minecraft Java datapack development. The project has a clear niche: replacing hand-written JSON and MCFunction files with type-safe Kotlin, while still generating native datapack output rather than requiring a runtime plugin. That distinction is explained well in both the README and the dedicated documentation site, and the examples make the value obvious quickly. The sample code for functions, recipes, selectors, NBT, scoreboard display, and bindings shows that this is not just a thin wrapper, but a fairly complete authoring environment for serious datapack work.

The repository also gives good maintenance signals. It has 134 stars, 7 forks, more than 1,700 commits, 160 releases, a GPL-3.0 license, contributing docs, a code of conduct, GitHub Actions, and recent releases for Minecraft 1.21.11. I especially like the modular structure: kore for the core DSL, helpers for utilities such as raycasts, renderers, scheduler tools, scoreboard math, and VFX, oop for higher-level gameplay abstractions, and bindings for importing existing datapacks. That makes the project easier to approach incrementally instead of forcing users into one large dependency.

The biggest improvement opportunity is onboarding through examples. There is already strong documentation, but one of the open issues is explicitly about adding examples, and that feels accurate: a few complete small datapacks in the repo, with generated output shown beside the Kotlin source, would make the library much easier to evaluate before adopting it. I would also consider making version freshness clearer between the README, website, and releases, since the GitHub page shows a newer latest release than the website landing page I inspected. Overall, Kore looks thoughtfully built, actively maintained, and genuinely useful for Minecraft creators who want the safety and structure of Kotlin without giving up standard datapack output.