config.yml reference
Docs/dominion-protect/config.yml reference

config.yml reference

Main DominionProtect keys, defaults, and tuning guidance.

Base and database

language: en_us
debug: false

database:
  host: localhost
  port: 3306
  database: dominion_protect
  username: dominion_protect
  password: ""
  poolSize: 10
  optimizeStorageOnStartup: true
  storageOptimizationDelaySeconds: 60
  storageMigrationBatchDelayMs: 25
  payloadCompressionThresholdBytes: 512
  compactRecordIds: true
  compactIdMinimumLifetimeYears: 10
  dropUnusedActionIndex: false
  dropUnusedDestinationIndex: false
  indexObservationMinDays: 7

The database account needs create-table, temporary-table, drop, insert, select, update, delete, and ALTER privileges. Do not use root in production.

Recording, query, and rollback

recording:
  flushIntervalSeconds: 5
  batchSize: 1000
  retryLimit: 3
  disabledActions:
    - block-from-to
    - block-spread
  enabledActions: []

query:
  inspectDefaultTime: 24h
  pageSize: 10

rollback:
  maxRecords: 50000
  batchSize: 200
  batchIntervalTicks: 2
  confirmTimeoutSeconds: 30
  previewEnabled: true
  previewTimeoutSeconds: 60
  previewMaxBlocks: 10000

A non-empty enabledActions list records only allowlisted actions; disabledActions takes precedence. Preview changes client-side display only and does not write real blocks early.

Subscription plans

subscription:
  vaultUnavailableStrategy: disable
  defaultPlanId: ""
  plans:
    - id: basic
      name: Basic Plan
      period-days: 30
      price: 1000.0
      record-limit: 100000
      material: IRON_INGOT
      quota-full-strategy: stop
      description: Basic protection plan
    - id: premium
      name: Premium Plan
      period-days: 30
      price: 5000.0
      record-limit: -1
      material: GOLD_INGOT
      quota-full-strategy: evict
      description: Premium protection plan
  • stop stops new writes when the record limit is reached.
  • evict removes the oldest records to make room.
  • An empty defaultPlanId leaves new claims without an automatic plan; a valid ID grants that plan once for free.
  • material is displayed by the GUI and must be a supported Bukkit Material.

Cleanup

cleanup:
  gracePeriodDays: 7
  maxRetentionDays: 60
  batchSize: 5000
  purgeDelayMs: 100
  cycleIntervalHours: 6
  rollbackLogRetentionDays: 90
  failedRecordRetentionDays: 30
  failedRecordMaxTotalMiB: 100
  reclaimFreeSpacePercent: 30
  reclaimStartHour: 4

A zero maxRetentionDays, rollbackLogRetentionDays, or failedRecordRetentionDays means unlimited retention for that category. A zero reclaimFreeSpacePercent disables post-cleanup space reclamation.