COWMODSКаталог модов

Isekai API

Build any world from datapack — a toolbox of neutral worldgen primitives for shape, biomes, dimensions, and re-placing existing content. No Java required.

Автор: KURONAMI2,4 тыс.3обновлён 4 сент. 2026 г.
БиблиотекиГенерация мира

Описание

Isekai API is a toolbox for the shape and rules of a Minecraft world — not a world, but the machine that makes worlds. Like div/span for web pages, it's a small set of neutral, composable primitives you combine to build any world you can imagine, straight from datapack JSON. It ships no biomes, structures, or themes of its own.

A floating-island world in two files

Reference the shipped isekai_api:hooked_overworld preset from your dimension, then override one small terrain-shape hook file. No Java, and no copy of vanilla's 2500-line noise_settings — change the hook and the whole world changes shape. Runnable example: examples/1_shape/floating_island/.

What you can control

Every axis of world generation, as composable primitives:

  • Terrain shape — 17 math/geometry density primitives + 5 worldshape composers (squeeze, y_envelope, blended_noise, band_density, sloped_density). Floating islands, hanging or inverted continents, hollow shells, capped mountains, mirrored/tiled space — any 3D form on any Y band.
  • Biome placement — the isekai_api:rule biome source places biomes by pure spatial rules: vertical layers, concentric rings, regions, and and/or/not combos (y_below 20 -> deep_dark). No climate-noise tuning.
  • Surface & fill — re-skin any biome's top block or stone fill from JSON. isekai_api:vanilla_overworld_surface hands you the whole vanilla overworld surface rule as one line, so overworld replacements skip the 30 KB copy.
  • New dimensions — combine the above with vanilla dimension JSON to ship a whole new dimension. Zero Java, zero vanilla edits.
  • Atmosphere — per-world sky, fog, and water colors.
  • Set-pieces, features & trees — build neutral content from composable parts: drop a hand-authored NBT set-piece only on flat, dry ground (grounded_template), grow connected block clusters and fluid pools, and assemble decay-safe trees from any trunk + foliage placer. No themes baked in — you supply the blocks.
  • Placement control — decide exactly where features/structures go: relative to surface or fluid, by block context, Y range, slope, proximity to a block or biome, and logical combos.
  • Re-place existing content — take any vanilla or modded ore, structure, mob, or feature and redistribute it into your world's new shape. A rare ore vanilla buries deep can be remapped to the underside of your floating islands. Strategies: linear, inverted, fixed-range, count-scaling, band-split, pipelines — plus exclude/add.
  • Terrain-relative re-placement — isekai_api:column_local resolves an ore's depth against each column's own surface and underside instead of one absolute Y band. Floating islands, orbiting planets and sky continents get the same internal ore layout whatever altitude they sit at.
  • Boot-time validation — broken or mistyped registry references are caught at server start, before they silently no-op.
  • Java API — Isekai.query() reads vanilla/modded worldgen rules; Isekai.remap() declares worldshapes in code.

Built to be built on

