Config

This page mirrors the default config.yml file from the plugin.

config.yml
# ============================================================================
# VContainer main configuration
# ----------------------------------------------------------------------------
# This file controls the player container behavior, menu defaults, storage block
# placement rules, hopper integration, holograms, and item stacking.
#
# Text values support legacy color codes with '&', hex colors like 6DAF4,
# Bukkit section colors like §x§5§4§D§A§F§4, and MiniMessage tags like
# text.
# Some messages and titles also support plugin-specific placeholders documented
# next to the setting.
# ============================================================================

# Player interaction rules inside containers.
container-options:
  # If true, players can put items from their own inventory into the container.
  allow-deposit: true

  # If true, players can take items out of the container.
  allow-withdraw: true

  # Toggle deposit and withdraw chat messages.
  messages:
    # Sends a message after manual item deposit.
    deposit: true
    # Sends a message after manual item withdrawal.
    withdraw: true
    # Sends a message after selling items from the container.
    sell: true

  # Shift-click bulk transfer settings.
  shift-transfer:
    # If true, shift-clicking a player inventory item deposits all matching
    # configured inventory contents.
    deposit-all: true

    # If true, shift-clicking a container item withdraws as many items as the
    # player's inventory can fit.
    withdraw-fit: true

    # If true, armor slots are included in shift deposit-all.
    include-armor: false

    # If true, the offhand slot is included in shift deposit-all.
    include-offhand: false

  # Item selling settings inside the container GUI.
  sell:
    # Available options: NONE, OWN, ECONOMYSHOPGUI, SHOPGUIPLUS
    provider: NONE

    # Currently supported currency providers: VAULT
    currency-provider: VAULT

    # Placeholder text used when a price is missing but the sell lore is still shown.
    unavailable-price-placeholder: "&cN/A"

  # Compact display merges equal stored items visually into one icon.
  # This does not remove the stored item data; it only changes how the GUI shows it.
  compact-display:
    # Enables or disables compact display mode.
    enabled: false

    # Total item amount lore line.
    size:
      # If true, the size line can be inserted into the compact lore format.
      enable: true
      # Lore text. Placeholder: {amount}
      line: "&7Item stack size: &b{amount}"

    # Left-click withdraw-all lore line.
    withdraw-all:
      # If true, the withdraw-all line can be inserted into the compact lore format.
      enable: true
      # Lore text shown for withdrawing every matching item.
      line: "&bLeft click &8» &7Withdraw all"
      # Supported values:
      # RIGHT CLICK, LEFT CLICK, MIDDLE CLICK,
      # SHIFT + RIGHT CLICK, SHIFT + LEFT CLICK,
      # ITEM DROP, HAND SWAP
      action: "LEFT CLICK"

    # Right-click withdraw-one lore line.
    withdraw:
      # If true, the withdraw-one line can be inserted into the compact lore format.
      enable: true
      # Lore text shown for withdrawing one item.
      line: "&bRight click &8» &7Withdraw 1"
      action: "RIGHT CLICK"

    # Middle-click withdraw-stack lore line.
    withdraw-stack:
      # If true, the withdraw-stack line can be inserted into the compact lore format.
      enable: true
      # Lore text shown for withdrawing one normal Minecraft stack.
      line: "&bMiddle click &8» &7Withdraw 1 stack"
      action: "MIDDLE CLICK"

    # Shift-left sell-all lore line.
    sell-all:
      # If true, the sell-all line can be inserted into the compact lore format.
      enable: true
      # Lore text shown for selling the full displayed amount.
      line: "&bShift + Left click &8» &7Sell all &8(&3%price-all%&8)"
      action: "SHIFT + LEFT CLICK"

    # Shift-right sell-one lore line.
    sell:
      # If true, the sell-one line can be inserted into the compact lore format.
      enable: true
      # Lore text shown for selling one item.
      line: "&bShift + Right click &8» &7Sell 1 &8(&3%price-one%&8)"
      action: "SHIFT + RIGHT CLICK"

    # Stack sell lore line.
    # Minecraft inventory clicks do not expose Shift + Middle reliably,
    # so VContainer uses Ctrl + Q / Control-Drop for the stack sell action.
    sell-stack:
      # If true, the sell-stack line can be inserted into the compact lore format.
      enable: true
      # Lore text shown for selling one normal Minecraft stack.
      line: "&bQ (Drop) &8» &7Sell 1 stack &8(&3%price-stack%&8)"
      action: "ITEM DROP"

    # Optional sell section inserted into the main compact lore format.
    # Placeholders:
    # - %sell-all-line%
    # - %sell-one-line%
    # - %sell-stack-line%
    sell-format:
      - ""
      - "%sell-all-line%"
      - "%sell-one-line%"
      - "%sell-stack-line%"
      - ""

    # If false, the sell-format is hidden for items that do not have a sell price.
    # If true, the sell-format still appears and uses the unavailable price placeholder.
    show-sell-format-without-price: false

    # Lore layout used for compact items.
    # Empty strings create blank lore lines.
    # Placeholders:
    # - %amount-line%
    # - %withdraw-all-line%
    # - %withdraw-one-line%
    # - %withdraw-stack-line%
    # - %sell-format%
    # Disabled sections are skipped automatically.
    format:
      - ""
      - "&7[&b✥&7]&m&l----|--------|----&7[&b✥&7]"
      - ""
      - "%amount-line%"
      - ""
      - "%withdraw-all-line%"
      - "%withdraw-stack-line%"
      - "%withdraw-one-line%"
      - "%sell-format%"
      - "&7[&b✥&7]&m&l----|--------|----&7[&b✥&7]"

