Public Access
51 lines
2.2 KiB
Markdown
51 lines
2.2 KiB
Markdown
# Age runtime profiles
|
|
|
|
Rivencraft loads Age runtime profiles from server data packs at
|
|
`data/<namespace>/rivencraft/age_profiles/<name>.json`. The resulting profile ID
|
|
is `<namespace>:<name>`. Profiles select registered world-generation resources;
|
|
they do not contain an Age's seed, name, spawn, or rolled traits.
|
|
|
|
## Schema version 1
|
|
|
|
```json
|
|
{
|
|
"schema_version": 1,
|
|
"terrain": "noise",
|
|
"noise_settings": "minecraft:overworld",
|
|
"biome_preset": "minecraft:overworld",
|
|
"dimension_type": "minecraft:overworld"
|
|
}
|
|
```
|
|
|
|
`terrain` is `noise`, `flat`, or `void`. Noise profiles require
|
|
`noise_settings` and `biome_preset` references. Every profile requires a
|
|
`dimension_type` reference. Omitted resource references use the Overworld
|
|
entry. Rivencraft validates all referenced entries against the loaded dynamic
|
|
registries during data-pack reload. An invalid profile is rejected.
|
|
|
|
The built-in profile IDs are `rivencraft:standard`, `amplified`, `island`,
|
|
`cave`, `flat`, and `void`. Their JSON files are ordinary built-in data-pack
|
|
resources and can be overridden by a higher-priority pack. The example under
|
|
`docs/example-age-profile-pack` can be copied into a world's `datapacks`
|
|
directory. Valid custom profiles join the stable, sorted pool used when a new
|
|
Age rolls its base terrain; the selected ID is then persisted with that Age.
|
|
|
|
## Persistence and reload behavior
|
|
|
|
An Age permanently stores its selected profile ID, generation version, seed,
|
|
and rolled traits. `/reload` replaces the profile definitions but does not
|
|
reroll those immutable values. An unloaded Age resolves its stored profile
|
|
again when it loads, so intentional profile overrides affect its runtime
|
|
resources and newly generated chunks.
|
|
|
|
A profile removed after an Age was created resolves to `rivencraft:standard`.
|
|
The legacy `rivencraft:random_vanilla` alias also resolves to `standard`.
|
|
Rivencraft logs this fallback. Invalid built-in overrides do not replace the
|
|
required built-in definitions; a reload fails if a required built-in profile
|
|
is absent after resource resolution.
|
|
|
|
Only schema version 1 is accepted. A future schema change must add an explicit
|
|
migration path before incrementing the version. The saved Age generation
|
|
version remains independent of this data-pack schema and is never silently
|
|
rewritten.
|