Isekai isn't tied to any one world or author. However you want to use it, you're welcome — datapack worldshapes, full Java mods, modpack glue, quick experiments, total conversions. MIT licensed: free to use, fork, and bundle in modpacks.

  • Datapack authors: the Datapack Reference lists every key with its JSON shape; copy a runnable skeleton from examples/ — shape, placement, and adaptation each have their own folder.
  • Java modders: add isekai_api as a compileOnly Gradle dependency (Cursemaven, or the repo's own maven branch — see COMPATIBILITY) and use the Isekai facade. Everything outside the api package is internal, so the public surface stays small and stable. Sources and javadoc jars ship with every release.
  • Extend the library itself: the five dispatch interfaces — spatial predicates, remap strategies, biome zones, surface anchors, transition rules — are registry-backed extension points. Register your own variant from your own mod id and use it in JSON alongside the built-ins. No fork, no PR.
  • Questions, ideas, bugs: open an issue. Built a world with Isekai? Share it — I'd love to see what people make.

MIT · Source & docs. Unrelated to the "Isekai Adventure" modpack.

Support my mods on Patreon Follow @kuronami333 on X

Need a custom mod?

Paid commissions for videos, streams and servers. Send me your idea: kuronami.mods@gmail.com

Последние версии

Все версии →
release

2.2.0+neoforge-1.21.1

2.2.0+neoforge-1.21.1
4 сент. 2026 г.669Minecraft: 1.21.1neoforge
Скачать
Что нового
**No Java API breaks.** The one addition is a `default` method, so `SurfaceAnchor` variants written against 1.x / 2.0.0 / 2.1.0 compile and run unchanged. The datapack schema is untouched; what changes is where ore lands in a column that holds more than one body. ### Fixed — datapack behaviour - **`isekai_api:column_relative` reaches every body in a column, not just the topmost one.** A column of floating terrain can hold several islands stacked above one another, and both default anchors resolved against the highest of them by construction — `world_surface` reads the heightmap, and `world_floor` scans down from whatever that found. An island with anything floating above it therefore received no ore at all. It now emits one position per body, at the same normalized depth, so an island's ore no longer depends on what happens to float above it. Measured on Sky World: andesite, granite, diorite, coal, iron and copper were all exactly 0 through the lower island band, in a region where 29 of 29 lower-island chunks also carried an upper island. - A body too thin for the band is skipped on its own instead of ending the column, so a thin island no longer hides the ones below it. - **A column holding one body places exactly what it placed before**, at the same Y, having drawn the same amount from the random source — the depth is drawn once per placement however many bodies the column turns out to hold, and a column that yields nothing still draws nothing. Worlds whose terrain never stacks generate identically. ### Added — Java API - **`SurfaceAnchor.resolveYBelow(PlacementContext, BlockPos, int)`** — resolve an anchor against the part of a column at or below a ceiling, which is how the walk reaches the second body and the ones under it. It is a `default` method with single-shot semantics (the anchor's own Y when that lies at or below the ceiling, otherwise nothing), so a variant that does not override it keeps reporting one body per column exactly as before. `world_surface` and `world_floor` override it; see [docs/COMPATIBILITY.md](docs/COMPATIBILITY.md).
release

2.1.0+neoforge-1.21.1

2.1.0+neoforge-1.21.1
8 авг. 2026 г.451Minecraft: 1.21.1neoforge
Скачать
Что нового
## v2.1.0 See GitHub release notes.
release

2.0.0+neoforge-1.21.1

2.0.0+neoforge-1.21.1
5 авг. 2026 г.60Minecraft: 1.21.1neoforge
Скачать
Что нового
The rule-adaptation layer becomes an open extension point, terrain shape gets a copy-free hook mechanism, and the library ships as a proper Gradle dependency. **Datapacks are unaffected.** Every 1.x datapack loads unchanged: the `isekai:` dispatch prefix is accepted as a deprecated alias (logs one warning per id), and all existing payload schemas are byte-for-byte compatible. The breaking changes are on the **Java API** only (see below) — this is a major bump because the SPI interfaces changed shape, not because datapacks broke. ### Breaking (Java API) The five in-house dispatch interfaces — `SpatialPredicate`, `RemapStrategy`, `BiomeZone`, `SurfaceAnchor`, `TransitionRule` — are now **registry-backed extension points** instead of `sealed` codec unions: - `sealed` is removed from all five. Exhaustive `switch` statements over their variants no longer compile — handle them through their behavior methods or a `default` branch. - `String typeId()` is **removed** from all five. To recover a variant's registered id, ask the registry: `registry.getKey(variant.codec())`. The registry keys live in `api/registry/IsekaiRegistries`. - New abstract methods carry each interface's evaluation contract: `SpatialPredicate.test(EvaluationContext)`, `RemapStrategy.remap(VerticalRange, RemapContext)`, `SurfaceAnchor.resolveY(PlacementContext, BlockPos)`. Custom Java implementations must supply them. Datapack authors and consumers who only use the built-in variants from JSON are unaffected. ### Added - **Open SPI.** Third parties register their own variant of any of the five interfaces from their own mod id by adding a `MapCodec` to the matching registry in `api/registry/IsekaiRegistries` — no fork, no PR. See [docs/DATAPACK_REFERENCE.md](docs/DATAPACK_REFERENCE.md) → "Extending the SPI". - `api/predicate/EvaluationContext` and `api/remap/RemapContext` — the world-access and math seams that variant `test` / `remap` implementations receive. - **`isekai_api:hooked_overworld` preset + `hook/final_density` density function.** A new dimension references the preset and overrides one small hook file to change terrain shape — no 2500-line `noise_settings` copy. A whole floating-island world is two files. ([README](README.md#quick-start--a-floating-island-world-in-2-files)) - **Terrain-relative ore remap** — `isekai_api:column_local` (RemapStrategy), `isekai_api:world_floor` (SurfaceAnchor) and `isekai_api:column_relative` (placement modifier). Every other remap strategy produces one absolute Y band per feature, which can only ever be right for terrain at one altitude; `column_local` normalizes a feature's vanilla Y to a depth and resolves it against each column's own surface and underside as the feature is placed. Floating islands, orbiting planets and sky continents get the same internal ore layout whatever height they sit at. `RemapStrategy` gained a `remapToColumn(VerticalRange, RemapContext)` **default** method returning `Optional.empty()`, so every existing strategy — built-in or third-party — keeps the absolute behaviour unchanged. - **`isekai_api:vanilla_overworld_surface`** — a delegate `SurfaceRules.RuleSource` that reproduces the vanilla overworld surface rule, so overworld-replacement datapacks skip the 30 KB surface-rule copy. - **Distribution as a Gradle dependency**: `sources` and `javadoc` jars, and a maven repo. See [docs/COMPATIBILITY.md](docs/COMPATIBILITY.md#depending-on-isekai-api). ### Changed - **Dispatch prefix unified to `isekai_api:`.** All `"type"` values normalise to the `isekai_api` namespace; docs and examples use it throughout. - Inline `apply_worldshape` / `apply_worldshape_structures` modifier forms are superseded by the `_ref` forms. ### Fixed - **`isekai_api:worldshape_surface_top` self-gates to the surface layer.** Prepended bare into a `surface_rule` sequence it replaces only the topmost surface block; the blocks beneath keep the underlying surface rule's output. No `minecraft:stone_depth` wrapper is required, and wrapping it in one is harmless. ### Deprecated - The bare `isekai:` dispatch prefix — accepted with a one-time warning, **removed in the next major**. Rewrite `"type": "isekai:*"` to `"type": "isekai_api:*"`. - Inline modifier forms — use the `_ref` forms. Same one-major grace.
release

1.1.0+neoforge-1.21.1

1.1.0+neoforge-1.21.1
2 июн. 2026 г.1,2 тыс.Minecraft: 1.21.1neoforge
Скачать
Что нового
## v1.1.0 See GitHub release notes.