# Global and personal storage block settings.
storage-block:
  # Maximum distance /vcontainer set can scan for the block the admin is looking at.
  set-target-distance: 6

  # Personal storage block placement rules.
  personal:
    # Maximum personal storage blocks one player can place in the same chunk.
    # Set to 0 to prevent placement unless the player has the bypass permission.
    chunk-limit: 4

  # Item given by /vcontainer give-block.
  item:
    # Bukkit material name, or HDB-12345 if HeadDatabase is installed.
    Material: SCULK_SHRIEKER
    # Display name of the personal storage block item.
    Name: "&bPersonal Storage Block"
    # Optional base64 texture. Only works when Material is PLAYER_HEAD.
    Texture: ""
    # Lore of the personal storage block item.
    Lore:
      - "&7Place this block to create"
      - "&7your own linked storage."
    # If true, the item cannot lose durability.
    Unbreakable: false
    # Set to -1 to disable custom model data.
    CustomModelData: -1
    # Optional 1.21.2+ tooltip style, format namespace:path.
    TooltipStyle: ""
    # Optional item-specific max stack size. Use -1 to disable.
    MaxStackSize: -1
    # If true, forces the enchantment glint without requiring enchantments.
    Glow: false
    # ItemFlag names to apply. Example: HIDE_ATTRIBUTES, HIDE_ENCHANTS.
    ItemFlags:
      - HIDE_ATTRIBUTES
      - HIDE_ENCHANTS
      - HIDE_UNBREAKABLE
    # Enchantments to apply. Format: enchantment:level or namespace:enchantment:level.
    Enchantments: []
    # Attribute modifiers to apply to the item.
    Attributes: []

  # Hopper integration for personal storage blocks.
  hoppers:
    # Master toggle for all hopper support.
    enabled: true
    # If true, hoppers can insert items into personal storage blocks.
    input: true
    # If true, hoppers can extract items from personal storage blocks.
    output: true
    # How often hopper transfers are processed, in server ticks.
    interval-ticks: 8
    # Maximum personal storage blocks scanned per hopper tick.
    # Higher values react faster, lower values reduce per-tick server cost.
    blocks-per-tick: 64

  # Text display hologram settings for storage blocks.
  hologram:
    # Enables or disables storage block holograms.
    enabled: true
    # Vertical offset above the storage block.
    y-offset: 1.35
    # Legacy alias kept for backward compatibility.
    height: 1.35
    # Maximum holograms refreshed per tick during reload/startup.
    refresh-batch-size: 50
    # TextDisplay background mode.
    # none    = no background
    # default = Minecraft default text background
    # custom  = use background-color below
    background-type: custom
    # Custom background color for background-type: custom.
    # Format: #AARRGGBB or #RRGGBB. If alpha is not provided, 80 is used.
    background-color: "#50000000"
    # If true, the text can be seen through blocks.
    see-through: false
    # If true, Minecraft renders text shadow.
    shadow: true
    # Hologram lines for /vcontainer set global storage blocks.
    lines:
      - "&bVContainer"
      - "&7Right click to open"
    # Hologram lines for player-placed personal storage blocks.
    # Placeholders: {owner}
    personal-lines:
      - "&bPersonal VContainer"
      - "&7Owner: &f{owner}"
      - "&7Right click to open"
      - "&8Hoppers can insert items"

# If true, equal items are merged together when they are added to the container.
# If false, items added at different times stay as separate entries.
stack: true

# Maximum stack size used while adding items when stack is enabled.
max-stack: 64

# Per-player storage quota and item blocking rules.
storage-limits:
  # Master toggle for all limits in this section.
  enabled: false
  # Maximum total item amount a player can store. Use -1 to disable.
  max-total-items: -1
  # Maximum unique item variants a player can store. Use -1 to disable.
  max-unique-items: -1
  # Bukkit material names that cannot be stored.
  blocked-materials: []
  # If true, any item with ItemMeta/NBT is blocked from storage.
  block-items-with-nbt: false
  # PersistentDataContainer keys that cannot be stored.
  # Format: namespace:key
  blocked-persistent-data-keys: []

# Player head rendering settings used by menus that show player skulls.
player-heads:
  # Optional base64 texture used when the server cannot provide a real player
  # texture, for example on offline/cracked setups or some skin plugin setups.
  # Leave empty to show Minecraft's default player head in that case.
  fallback-texture: ""

# Audit log for sensitive actions such as admin changes, item movement, and storage block changes.
audit:
  # If true, VContainer writes audit entries to the configured file.
  enabled: true
  # If true, hopper input/output transfers are included in the audit log.
  # This can produce a lot of entries on busy servers.
  hopper: false
  # Maximum number of queued audit lines written per async batch.
  batch-size: 256
  # Audit log rotation threshold in bytes. Set to 0 to disable rotation.
  max-file-size-bytes: 10485760
  # File path relative to plugins/VContainer.
  file: audit.log

# ============================================================================
# Update Checker
# ============================================================================
update-checker:
  enabled: true