Minecraft datapacks, written in Kotlin
Kore is a Kotlin library that generates regular Minecraft datapacks. Your editor autocompletes every item and command, mistakes show up before you /reload, and what ships is plain vanilla files.
Datapacks are code. Write them like code.
A datapack is the folder of commands and JSON files Minecraft loads to add recipes, loot, advancements, minigames or whole new worlds, no mod required. Kore lets you build one with a real programming language instead of by hand.
Mistakes caught early
Every item, block, sound and command comes typed from Minecraft's own data. A typo fails the build, not your /reload.
Reuse instead of copy-paste
Functions, loops and variables write the repetitive parts for you. Rename something and every reference follows.
Plain vanilla output
Kore only runs when you build. What ships is a regular datapack, with nothing to install on the server.
Covers the whole game, not just commands
From a single /give to a custom dimension, everything a datapack can hold has a typed API. Pick an area to see it in action.
Up and running in a few minutes
All you need is a JDK and a Kotlin IDE. Kore is a regular dependency on Maven Central, published for every Minecraft version it supports.
-
Clone the template
The Kore Template is a ready-to-run Gradle project. Already have one? Add the dependency below.
-
Describe your pack
Open a
dataPack("my_pack") { }block inmainand let autocomplete show you what fits inside. -
Generate and play
Run
mainand load the pack in your world. The Gradle plugin can rebuild and reload it on every save.
This is the most important concept in Kore. Standard Kotlin variables (val/var) and loops (for/while) are evaluated at compile-time to generate your datapack. To handle actual in-game logic at runtime, Kore provides built-in abstractions over Minecraft's scoreboards, command macros, and data storages. You write Kotlin, but Kore correctly maps your logic to Minecraft's execution engine. See the Runtime Logic guide for the full picture.
Build your first datapack in Kotlin
The getting started guide takes you from an empty folder to a pack running in your world. Already have a datapack? Port it one piece at a time, the rest keeps working next to it.
