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.