NewKore 2.14.0 supports Minecraft 26.2

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.

Get started Explore features
Welcome.kt
dataPack("arena") {
	function("welcome") {
		tellraw(allPlayers(), "Welcome!", color = Color.GOLD)
		give(allPlayers(), Items.IRON_SWORD)
	}
}
Kotlin
Generates data/arena/function/welcome.mcfunction

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.

65+typed commands
50+JSON resource types
80+generated registries
4mod loaders to export to

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.

  1. Clone the template

    The Kore Template is a ready-to-run Gradle project. Already have one? Add the dependency below.

  2. Describe your pack

    Open a dataPack("my_pack") { } block in main and let autocomplete show you what fits inside.

  3. Generate and play

    Run main and load the pack in your world. The Gradle plugin can rebuild and reload it on every save.

build.gradle.kts
plugins {
    // Optional: build, link and reload your pack from Gradle
    id("io.github.ayfri.kore") version "2.14.0-26.2"
}

dependencies {
    implementation("io.github.ayfri.kore:kore:2.14.0-26.2")
}
Kotlin

Questions people ask first

Something else on your mind? Ask on Discord or browse the docs.

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.

Get started Migrate an existing pack