promotional bannermobile promotional banner

Isekai API

A neutral primitive language for Minecraft worldgen — compose any worldshape (floating islands, new dimensions, layered worlds) from datapack. NeoForge 1.21.1.
Back to Files

isekai-api-2.0.0-neoforge-1.21.1

File nameisekai-api-2.0.0-neoforge-1.21.1.jar
Uploader
KURONAMlKURONAMl
Uploaded
Aug 5, 2026
Downloads
54
Size
461.5 KB
Mod Loaders
NeoForge
File ID
8581037
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:isekai-api-1557389:8581037"

Learn more about Curse Maven

What's new

v2.0.0

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 → "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)
  • Terrain-relative ore remapisekai_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.

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.

This mod has no additional files