config.yml

(Questborn/config.yml)

# ------------------------------
#   LANGUAGE & SYSTEM
# ------------------------------

# Available languages: en_us, uk_ua, de_de, es_es, fr_fr, pt_br, pl_pl, ru_ru, kk_kz, tr_tr
language: en_us

# Update Checker
# Checks for updates on plugin startup
update-check:
  notify-console: true
  notify-admin: true


# ------------------------------
#   STORAGE
# ------------------------------

storage:
  # Storage backend to use for player data.
  # Options:
  #   H2 - H2 file-based database (fast alternative to SQLite, recommended default)
  #   YAML  - Individual YAML files per player (legacy)
  #   MYSQL - MySQL / MariaDB database (recommended for networks with multiple servers)
  #   POSTGRESQL - PostgreSQL database (alternative to MySQL)
  #   SQLITE - SQLite file-based database (good middle-ground for single servers)
  #   MONGODB - MongoDB via official driver (requires internet or local server)
  type: H2

  # MySQL / MariaDB settings (used only when type: mysql)
  mysql:
    host: localhost
    port: 3306
    database: questborn
    username: root
    password: ""
    # Connection pool size
    pool-size: 5
    # Connection timeout in milliseconds
    connection-timeout: 30000
    # Use SSL for connection
    use-ssl: false

  # PostgreSQL settings (used only when type: postgresql)
  postgresql:
    host: localhost
    port: 5432
    database: questborn
    username: postgres
    password: ""
    # Connection pool size
    pool-size: 5
    # Use SSL for connection
    use-ssl: false

  # MongoDB settings (used only when type: mongodb)
  mongodb:
    uri: "mongodb://localhost:27017"
    database: questborn
    collection: player_data
    # Timeouts in milliseconds
    connect-timeout: 5000
    read-timeout: 5000

  # SQLite settings (used only when type: sqlite)
  # The database file is located in the plugin's data folder.
  sqlite:
    file: questborn.db


# ------------------------------
#   GAMEPLAY & MECHANICS
# ------------------------------

gameplay:
  # Allowed game modes for quest progress
  # Options: SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR
  allowed-gamemodes:
    - SURVIVAL
    - ADVENTURE

activation:
  # BLOCK    - Prevent new quest activation while another quest is active
  # REPLACE  - Automatically cancel current quest and activate new one
  # CHANGE / CONFIRM  - Request player confirmation before replacing current quest
  conflict-mode: "CHANGE"

rewards:
  # If true, rewards are automatically given upon quest completion (bypassing NPC claim).
  # If false, player must claim rewards (via NPC interaction or GUI).
  auto-claim: false


# ------------------------------
#   INTEGRATIONS
# ------------------------------

integration:
  # NPC Integration Settings
  npc:
    enabled: false
    # Which NPC plugin to use? 
    # Options: CITIZENS, FANCYNPCS
    plugin: FANCYNPCS
    # Mode of interaction: MIXED, NPC_ONLY, MENU_ONLY
    mode: MIXED
    # Button to interact with NPC: RIGHT, LEFT, ANY
    interaction-button: RIGHT

  # ItemsAdder Integration (Custom Items & Blocks)
  itemsadder:
    enabled: false

  # SkinsRestorer Integration (Skins in GUI)
  skinsrestorer:
    enabled: true

  # Vault Integration (Economy Rewards & Requirements)
  vault:
    enabled: true

  # WorldGuard Integration (Region Requirements)
  worldguard:
    enabled: false

  # PlaceholderAPI Integration (Placeholders for other plugins)
  placeholderapi:
    enabled: true


# ------------------------------
#   VISUALS - WORLD
# ------------------------------

npc-indicators:
  enabled: true
  view-distance: 20.0     # Distance to see indicators
  offset-y: 0.6           # Height above NPC head
  icons:
    available: "&6&l!"
    in-progress: "&a&l▣"
    completed: "<#00ff94>&l✔"
    cooldown: "&b⏳"
    locked: "&c&l🔒"
    reward-available: "<#00ff66>&l🎁"


# ------------------------------
#   VISUALS - HUD
# ------------------------------

# Top System Settings
top:
  # Update interval for the leaderboard cache
  # In ticks (20 ticks = 1 second)
  # Default: 6000 (5 minutes)
  update-interval-ticks: 6000

# Progress Bar Settings (Used by BossBar, Scoreboard, ActionBar)
progress-bar:
  length: 10
  filled-symbol: ""
  current-symbol: ""
  empty-symbol: ""
  filled-color: "&a"
  current-color: "&e"
  empty-color: "&7"

