-
-
Notifications
You must be signed in to change notification settings - Fork 0
Reference Migration modes
The ChunkMigrationMode constants, what each costs, and the settings around the backup.
This page is a generation target, currently written by hand. Source of truth:
ChunkMigrationModeand thefalco-migrationengine.
| Mode | Translates | Writes to the world | Cost |
|---|---|---|---|
OFF (default)
|
nothing | no | none; identical to before the option existed |
IN_MEMORY |
on every read | no | paid again on every load of every outdated chunk |
ON_DISK |
on every read | yes | paid once per chunk, then never again |
| Builder slot | migration(ChunkMigrationMode) |
| Discovery | selecting any mode other than OFF turns on ChunkMigrator discovery by itself |
| Missing engine | the loader fails to build |
| Order | migration runs before ChunkVersionPolicy
|
| Startup | a loader in either active mode logs the mode and its cost |
After ON_DISK, the world's chunks carry the running server's data version and the older server can
no longer read them.
| Can be disabled | no |
| Path slot | migrationBackup(Path) |
| Default path | <worldRoot>/falco-migration-backup/<dimension> |
| Granularity | per region file, immediately before that file is first written |
| Mechanism | written under a .partial name, then moved atomically |
| Existing backup | never overwritten |
A world whose chunks are all current is never copied at all.
Lowest DataVersion the engine accepts |
1519 (Minecraft 1.13, the flattening) |
| Below it | declined, not attempted |
| Covers | blocks, biomes, block entities |
| Does not cover | entities, Bedrock worlds, downgrades |
Rules live in
BlockStateRules.
Each carries a since() — the DataVersion the change happened in — and applies exactly when
since() > sourceVersion. since() names the snapshot, not the release. Every number in that
file carries its source in a comment beside it.
Related: How-to Migrate a world from an older version · Explanation How world migration works · Reference Supported versions
Every published table lives on Reference Measured results, which owns them; a correction is made
there and nowhere else. What the ± after a JMH mean covers is defined once, in
Explanation What a measurement here means.
Wiki home · Repository · README and quick start · API documentation · Issues · Licence: AGPL-3.0
Getting started
How-to guides
- How-to Add Falco to your build
- How-to Load an Anvil world
- How-to Compute light for a loaded world
- How-to Keep chunk light up to date automatically
- How-to Use FalcoInstance instead of InstanceContainer
- How-to Migrate a world from an older version
four more
Reference
six more
Background
- Explanation Choosing between Falco and the built-in loader
- Explanation Scope and non-goals
- Explanation When light computation actually runs
- Explanation What a measurement here means
nine more
- Explanation Choosing between FalcoInstance and InstanceContainer
- Explanation How the Anvil loader is built
- Explanation How the light engine works
- Explanation How the concurrency design works
- Explanation How world migration works
- Explanation The chunk version guard
- Explanation Why a second Anvil loader
- Explanation Why a custom light engine
- Explanation Why falco-instance exists
- Explanation Comparing the light engine with Minestoms
- Explanation What the benchmarks establish
Project record
Working on Falco