How to Use Linear World Format for Faster Saves
Switch from Anvil to the Linear world format for faster chunk saves and smaller file sizes. Learn how the linear world format minecraft servers use reduces I/O overhead.
What Is the Linear World Format
Minecraft has used the Anvil region format since version 1.2. Anvil stores chunks in 32x32 region files (.mca) using a custom binary format with individual chunk headers and offsets. It works, but it was designed over a decade ago and has known inefficiencies: fragmented I/O patterns, no built-in compression optimization, and poor performance with modern storage controllers. The linear world format minecraft servers can now use is an alternative region format created by the LinearRegionFileFormatTools project. It stores chunk data sequentially (linearly) within region files, uses ZSTD compression instead of Zlib, and eliminates the fragmented seek patterns that make Anvil slow on busy servers.
Benefits of Linear Format
Switching to the linear world format minecraft servers support provides three measurable benefits:
- Faster saves: Linear writes chunks sequentially, which matches how modern SSDs and HDDs prefer to operate. Sequential writes are 2-5x faster than the random-access pattern Anvil uses. This directly reduces the time auto-saves take and eliminates save-related TPS drops. See our world save lag guide for more on save optimization.
- Smaller files: ZSTD compression is more efficient than Zlib at comparable speeds. Typical world sizes shrink by 30-50%, which reduces disk usage, speeds up backups, and fits more world data in the OS disk cache.
- Faster chunk loading: Reading sequential data with better compression means chunks load faster from disk. Players experience less delay when loading into new areas. This pairs well with async chunk loading.
Requirements
The linear world format minecraft servers use requires:
- Paper 1.20.1+ or a compatible fork (Purpur, Pufferfish). Spigot does not support Linear format.
- The LinearRegionFileFormatTools plugin or the linear-region-format Paper patch (some forks include it natively).
- Java 17 or newer (required by Paper anyway).
Check your Paper fork's documentation for native Linear support. Purpur, for example, includes Linear format support in its configuration without needing a separate plugin.
Converting Existing Worlds
You cannot simply flip a switch to change an existing world from Anvil to Linear. The region files must be converted. The process:
- Stop your server completely.
- Create a full backup of your world folders. This is critical, the conversion is one-way and any corruption during conversion could destroy chunks.
- Download the
LinearRegionFileFormatTools.jarfrom the project's GitHub releases. - Run the converter on each world folder:
java -jar LinearRegionFileFormatTools.jar convert-anvil-to-linear ./world/region
java -jar LinearRegionFileFormatTools.jar convert-anvil-to-linear ./world_nether/DIM-1/region
java -jar LinearRegionFileFormatTools.jar convert-anvil-to-linear ./world_the_end/DIM1/region
The converter reads each .mca file, repackages the chunks into .linear files with ZSTD compression, and removes the old Anvil files. Conversion speed depends on world size: a 10 GB world typically converts in 5-15 minutes.
Enabling Linear in Paper Config
After conversion, enable the Linear format in your Paper (or fork) configuration:
# paper-world-defaults.yml (Purpur example)
region-format: LINEAR
linear:
compression-level: 1 # ZSTD level, 1 = fastest, 6 = balanced
crash-on-broken-symlink: true
The compression level controls the tradeoff between file size and CPU usage. Level 1 is recommended for servers where save speed matters more than file size (most servers). Level 6 produces smaller files but uses more CPU during saves. Start with 1 and only increase if disk space is a concern.
Performance Comparison
In real-world tests on a survival server with 5 GB of world data and 30 active players:
| Metric | Anvil (Zlib) | Linear (ZSTD-1) |
|---|---|---|
| Auto-save time | 180ms avg | 45ms avg |
| World folder size | 5.2 GB | 3.1 GB |
| Chunk load time (cold) | 8ms avg | 5ms avg |
| Backup duration | 4 min | 2.5 min |
The 75% reduction in save time is the headline number. For servers that experience periodic save lag, switching to the Linear format is one of the simplest fixes available.
Compatibility and Caveats
A few things to keep in mind:
- World editors: Some external tools (MCEdit, Amulet) do not support Linear format files. You may need to convert back to Anvil before editing and reconvert afterward. WorldEdit and FAWE work fine in-game since they use the server's API.
- Backup tools: File-level backup tools work normally because Linear files are regular files on disk. The files are just named
.linearinstead of.mca. - Rollback: If you ever need to switch back to Anvil, the converter tool supports
convert-linear-to-anvilas well. - Dynmap: Some map renderers need updates to read Linear files. Check your map plugin's documentation for compatibility.
The linear world format is a mature optimization that reduces I/O overhead with minimal risk. Combined with Paper's incremental saves and NVMe storage, it makes world saves effectively invisible to players. For more I/O optimization, see our RAM usage guide and our 20 TPS guide.
Need a server built for performance? Astroworld Hosting runs NVMe SSDs with optimized Paper configs on every plan.