# BossBar Settings
bossbar:
  enabled: true
  
  # Title format
  # Supports placeholders: {quest_name}, {progress}, {target}, {stage}, {total_stages}
  title: "&e{quest_name} &7[{progress}/{target}]"
  
  # BossBar style
  # Colors: BLUE, GREEN, PINK, PURPLE, RED, WHITE, YELLOW, AUTO
  # AUTO - Color is determined by the quest name's formatting
  color: AUTO

  # Display modes:
  # ON_PROGRESS_CHANGE  - Show only when quest progress changes
  # STATIC              - Display continuously during active quest
  mode: "STATIC"

  # Update interval for STATIC mode
  # In ticks (20 ticks = 1 second)
  update-interval-ticks: 20
  
  # Styles: SOLID, SEGMENTED_6, SEGMENTED_10, SEGMENTED_12, SEGMENTED_20
  style: SOLID

# Scoreboard Settings
scoreboard:
  enabled: true

  # Display modes:
  # ON_PROGRESS_CHANGE  - Show only when quest progress changes
  # STATIC              - Display continuously during active quest
  mode: "STATIC"

  # Whether scores (red numbers) on server versions 1.20.3 or newer should be hidden
  hide-scores: true

  # Update interval for STATIC mode
  # In ticks (20 ticks = 1 second)
  update-interval-ticks: 20

  # Time to keep Scoreboard visible in ON_PROGRESS_CHANGE mode
  # In ticks (20 ticks = 1 second)
  hide-delay-ticks: 60
  
  # Scoreboard title
  title: "&6&lQUESTBORN"
  
  # Scoreboard lines
  # Supports placeholders: {quest_name}, {progress}, {target}, {stage}, {total_stages}, {progressbar}
  lines:
    - "&7&m------------------"
    - "&fQuest:"
    - "{quest_name}"
    - ""
    - "&fStage:"
    - "&e{stage}/{total_stages}"
    - ""
    - "{objective_details}"
    - ""
    - "&fProgress:"
    - "{progressbar} &f{progress}&7/&f{target}"
    - "&7&m------------------"

# Action Bar Settings
actionbar:
  enabled: true

  # Display modes:
  # ON_PROGRESS_CHANGE  - Show only when quest progress changes
  # STATIC              - Display continuously during active quest
  mode: "STATIC"

  # Update interval for STATIC mode
  # In ticks (20 ticks = 1 second)
  update-interval-ticks: 20

  # Formats
  formats:
    stage: "{quest_name}&7: &f{progress}&7/&f{target} &7| &fStage: {stage}/{total_stages} {progressbar}"
    default: "{quest_name}&7: &f{progress}&7/&f{target} {progressbar}"
    materials: "{quest_name}&7: &fDeliver items &7| &fStage: {stage}/{total_stages}"
    legacy-materials: "{quest_name}&7: &fDeliver items"

  # Disable action bar for quest types with frequent updates
  disabled-for-types:
    - ELYTRA_FLY


# ------------------------------
#   VISUALS - GUI & CHAT
# ------------------------------

gui:
  # Quest details display formatting
  details:
    lore-format:
      blocks: "<#a8ff80> ▪ {value}"                 # {value} = localized block name
      entities: "<#8280ff> ▪ {value}"               # {raw} = EntityType, {value} = localized name
      items: "<#b3ff66> ▪ {value}"                  # {value} = localized item name
      location: "<#ffa666> ➤ <#ffb580>{value}"      # {value} = X:150 Y:70 Z:-20
      fluids: "<#55aaff> ▪ {value}"                 # Fluid/mob related objectives
      cause: "<#ff7777> ▪ {value}"                  # Teleport/damage cause (objective dependent)
      time: "<#cc66ff> ▪ {value}"                   # Time-based objectives (e.g., PLAY_TIME, HOLD_ITEM)
      default: "<#44ff44> ▪ {value}"                # Fallback formatting

  # Quest details progress bar
  progress-bar:
    enabled: true

chat:
  # Show detailed info (objectives, clickable link) in activation/stage messages
  show-details: true


# ------------------------------
#   AUDIO
# ------------------------------

sounds:
  # GUI interaction sound
  gui-click:
    sound: "UI_BUTTON_CLICK"
    volume: 0.4
    pitch: 1.1


# ------------------------------
#   OPTIMIZATION
# ------------------------------

optimization:
  # Distance-based quest optimization
  distance-quests:
    enabled: true
    min-save-blocks: 1  # Save only whole blocks (no partial progress)

  # Movement handling optimization
  move-handling:
    cooldown-ms: 50      # Process movement every 50ms (20 times per second)
    min-move-distance: 0.2  # Minimum movement distance to process

  # Auto-save configuration
  auto-save:
    enabled: true
    interval-seconds: 600   # Auto-save interval in seconds

  # Debug logging
  debug:
    auto-save-log: false   # Enable/disable auto-save logging in console

Last updated