#Enable or disable automatic backups.
#Options : true, false   #Default : true
config.advancedbackups.enabled=true

#Whether to save before making a backup.
#Options : true, false    #Default : true
config.advancedbackups.save=true

#Whether to disable autosave before making a backup, and whether to re-enable saving afterwards.
#Don't edit this unless you know what you're doing. Saving mid-backup can cause issues!
#Options : true, false    #Default: true
config.advancedbackups.togglesave=true

#Buffer size, in bytes, to use when reading / writing files. Higher will improve speeds, but increase memory usage.
#Too high can cause an OOM. I'd advise against editing this unless you experience issues.
#Range : 1-2147483647     #Default : 1048576
config.advancedbackups.buffer=1048576

#Whether to flush when making the aforementioned save. Can cause a lag spike, and is usually not required.
#Unused prior to minecraft 1.16.
#Options : true, false    #Default : false
config.advancedbackups.flush=false

#Whether to require player activity between backups.
#Options : true, false    #Default : true
config.advancedbackups.activity=true

#The type of backups to use.
#Options : zip, differential, incremental    #Default : differential
config.advancedbackups.type=differential

#A list of files, relative paths within the world directory, to skip backing up.
#Comma separated, * is a wildcard, and backslashes are replaced with forward slashes.
#Default : session.lock,*.dat_old
config.advancedbackups.blacklist=session.lock,*_old

#The absolute or relative path to the backup location.
#Options : any file path. Default : ./backups
config.advancedbackups.path=./backups

#Minimum time between backups, in hours. This can prevent a shutdown backup from triggering immediately after a scheduled backup or similar situations.
#Set to 0 to disable.
#5 minutes = ~ 0.083 hours.
#Range : 0 - 500    #Default : 0.5
config.advancedbackups.frequency.min=0.25

#Triggers a backup if none has already happened within this time. Can be combined with an uptime-based schedule.
#Range : 0.5 - 500    #Default : 24
config.advancedbackups.frequency.max=24.0

#Whether the schedule below uses uptime (true) or real-world time (false).
#Default : true
config.advancedbackups.frequency.uptime=true

#When using server uptime:
    #A looping comma-separated backup schedule, based off of server uptime, hours:minutes. Examples:
    #4:00 - Makes a backup every four hours.
    #4:00,7:00 - Makes a backup after four hours, then three, then four, and so on.
    #1:00 - Makes a backup every hour.
    #4:00,8:00,12:00,16:00,17:00,18:00,19:00,20:00,21:00,24:00 - Makes a backup following a strict schedule.

#When using real-world time:
    #A strict schedule, using hours:minutes to follow real-world time. Examples:
    #4:00 - Makes a backup at 4am each day.
    #4:00,8:00,12:00,16:00,17:00,18:00,19:00,20:00,21:00,24:00 - Makes a backup at specific times of day.
    #Note : use 24:00 instead of 0:00 to represent midnight.

#Default : 1:00
config.advancedbackups.frequency.schedule=1:00

#Whether to force a backup on server shutdown. Respects min frequency.
#Options : true, false    #Default : false
config.advancedbackups.frequency.shutdown=false

#Whether to force a backup on server startup. Respects min frequency.
#Options : true, false    #Default : false
config.advancedbackups.frequency.startup=false

#Delay to use after startup, in seconds. Is always at least 5 seconds.
#Range : 5-1000    #Default : 30
config.advancedbackups.frequency.delay=30


#--------------------------------------------------------------------------------------------------------------------
##The following options control logging of backup progress, including which clients to contact.
##Backup start and end are always logged to console. The rest is configurable.
#--------------------------------------------------------------------------------------------------------------------

#Which clients to send progress updates to. Behaviour before this was added was `ops`
#Options : ops, all, none    #Default : ops
config.advancedbackups.logging.clients=ops

#How often to send progress info to clients, measured in milliseconds. Old behaviour was `0`, not recommended for servers due to network load.
#Range : 0 - ~infinite #Default : 500
config.advancedbackups.logging.clientfrequency=500

#Whether to log backup progress to console. Start / finish are always logged. Old behaviour was `false`.
#Options : true, false    #Default : true
config.advancedbackups.logging.console=true

#How often to send log progress info in the console, measured in milliseconds.
#Range : 0 - ~infinite #Default : 5000
config.advancedbackups.logging.consolefrequency=5000



#--------------------------------------------------------------------------------------------------------------------
##The following options control deletion of old backups, meeting a criteria. A backup only needs to meet ONE of the below criteria to be purged.
##The oldest backups are always purged first, or oldest differnetial partial if the oldest differential backup is being depended on. 
#--------------------------------------------------------------------------------------------------------------------
#The maximum size to keep, in GB. Keep relatively high for zips, tighter space requirements should instead use differential or incremental backups.
#Set to 0 to disable. 
#Range : 0 - 9999 #Default : 50
config.advancedbackups.purge.size=50.0

#The maximum days to keep backups for. Higher amounts will keep a longer "history" but take up more space in return.
#Set to 0 to disable. 
#Range : 0 - 9999 #Default : 0
config.advancedbackups.purge.days=0

#The maximum amount of backups to keep. Older backups will be purged if this is exceeded.
#Set to 0 to disable. 
#Range : 0 - 9999 #Default : 0
config.advancedbackups.purge.count=0

#Whether to delete incremental backup chains if max size is exceeded. If not, incremental backups do not respect the above options and never delete.
#This is because you can't delete part of an incremental backup chain without breaking the links. Differentials do not have this downside.
#Options : true, false    #Default : true
config.advancedbackups.purge.incrementals=true

#The minimum number of incremental chains to keep before purging any that meet the criteria. Only relevant if the above option is set to true.
#Range : 1 - 9999 #Default : 1
config.advancedbackups.purge.incrementalchains=1



#--------------------------------------------------------------------------------------------------------------------
##The following options only affect zip files, whether that's for zip backups, export commands or some other option.
#--------------------------------------------------------------------------------------------------------------------

#The compression level to use for zip files. Higher numbers space usage, but decrease performance.
#Range : 1-9    #Default : 4
config.advancedbackups.zips.compression=4


#--------------------------------------------------------------------------------------------------------------------
##The following options only affect differential and incremental backups.
#--------------------------------------------------------------------------------------------------------------------

#The maximum 'chain' length to keep.
#Range : 5-500    #Default : 50
config.advancedbackups.chains.length=50

#Whether to compress 'chains'. This compresses the base backup and all sequential backups. Reduces space usage, but decreases performance.
#Options : true, false    #Default : true
config.advancedbackups.chains.compress=true

#Whether to enable "smart" reset for chains - if every file is being backed up, mark the backup as complete and reset chain length regardless of intended backup type.
#Options : true, false    #Default : true
config.advancedbackups.chains.smart=true

#What % of a full backup is allowed to be contained in a partial before forcing it into a full backup. Useful for reducing partial backup size.
#Range : 1-100    #Default : 50
config.advancedbackups.chains.maxpercent=50.0