Kore 2.17.0 · Minecraft 26.3-snapshot-1

Features

Everything Kore covers, grouped by area. Each entry links to its guide, and hovering one previews it in game.

Generated output

The Kotlin you write next to the exact files Kore generates from it. Nothing else ships.

You write
dataPack("arena") {
	lootTable("boss_chest") {
		pool {
			rolls = constant(3f)
			entries {
				item(Items.DIAMOND) { weight = 1 }
				item(Items.GOLDEN_APPLE) { weight = 4 }
				item(Items.IRON_INGOT) { weight = 10 }
			}
		}
	}
}
Kotlin
Kore generatesdata/arena/loot_table/boss_chest.json
{
	"pools": [
		{
			"rolls": 3.0,
			"entries": [
				{
					"type": "minecraft:item",
					"name": "minecraft:diamond",
					"weight": 1
				},
				{
					"type": "minecraft:item",
					"name": "minecraft:golden_apple",
					"weight": 4
				},
				{
					"type": "minecraft:item",
					"name": "minecraft:iron_ingot",
					"weight": 10
				}
			]
		}
	]
}
JSON

Commands & functions

Every vanilla command as a typed Kotlin call. Your IDE lists every item, block and effect, and the compiler rejects a typo before /reload ever sees it.

Game data, typed

Build an item once with its name, lore and components, then reuse it anywhere an item is expected.

Data-driven resources

Each resource is a Kotlin builder that serializes to the exact vanilla schema and lands in the right folder.

build/arena
arena/
pack.mcmeta
data/arena/
advancement/first_kill.jsonopen
dialog/main_menu.json
enchantment/lifesteal.json
function/load.mcfunction
loot_table/boss_chest.jsonopen
recipe/arena_key.jsonopen
tags/item/weapons.json
trial_spawner/arena_wave.json
worldgen/biome/ashlands.json
written bydataPack("arena") { ... }.generate()

World generation

Custom dimensions, biomes and structures, down to density functions and noise, without hand-editing thousand-line JSON.

seaLevel
desert temperature
Islands.kt
val terrain = noiseSettings("islands") {
	seaLevel = 63
}

dimension("islands", type = islandsType) {
	noiseGenerator(settings = terrain, biomeSource = multiNoise {
		add(multiNoiseEntry(Biomes.DESERT) {
			temperature = doubleOrPair(0.1, 1.0)
		})
		// forest, plains, snowy plains, peaks...
	})
}
Kotlin

Gameplay objects

The oop module turns teams, timers, boss bars and events into handles you create once and call like regular objects.

Ready-made helpers

Raycasts, particle shapes, trigonometry on scoreboards, menus and text rendering, written and tested so you don't have to.

Build & ship

Every save rebuilds the pack, copies it into your worlds and reloads the server. When it's ready, export it anywhere.

Ecosystem & interop

Kore plays well with the datapacks, mods and editors around it.

Limits

What Kore does not do, so you know before picking a tool.

Resource packs

Kore generates datapacks only. Textures, models and sounds still live in a separate resource pack.

Runtime speedups

Output is the same vanilla commands you would write by hand, so it runs exactly as fast, no faster.

Zero-setup editing

You need a JDK and Gradle, and a build step sits between editing and /reload.

Rough edges are tracked in Known Issues, and Why Kore covers when another tool fits better.