mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-08-27 12:41:43 +00:00
5.9 KiB
5.9 KiB
Iris Agent Guide
Iris is a world generation engine for Minecraft servers and mod loaders. It generates terrain, biomes, caves, structures, objects, and entities from editable JSON packs, with an in-game studio authoring workflow. The same engine runs as a Bukkit-family plugin and as a Fabric, Forge, or NeoForge server mod. Read this file before making any change; the workspace-level ../AGENTS.md also applies when working inside the VolmitSoftware workspace.
Documentation Policy (mandatory)
docs/is the authoritative reference for every feature of this plugin/mod. Files are flat (no subfolders) and numberedNN - Title.md, ordered for someone new to Iris; API docs always keep the highest numbers.- ANY change that alters a feature, command, permission, setting, pack JSON contract, studio/editor workflow, pregen behavior, structure/object system, integration, localization, client HUD/protocol, or public API surface MUST update the matching numbered doc in the same workstream. A behavior change with stale docs is an incomplete change — do not finish work without the doc update.
- Docs state actual runtime behavior, not intended behavior. If a change fixes a documented quirk, update or remove that quirk entry. If a change introduces surprising behavior, document it plainly.
- Docs are purely factual reference material: no marketing language, no emojis, no filler. Each file opens with a 1–4 sentence summary.
- Cross-references use exact filenames (for example
see "04 - Commands & Permissions.md"). When adding or renumbering files, fix every cross-reference. - Hosted external docs are not authority; this
docs/tree is. - Maintainer-only checklists use high numbers before the API series and are titled
Maintainer — ….
Doc Index
| File | Covers |
|---|---|
00 - Overview.md |
What Iris is, feature map, doc index, project layout |
01 - Installation & Platforms.md |
Plugin/mod install, data dirs, first boot, platforms, native worldgen matrix |
02 - Getting Started.md |
First world, teleport, basic pregen, first studio |
03 - Configuration.md |
settings.json keys, defaults, hotload |
04 - Commands & Permissions.md |
Full /iris tree, Bukkit vs modded, permissions |
05 - Concepts & Pack Layout.md |
Pack roots, keys, folders, snippets, world snapshot vs studio |
06 - Worlds & Lifecycle.md |
create/load/unload/remove, main world, Folia, pack copy |
07 - Pregeneration.md |
pregen ops, cache, mantle, HUD |
08 - Localization.md |
locales, overrides, client lang |
09 - PlaceholderAPI.md |
%iris_…% keys and migration |
10 - Studio & VSCode Schemas.md |
Studio workflow, schemas, hotload |
11 - Dimensions.md |
Dimension JSON, modes, height, imports |
12 - Regions.md |
Regions and region-level content |
13 - Biomes.md |
Biome JSON, layers, custom biomes, spawns |
14 - Generators & Noise.md |
Generators, styles, expressions, images |
15 - Caves & Carving.md |
Cave profiles, field modules, carving |
16 - Surfaces, Decorators & Deposits.md |
Decorators, deposits, palettes |
17 - Trees, Fungi, Coral, Crystals, Formations, Ruins.md |
Procedural decoration systems |
18 - Structures Overview.md |
Objects vs jigsaw vs native structures |
19 - Objects.md |
Creating and importing .iob objects |
20 - Object Placement.md |
Placing objects in biomes and regions |
21 - Jigsaw Structures.md |
Iris multi-piece structures |
22 - Native Structures & Datapacks.md |
Vanilla/datapack structures on Iris |
23 - Loot, Entities, Spawners, Markers.md |
Pack entities and loot |
24 - Pack Mods & Snippets.md |
Injectors/replacers and snippets |
25 - Pack Management.md |
Download, validate, cleanup, package, update-world |
26 - Example - Minimal Dimension.md |
Minimal pack walkthrough |
27 - Example - Configuring Overworld.md |
Editing the shipping overworld |
28 - Integrations.md |
WorldEdit, Multiverse, Mythic, item plugins, tree feller |
29 - Client HUD & Protocol.md |
Client mod HUD and protocol |
30 - Platform Differences.md |
Bukkit vs Fabric/Forge/NeoForge matrix |
31 - Operator Runbooks & Smoke Tests.md |
Manual verification |
32 - Determinism & Goldenhash.md |
Cross-platform parity gate |
33 - Performance Tuning.md |
Threads, mantle, SIMD, pregen caps |
85 - Maintainer - MC Version Bump.md |
Version bump procedure |
86 - Maintainer - Release Checklist.md |
Release steps |
87 - Maintainer - Release Readiness.md |
Living readiness tracker |
90 - API - Getting Started.md |
Bukkit public API setup |
91 - API - Terrain.md |
Terrain query service |
92 - API - World Events.md |
Engine and pregen events |
93 - API - Tree Feller.md |
Tree feller service |
94 - API - Modded.md |
Modded public API |
Docs 00–33 serve operators and pack authors in reading order; 85–87 are maintainer; 90–94 serve plugin and mod developers.
Build and Platforms
- Java 25 required. Independent Gradle build from
Iris/:./gradlew build,./gradlew test. - Artifacts: Bukkit-family plugin jar; Fabric, Forge, and NeoForge mod jars under
dist/when built. - Modules:
core(engine),spi(platform SPI),adapters/bukkit/plugin(plugin + Bukkit API),adapters/modded-common+ loader adapters,probe(offline tooling). - Default pack downloads at first boot from the IrisDimensions overworld release; packs live under the platform data directory
packs/<key>/.
Content Model (brief)
- Pack — directory of JSON and
.iobresources underpacks/<key>/with at leastdimensions/*.json. - Dimension — root config for a world type (height, modes, regions, imports).
- Region / Biome / Generator — spatial and terrain authoring units.
- Object / Structure — placed content (
.iob, Iris jigsaw, native/datapack structures). - Studio — transient authoring world with live pack hotload and VSCode schemas.