Skip to content

Configuration Reference ​

The primary server configuration file is located at:

text
config/justenoughbackups.json

It is generated on first startup with default settings. On dedicated servers, reload changes with /jeb config reload without restarting. HUD appearance is configured by each client.

When an older configuration has the legacy automaticBackupsEnabled and automaticIntervalMinutes fields but no automaticSchedule, JEB migrates that single schedule to the type selected by backupMode and initializes the other types as disabled.


Core Configuration Example ​

This example shows the main server settings. The generated file also includes remoteStorage, retention, and popup sections; see below and the remote storage guide for details.

json
{
  "backupMode": "FULL",
  "pauseAutomaticBackupsWithoutPlayers": true,
  "backupOnServerStart": false,
  "backupOnServerStop": false,
  "startupBackupThreshold": {
    "fullMinutes": 0,
    "partialMinutes": 0,
    "differentialMinutes": 0
  },
  "automaticSchedule": {
    "full": {
      "enabled": true,
      "intervalMinutes": 240
    },
    "differential": {
      "enabled": false,
      "intervalMinutes": 120
    },
    "partial": {
      "enabled": false,
      "intervalMinutes": 60
    }
  },
  "automaticBackupWarningEnabled": true,
  "automaticBackupWarningMinutes": 5,
  "commandPermissionLevel": 2,
  "messageChannel": "ACTION_BAR",
  "integrityMode": "STRICT",
  "includeSummaryFile": false,
  "minimumFreeSpaceReserveMb": 512,
  "threadCount": 6,
  "compressionMethod": "DEFLATED",
  "deflateCompressionLevel": 6,
  "zstdCompressionLevel": 3,
  "backupDirectory": "backups",
  "tempBackupDirectory": "",
  "excludedPaths": [],
  "excludeSafetyBackupsFromIncremental": false,
  "retention": {
    "full": 5,
    "incremental": 20,
    "differential": 10,
    "maxTotalSizeMb": 0
  }
}

1. Automation & Schedulers ​

PropertyDefaultDescription
backupMode"FULL"Default backup type used for /jeb now and server start/stop backups.
pauseAutomaticBackupsWithoutPlayerstruePauses scheduled backups until a player has been online since the previous backup.
backupOnServerStartfalseTakes a backup shortly after the server finishes starting.
backupOnServerStopfalseTakes a backup right before the server process shuts down.
automaticSchedule.full.enabledtrueEnables scheduled Full backups.
automaticSchedule.full.intervalMinutes240Interval in minutes between Full backups (default: 4 hours).
automaticSchedule.differential.enabledfalseEnables scheduled Differential backups.
automaticSchedule.differential.intervalMinutes120Interval in minutes between Differential backups (default: 2 hours).
automaticSchedule.partial.enabledfalseEnables scheduled Partial backups.
automaticSchedule.partial.intervalMinutes60Interval in minutes between Partial backups (default: 1 hour).
automaticBackupWarningEnabledtrueBroadcasts an advance warning before an automatic backup starts.
automaticBackupWarningMinutes5Minutes before the backup to send the advance warning.
startupBackupThreshold.fullMinutes (and partial/differential)0Minimum age of the most recent backup of that type before a server-start backup runs. Zero disables the age threshold.

2. Retention Policies ​

PropertyDefaultDescription
retention.full5Maximum number of Full backups to keep. (Base backups protected while children need them).
retention.incremental20Maximum number of Partial backups to keep.
retention.differential10Maximum number of Differential backups to keep.
retention.maxTotalSizeMb0Hard disk space cap in MB for all backups combined. Set to 0 to disable.
excludeSafetyBackupsFromIncrementalfalseWhen true, automatic Old_World safety backups are not used as base references for incremental chains.

3. Storage Paths & Exclusions ​

PropertyDefaultDescription
backupDirectory"backups"Destination folder for finalized .zip archives. Accepts relative or absolute paths.
tempBackupDirectory""Working directory where archives are staged and compressed before being moved to backupDirectory. Leave empty to compress in-place.
excludedPaths[]List of paths relative to the world directory to omit from backups (e.g. ["voxy", "dynmap/web/tiles"]).
minimumFreeSpaceReserveMb512Minimum free disk space in MB required on the target drive before a backup is allowed to start.

Relative paths are resolved from the game directory. JEB stores local archives in a per-world subdirectory, for example:

text
backups/<world-id>/<backup-name>.zip

<world-id> is the world's internal level ID, falling back to its folder name when unavailable. Keep tempBackupDirectory outside the world folder; JEB rejects a temporary directory that overlaps it. If temporary and final directories are on separate file systems, both volumes need enough free space for the estimated archive plus the configured reserve.

Optimizing Network / External Storage

If your backupDirectory points to an external USB drive or NFS mount, set tempBackupDirectory to a fast local SSD (e.g. "run/temp_backups"). JEB will compress locally at full speed and only transfer the completed .zip file over the bus/network.


4. Performance & Compression ​

PropertyDefaultDescription
threadCountmax(1, cores - 2)Number of worker threads used for parallel hashing, compression, and extraction. Valid range: 1 to the number of available CPU cores.
compressionMethod"DEFLATED"Archive compression engine: "DEFLATED" (standard ZIP) or "ZSTANDARD" (high speed).
deflateCompressionLevel6Deflate level (1 fastest to 9 smallest).
zstdCompressionLevel3Zstandard level (1 fastest to 22 ultra).
integrityMode"STRICT"Controls how broken files and damaged restores are handled; see the modes below.
includeSummaryFilefalseAdds summary.txt to each archive with world details, Minecraft/JEB versions, and the loaded mod list. Restoring the archive also places this file in the world folder.

Integrity modes:

ModeBehavior
STRICTDiscards failed backups and blocks restores that fail integrity checks.
PERMISSIVEMay keep partial backups, but still blocks damaged restores.
VERY_PERMISSIVEAllows a damaged restore to continue with a warning; intended for manual recovery.

5. Permissions & Announcements ​

PropertyDefaultDescription
commandPermissionLevel2Required OP level to execute /jeb commands (0 = all players, 2 = OP, 4 = admin).
messageChannel"ACTION_BAR"Where server announcements appear: "ACTION_BAR", "CHAT", or "OFF". Client HUD popups are configured separately.

6. Client Popup ​

The generated popup object controls the on-screen backup notification. These are personal client settings, including when connecting to a dedicated server.

SettingPurpose
enabled, showTitle, centerText, showBorderToggle the popup and its title, text alignment, and border.
x, y, xRatio, yRatioPosition the popup in pixels or relative to the screen. Use the in-game preview to place it.
backgroundColor, runningColor, completedColor, failedColor, textColorARGB color values in 0xAARRGGBB form.
title, runningText, scanningText, completedText, failedTextCustomize displayed text. Status templates support {reason} and {type} placeholders.

Just Enough BackupsReliable world backups for Fabric servers.DocumentationGitHubModrinth