Skip to content

Configuration

HeadDB separates configuration by responsibility.

FilePurpose
config.ymlCore runtime, remote database, cache, storage, player heads, language, scheduled refreshes, and updater behavior.
gui.ymlMenu layouts, buttons, icons, names, lore, and slots.
sounds.ymlGUI, command, economy, validation, and administration sounds.
economy.ymlOptional Vault integration and pricing.
messages/<locale>.ymlLocalized player and administrator messages.
storage/headdb.dbPersistent server-local data.

HeadDB writes comments and missing defaults when supported by the active configuration loader. Back up files before major release upgrades.

config.yml

Remote database

yaml
remote:
  manifest-url: https://data.headsdb.com/manifest.json
  preferred-mirror-id: primary

Normal servers should keep the official manifest URL. The preferred mirror is selected when present; HeadDB falls back to another manifest-provided mirror when needed.

Cache and item cache

yaml
cache:
  directory: cache
  item:
    enabled: true
    max-size: 4096

The artifact cache stores verified remote database files. The item cache stores reusable head-item prototypes and clones them when needed.

Database refresh

yaml
refresh:
  load-cache-on-startup: true
  refresh-on-startup: true
  scheduled:
    enabled: true
    interval-hours: 6
SettingMeaning
refresh.load-cache-on-startupLoads the last verified local database immediately during startup.
refresh.refresh-on-startupChecks the remote manifest after startup.
refresh.scheduled.enabledEnables recurring remote database checks.
refresh.scheduled.interval-hoursHours between checks; valid range is 1 through 168.

Scheduled checks download only the manifest when catalog and revocation descriptors are unchanged. Changed artifacts are verified, cached, and atomically activated.

HTTP

yaml
http:
  connect-timeout-seconds: 10
  read-timeout-seconds: 30

Increase these only when the server network is consistently slow. Very high values can delay failure reporting.

Local storage and features

yaml
storage:
  sqlite:
    file: storage/headdb.db

remote-overrides:
  enabled: true

custom-heads:
  enabled: true

storage/headdb.db contains favorites, Custom Heads, Custom Categories, drafts, custom tags and collections, hidden heads, metadata overrides, and player-head cache records. Do not delete it unless you intentionally want to remove local data.

Player heads

yaml
player-heads:
  enabled: true
  cache-ttl-hours: 24
  failed-cache-ttl-minutes: 10
  allow-external-lookup: true
SettingMeaning
player-heads.enabledEnables player-head services and GUI functionality.
player-heads.cache-ttl-hoursRetains successful profile lookups.
player-heads.failed-cache-ttl-minutesTemporarily caches failed lookups.
player-heads.allow-external-lookupAllows profile resolution outside known local players.

Messages and locale

yaml
messages:
  directory: messages
  default-locale: en-US
  console-locale: en-US

The default locale is used when a player has no valid selection. Console messages use the configured console locale and are logged under the HeadDB logger.

Root command GUI behavior

yaml
gui:
  open-main-command: true

When enabled, /hdb opens the main menu for players with the required permissions. When disabled, it prints the root command overview.

Update checker

yaml
update-checker:
  enabled: true
  check-on-startup: true
  notify-console: true
  notify-admins: true
  include-prereleases: true
  include-builds: false

Prereleases include alpha, beta, and release-candidate builds. Build metadata releases such as 7.0.0-rc.6+build.3 are controlled separately.

Automatic plugin installation

yaml
auto-updater:
  install-updates: false

When enabled, HeadDB downloads an allowed update in place when possible or stages it in the server update directory. A server restart is always required to load the new JAR.

Debug mode

yaml
debug: false

Debug mode enables additional startup diagnostics and validation logs. It is not required for normal operation.

gui.yml

gui.yml controls menu titles, layouts, slots, display items, head icons, lore, navigation controls, confirmation menus, search controls, settings, and administrative GUI actions.

After an upgrade with major GUI changes, back up and remove an outdated gui.yml so HeadDB can generate the current structure.

See GUI.

sounds.yml

Global control:

yaml
sounds:
  enabled: true

Each event supports:

yaml
sounds:
  menu-open:
    enabled: true
    sound: UI_BUTTON_CLICK
    volume: 0.55
    pitch: 1.25

Sound entries cover navigation, searches, head actions, favorites, visibility, settings, drafts, publishing, deletion, validation, economy outcomes, refreshes, reloads, verification, debugging, categories, tags, collections, and price changes.

Sound identifiers may use Bukkit-style enum names or supported namespaced/resource-pack sound keys.

economy.yml

Controls Vault enablement and price resolution. See Economy.

messages/

Locale files contain command feedback, errors, economy messages, language messages, and interface text. Preserve message keys when translating.

Released by SilentDevelopment.