mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-08-27 04:37:47 +00:00
66 lines
4.7 KiB
Markdown
66 lines
4.7 KiB
Markdown
# 18 - Structures Overview
|
|
|
|
Iris places built content through three systems: single `.iob` objects, multi-piece Iris jigsaw assemblies, and native (vanilla/datapack/mod) structures. They share pack folders and some placement JSON, but each system has different fidelity, terrain tools, and commands. This page chooses the system; the linked guides are the field and workflow references.
|
|
|
|
Command listings assume the Bukkit/Paper plugin. Fabric/Forge/NeoForge expose a reduced command surface.
|
|
|
|
| Guide | Covers |
|
|
|---|---|
|
|
| `19 - Objects.md` | `.iob` format, wand/studio authoring, `.schem` import, editing |
|
|
| `20 - Object Placement.md` | Biome/region `objects[]`: chance, density, modes, loot, surface support |
|
|
| `21 - Jigsaw Structures.md` | Iris multi-piece structures: pieces, pools, connectors, grids |
|
|
| `22 - Native Structures & Datapacks.md` | Vanilla/datapack structures, ingest, adjustments, `nativeStructures` |
|
|
|
|
## The three systems
|
|
|
|
**1. Objects** (`objects/*.iob` + `objects[]` on a biome or region).
|
|
A single build stamped by chance and density: trees, rocks, ruins, camps. Object placements have the richest terrain-fitting tools (stilts, vacuum, paint, cave anchors, snow, edit, loot, markers). Dimensions do not carry `objects[]`.
|
|
|
|
**2. Iris jigsaw structures** (`structures/`, `jigsaw-pools/`, `jigsaw-pieces/` + `structures[]` placement).
|
|
Multi-piece assemblies in the style of villages: pieces connect through named connectors drawn from weighted pools, on a deterministic placement grid. Every piece is an Iris object, so the assembly is fully editable.
|
|
|
|
**3. Native structures** (vanilla, datapack, and mod structures controlled from the dimension file).
|
|
Generated by Minecraft's machinery with full native fidelity (processors, entities, spawners, loot). Iris can disable them, adjust them, ingest datapacks, and place specific registered keys on Iris grids.
|
|
|
|
## Which system
|
|
|
|
| Goal | Use |
|
|
|---|---|
|
|
| Scatter a build across a biome (trees, rocks, ruins, clutter) | Object + `objects[]` placement |
|
|
| Pack loot tables on chests | Object placement `loot` / `vanillaLoot` |
|
|
| Procedural multi-room structure you fully author | Iris jigsaw structure |
|
|
| Move/stilt/encase vanilla structures for Iris terrain | `importedStructures.adjustments` |
|
|
| Remove vanilla villages or other families | `importedStructures.disabled` |
|
|
| Datapack structures generating natively | `datapackImports` + ingest |
|
|
| Datapack structures only where you choose | Disable namespace + `nativeStructures` placement |
|
|
| Replace a vanilla structure with Iris-positioned native starts | Dimension placement with `nativeSuppression: REPLACE_SOURCE` |
|
|
| Edit vanilla/datapack blocks, pieces, or pools | `/iris structure import`, then edit Iris copies |
|
|
| Builds from vanilla structure blocks | Ship `.nbt` in a datapack, or import as objects — see `22 - Native Structures & Datapacks.md` |
|
|
|
|
Systems compose. Shipping packs commonly use objects for decoration, Iris or imported jigsaws for multi-piece content, and native placements with suppression for selected vanilla keys.
|
|
|
|
## How the pieces relate
|
|
|
|
```
|
|
build in world ──wand──> object (.iob) ──objects[] placement──> generates in biome/region
|
|
│
|
|
└──jigsaw-piece JSON──> pool ──> structure ──structures[] placement──> assembled in world
|
|
|
|
registered structure (vanilla / datapack / mod)
|
|
│ generates natively, controlled by importedStructures (disabled / adjustments)
|
|
├──nativeStructures placement──> vanilla machinery at Iris-chosen points
|
|
└──/iris structure import──> objects + pieces + pools + structure (editable Iris copies)
|
|
```
|
|
|
|
## Shared rules
|
|
|
|
**Command shape.** Director optional parameters are always `key=value` (`/iris structure verify overworld radius=200`, never a bare trailing number).
|
|
|
|
**Keys are relative paths.** Pack resources are keyed by path under their folder without extension: `objects/trees/oak/big1.iob` → object `trees/oak/big1`; `jigsaw-pools/fort/starts.json` → pool `fort/starts`.
|
|
|
|
**Worlds snapshot the pack.** On world create, the pack is copied to `<world>/iris/pack` and that copy is authoritative. Editing `plugins/Iris/packs/<pack>` does not change an existing world until `/iris developer update-world world=<world> pack=<dimension> confirm=true` (all arguments keyed) and a restart. Studio worlds read the live pack and hotload JSON/object edits into newly generated chunks about once per second.
|
|
|
|
**Only new chunks change.** Placement and structure-control edits affect chunks generated after the config existed.
|
|
|
|
**Validate before shipping.** On Bukkit, `/iris pack validate pack=<pack>` runs full pack validation, including jigsaw-graph and structure placement checks. Modded uses `/iris pack validate <pack>`.
|