OathPotion Stacking
PluginLicenseRef-All-Rights-Reserved

OathPotion Stacking

Allows for easy Potion Stacking with limits to what can be stacked and what can't, easy use for any server.

3
Downloads
1
Followers
1 weeks ago
Updated
📦
1
Versions

📖About OathPotion Stacking

Allows for easy Potion Stacking with limits to what can be stacked and what can't, easy use for any server.

Config.yml

####################################################################
#  Oath-PotionStacking
# ------------------------------------------------------------------
#  Makes potions stack like normal items by stamping them with
#  Minecraft's NATIVE max_stack_size item component (1.20.5+).
#
#  Because this uses the real vanilla mechanic, stamped potions:
#    • merge automatically on pickup, shift-click, drag AND
#      double-click — exactly like cobblestone or arrows,
#    • NEVER "destack" when moved around the inventory.
#  No fake/lore stacking, so there are none of the classic dupe or
#  destack bugs that approach suffers from.
####################################################################

# Master switch. false = the plugin does nothing (existing stacks keep
# whatever size component they already have).
enabled: true

# Default maximum stack size for every stackable potion (1-99). Used for any
# potion type that does not have its own override in potion-types below.
default-stack-size: 16

# Which item materials are treated as "potions". By default ALL THREE potion
# item types are made stackable — drinkable, splash and lingering.
potion-materials:
  - POTION
  - SPLASH_POTION
  - LINGERING_POTION

# ------------------------------------------------------------------
#  Strict matching
#    true  (recommended): potions only ever stack when they are EXACTLY
#          identical (same type, effects, custom name, lore — the server's own
#          item comparison). This is precisely how normal vanilla items behave
#          and is completely safe — nothing is ever rewritten.
#    false: looser matching. Potions of the same type are normalised to a
#          canonical form (their custom name and lore are stripped) so cosmetic
#          differences no longer stop them from stacking together.
#          WARNING: this rewrites the name/lore of affected potions. Leave it
#          on 'true' unless you specifically want that behaviour.
# ------------------------------------------------------------------
strict-matching: true

# Never touch potions created by other plugins, so custom/special potions are
# left completely alone (detected by their persistent-data-container namespace).
ignore-custom-items: true
custom-item-namespaces:
  - mmoitems
  - itemsadder
  - nexo
  - oraxen

# A safety-net re-scan of every online player's inventory, in ticks (20 = 1s).
# Stamps potions that arrived from sources we don't hook directly (the creative
# menu, /give, other plugins, trades, ...). Set 0 to disable the periodic scan.
rescan-interval-ticks: 100

# Event hooks for INSTANT stacking. Leave all true for the best experience.
hooks:
  pickup: true            # stamp ground items just before they are picked up
  inventory-open: true    # stamp every potion when a player opens an inventory
  inventory-click: true   # stamp (next tick) after a click, for instant merges
  brew: true              # stamp brewing-stand output

# ==================================================================
#  Per-potion-type overrides
# ------------------------------------------------------------------
#  Keys are Bukkit PotionType names. Hold a potion and run
#  /oathpotionstacking info to see the exact key for it.
#  For each type you may set:
#     enabled: false    -> keep that potion type UNSTACKABLE
#     stack-size: <n>   -> use a different limit than default-stack-size
#  Potions that have only custom effects (no base type) use the key CUSTOM.
#
#  Every potion type stacks by default — only the entries below differ.
# ==================================================================
potion-types:
  # Instant Healing is kept unstackable by default — this is the example disable.
  # Every other potion type stacks. Add more entries to disable others the same
  # way (e.g. HARMING / STRONG_HARMING for instant damage on a PvP server).
  HEALING:
    enabled: false
  STRONG_HEALING:
    enabled: false

  # ---- More disable examples (uncomment to use) ----
  # HARMING:
  #   enabled: false
  # STRONG_HARMING:
  #   enabled: false

  # ---- Per-type custom stack limits (uncomment / edit) ----
  # REGENERATION:
  #   stack-size: 8
  # STRONG_REGENERATION:
  #   stack-size: 8
  # STRENGTH:
  #   stack-size: 16
  # WATER:
  #   stack-size: 64