Skip to content
Bugfunbug edited this page Apr 17, 2026 · 6 revisions

LinearReader's config file can be found at config/linearreader-server.toml. In order for changes to take effect the server either needs to be restarted or /reload needs to be run.

The default config values have been tuned for general use, so edits to the config may not be necessary.

Some settings interact with each other, especially cache size and flushing behavior, so keep that in mind when tuning values.

For a more in-depth explanation of all of LinearReader's features, see the Features page.

Performance

compressionLevel

Defines the level of compression for the initial compression of .linear files. Very high levels of compression should probably be avoided, and instead the recompressor should be used. Must be a whole number value between 1 and 22.

  • Default value = 2
  • Lower value = faster saves and less CPU work, but larger files
  • Higher value = slower saves and more CPU work, but smaller files

regionCacheSize

Defines how many region files can be in the cache. A value between 128-512 is likely best, though it all depends on the server. Must be a whole number between 8 and 1024.

  • Default value = 256
  • Lower value = constant disk reads, which may cause worse performance
  • Higher value = more RAM usage, but may improve performance if many regions are accessed

Saving Behavior

regionsPerSaveTick

Defines how many regions are processed per tick during saves. Must be a whole number between 1 and 64.

  • Default value = 4
  • Lower value = reduces per-tick load but may cause backlogs
  • Higher value = reduces backlogs but increases per-tick load

pressureFlushMinDirtyRegions / pressureFlushMaxDirtyRegions

Defines the range that the pressure flushing system operates within. Together, these values control when LinearReader forces regions to be saved, and they prevent too many unsaved regions from building up in memory.

  • Default value (pressureFlushMinDirtyRegions) = 4
  • Default value (pressureFlushMaxDirtyRegions) = 16
  • Lower values = more aggressive flushing
  • Higher values = allows for more batching before flushing

Backups

backupEnabled

Defines whether backups should be created. If enabled, backups are created on first load automatically and updated over time. Must be either true or false.

  • Default value = true

backupUpdateInterval

Defines how many successful saves are between backup refreshes. Must be a whole number between 1 and 100.

  • Default value = 10
  • Lower value = more frequent updates, but more disk writes
  • Higher value = less frequently updated backups, which increases risk

Monitoring

slowIoThresholdMs

Defines how long (in milliseconds) a read/write must take for it to be logged. Can help detect lag or disk issues. Set to -1 to disable.

  • Default value = 500

diskSpaceWarnGb

Defines how much free disk space (in gigabytes) needs to be left to warn in the logs that disk space is low. Can help prevent unexpected disk-full crashes. Set to -1 to disable.

  • Default value = 1

Recompression

autoRecompressEnabled

Defines whether auto-recompression is enabled. Auto-recompression occurs in the background when there is no chunk I/O activity. Must be either true or false.

  • Default value = true

idleThresholdMinutes

Defines how long (in minutes) chunk I/O must be idle for before auto-recompression is engaged. ("Idle" means no chunk read/write activity). Must be a whole number between 5 and 1440.

  • Default value = 20
  • Lower value = starts sooner
  • Higher value = waits longer

recompressMinFreeRamPercent

Defines the minimum percent of free memory required in order for recompression to continue, otherwise recompression will be paused. This is to prevent recompression from using too much memory. Must be a whole number between 5 and 50.

  • Default value = 15
  • Lower value = recompression can use more RAM
  • Higher value = recompression can't use as much RAM

Clone this wiki locally