Default messages.yml

Last updated Oct 28, 2026

Default messages.yml

Shipped defaults from SoapsTeleporter 1.0.7. After first run, this file lives in plugins/SoapsTeleporter/.

Updating the jar does not overwrite your live copy. Use this page to compare or reset.

See also: Config Reference · Configuration

# ############################################
# #                                          #
# #   Plugin: SoapsTeleporter                #
# #                                          #
# #   Created by AlternativeSoap             #
# #   Website: www.SoapsUniverse.com         #
# #   Support: https://discord.gg/mawAzwFq   #
# #                                          #
# ############################################

# ╔══════════════════════════════════════════════════════════════════════════════╗
# ║               SoapsTeleporter - Messages Configuration                       ║
# ╚══════════════════════════════════════════════════════════════════════════════╝
#
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ FORMATTING SUPPORT                                                          │
# └─────────────────────────────────────────────────────────────────────────────┘
# • MiniMessage Format (Adventure API)
#   - Colors: <color:red>, <#FF5733>, <#hex>
#   - Gradients: <gradient:red:blue:green>, <gradient:#FF5733:#33FF57>
#   - Formatting: <bold>, <italic>, <underlined>, <strikethrough>, <obfuscated>
#   - Hover: <hover:show_text:'Tooltip text here'>
#   - Decorations: <rainbow>, <reset>
#   - Legacy codes also supported: <red>, <yellow>, <green>, etc.
#
# • Multi-line Messages:
#   message-name:
#     - "First line of text"
#     - "Second line of text"
#     - "Third line of text"
#
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ COMMON PLACEHOLDERS                                                         │
# └─────────────────────────────────────────────────────────────────────────────┘
# Portal & Player:
#   {portal}, {portal1}, {portal2} - Portal names
#   {player} - Player name
#   {time} - Time in seconds (cooldowns, warmup)
#   {location} - Formatted location coordinates
#
# Economy & Items:
#   {cost} - Cost amount (money or items)
#   {amount} - Required/current item amount
#   {item}, {material} - Item/material display name
#   {has} - Amount player currently has
#
# Conditions:
#   {required}, {current} - Required vs current values (level, health, food, world, biome, gamemode, etc.)
#   {maximum} - Maximum allowed value
#
# Help & Commands:
#   {command} - Command name
#   {description} - Command description
#   {page}, {total} - Page numbers for pagination
#
# Errors & Validation:
#   {error} - Error message details
#
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ CLICK EVENTS PATTERN                                                        │
# └─────────────────────────────────────────────────────────────────────────────┘
# IMPORTANT: Interactive buttons do NOT use <click> tags in YAML
# • Display text is defined in messages.yml (visual appearance only)
# • Hover text uses separate hover keys (e.g., "hover-particle")
# • Click handlers are added programmatically in Java code
# • This prevents raw <click> tags from appearing in chat
#
# ╔══════════════════════════════════════════════════════════════════════════════╗
# ║                           MESSAGE DEFINITIONS                                ║
# ╚══════════════════════════════════════════════════════════════════════════════╝

# =====================================
# GLOBAL PREFIX
# =====================================
prefix: "<gradient:#6C63FF:#A855F7>SoapsTeleporter</gradient> <dark_gray>»</dark_gray> "

# =====================================
# GENERAL
# =====================================
general:
  no-permission: "<gradient:#ff4b1f:#ff0000>You don't have permission to do that.</gradient>"
  player-only: "<gradient:#ff4b1f:#ff0000>This command can only be used by players.</gradient>"
  config-reloaded: "<gradient:#00ff6a:#00d4ff>Configuration reloaded successfully.</gradient>"

# =====================================
# SELF-TEST
# =====================================
selftest:
  header: "<gradient:#6C63FF:#A855F7>━━━ SoapsTeleporter Self-Test ━━━</gradient>"
  footer: "<gradient:#6C63FF:#A855F7>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</gradient>"
  all-passed: "<gradient:#00ff6a:#00d4ff>All checks passed!</gradient>"
  some-failed: "<gradient:#ff4b1f:#ff0000>Some checks failed. See above for details.</gradient>"
  config:
    ok: "<gradient:#00ff6a:#00d4ff>✔ Config loaded successfully.</gradient>"
    invalid: "<gradient:#ff4b1f:#ff0000>✘ Config has invalid entries: <#FFD700>{details}</#FFD700></gradient>"
    error: "<gradient:#ff4b1f:#ff0000>✘ Config error: <#FFD700>{details}</#FFD700></gradient>"
  messages:
    ok: "<gradient:#00ff6a:#00d4ff>✔ Messages file loaded.</gradient>"
    invalid: "<gradient:#ff4b1f:#ff0000>✘ Messages file has issues: <#FFD700>{details}</#FFD700></gradient>"
    error: "<gradient:#ff4b1f:#ff0000>✘ Messages file error: <#FFD700>{details}</#FFD700></gradient>"
  portal:
    ok: "<gradient:#00ff6a:#00d4ff>✔ <#FFD700>{count}</#FFD700> portals loaded.</gradient>"
    error: "<gradient:#ff4b1f:#ff0000>✘ Portal loading error: <#FFD700>{details}</#FFD700></gradient>"
  particles:
    ok: "<gradient:#00ff6a:#00d4ff>✔ Particle system running.</gradient>"
    not-initialized: "<gradient:#ffa500:#ff6347>⚠ Particle system not initialized.</gradient>"
    error: "<gradient:#ff4b1f:#ff0000>✘ Particle system error: <#FFD700>{details}</#FFD700></gradient>"
  permissions:
    ok: "<gradient:#00ff6a:#00d4ff>✔ Permissions system working.</gradient>"
    invalid: "<gradient:#ffa500:#ff6347>⚠ Permissions issue: <#FFD700>{details}</#FFD700></gradient>"
    error: "<gradient:#ff4b1f:#ff0000>✘ Permissions error: <#FFD700>{details}</#FFD700></gradient>"
  files:
    ok: "<gradient:#00ff6a:#00d4ff>✔ All data files present.</gradient>"
    missing: "<gradient:#ff4b1f:#ff0000>✘ Missing files: <#FFD700>{details}</#FFD700></gradient>"
    error: "<gradient:#ff4b1f:#ff0000>✘ File system error: <#FFD700>{details}</#FFD700></gradient>"

# =====================================
# PORTAL EVENTS
# =====================================
portal-events:
  created: "<gradient:#00ff6a:#00d4ff>Portal </gradient><gradient:#f59e0b:#d97706>{portal}</gradient><gradient:#00ff6a:#00d4ff> created successfully!</gradient>"
  removed: "<gradient:#ff6a00:#ff1a1a>Portal </gradient><gradient:#f59e0b:#d97706>{portal}</gradient><gradient:#ff6a00:#ff1a1a> has been removed.</gradient>"
  teleporting: "<gradient:#00ffea:#00bfff>Teleporting via </gradient><gradient:#f59e0b:#d97706>{portal}</gradient><gradient:#00ffea:#00bfff>...</gradient>"
  teleportation-failed: "<gradient:#ff4b1f:#ff0000>Teleportation failed. The destination may be unsafe.</gradient>"
  exists: "<gradient:#ff4b1f:#ff0000>A portal with that name already exists.</gradient>"
  overlap: "<gradient:#ff4b1f:#ff1a1a>Cannot create portal </gradient><gradient:#f59e0b:#d97706>{portal}</gradient><gradient:#ff4b1f:#ff1a1a> - it would overlap with an existing portal region.</gradient>"
  disabled: "<gradient:#ff6a00:#ff1a1a>Portal </gradient><gradient:#f59e0b:#d97706>{portal}</gradient><gradient:#ff6a00:#ff1a1a> disabled.</gradient>"
  enabled: "<gradient:#00ff6a:#00d4ff>Portal </gradient><gradient:#f59e0b:#d97706>{portal}</gradient><gradient:#00ff6a:#00d4ff> enabled.</gradient>"
  linked: "<gradient:#00ff6a:#00d4ff>Portal </gradient><gradient:#f59e0b:#d97706>{portal1}</gradient><gradient:#00ff6a:#00d4ff> linked to </gradient><gradient:#f59e0b:#d97706>{portal2}</gradient><gradient:#00ff6a:#00d4ff>!</gradient>"
  portal-reset: "<gradient:#00ff6a:#00d4ff>Portal </gradient><gradient:#f59e0b:#d97706>{portal}</gradient><gradient:#00ff6a:#00d4ff> has been reset to defaults.</gradient>"
  condition-set: "<gradient:#00ff6a:#00d4ff>Condition <#FFD700>{condition}</#FFD700> set on <#FFD700>{portal}</#FFD700>.</gradient>"
  condition-added: "<gradient:#00ff6a:#00d4ff>Condition </gradient><gradient:#f59e0b:#d97706>{condition}</gradient><gradient:#00ff6a:#00d4ff> added to portal </gradient><gradient:#f59e0b:#d97706>{portal}</gradient><gradient:#00ff6a:#00d4ff>!</gradient>"
  condition-invalid: "<gradient:#ff4b1f:#ff0000>Invalid condition: <#FFD700>{condition}</#FFD700>.</gradient>"
  condition-removed: "<gradient:#00ff6a:#00d4ff>Condition <#FFD700>{condition}</#FFD700> removed from <#FFD700>{portal}</#FFD700>.</gradient>"
  condition-not-found: "<gradient:#ff4b1f:#ff0000>Condition <#FFD700>{condition}</#FFD700> not found on portal <#FFD700>{portal}</#FFD700>.</gradient>"
  condition-item-set: "<gradient:#00ff6a:#00d4ff>Item condition set: <#FFD700>{amount}x {material}</#FFD700> on <#FFD700>{portal}</#FFD700>.</gradient>"
  condition-item-added: "<gradient:#00ff6a:#00d4ff>Item condition added: <#FFD700>{amount}x {material}</#FFD700> on <#FFD700>{portal}</#FFD700>.</gradient>"
  condition-item-invalid-amount: "<gradient:#ff4b1f:#ff0000>Invalid item amount. Must be a positive number.</gradient>"
  condition-item-invalid-material: "<gradient:#ff4b1f:#ff0000>Invalid material type: <#FFD700>{material}</#FFD700>.</gradient>"
  no-conditions-to-remove: "<gradient:#ff4b1f:#ff0000>Portal <#FFD700>{portal}</#FFD700> has no conditions to remove.</gradient>"
  all-conditions-removed: "<gradient:#00ff6a:#00d4ff>All conditions removed from <#FFD700>{portal}</#FFD700>.</gradient>"
  # Portal creation success messages (multi-line)
  creation-success:
    - "<gradient:#00ff6a:#00d4ff>Portal Created Successfully!</gradient>"
    - "<gradient:#6b7280:#9ca3af>Portal: </gradient><gradient:#f59e0b:#d97706>{portal}</gradient>"
    - "<gradient:#6b7280:#9ca3af>{particle_type} particle: </gradient><gradient:#a855f7:#9333ea>{particle}</gradient><gradient:#6b7280:#9ca3af>{particle_default}</gradient>"
    - "<gradient:#6b7280:#9ca3af>Particle density: </gradient><gradient:#a855f7:#9333ea>{particle_count}</gradient>"
    - "<gradient:#6b7280:#9ca3af>{sound_type} sound: </gradient><gradient:#a855f7:#9333ea>{sound}</gradient><gradient:#6b7280:#9ca3af>{sound_default}</gradient>"
    - "<gradient:#87ceeb:#4682b4>{direction_type}: </gradient><gradient:#FFD700:#FFFF00>{direction_value}</gradient><gradient:#87ceeb:#4682b4>{direction_suffix}</gradient>"
    - "{direction_note}"
    - "<gradient:#87ceeb:#4682b4>Orientation: </gradient><gradient:#FFD700:#FFFF00>{orientation}</gradient>"
    - ""
    - "<gradient:#87ceeb:#4682b4>Portal ready! Use </gradient><gradient:#FFD700:#FFFF00>/st connect <target></gradient><gradient:#87ceeb:#4682b4> to link it.</gradient>"
    - "<gradient:#87ceeb:#4682b4>Use </gradient><gradient:#FFD700:#FFFF00>/st setparticle {portal} <particle></gradient><gradient:#87ceeb:#4682b4> to change particles anytime.</gradient>"
    - "<gradient:#87ceeb:#4682b4>Use </gradient><gradient:#FFD700:#FFFF00>/st setdirection {portal} <direction></gradient><gradient:#87ceeb:#4682b4> to change teleport direction.</gradient>"
    - "<gradient:#87ceeb:#4682b4>Default permission </gradient><gradient:#FFD700:#FFFF00>{permission}</gradient><gradient:#87ceeb:#4682b4> assigned. Configure in portals.yml if needed.</gradient>"

  # Particle effects
  particle-effects-initialized: "<gradient:#00ff6a:#00d4ff>Particle effects initialized for portal </gradient><gradient:#f59e0b:#d97706>{portal}</gradient><gradient:#00ff6a:#00d4ff>!</gradient>"

# =====================================
# ECONOMY
# =====================================
economy:
  disabled:
    - "<gradient:#ff4b1f:#ff0000>⚠ Economy features are not available!</gradient>"
    - ""
    - "<gradient:#87ceeb:#4682b4> Requirements for economy features:</gradient>"
    - "<gradient:#87ceeb:#4682b4>  1. Enable economy in config.yml (economy.enabled: true)</gradient>"
    - "<gradient:#87ceeb:#4682b4>  2. Install Vault plugin on the server</gradient>"
    - "<gradient:#87ceeb:#4682b4>  3. Install an economy plugin (EssentialsX, etc.)</gradient>"
    - ""
    - "<gradient:#87ceeb:#4682b4>Contact an administrator for assistance.</gradient>"
  insufficient-money: "<gradient:#ff4b1f:#ff0000>You need <#FFD700>{cost}</#FFD700> to use this portal. You have <#FFD700>{balance}</#FFD700>.</gradient>"
  insufficient-items: "<gradient:#ff4b1f:#ff0000>You need </gradient><gradient:#f59e0b:#d97706>{amount}x {item}</gradient><gradient:#ff4b1f:#ff0000> to use this portal.</gradient>"
  payment-taken: "<gradient:#00ff6a:#00d4ff>Paid </gradient><gradient:#f59e0b:#d97706>{cost}</gradient><gradient:#00ff6a:#00d4ff> to use portal </gradient><gradient:#f59e0b:#d97706>{portal}</gradient><gradient:#00ff6a:#00d4ff>.</gradient>"
  payment-failed: "<gradient:#ff4b1f:#ff0000>Payment failed. Teleport cancelled.</gradient>"
  payment-rolled-back: "<gradient:#ff4b1f:#ff0000>Payment failed after teleport — you were returned to your previous location.</gradient>"
  refunded: "<gradient:#87ceeb:#4682b4>Your portal payment was refunded.</gradient>"
  cost-set: "<gradient:#00ff6a:#00d4ff>Cost for </gradient><gradient:#f59e0b:#d97706>{portal}</gradient><gradient:#00ff6a:#00d4ff> set to </gradient><gradient:#f59e0b:#d97706>{cost}</gradient><gradient:#00ff6a:#00d4ff>.</gradient>"
  cost-set-custom-item: "<gradient:#00ff6a:#00d4ff>Cost for </gradient><gradient:#f59e0b:#d97706>{portal}</gradient><gradient:#00ff6a:#00d4ff> set to </gradient><gradient:#f59e0b:#d97706>{amount}x {item}</gradient><gradient:#00ff6a:#00d4ff>.</gradient>"
  cost-disabled: "<gradient:#00ff6a:#00d4ff>Cost removed from </gradient><gradient:#f59e0b:#d97706>{portal}</gradient><gradient:#00ff6a:#00d4ff>.</gradient>"
  hand-empty: "<gradient:#ef4444:#dc2626>✖ You must hold an item in your hand to set as the cost.</gradient>"

# =====================================
# ERRORS
# =====================================
errors:
  portal-not-found: "<gradient:#ff4b1f:#ff1a1a>Portal </gradient><gradient:#f59e0b:#d97706>{portal}</gradient><gradient:#ff4b1f:#ff1a1a> was not found.</gradient>"
  portal-cannot-use: "<gradient:#ff4b1f:#ff0000>You cannot use that portal.</gradient>"
  invalid-usage: "<gradient:#ff4b1f:#ff0000>Invalid usage. Use </gradient><gradient:#22c55e:#16a34a>/st help</gradient><gradient:#ff4b1f:#ff0000> for help.</gradient>"
  cross-world-positions: "<gradient:#ff4b1f:#ff0000>Both positions must be in the same world. Existing: <#FFD700>{existing_world}</#FFD700>, current: <#FFD700>{current_world}</#FFD700>.</gradient>"
  cross-world-disabled: "<gradient:#ff4b1f:#ff0000>Cross-world teleportation is disabled (<#FFD700>{from}</#FFD700> → <#FFD700>{to}</#FFD700>).</gradient>"
  removal-error: "<gradient:#ff4b1f:#ff0000>An error occurred while removing the portal.</gradient>"
  move-start-error: "<gradient:#ff4b1f:#ff0000>An error occurred. Move mode was not started.</gradient>"
  not-moving-portal: "<gradient:#ff4b1f:#ff0000>You are not currently moving a portal.</gradient>"
  must-set-positions: "<gradient:#ff4b1f:#ff0000>You must set both positions first with the wand.</gradient>"
  invalid-positions: "<gradient:#ff4b1f:#ff0000>Invalid positions. Ensure both positions are set correctly.</gradient>"
  portal-move-failed: "<gradient:#ff4b1f:#ff0000>Failed to move portal.</gradient>"
  move-confirm-error: "<gradient:#ff4b1f:#ff0000>An error occurred while confirming the move.</gradient>"
  move-cancel-error: "<gradient:#ff4b1f:#ff0000>An error occurred while cancelling the move.</gradient>"
  unknown-command: "<gradient:#ff4b1f:#ff0000>Unknown command. Use </gradient><gradient:#22c55e:#16a34a>/st help</gradient><gradient:#ff4b1f:#ff0000> for a list of commands.</gradient>"
  command-error: "<gradient:#ff4b1f:#ff0000>An error occurred while executing the command.</gradient>"
  portal-connection-failed: "<gradient:#ff4b1f:#ff0000>Failed to connect portals. Please try again.</gradient>"
  portal-creation-error: "<gradient:#ff4b1f:#ff0000>An error occurred while creating the portal. Please try again.</gradient>"
  portal-invalid-size: "<red>✖</red> <gray>Can't create</gray> <white>{portal}</white><dark_gray> — </dark_gray><gray>{error}</gray>"
  portal-limit-reached: "<gradient:#ff4b1f:#ff0000>Cannot create portal <#FFD700>{portal}</#FFD700> - {error}</gradient>"
  portal-different-worlds: "<gradient:#ff4b1f:#ff0000>Cannot create portal <#FFD700>{portal}</#FFD700> - both positions must be in the same world.</gradient>"
  portal-general-error: "<gradient:#ff4b1f:#ff0000>Failed to create portal <#FFD700>{portal}</#FFD700>: {error}</gradient>"
  no-positions: "<gradient:#ff4b1f:#ff0000>You must set both positions first. Use the wand (/st wand) or /st set p1 / /st set p2.</gradient>"
  no-custom-blocks: "<gradient:#ff4b1f:#ff0000>No blocks selected. Enter custom shape mode (shift+right-click) and select blocks first.</gradient>"
  not-enough-custom-blocks: "<gradient:#ff4b1f:#ff0000>You need at least 2 blocks for a custom shape portal.</gradient>"
  invalid-custom-blocks: "<gradient:#ff4b1f:#ff0000>Some selected blocks are no longer valid. Please re-select them.</gradient>"

# =====================================
# PERMISSIONS
# =====================================
permissions:
  portal-use: "<gradient:#ff4b1f:#ff0000>You don't have permission to use portal <#FFD700>{portal}</#FFD700>.</gradient>"

# =====================================
# ONE-WAY
# =====================================
oneway:
  blocked: "<gradient:#ff4b1f:#ff0000>This portal is one-way and cannot be used from this side.</gradient>"

# =====================================
# WAND (Portal Selection Tool)
# =====================================
wand:
  received: "<gradient:#a78bfa:#818cf8>Portal wand ready.</gradient> <gray>Right-click corners · Shift+right-click to switch mode</gray>"
  already-have: "<gray>You already have the portal wand.</gray>"
  both-positions-set: "<gradient:#34d399:#22d3ee>Corners locked.</gradient> <gray>Click an action below, or</gray> <aqua>/st add <name></aqua>"
  positions-ready: "<gray>Selection ready —</gray> <aqua>/st add <name></aqua>"
  shapepreview-hint: "<gray>Shape presets:</gray> <aqua>/st shapepreview</aqua> <dark_gray>rectangle · circle · oval · triangle · hexagon · random_rift</dark_gray>"
  shapepreview-controls: "<gray>Then:</gray> <aqua>rotate</aqua><dark_gray> · </dark_gray><aqua>mirror</aqua><dark_gray> · </dark_gray><aqua>undo</aqua><dark_gray> · </dark_gray><aqua>place</aqua>"
  display-name: "<gradient:#a78bfa:#c084fc><bold>Portal Wand</bold></gradient>"
  lore:
    - "<gray>Right-click a block to set a corner</gray>"
    - "<gray>Shift+right-click clears or toggles custom mode</gray>"
    - "<dark_purple>Empty selection + shift:</dark_purple> <gray>custom shape mode</gray>"
    - "<dark_purple>Custom mode:</dark_purple> <gray>click blocks to build a frame</gray>"
  selection-summary: "<gradient:#94a3b8:#cbd5e1>{size}</gradient> <dark_gray>·</dark_gray> <aqua>{air}</aqua> <gray>air blocks in selection</gray>"
  selection-cancelled: "<gray>Selection cleared.</gray>"
  nothing-to-cancel: "<dark_gray>Nothing to cancel.</dark_gray>"

# =====================================
# POSITIONS
# =====================================
positions:
  position-set-1: "<gradient:#38bdf8:#818cf8>Corner A</gradient> <gray>→</gray> <white>{x}</white><dark_gray>,</dark_gray> <white>{y}</white><dark_gray>,</dark_gray> <white>{z}</white>"
  position-set-2: "<gradient:#34d399:#2dd4bf>Corner B</gradient> <gray>→</gray> <white>{x}</white><dark_gray>,</dark_gray> <white>{y}</white><dark_gray>,</dark_gray> <white>{z}</white>"
  position-1-next: "<gray>Now set</gray> <aqua>corner B</aqua> <dark_gray>(wand click or /st set p2)</dark_gray>"
  positions-cleared: "<gray>Corners cleared.</gray>"
  auto-cleared: "<dark_gray>Previous corners expired.</dark_gray>"
  custom-shape-started: "<gradient:#c084fc:#a78bfa>Custom shape mode</gradient> <gray>— click blocks to build a frame. Shift+right-click to cancel.</gray>"
  custom-shape-cancelled: "<gray>Custom shape cancelled.</gray>"
  custom-block-added: "<light_purple>+</light_purple> <white>{x}</white><dark_gray>,</dark_gray><white>{y}</white><dark_gray>,</dark_gray><white>{z}</white>  <dark_gray>({count})</dark_gray>"
  custom-block-removed: "<red>−</red> <white>{x}</white><dark_gray>,</dark_gray><white>{y}</white><dark_gray>,</dark_gray><white>{z}</white>  <dark_gray>({count})</dark_gray>"
  custom-shape-ready: "<gradient:#34d399:#22d3ee>{count} frame blocks</gradient> <gray>— click an action, or</gray> <aqua>/st add <name></aqua>"
  custom-blocks-cleared: "<gray>Frame cleared.</gray> <dark_gray>Shift+right-click again to exit custom mode.</dark_gray>"
  custom-preview-legend: "<light_purple>Purple</light_purple> <gray>= frame outline</gray> <dark_gray>·</dark_gray> <gray>portal particles start after create</gray>"

# =====================================
# CONDITIONS
# =====================================
conditions:
  portal-not-connected: "<red>✖</red> <gray>Portal</gray> <white>{portal}</white> <gray>isn't linked.</gray> <dark_gray>Use</dark_gray> <aqua>/st connect <a> <b></aqua>"
  portal-disabled: "<red>✖</red> <gray>Portal</gray> <white>{portal}</white> <gray>is disabled.</gray>"
  cooldown-active: "<gradient:#ff4b1f:#ff0000>You must wait <#FFD700>{time}</#FFD700> before using this portal again.</gradient>"
  warmup-start: "<gradient:#ffa500:#ff6347>Teleporting in <#FFD700>{time}</#FFD700>... Don't move!</gradient>"
  warmup-active: "<gradient:#ffa500:#ff6347>You are already warming up for a teleport.</gradient>"
  warmup-continue: "<gradient:#87ceeb:#4682b4>Teleporting in <#FFD700>{time}</#FFD700>...</gradient>"
  warmup-cancelled: "<gradient:#ff4b1f:#ff0000>Teleportation cancelled — you moved!</gradient>"
  unsafe-destination: "<gradient:#ff4b1f:#ff0000>The destination is not safe. Teleportation cancelled.</gradient>"
  required-condition: "<gradient:#ff4b1f:#ff0000>You don't meet the requirements: <#FFD700>{condition}</#FFD700>.</gradient>"
  day-only: "<gradient:#ff4b1f:#ff0000>This portal can only be used during the day.</gradient>"
  night-only: "<gradient:#ff4b1f:#ff0000>This portal can only be used during the night.</gradient>"
  rain-only: "<gradient:#ff4b1f:#ff0000>This portal can only be used during rain.</gradient>"
  thunder-only: "<gradient:#ff4b1f:#ff0000>This portal can only be used during a thunderstorm.</gradient>"
  clear-weather-required: "<gradient:#ff4b1f:#ff0000>This portal can only be used during clear weather.</gradient>"
  level-too-low: "<gradient:#ff4b1f:#ff0000>You need at least level <#FFD700>{required}</#FFD700> to use this portal (current: <#FFD700>{current}</#FFD700>).</gradient>"
  level-too-high: "<gradient:#ff4b1f:#ff0000>Your level is too high — max <#FFD700>{maximum}</#FFD700> (current: <#FFD700>{current}</#FFD700>).</gradient>"
  sneak-required: "<gradient:#ff4b1f:#ff0000>You must be sneaking to use this portal.</gradient>"
  flying-required: "<gradient:#ff4b1f:#ff0000>You must be flying to use this portal.</gradient>"
  solo-required: "<gradient:#ff4b1f:#ff0000>This portal can only be used when you are the only player online.</gradient>"
  wrong-world: "<gradient:#ff4b1f:#ff0000>You must be in world <#FFD700>{required}</#FFD700> to use this portal.</gradient>"
  wrong-biome: "<gradient:#ff4b1f:#ff0000>You must be in the <#FFD700>{required}</#FFD700> biome.</gradient>"
  wrong-gamemode: "<gradient:#ff4b1f:#ff0000>You must be in <#FFD700>{required}</#FFD700> mode.</gradient>"
  not-enough-items: "<gradient:#ff4b1f:#ff0000>You need at least <#FFD700>{required}</#FFD700> items to use this portal (you have <#FFD700>{current}</#FFD700>).</gradient>"
  too-many-items: "<gradient:#ff4b1f:#ff0000>You have too many items — max <#FFD700>{maximum}</#FFD700> (you have <#FFD700>{current}</#FFD700>).</gradient>"
  item-required: "<gradient:#ff4b1f:#ff0000>You must have <#FFD700>{item}</#FFD700> to use this portal.</gradient>"
  money-required: "<gradient:#ff4b1f:#ff0000>You need <#FFD700>{amount}</#FFD700> to use this portal.</gradient>"
  missing-advancement: "<gradient:#ff4b1f:#ff0000>You need the advancement <#FFD700>{advancement}</#FFD700>.</gradient>"
  insufficient-playtime: "<gradient:#ff4b1f:#ff0000>You need at least <#FFD700>{required}</#FFD700> hours of playtime (you have <#FFD700>{current}</#FFD700>).</gradient>"
  insufficient-money: "<gradient:#ff4b1f:#ff0000>You need <#FFD700>{amount}</#FFD700> to meet the money condition.</gradient>"
  daily-limit-reached: "<gradient:#ff4b1f:#ff0000>You've reached your daily use limit for this portal.</gradient>"
  wrong-time: "<gradient:#ff4b1f:#ff0000>This portal is not available at this time of day.</gradient>"
  wrong-date: "<gradient:#ff4b1f:#ff0000>This portal is not available today.</gradient>"
  health-too-low: "<gradient:#ff4b1f:#ff0000>You need at least <#FFD700>{required}</#FFD700> health (current: <#FFD700>{current}</#FFD700>).</gradient>"
  health-too-high: "<gradient:#ff4b1f:#ff0000>Your health is too high — max <#FFD700>{maximum}</#FFD700> (current: <#FFD700>{current}</#FFD700>).</gradient>"
  food-too-low: "<gradient:#ff4b1f:#ff0000>You need at least <#FFD700>{required}</#FFD700> hunger (current: <#FFD700>{current}</#FFD700>).</gradient>"
  food-too-high: "<gradient:#ff4b1f:#ff0000>Your hunger is too high — max <#FFD700>{maximum}</#FFD700> (current: <#FFD700>{current}</#FFD700>).</gradient>"
  missing-armor: "<gradient:#ff4b1f:#ff0000>You must be wearing the required armor.</gradient>"
  missing-weapon: "<gradient:#ff4b1f:#ff0000>You must be holding a weapon.</gradient>"
  forbidden-item: "<gradient:#ff4b1f:#ff0000>You cannot have <#FFD700>{item}</#FFD700> in your inventory.</gradient>"
  not-enough-players-nearby: "<gradient:#ff4b1f:#ff0000>You need at least <#FFD700>{required}</#FFD700> other players nearby (found <#FFD700>{current}</#FFD700>).</gradient>"
  too-many-players-nearby: "<gradient:#ff4b1f:#ff0000>Too many players nearby! Maximum <#FFD700>{maximum}</#FFD700> allowed (found <#FFD700>{current}</#FFD700>).</gradient>"

# =====================================
# RTP
# =====================================
rtp:
  teleporting: "<gradient:#00ff6a:#00d4ff>Finding a random location...</gradient>"
  success: "<gradient:#00ff6a:#00d4ff>Teleported to <#FFD700>{x}</#FFD700>, <#FFD700>{y}</#FFD700>, <#FFD700>{z}</#FFD700> in <#FFD700>{world}</#FFD700>.</gradient>"
  error: "<gradient:#ff4b1f:#ff0000>Failed to find a safe random location. Try again.</gradient>"
  cooldown: "<gradient:#ff4b1f:#ff0000>You must wait <#FFD700>{time}</#FFD700> before using RTP again.</gradient>"
  world-not-found: "<gradient:#ff4b1f:#ff0000>RTP world <#FFD700>{world}</#FFD700> was not found.</gradient>"
  no-safe-location: "<gradient:#ff4b1f:#ff0000>Couldn't find a safe location after multiple attempts.</gradient>"
  preloading-chunks: "<gradient:#87ceeb:#4682b4>Preloading chunks at the destination...</gradient>"
  chunks-not-loaded: "<gradient:#ff4b1f:#ff0000>Chunks couldn't be preloaded in time.</gradient>"

# =====================================
# PROTECTION
# =====================================
protection:
  cannot-break: "<gradient:#ff4b1f:#ff0000>You cannot break blocks inside a portal.</gradient>"
  cannot-place: "<gradient:#ff4b1f:#ff0000>You cannot place blocks inside a portal.</gradient>"

# =====================================
# LINKING
# =====================================
linking:
  already-linked: "<gradient:#ff4b1f:#ff0000>Portal <#FFD700>{portal}</#FFD700> is already linked to <#FFD700>{target}</#FFD700>. Unlink it first.</gradient>"
  self-link-denied: "<gradient:#ff4b1f:#ff0000>You cannot link a portal to itself.</gradient>"
  connection-established: "<gradient:#ffa500:#ff6347>⚠ Portals <#FFD700>{portal1}</#FFD700> and <#FFD700>{portal2}</#FFD700> are already connected to each other!</gradient>"

# =====================================
# INTEGRATIONS
# =====================================
integrations:
  worldguard-denied: "<gradient:#ff4b1f:#ff0000>WorldGuard prevents you from using this portal.</gradient>"
  lands-denied: "<gradient:#ff4b1f:#ff0000>You are not trusted in this land area.</gradient>"


# =====================================
# COMMANDS SYSTEM
# =====================================
commands:
  usage: "<gradient:#ff4b1f:#ff0000>Usage: <#FFD700>/st {command} {parameters}</#FFD700></gradient>"
  invalid-type: "<gradient:#ff4b1f:#ff0000>Invalid {type}: <#FFD700>{value}</#FFD700></gradient>"
  validation-help: "<gradient:#87ceeb:#4682b4>Valid options: <#FFD700>{options}</#FFD700></gradient>"
  not-found-entity: "<gradient:#ff4b1f:#ff0000>{entity_type} <#FFD700>{name}</#FFD700> was not found.</gradient>"
  setting-updated: "<gradient:#00ff6a:#00d4ff>{setting} for </gradient><gradient:#f59e0b:#d97706>{portal}</gradient><gradient:#00ff6a:#00d4ff> set to </gradient><gradient:#f59e0b:#d97706>{value}</gradient><gradient:#00ff6a:#00d4ff>.</gradient>"
  state-changed: "<gradient:#00ff6a:#00d4ff>Portal </gradient><gradient:#f59e0b:#d97706>{portal}</gradient><gradient:#00ff6a:#00d4ff> has been </gradient><gradient:#f59e0b:#d97706>{action}</gradient><gradient:#00ff6a:#00d4ff>.</gradient>"
  rename-failed: "<gradient:#ff4b1f:#ff0000>Failed to rename portal.</gradient>"
  unlink-not-connected: "<gradient:#ff4b1f:#ff0000>Portal <#FFD700>{portal}</#FFD700> is not connected to anything.</gradient>"
  unlink-error: "<gradient:#ff4b1f:#ff0000>Failed to unlink portal.</gradient>"

  shapepreview:
    usage: "<gradient:#ff4b1f:#ff0000>Usage: <#FFD700>/st shapepreview <preset|rotate|mirror|undo|place [material]></#FFD700></gradient>"
    rotate-requires-pivot: "<gradient:#ff4b1f:#ff0000>Set a pivot with wand pos1 first.</gradient>"
    rotate-no-preview: "<gradient:#ff4b1f:#ff0000>No active preview shape to rotate.</gradient>"
    rotate-success: "<gradient:#00ff6a:#00d4ff>Rotated shape preview. Use <#FFD700>/st shapepreview place</#FFD700> when ready.</gradient>"
    mirror-requires-pivot: "<gradient:#ff4b1f:#ff0000>Set a pivot with wand pos1 first.</gradient>"
    mirror-no-preview: "<gradient:#ff4b1f:#ff0000>No active preview shape to mirror.</gradient>"
    mirror-success: "<gradient:#00ff6a:#00d4ff>Mirrored shape preview. Use <#FFD700>/st shapepreview place</#FFD700> when ready.</gradient>"
    undo-success: "<gray>Undid last preview action.</gray>"
    undo-world-success: "<gradient:#34d399:#22d3ee>Restored blocks</gradient> <gray>from last</gray> <aqua>place</aqua><gray>.</gray>"
    undo-empty: "<gray>Nothing to undo.</gray>"
    place-requires-positions: "<gradient:#ff4b1f:#ff0000>Set pos1 and pos2 with the wand before placing preview.</gradient>"
    invalid-material: "<gradient:#ff4b1f:#ff0000>Invalid frame material: <#FFD700>{material}</#FFD700>. Use a valid block type.</gradient>"
    place-no-preview: "<gradient:#ff4b1f:#ff0000>No active shape preview to place.</gradient>"
    place-success: "<gradient:#00ff6a:#00d4ff>Placed preview frame using <#FFD700>{material}</#FFD700>.</gradient>"
    generate-requires-positions: "<gradient:#ff4b1f:#ff0000>Set pos1 and pos2 with the wand before generating preview.</gradient>"
    generate-success: "<gradient:#00ff6a:#00d4ff>Generated preview shape: <#FFD700>{preset}</#FFD700>. Use <#FFD700>/st shapepreview place</#FFD700> to build it.</gradient>"
    unknown-preset: "<gradient:#ff4b1f:#ff0000>Unknown shape preset. Try: rectangle, square, circle, oval, triangle, hexagon, octagon, random_rift.</gradient>"
    preview-validation-failed: "<gradient:#ff4b1f:#ff0000>Preview validation failed: <#FFD700>{reason}</#FFD700></gradient>"

  setrouting:
    usage: "<gradient:#ff4b1f:#ff0000>Usage: <#FFD700>/st setrouting <portal> <fixed|random|weighted|permission></#FFD700></gradient>"
    success: "<gradient:#00ff6a:#00d4ff>Routing mode for <#FFD700>{portal}</#FFD700> set to <#FFD700>{mode}</#FFD700>.</gradient>"
    invalid-mode: "<gradient:#ff4b1f:#ff0000>Invalid mode. Use: <#FFD700>fixed, random, weighted, permission</#FFD700>.</gradient>"

  setdestinations:
    usage: "<gradient:#ff4b1f:#ff0000>Usage: <#FFD700>/st setdestinations <portal> <dest1,dest2,dest3|weight|permission></#FFD700></gradient>"
    success: "<gradient:#00ff6a:#00d4ff>Updated linked destinations for <#FFD700>{portal}</#FFD700>: <#FFD700>{count}</#FFD700> entries.</gradient>"

  manage-delete:
    invalid-request: "<gradient:#ff4b1f:#ff0000>Invalid deletion request.</gradient>"
    invalid-index: "<gradient:#ff4b1f:#ff0000>Invalid index provided.</gradient>"
    unknown-type: "<gradient:#ff4b1f:#ff0000>Unknown deletion type: <#FFD700>{type}</#FFD700>.</gradient>"
    invalid-command-index: "<gradient:#ff4b1f:#ff0000>Invalid command index.</gradient>"
    invalid-condition-index: "<gradient:#ff4b1f:#ff0000>Invalid condition index.</gradient>"
    returning: "<gradient:#6b7280:#9ca3af>Returning to management interface...</gradient>"

  manage-confirm-delete:
    invalid-request: "<gradient:#ff4b1f:#ff0000>Invalid deletion confirmation.</gradient>"
    invalid-index: "<gradient:#ff4b1f:#ff0000>Invalid index provided.</gradient>"
    unknown-type: "<gradient:#ff4b1f:#ff0000>Unknown deletion type: <#FFD700>{type}</#FFD700>.</gradient>"
    success: "<gradient:#00ff6a:#00d4ff>✓ Successfully deleted <#FFD700>{type}</#FFD700>: <#FFFFFF>{item}</#FFFFFF></gradient>"
    failed: "<gradient:#ff4b1f:#ff0000>Failed to delete item. Index may be invalid.</gradient>"

  # ── Hints & Suggestions ──
  hints:
    horizontal-direction-warning: "<gradient:#ffa500:#ff6347>Floor pad tip: stand on the selected area to teleport. Exit facing defaults to auto look-out.</gradient>"
    horizontal-direction-note: "<gradient:#87ceeb:#4682b4>Floor pads: step onto the pad. Use /st setdirection to override exit facing.</gradient>"
    popular-particles: "<gradient:#ff8c00:#ff4500>Popular particles: <#FFD700>PORTAL</#FFD700>, <#FFD700>FLAME</#FFD700>, <#FFD700>END_ROD</#FFD700>, <#FFD700>ENCHANT</#FFD700>, <#FFD700>HEART</#FFD700>, <#FFD700>HAPPY_VILLAGER</#FFD700></gradient>"
    other-particles: "<gradient:#ff8c00:#ff4500>Other options: <#FFD700>SMOKE</#FFD700>, <#FFD700>CRIT</#FFD700>, <#FFD700>FIREWORK</#FFD700>, <#FFD700>DRAGON_BREATH</#FFD700>, <#FFD700>SOUL_FIRE_FLAME</#FFD700></gradient>"
    particle-tab-hint: "<gradient:#87ceeb:#4682b4>Use tab completion to see all available particles!</gradient>"
    valid-sounds: "<gradient:#ff8c00:#ff4500>Valid sounds include: <#FFD700>ENTITY_ENDERMAN_TELEPORT</#FFD700>, <#FFD700>BLOCK_PORTAL_AMBIENT</#FFD700>, <#FFD700>ENTITY_PLAYER_LEVELUP</#FFD700></gradient>"
    valid-directions: "<gradient:#ff8c00:#ff4500>Valid directions: <#FFD700>NORTH</#FFD700>, <#FFD700>SOUTH</#FFD700>, <#FFD700>EAST</#FFD700>, <#FFD700>WEST</#FFD700>, <#FFD700>UP</#FFD700>, <#FFD700>DOWN</#FFD700></gradient>"

  # ── Usage Parameters (per command) ──
  usage-parameters:
    add: "<name>"
    remove: "<portal>"
    connect: "<source> <target>"
    list: ""
    info: "<portal> [page]"
    tp: "<portal>"
    wand: ""
    reload: ""
    setdirection: "<portal> <direction>"
    setparticle: "<portal> <particle>"
    setcount: "<portal> <count>"
    setspread: "<portal> <tight> <wide>"
    setsound: "<portal> <sound> [volume] [pitch]"
    setinterval: "<portal> <ticks>"
    settype: "<portal> <standard|rtp> [world] [min] [max]"
    setcost: "<portal> <amount | hand [amount]>"
    setcooldown: "<portal> <seconds>"
    setwarmup: "<portal> <seconds>"
    setcommand: "<portal> <enter|exit> <command>"
    setcondition: "<portal> <condition> [value]"
    removecondition: "<portal> <condition|all>"
    addcondition: "<portal> <condition> [value]"
    setcolor: "<portal> <r> <g> <b>"
    setdisablesafecheck: "<portal>"
    reset: "<portal>"
    rename: "<portal> <newname>"
    move: "<portal>"
    debug: ""
    enable: "<portal>"
    disable: "<portal>"
    unlink: "<portal>"
    duplicate: "<source> <newname>"
    manage: "[portal]"
    backup: ""
    set: "<setting> <portal> <value>"
    help: "[command]"
    teleport: "<portal>"

  # ── Validation Parameters ──
  validation-parameters:
    particle: "Particle"
    sound: "Sound"
    direction: "Direction"
    material: "Material"
    world: "World"
    biome: "Biome"
    gamemode: "Gamemode"
    condition: "Condition"
    portaltype: "Portal Type"

  # ── Validation Options ──
  validation-options:
    particle: "FLAME, SOUL_FIRE_FLAME, PORTAL, ENCHANT, END_ROD, DUST, etc."
    sound: "ENTITY_ENDERMAN_TELEPORT, BLOCK_PORTAL_TRIGGER, etc."
    direction: "NORTH, SOUTH, EAST, WEST, UP, DOWN, PLAYER, NONE"
    portaltype: "standard, rtp"

  # ── State Actions ──
  state-actions:
    enabled: "enabled"
    disabled: "disabled"
    connected: "connected"
    unlinked: "unlinked"
    reset: "reset"

  # ── Set Cost ──
  setcost-examples:
    - "<gradient:#87ceeb:#4682b4>Examples:</gradient>"
    - "<gradient:#87ceeb:#4682b4>  • <#FFD700>/st setcost spawn 100</#FFD700> - Charge $100 money</gradient>"
    - "<gradient:#87ceeb:#4682b4>  • <#FFD700>/st setcost nether 5 DIAMOND</#FFD700> - Require 5 diamonds</gradient>"
    - "<gradient:#87ceeb:#4682b4>  • <#FFD700>/st setcost pvp 30 EXP</#FFD700> - Require 30 experience points</gradient>"
    - "<gradient:#87ceeb:#4682b4>  • <#FFD700>/st setcost end 0</#FFD700> - Disable cost (free portal)</gradient>"

  # ── Set Interval ──
  setinterval-usage: "<gradient:#ff4b1f:#ff0000>Usage: </gradient><gradient:#22c55e:#16a34a>/st setinterval <portal> <ticks></gradient>"
  setinterval-warning: "<gradient:#ffa500:#ff6347>Warning: Very low intervals may impact performance.</gradient>"

  # ── Set Particle ──
  setparticle-example: "<gradient:#87ceeb:#4682b4>Example: </gradient><gradient:#22c55e:#16a34a>/st setparticle myportal FLAME</gradient>"
  setparticle-default-tip: "<gradient:#87ceeb:#4682b4>Tip: Use <#FFD700>DEFAULT</#FFD700> to reset to the default particle.</gradient>"
  setparticle-error: "<gradient:#ff4b1f:#ff0000>Failed to set particle effect.</gradient>"

  # ── Set Sound ──
  setsound-example:
    - "<gradient:#87ceeb:#4682b4>Examples:</gradient>"
    - "<gradient:#87ceeb:#4682b4>  /st setsound portal1 ENTITY_ENDERMAN_TELEPORT</gradient>"
    - "<gradient:#87ceeb:#4682b4>  /st setsound portal1 ENTITY_ENDERMAN_TELEPORT 1.2 0.5</gradient>"
  setsound-default-tip: "<gradient:#87ceeb:#4682b4>Tip: Use <#FFD700>DEFAULT</#FFD700> to reset to default, or <#FFD700>NONE</#FFD700> to disable sounds.</gradient>"
  setsound-preview: "<gradient:#00ff6a:#00d4ff>Playing sound preview...</gradient>"
  setsound-failed: "<gradient:#ff4b1f:#ff0000>Failed to set sound.</gradient>"

  # ── Set Spread ──
  setspread-usage: "<gradient:#ff4b1f:#ff0000>Usage: </gradient><gradient:#22c55e:#16a34a>/st setspread <portal> <tight> <wide></gradient>"
  setspread-tight-greater-than-wide: "<gradient:#ff4b1f:#ff0000>Tight spread must be less than or equal to wide spread.</gradient>"

  # ── Set Warmup ──
  setwarmup-usage: "<gradient:#ff4b1f:#ff0000>Usage: </gradient><gradient:#22c55e:#16a34a>/st setwarmup <portal> <seconds></gradient>"
  setwarmup-example: "<gradient:#87ceeb:#4682b4>Example: </gradient><gradient:#22c55e:#16a34a>/st setwarmup myportal 5</gradient>"

  # ── Set Cooldown ──
  setcooldown-usage: "<gradient:#ff4b1f:#ff0000>Usage: </gradient><gradient:#22c55e:#16a34a>/st setcooldown <portal> <seconds></gradient>"
  setcooldown-example: "<gradient:#87ceeb:#4682b4>Example: </gradient><gradient:#22c55e:#16a34a>/st setcooldown myportal 60</gradient>"

  # ── Set Direction ──
  setdirection-description: "<gradient:#87ceeb:#4682b4>Set which direction a player faces after teleporting.</gradient>"
  setdirection-example: "<gradient:#87ceeb:#4682b4>Example: </gradient><gradient:#22c55e:#16a34a>/st setdirection myportal NORTH</gradient>"
  setdirection-valid-directions: "<gradient:#87ceeb:#4682b4>Valid: <#FFD700>NORTH, SOUTH, EAST, WEST, UP, DOWN, DEFAULT</#FFD700> (aliases: AUTO, PLAYER, NONE → DEFAULT)</gradient>"
  setdirection-horizontal-warning: "<gradient:#ffa500:#ff6347>Note: Floor pads use auto look-out with level pitch; N/S/E/W still override yaw.</gradient>"
  setdirection-horizontal-explanation: "<gradient:#87ceeb:#4682b4>DEFAULT looks out of the portal. UP/DOWN change pitch. Relative approach uses portals.teleportation.preserve-orientation.</gradient>"
  setdirection-success-header: "<gradient:#00ff6a:#00d4ff>✓ Direction updated!</gradient>"
  setdirection-success-portal: "<gradient:#87ceeb:#4682b4>Portal: <#FFD700>{portal}</#FFD700></gradient>"
  setdirection-success-direction: "<gradient:#87ceeb:#4682b4>Direction: <#FFD700>{direction}</#FFD700></gradient>"
  setdirection-success-info: "<gradient:#87ceeb:#4682b4>Players will now face <#FFD700>{direction}</#FFD700> after teleporting.</gradient>"
  setdirection-tip: "<gradient:#87ceeb:#4682b4>Use <#FFD700>DEFAULT</#FFD700> for auto look-out of the portal.</gradient>"

  # ── Set Command ──
  setcommand-usage: "<gradient:#ff4b1f:#ff0000>Usage: </gradient><gradient:#22c55e:#16a34a>/st setcommand <portal> <enter|exit> <command></gradient>"
  setcommand-example: "<gradient:#87ceeb:#4682b4>Example: </gradient><gradient:#22c55e:#16a34a>/st setcommand myportal enter say Welcome!</gradient>"
  setcommand-invalid-trigger: "<gradient:#ff4b1f:#ff0000>Invalid trigger. Use <#FFD700>enter</#FFD700> or <#FFD700>exit</#FFD700>.</gradient>"

  # ── Set Condition ──
  setcondition-usage: "<gradient:#ff4b1f:#ff0000>Usage: </gradient><gradient:#22c55e:#16a34a>/st setcondition <portal> <condition> [value]</gradient>"
  setcondition-available: "<gradient:#87ceeb:#4682b4>Available: <#FFD700>day, night, rain, thunder, clear, level, sneak, fly, world, biome, gamemode, item, money, advancement, playtime</#FFD700></gradient>"
  setcondition-item-usage: "<gradient:#87ceeb:#4682b4>Item usage: </gradient><gradient:#22c55e:#16a34a>/st setcondition <portal> item <material> [amount]</gradient>"

  # ── Add Condition ──
  addcondition-usage: "<gradient:#ff4b1f:#ff0000>Usage: </gradient><gradient:#22c55e:#16a34a>/st addcondition <portal> <condition> [value]</gradient>"
  addcondition-available: "<gradient:#87ceeb:#4682b4>Available: <#FFD700>day, night, rain, thunder, clear, level, sneak, fly, world, biome, gamemode, item, money, advancement, playtime</#FFD700></gradient>"
  addcondition-item-usage: "<gradient:#87ceeb:#4682b4>Item usage: </gradient><gradient:#22c55e:#16a34a>/st addcondition <portal> item <material> [amount]</gradient>"

  # ── Remove Condition ──
  removecondition-usage: "<gradient:#ff4b1f:#ff0000>Usage: </gradient><gradient:#22c55e:#16a34a>/st removecondition <portal> <condition|all></gradient>"

  # ── Set Type ──
  settype-example: "<gradient:#87ceeb:#4682b4>Example: </gradient><gradient:#22c55e:#16a34a>/st settype myportal rtp world 100 5000</gradient>"
  settype-defaults: "<gradient:#87ceeb:#4682b4>Defaults: world=current, min=100, max=5000</gradient>"
  settype-invalid-type: "<gradient:#ff4b1f:#ff0000>Invalid portal type. Use <#FFD700>standard</#FFD700> or <#FFD700>rtp</#FFD700>.</gradient>"
  settype-rtp-connected-error: "<gradient:#ff4b1f:#ff0000>Disconnect the portal first before changing to RTP type.</gradient>"
  settype-world-not-found: "<gradient:#ff4b1f:#ff0000>World <#FFD700>{world}</#FFD700> was not found.</gradient>"
  settype-available-worlds: "<gradient:#87ceeb:#4682b4>Available worlds: <#FFD700>{worlds}</#FFD700></gradient>"
  settype-invalid-range: "<gradient:#ff4b1f:#ff0000>Invalid range — min must be less than max.</gradient>"
  settype-range-limits: "<gradient:#ff4b1f:#ff0000>Range must be between 50 and 100000.</gradient>"
  settype-rtp-details: "<gradient:#00ff6a:#00d4ff>RTP portal configured: world=<#FFD700>{world}</#FFD700>, range=<#FFD700>{min}</#FFD700>-<#FFD700>{max}</#FFD700></gradient>"
  settype-rtp-used-defaults: "<gradient:#87ceeb:#4682b4>Note: Using default values for unspecified parameters.</gradient>"

  # ── Set Color ──
  setcolor-usage: "<gradient:#ff4b1f:#ff0000>Usage: </gradient><gradient:#22c55e:#16a34a>/st setcolor <portal> <r> <g> <b></gradient><gradient:#87ceeb:#4682b4> (0-255)</gradient>"
  setcolor-not-dust: "<gradient:#ff4b1f:#ff0000>Color can only be set on DUST particles.</gradient>"
  setcolor-invalid: "<gradient:#ff4b1f:#ff0000>Invalid color values. Use numbers between 0 and 255.</gradient>"

  # ── Set Count ──
  setcount-usage: "<gradient:#ff4b1f:#ff0000>Usage: </gradient><gradient:#22c55e:#16a34a>/st setcount <portal> <count></gradient>"
  setcount-distribution-info: "<gradient:#87ceeb:#4682b4>Particles are distributed evenly across the portal surface.</gradient>"

  # ── Set Disable Safe Check ──
  setdisablesafecheck:
    usage: "<gradient:#ff4b1f:#ff0000>Usage: </gradient><gradient:#22c55e:#16a34a>/st setdisablesafecheck <portal></gradient>"
    invalid-value: "<gradient:#ff4b1f:#ff0000>Invalid value '<#FFD700>{value}</#FFD700>'. Use 'true' or 'false'.</gradient>"
    success: "<gradient:#00ff6a:#00d4ff>Safety checks for portal '<#FFD700>{portal}</#FFD700>' have been <#FFD700>{value}</#FFD700>.</gradient>"

  # ── Reset ──
  usage-reset: "<gradient:#ff4b1f:#ff0000>Usage: </gradient><gradient:#22c55e:#16a34a>/st reset <portal></gradient>"

  # ── Move ──
  move-mode-activated: "<gradient:#ffa500:#ff6347>Move mode activated for portal <#FFD700>{portal}</#FFD700>.</gradient>"
  move-instructions: "<gradient:#87ceeb:#4682b4>Set two new positions with the wand, then the portal will move.</gradient>"
  move-cancel-hint: "<gradient:#87ceeb:#4682b4>Use </gradient><gradient:#22c55e:#16a34a>/st move cancel</gradient><gradient:#87ceeb:#4682b4> to cancel.</gradient>"
  portal-moved: "<gradient:#00ff6a:#00d4ff>Portal <#FFD700>{portal}</#FFD700> has been moved to the new location!</gradient>"
  move-cancelled: "<gradient:#ffa500:#ff6347>Move mode cancelled.</gradient>"

  # ── Add Usage Hints ──
  add-usage-header: "<gradient:#87ceeb:#4682b4>━━━ Creating a Portal ━━━</gradient>"
  add-usage-examples: "<gradient:#87ceeb:#4682b4>1. Get the wand: </gradient><gradient:#22c55e:#16a34a>/st wand</gradient>"
  add-usage-tip: "<gradient:#87ceeb:#4682b4>2. Select two corners, then: </gradient><gradient:#22c55e:#16a34a>/st add <name></gradient>"
  add-usage-directions: "<gradient:#87ceeb:#4682b4>3. Connect portals: </gradient><gradient:#22c55e:#16a34a>/st connect <source> <target></gradient>"

  # ── Backup ──
  backup-success: "<gradient:#00ff6a:#00d4ff>Portal backup created successfully!</gradient>"
  backup-failed: "<gradient:#ff4b1f:#ff0000>Failed to create backup. Check console for details.</gradient>"

  # ── Reload ──
  reload:
    start: "<gradient:#00d4ff:#00ff6a>Reloading SoapsTeleporter...</gradient>"
    error-summary: "<gradient:#ff4b1f:#ff0000>Error during reload: {count} errors occurred</gradient>"
    error-check-console: "<gradient:#ff4b1f:#ff0000>Check the console for detailed error information.</gradient>"
    step:
      config: "<gradient:#00ff6a:#00d4ff>✓ Config files regenerated if missing</gradient>"
      messages: "<gradient:#00ff6a:#00d4ff>✓ Messages system reloaded</gradient>"
      portals: "<gradient:#00ff6a:#00d4ff>✓ Portal data refreshed</gradient>"
      economy: "<gradient:#00ff6a:#00d4ff>✓ Economy system reinitialized</gradient>"
      teleport: "<gradient:#d946ef:#9333ea>✓ Teleport manager reinitialized</gradient>"
      particles: "<gradient:#00ff6a:#00d4ff>✓ Particle system restarted</gradient>"
      integrations: "<gradient:#a855f7:#9333ea>✓ Integration managers reinitialized</gradient>"
      cache: "<gradient:#f59e0b:#d97706>✓ Cached data invalidated and refreshed</gradient>"
    selftest: "<gradient:#00d4ff:#00ff6a>Running self-test...</gradient>"

# =====================================
# GUI CHAT INPUT
# =====================================
gui:
  chat-input:
    cancelled: "<gradient:#6b7280:#9ca3af>Input cancelled.</gradient>"
    expected-pitch-volume: "<gradient:#ff4b1f:#ff0000>Expected: <#FFD700><pitch> <volume></#FFD700> (e.g., <#FFD700>1.0 1.0</#FFD700>).</gradient>"
    unknown-type: "<gradient:#ff4b1f:#ff0000>Unknown input type <#FFD700>{type}</#FFD700>. Action cancelled.</gradient>"
    processing-error: "<gradient:#ff4b1f:#ff0000>An error occurred while processing your input.</gradient>"

# =====================================
# PORTAL LIST
# =====================================
portal-list:
  header: "<gradient:#6C63FF:#A855F7>━━━ Portals ━━━</gradient>"
  footer: "<gradient:#6C63FF:#A855F7>━━━ Total: {total} | Connected: {connected} ━━━</gradient>"
  no-portals: "<gradient:#ffa500:#ff6347>No portals have been created yet.</gradient>"
  entry-enabled: "<gradient:#00ff6a:#00d4ff>● {name}</gradient> <gradient:#6b7280:#9ca3af>({world})</gradient>"
  entry-disabled: "<gradient:#ff4b1f:#ff0000>● {name}</gradient> <gradient:#6b7280:#9ca3af>({world})</gradient>"
  entry-connected: " <gradient:#87ceeb:#4682b4>→ <#FFD700>{target}</#FFD700></gradient>"
  entry-not-connected: " <gradient:#87ceeb:#4682b4>(not connected)</gradient>"
  entry-rtp: " <gradient:#00ffea:#00bfff>[RTP]</gradient> <gradient:#6b7280:#9ca3af>{world} ({range}m)</gradient>"
  entry-disabled-badge: " <gradient:#ff4b1f:#ff0000>[Disabled]</gradient>"
  entry-warmup: " <gradient:#87ceeb:#4682b4>⏱ {warmup}s</gradient>"
  entry-cooldown: " <gradient:#87ceeb:#4682b4>⏳ {cooldown}s</gradient>"
  entry-cost: " <gradient:#f59e0b:#d97706>💰 {cost}</gradient>"
  entry-error: "<gradient:#ff4b1f:#ff0000>● {name} — Error: {error}</gradient>"

# =====================================
# PORTAL INFO
# =====================================
portal-info:
  header: "<gradient:#87ceeb:#4682b4>=== Portal Info:</gradient> <#FFD700>{portal}</#FFD700> <gradient:#87ceeb:#4682b4>===</gradient>"
  header-paginated: "<gradient:#87ceeb:#4682b4>=== Portal Info:</gradient> <#FFD700>{portal}</#FFD700> <gradient:#87ceeb:#4682b4>(Page {page}/{total}) ===</gradient>"
  footer-next: "<click:run_command:'/st info {portal} {page}'><gradient:#22c55e:#16a34a>[Next »]</gradient></click>"
  footer-prev: "<click:run_command:'/st info {portal} {page}'><gradient:#22c55e:#16a34a>[« Prev]</gradient></click>"
  world: "<gradient:#87ceeb:#4682b4>World:</gradient> <#FFD700>{world}</#FFD700>"
  status-enabled: "<gradient:#00ff6a:#00d4ff>Enabled</gradient>"
  status-disabled: "<gradient:#ff4b1f:#ff0000>Disabled</gradient>"
  connected-to: "<gradient:#87ceeb:#4682b4>Connected to:</gradient> <#FFD700>{target}</#FFD700>"
  target-status: "<gradient:#87ceeb:#4682b4>Target status:</gradient> {status}"
  target-missing: "<gradient:#ff4b1f:#ff0000>⚠ Target portal missing!</gradient>"
  type-rtp: "<gradient:#00ffea:#00bfff>Random Teleport (RTP)</gradient>"
  rtp-world: "<gradient:#87ceeb:#4682b4>RTP World:</gradient> <#FFD700>{world}</#FFD700>"
  rtp-range: "<gradient:#87ceeb:#4682b4>RTP Range:</gradient> <#FFD700>{min}</#FFD700> — <#FFD700>{max}</#FFD700>"
  not-connected: "<gradient:#87ceeb:#4682b4>Not connected</gradient>"
  size: "<gradient:#87ceeb:#4682b4>Size:</gradient> <#FFD700>{x}</#FFD700> × <#FFD700>{y}</#FFD700> × <#FFD700>{z}</#FFD700>"
  invalid-page: "<gradient:#ff4b1f:#ff0000>Invalid page number.</gradient>"
  invalid-page-max: "<gradient:#ff4b1f:#ff0000>Max page is <#FFD700>{max}</#FFD700>.</gradient>"
  error: "<gradient:#ff4b1f:#ff0000>Error loading portal info.</gradient>"
  position-1: "<gradient:#87ceeb:#4682b4>Position 1:</gradient> <#FFD700>{location}</#FFD700>"
  position-2: "<gradient:#87ceeb:#4682b4>Position 2:</gradient> <#FFD700>{location}</#FFD700>"
  warmup-time-active: "<gradient:#87ceeb:#4682b4>Warmup time:</gradient> <#FFD700>{time}s</#FFD700>"
  warmup-time-disabled: "<gradient:#87ceeb:#4682b4>Warmup time:</gradient> <gradient:#6b7280:#9ca3af>Disabled</gradient>"
  cooldown-time-active: "<gradient:#87ceeb:#4682b4>Cooldown time:</gradient> <#FFD700>{time}s</#FFD700>"
  cooldown-time-disabled: "<gradient:#87ceeb:#4682b4>Cooldown time:</gradient> <gradient:#6b7280:#9ca3af>Disabled</gradient>"
  safety-check-enabled: "<gradient:#87ceeb:#4682b4>Safety checks:</gradient> <gradient:#00ff6a:#00d4ff>Enabled</gradient>"
  safety-check-disabled: "<gradient:#87ceeb:#4682b4>Safety checks:</gradient> <gradient:#ff4b1f:#ff0000>Disabled</gradient>"
  orientation-horizontal: "<gradient:#87ceeb:#4682b4>Orientation:</gradient> <#FFD700>Horizontal (ground)</#FFD700>"
  orientation-vertical: "<gradient:#87ceeb:#4682b4>Orientation:</gradient> <#FFD700>Vertical (standing)</#FFD700>"
  particle-custom: "<gradient:#87ceeb:#4682b4>Particle type:</gradient> <#d946ef>{particle}</#d946ef>"
  particle-default: "<gradient:#87ceeb:#4682b4>Particle type:</gradient> <gradient:#87ceeb:#4682b4>Default</gradient> (<#FFD700>{particle}</#FFD700>)"
  spread-custom: "<gradient:#87ceeb:#4682b4>Particle spread:</gradient> <#d946ef>Tight: {tight}, Wide: {wide}</#d946ef>"
  spread-default: "<gradient:#87ceeb:#4682b4>Particle spread:</gradient> <gradient:#87ceeb:#4682b4>Default</gradient> (<#FFD700>Tight: {tight}, Wide: {wide}</#FFD700>)"
  dust-color-custom: "<gradient:#87ceeb:#4682b4>DUST particle color:</gradient> <color:#fbbf24>{color}</color>"
  dust-color-default: "<gradient:#87ceeb:#4682b4>DUST particle color:</gradient> <gradient:#87ceeb:#4682b4>Default</gradient> (<color:#fbbf24>{color}</color>)"
  sound-custom: "<gradient:#87ceeb:#4682b4>Teleport sound:</gradient> <#d946ef>{sound}</#d946ef>"
  sound-default: "<gradient:#87ceeb:#4682b4>Teleport sound:</gradient> <gradient:#87ceeb:#4682b4>Default</gradient> (<#FFD700>{sound}</#FFD700>)"
  direction-horizontal: "<gradient:#87ceeb:#4682b4>Teleport direction:</gradient> <#FFD700>UP</#FFD700> <gradient:#87ceeb:#4682b4>(horizontal portal default)</gradient>"
  direction-horizontal-note: "  <gradient:#6b7280:#9ca3af>Floor pad — stand on the pad; DEFAULT = auto look-out</gradient>"
  direction-custom: "<gradient:#87ceeb:#4682b4>Teleport direction:</gradient> <#d946ef>{direction}</#d946ef>"
  direction-default: "<gradient:#87ceeb:#4682b4>Teleport direction:</gradient> <#FFD700>Auto (look out of portal)</#FFD700> <gradient:#87ceeb:#4682b4>(default)</gradient>"
  conditions: "<gradient:#87ceeb:#4682b4>Usage conditions:</gradient> <#FFD700>{conditions}</#FFD700>"
  conditions-none: "<gradient:#87ceeb:#4682b4>Usage conditions:</gradient> <gradient:#6b7280:#9ca3af>None (anyone can use)</gradient>"
  conditions-header: "<gradient:#87ceeb:#4682b4>Usage conditions:</gradient>"
  conditions-item: "<gradient:#87ceeb:#4682b4>  • </gradient><#FFD700>{condition}</#FFD700>"
  conditions-multiple: "<gradient:#87ceeb:#4682b4>Usage conditions ({count}):</gradient>"
  permission-custom: "<gradient:#87ceeb:#4682b4>Required permission:</gradient> <#d946ef>{permission}</#d946ef>"
  permission-default: "<gradient:#87ceeb:#4682b4>Required permission:</gradient> <gradient:#87ceeb:#4682b4>Default</gradient> (<#FFD700>{permission}</#FFD700>)"
  permission-none: "<gradient:#87ceeb:#4682b4>Required permission:</gradient> <gradient:#6b7280:#9ca3af>None</gradient>"
  cost-enabled: "<gradient:#87ceeb:#4682b4>Teleport cost:</gradient> <gradient:#00ff6a:#00d4ff>${cost}</gradient>"
  cost-free: "<gradient:#87ceeb:#4682b4>Teleport cost:</gradient> <gradient:#6b7280:#9ca3af>Free</gradient>"

# =====================================
# HELP SYSTEM
# =====================================
help:
  fallback-not-initialized: "<gradient:#ff4b1f:#ff0000>Help system is loading, please try again.</gradient>"
  no-commands: "<gradient:#ff4b1f:#ff0000>No commands available to you.</gradient>"

  defaults:
    description: "No description available."
    category: "General"
    details: "No additional details."

  modern:
    title: "✨ <gradient:#FF6B35:#F7931E:#FFD23F>Soaps Teleporters</gradient> ✨"
    page-info: "<gradient:#00F5FF:#1E90FF>Page {page} of {total}</gradient>"
    click-info: "<gradient:#32CD32:#00FA9A> • Click commands for more info</gradient>"
    divider: "<gradient:#FF1493:#9370DB:#4169E1>▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬</gradient>"
    command-prefix: "  <gradient:#00FF00:#32CD32>/st</gradient> "
    command-name: "<gradient:#4169E1:#1E90FF>{command}</gradient>"
    command-separator: " <gradient:#87CEEB:#B0C4DE>-</gradient> "
    command-description: "<gradient:#F8F8FF:#E6E6FA>{description}</gradient>"
    command-hover: "<gradient:#87CEEB:#B0E0E6>Category:</gradient> <gradient:#FFD700:#FFA500>{category}</gradient>\n<gradient:#87CEEB:#B0E0E6>Details:</gradient> <gradient:#FFE4B5:#FFDAB9>{details}</gradient>\n\n<gradient:#32CD32:#00FA9A>Click to show detailed help!</gradient>"
    footer-divider: "<gradient:#FF1493:#9370DB:#4169E1>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</gradient>"
    nav:
      prev: "<gradient:#32CD32:#00FA9A>« Previous</gradient> "
      prev-hover: "<gradient:#98FB98:#90EE90>Go to page {page}</gradient>"
      next: " <gradient:#32CD32:#00FA9A>Next »</gradient>"
      next-hover: "<gradient:#98FB98:#90EE90>Go to page {page}</gradient>"
      page: "<gradient:#00F5FF:#87CEEB>Page {page}/{total}</gradient>"
      spacer: "<dark_gray>           </dark_gray>"

  console:
    header: "━━━ SoapsTeleporter Help ━━━"
    separator: "━━━━━━━━━━━━━━━━━━━━━━━━━━"
    entry: "  {command} — {description}"
    footer: "━━━━━━━━━━━━━━━━━━━━━━━━━━"

  welcome:
    title: "🌟 <gradient:#FFD700:#FFA500>Welcome to Soaps Teleporters!</gradient> 🌟"
    subtitle: "<gradient:#87CEEB:#B0E0E6>Create magical portals to teleport around your world</gradient>"
    hint-prefix: "<gradient:#F0F8FF:#E6E6FA>Type</gradient> "
    hint-command: "<gradient:#32CD32:#00FA9A>/st help</gradient>"
    hint-suffix: " <gradient:#F0F8FF:#E6E6FA>to get started!</gradient>"
    hint-hover: "<gradient:#98FB98:#90EE90>Click to view help!</gradient>"
    console-header: "━━━ Welcome to SoapsTeleporter ━━━"
    console-subtitle: "Use /st help for a list of commands."
    console-footer: "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"

  command-help:
    header: "📘 <gradient:#4A90E2:#1E90FF>Command Help:</gradient> <gradient:#32CD32:#00FA9A>/st {command}</gradient>"
    description-label: "<gradient:#87CEEB:#B0E0E6>Description:</gradient> "
    description: "<gradient:#F0F8FF:#E6E6FA>{description}</gradient>"
    category-label: "<gradient:#87CEEB:#B0E0E6>Category:</gradient> "
    category: "<gradient:#FFD700:#FFA500>{category}</gradient>"
    details-label: "<gradient:#87CEEB:#B0E0E6>Details:</gradient> "
    details: "<gradient:#FFE4B5:#FFDAB9>{details}</gradient>"
    console-header: "=== Command Help: /st {command} ==="
    console-description: "Description: {description}"
    console-category: "Category: {category}"
    console-details: "Details: {details}"


  # ── Command Descriptions ──
  commands:
    add:
      description: "Create a new portal"
      category: "Creation"
      details: "Select two positions with the wand first."
    remove:
      description: "Remove a portal"
      category: "Management"
      details: "Permanently deletes the portal."
    connect:
      description: "Connect two portals"
      category: "Connection"
      details: "Links source portal to target."
    list:
      description: "List all portals"
      category: "Information"
      details: "Shows all portals and their status."
    info:
      description: "View portal details"
      category: "Information"
      details: "Shows detailed information about a portal."
    wand:
      description: "Get the portal selection wand"
      category: "Creation"
      details: "Used to select two corners for portal creation."
    reload:
      description: "Reload the plugin configuration"
      category: "Admin"
      details: "Reloads config.yml, messages.yml, and portals."
    setdirection:
      description: "Set portal exit direction"
      category: "Settings"
      details: "Controls which way players face after teleporting."
    setparticle:
      description: "Set portal particle effect"
      category: "Visual"
      details: "Changes the particle displayed at the portal."
    setsound:
      description: "Set portal teleport sound"
      category: "Audio"
      details: "Changes the sound played on teleport."
    setcommand:
      description: "Set portal entry/exit commands"
      category: "Automation"
      details: "Runs commands when players enter or exit a portal."
    setcondition:
      description: "Set portal conditions"
      category: "Conditions"
      details: "Adds requirements for portal usage."
    setcost:
      description: "Set portal usage cost"
      category: "Economy"
      details: "Charges money or items to use a portal."
    debug:
      description: "Toggle debug mode"
      category: "Admin"
      details: "Enables/disables debug logging."
    manage:
      description: "Open interactive management"
      category: "Management"
      details: "Interactive GUI for managing portal settings."
    settype:
      description: "Set portal type"
      category: "Settings"
      details: "Switch between standard and RTP modes."
    enable:
      description: "Enable a portal"
      category: "Management"
      details: "Re-enables a disabled portal."
    disable:
      description: "Disable a portal"
      category: "Management"
      details: "Temporarily disables a portal."
    tp:
      description: "Teleport to a portal"
      category: "Teleportation"
      details: "Teleports you directly to a portal."
    backup:
      description: "Backup portal data"
      category: "Admin"
      details: "Creates a backup of all portal data."
    reset:
      description: "Reset portal to defaults"
      category: "Management"
      details: "Resets all portal settings to defaults."
    rename:
      description: "Rename a portal"
      category: "Management"
      details: "Changes the name of a portal."
    move:
      description: "Move a portal"
      category: "Management"
      details: "Enter move mode to relocate a portal."
    unlink:
      description: "Unlink a portal"
      category: "Connection"
      details: "Disconnects a portal from its target."
    duplicate:
      description: "Duplicate a portal"
      category: "Creation"
      details: "Creates a copy of an existing portal."
    setcooldown:
      description: "Set portal cooldown"
      category: "Settings"
      details: "Sets the cooldown between portal uses."
    setwarmup:
      description: "Set portal warmup"
      category: "Settings"
      details: "Sets the warmup time before teleporting."
    setcolor:
      description: "Set particle color"
      category: "Visual"
      details: "Sets the RGB color for DUST particles."
    setcount:
      description: "Set particle count"
      category: "Visual"
      details: "Sets how many particles are displayed."
    setspread:
      description: "Set particle spread"
      category: "Visual"
      details: "Controls particle distribution area."
    setinterval:
      description: "Set particle interval"
      category: "Visual"
      details: "How often particles are displayed (ticks)."
    setdisablesafecheck:
      description: "Toggle safety checks"
      category: "Settings"
      details: "Disables destination safety checking."
    set:
      description: "Modify portal settings"
      category: "Settings"
      details: "General setting modification command."
    shapepreview:
      description: "Preview and build preset portal frames"
      category: "Creation"
      details: "Generate, rotate, mirror, undo, and place shape previews."
    setrouting:
      description: "Set portal routing mode"
      category: "Connection"
      details: "Choose fixed, random, weighted, or permission-based destination routing."
    setdestinations:
      description: "Set portal linked destinations"
      category: "Connection"
      details: "Configure destination list used by advanced routing modes."
    addcondition:
      description: "Add a condition"
      category: "Conditions"
      details: "Adds an additional usage requirement to a portal."
    removecondition:
      description: "Remove a condition"
      category: "Conditions"
      details: "Removes a condition from a portal."
    help:
      description: "Show help information"
      category: "Information"
      details: "Displays all available commands with pagination."
    teleport:
      description: "Teleport to a portal"
      category: "Teleportation"
      details: "Teleports you directly to a portal location."

# =====================================
# INTERACTIVE MANAGEMENT (GUI)
# =====================================
interactive-management:
  # ===========================================
  # MAIN MANAGEMENT INTERFACE
  # ===========================================
  header: "\n\n\n<gradient:#00ffee:#98d4b0>Portal Management:</gradient> <color:#fbbf24>{portal}</color>"
  info-header: "<gradient:#94a3b8:#64748b>Portal Information</gradient>"
  portal-info: "<color:#e5e7eb>Status:</color> {status} | <color:#e5e7eb>Type:</color> <color:#fbbf24>{type}</color> | <color:#e5e7eb>Connection:</color> <color:#60a5fa>{connection}</color>"
  categories-header: "<gradient:#a78bfa:#8b5cf6>Management Categories:</gradient>"
  main-instructions: "<gradient:#fde047:#fbbf24>Click category buttons to configure portal behavior</gradient>"
  breadcrumb-main: "<gradient:#6b7280:#9ca3af>❯ Portal Management > Main Menu</gradient>"

  # Separators
  menu-separator: "<gradient:#6b7280:#9ca3af>──────────────────────────────────</gradient>"
  quick-separator: "<color:#808080>│</color>"

  # Category buttons
  visual-category: "<gradient:#f472b6:#ec4899> [Visual Effects]</gradient>"
  audio-category: "<gradient:#fbbf24:#f59e0b> [Audio Settings]</gradient>"
  economy-category: "<gradient:#34d399:#22c55e> [Economy & Timing]</gradient>"
  connection-category: "<gradient:#60a5fa:#3b82f6> [Connection Settings]</gradient>"
  conditions-category: "<gradient:#fbbf24:#f59e0b> [Conditions & Requirements]</gradient>"
  commands-category: "<gradient:#a78bfa:#8b5cf6> [Commands & Events]</gradient>"
  admin-category: "<gradient:#ef4444:#dc2626> [Administrative]</gradient>"

  # Category hover messages
  hover-visual: "<gradient:#f472b6:#ec4899>Configure visual effects like particles and colors</gradient>"
  hover-audio: "<gradient:#fbbf24:#f59e0b>Configure sound effects and audio settings</gradient>"
  hover-economy: "<gradient:#34d399:#22c55e>Configure cost, cooldown, and warmup settings</gradient>"
  hover-connection: "<gradient:#60a5fa:#3b82f6>Connect this portal to another portal</gradient>"
  hover-conditions: "<gradient:#fbbf24:#f59e0b>Configure portal access requirements (money, items, level, time, weather)</gradient>"
  hover-admin: "<gradient:#f87171:#ef4444>Access admin functions and portal control</gradient>"
  hover-commands: "<gradient:#a78bfa:#8b5cf6>Configure commands that run when portal is used</gradient>"

  # ===========================================
  # DELETE CONFIRMATION
  # ===========================================
  delete-confirmation-header: "\n\n\n<gradient:#ef4444:#dc2626>Delete Confirmation</gradient>"
  delete-confirmation-question: "<gradient:#f59e0b:#d97706>Are you sure you want to delete this {type}?</gradient>"
  delete-confirmation-type: "<gradient:#6b7280:#9ca3af>Type: </gradient><gradient:#22c55e:#16a34a>{command_type}</gradient>"
  delete-confirmation-type-exit: "<gradient:#6b7280:#9ca3af>Type: </gradient><gradient:#ef4444:#dc2626>{command_type}</gradient>"
  delete-confirmation-item: "<gradient:#6b7280:#9ca3af>Item: </gradient><gradient:#f8fafc:#ffffff>{item}</gradient>"
  delete-confirmation-confirm: "Confirm: "
  delete-confirmation-yes: "<gradient:#ef4444:#dc2626>[YES]</gradient>"
  delete-confirmation-yes-hover: "<gradient:#ef4444:#dc2626>Delete this {type}</gradient>"
  delete-confirmation-no: "<gradient:#22c55e:#16a34a>[NO]</gradient>"
  delete-confirmation-no-hover: "<gradient:#22c55e:#16a34a>Cancel deletion</gradient>"

  # ===========================================
  # COMMANDS MANAGEMENT
  # ===========================================
  commands-list-header: "\n\n\n<gradient:#a78bfa:#8b5cf6>Commands for Portal: {portal}</gradient>"
  commands-empty:
    - "<gradient:#fde047:#fbbf24>No commands configured yet.</gradient>"
    - "<gradient:#94a3b8:#64748b>Commands execute automatically when players use this portal.</gradient>"
    - "<gradient:#94a3b8:#64748b>Examples: Give items, teleport, run effects, send messages.</gradient>"
    - "<gradient:#22c55e:#16a34a>💡 Click [✚ Add Command] above to get started!</gradient>"
  commands-add-button: "<gradient:#4ade80:#22c55e>✚ Add Command</gradient>"
  commands-add-hover: "<gradient:#94a3b8:#64748b>Add a new command to execute when portal is used</gradient>"
  commands-back-button: "<gradient:#6b7280:#9ca3af>← [Back to Main Menu]</gradient>"
  commands-back-hover: "<gradient:#94a3b8:#64748b>Return to main portal menu</gradient>"

  # Add command interface
  add-command-header: "\n\n\n<gradient:#a78bfa:#8b5cf6>Add Command for {portal}:</gradient>"
  add-command-select: "<gradient:#94a3b8:#64748b>Select when this command should execute:</gradient>"
  add-enter-button: "<gradient:#4ade80:#22c55e>█ Enter Command</gradient>"
  add-exit-button: "<gradient:#f87171:#ef4444>█ Exit Command</gradient>"
  command-tip-header: "<gradient:#fde047:#fbbf24>Command Tips:</gradient>"

  # Command specific hovers
  hover-enter-command: "<gradient:#6366f1:#8b5cf6>Command executed when entering portal</gradient>"
  hover-exit-command: "<gradient:#6366f1:#8b5cf6>Command executed when exiting portal</gradient>"
  hover-back-commands: "<gradient:#6b7280:#9ca3af>Return to commands list</gradient>"

  # Command list display format
  enter-command-type: "<gradient:#22c55e:#16a34a>ENTER:</gradient>"
  exit-command-type: "<gradient:#ef4444:#dc2626>EXIT:</gradient>"

  # Chat input prompts for commands
  enter-command-prompt:
    - "<gradient:#ef4444:#dc2626>⚠ Type 'cancel' at any time to abort</gradient>"
    - "<gradient:#4ade80:#22c55e>Enter a command to execute when players ENTER this portal:</gradient>"
  enter-command-examples:
    - "<gradient:#94a3b8:#64748b>Examples:</gradient>"
    - "<gradient:#94a3b8:#64748b>• say Welcome %player%!</gradient>"
    - "<gradient:#94a3b8:#64748b>• give %player% diamond 1</gradient>"
    - "<gradient:#94a3b8:#64748b>• tp %player% spawn</gradient>"
    - "<gradient:#94a3b8:#64748b>• effect give %player% speed 30 1</gradient>"
  enter-command-placeholder: "<gradient:#fbbf24:#f59e0b>Use %player% for the player's name</gradient>"
  cancel-instruction: "<gradient:#6b7280:#9ca3af>Type 'cancel' to cancel</gradient>"

  exit-command-prompt:
    - "<gradient:#ef4444:#dc2626>⚠ Type 'cancel' at any time to abort</gradient>"
    - "<gradient:#ef4444:#dc2626>Enter a command to execute when players EXIT at this portal:</gradient>"
  exit-command-examples:
    - "<gradient:#94a3b8:#64748b>Examples:</gradient>"
    - "<gradient:#94a3b8:#64748b>• say Welcome %player%!</gradient>"
    - "<gradient:#94a3b8:#64748b>• give %player% diamond 1</gradient>"
    - "<gradient:#94a3b8:#64748b>• tp %player% spawn</gradient>"
    - "<gradient:#94a3b8:#64748b>• effect give %player% speed 30 1</gradient>"
  exit-command-placeholder: "<gradient:#fbbf24:#f59e0b>Use %player% for the player's name</gradient>"

  # Command success messages
  command-added-enter: "<gradient:#22c55e:#16a34a>✓ ENTER command added:</gradient> <gradient:#22c55e:#16a34a>{command}</gradient> <gradient:#6b7280:#9ca3af>(Total: {total_count} commands)</gradient>"
  command-added-exit: "<gradient:#ef4444:#dc2626>✓ EXIT command added:</gradient> <gradient:#ef4444:#dc2626>{command}</gradient> <gradient:#6b7280:#9ca3af>(Total: {total_count} commands)</gradient>"

  # Command error messages
  input-cancelled: "<gradient:#ef4444:#dc2626>✖ Input cancelled</gradient>"
  command-cannot-be-empty: "<gradient:#ef4444:#dc2626>✖ Command cannot be empty!</gradient>"
  enter-valid-command: "<gradient:#3b82f6:#2563eb>Please enter a valid command:</gradient>"

  # ===========================================
  # CONDITIONS MANAGEMENT
  # ===========================================
  conditions-header: "\n\n\n\n\n<gradient:#f472b6:#ec4899>Conditions for Portal: {portal}</gradient>"
  conditions-empty:
    - "<gradient:#fde047:#fbbf24>No conditions configured yet.</gradient>"
    - "<gradient:#94a3b8:#64748b>Conditions control when players can use this portal.</gradient>"
    - "<gradient:#94a3b8:#64748b>Examples: Time of day, items required, money cost, player level.</gradient>"
    - "<gradient:#22c55e:#16a34a>💡 Click [✚ Add Condition] above to get started!</gradient>"
  conditions-add-button: "<gradient:#4ade80:#22c55e>✚ Add Condition</gradient>"
  conditions-add-hover: "<gradient:#94a3b8:#64748b>Add a new condition for portal usage</gradient>"
  conditions-back-button: "<gradient:#6b7280:#9ca3af>← [Back to Main Menu]</gradient>"
  conditions-back-hover: "<gradient:#94a3b8:#64748b>Return to main portal menu</gradient>"

  # Add condition menu
  add-condition-select: "<gradient:#94a3b8:#64748b>Select the type of condition to add:</gradient>"

  # Time & Weather conditions
  time-weather-header: "<gradient:#fde047:#fbbf24>Time & Weather:</gradient>"
  day-button: "<gradient:#4ade80:#22c55e>[Day]  </gradient>"
  day-hover: "<gradient:#94a3b8:#64748b>Portal only works during daytime</gradient>"
  night-button: "<gradient:#60a5fa:#3b82f6>[Night]  </gradient>"
  night-hover: "<gradient:#94a3b8:#64748b>Portal only works during nighttime</gradient>"
  rain-button: "<gradient:#a78bfa:#8b5cf6>[Rain]  </gradient>"
  rain-hover: "<gradient:#94a3b8:#64748b>Portal only works when it's raining</gradient>"
  thunder-button: "<gradient:#c084fc:#a855f7>[Thunder]  </gradient>"
  thunder-hover: "<gradient:#94a3b8:#64748b>Portal only works during thunderstorms</gradient>"
  clear-button: "<gradient:#fbbf24:#f59e0b>[Clear]  </gradient>"
  clear-hover: "<gradient:#94a3b8:#64748b>Portal works anytime (no restrictions)</gradient>"
  sun-button: "<gradient:#fde047:#facc15>[Sun]  </gradient>"
  sun-hover: "<gradient:#94a3b8:#64748b>Portal only works during daytime with clear weather</gradient>"
  storm-button: "<gradient:#7c3aed:#6d28d9>[Storm]  </gradient>"
  storm-hover: "<gradient:#94a3b8:#64748b>Portal only works during rain and thunder</gradient>"

  # Item and economy requirements
  item-requirements-header: "<gradient:#fbbf24:#f59e0b>Economy & Items:</gradient>"
  economy-requirements-header: "<gradient:#fbbf24:#f59e0b>Economy Requirements</gradient>"
  add-item-requirement: "<gradient:#4ade80:#22c55e>[Add Item Requirement]</gradient>"
  item-requirement-hover: "<gradient:#10b981:#22c55e>Click and type in chat</gradient>"
  add-money-requirement: "<gradient:#fbbf24:#f59e0b>[Add Money Requirement]</gradient>"
  money-requirement-hover: "<gradient:#f59e0b:#d97706>Click and type in chat</gradient>"

  # Level requirement conditions
  level-requirements-header: "<gradient:#fde047:#fbbf24>Player Level:</gradient>"
  add-level-requirement: "<gradient:#22c55e:#16a34a>[Custom Level]</gradient>"
  level-requirement-hover: "<gradient:#6b7280:#9ca3af>Set custom level requirement</gradient>"
  add-min-level-requirement: "<gradient:#22c55e:#16a34a>[Min Level]</gradient>"
  min-level-hover: "<gradient:#6b7280:#9ca3af>Set minimum player level required</gradient>"
  add-max-level-requirement: "<gradient:#ef4444:#dc2626>[Max Level]</gradient>"
  max-level-hover: "<gradient:#6b7280:#9ca3af>Set maximum player level allowed</gradient>"

  # Health & Food requirement conditions
  health-requirements-header: "<gradient:#f87171:#ef4444>Health & Food:</gradient>"
  add-min-health-requirement: "<gradient:#22c55e:#16a34a>[Min Health]</gradient>"
  min-health-hover: "<gradient:#6b7280:#9ca3af>Set minimum health required</gradient>"
  add-max-health-requirement: "<gradient:#ef4444:#dc2626>[Max Health]</gradient>"
  max-health-hover: "<gradient:#6b7280:#9ca3af>Set maximum health allowed</gradient>"
  add-min-food-requirement: "<gradient:#22c55e:#16a34a>[Min Food]</gradient>"
  min-food-hover: "<gradient:#6b7280:#9ca3af>Set minimum food level required</gradient>"
  add-max-food-requirement: "<gradient:#ef4444:#dc2626>[Max Food]</gradient>"
  max-food-hover: "<gradient:#6b7280:#9ca3af>Set maximum food level allowed</gradient>"

  # Equipment requirement conditions
  equipment-requirements-header: "<gradient:#a855f7:#9333ea>Equipment:</gradient>"
  add-armor-requirement: "<gradient:#6366f1:#4f46e5>[Armor]</gradient>"
  armor-hover: "<gradient:#6b7280:#9ca3af>Require specific armor type</gradient>"
  add-weapon-requirement: "<gradient:#f59e0b:#d97706>[Weapon]</gradient>"
  weapon-hover: "<gradient:#6b7280:#9ca3af>Require specific weapon in hand</gradient>"
  add-naked-requirement: "<gradient:#8b5cf6:#7c3aed>[Naked]</gradient>"
  naked-hover: "<gradient:#6b7280:#9ca3af>Player must have no armor equipped</gradient>"
  add-full-armor-requirement: "<gradient:#10b981:#059669>[Full Armor]</gradient>"
  full-armor-hover: "<gradient:#6b7280:#9ca3af>Player must have full armor set</gradient>"

  # Player State conditions
  player-state-header: "<gradient:#06b6d4:#0891b2>Player State:</gradient>"
  add-sneak-requirement: "<gradient:#8b5cf6:#7c3aed>[Sneaking]</gradient>"
  sneak-hover: "<gradient:#6b7280:#9ca3af>Player must be sneaking</gradient>"
  add-flying-requirement: "<gradient:#06b6d4:#0891b2>[Flying]</gradient>"
  flying-hover: "<gradient:#6b7280:#9ca3af>Player must be flying</gradient>"
  add-jumping-requirement: "<gradient:#22c55e:#16a34a>[Jumping]</gradient>"
  jumping-hover: "<gradient:#6b7280:#9ca3af>Player must be jumping/in air</gradient>"
  add-on-fire-requirement: "<gradient:#ef4444:#dc2626>[On Fire]</gradient>"
  on-fire-hover: "<gradient:#6b7280:#9ca3af>Player must be on fire</gradient>"
  add-sprinting-requirement: "<gradient:#f59e0b:#d97706>[Sprinting]</gradient>"
  sprinting-hover: "<gradient:#6b7280:#9ca3af>Player must be sprinting</gradient>"

  # Environment requirement conditions
  environment-requirements-header: "<gradient:#10b981:#059669>Environment:</gradient>"
  add-world-requirement: "<gradient:#6366f1:#4f46e5>[World]</gradient>"
  world-hover: "<gradient:#6b7280:#9ca3af>Restrict to specific world</gradient>"
  add-biome-requirement: "<gradient:#22c55e:#16a34a>[Biome]</gradient>"
  biome-hover: "<gradient:#6b7280:#9ca3af>Restrict to specific biome</gradient>"
  add-gamemode-requirement: "<gradient:#a855f7:#9333ea>[GameMode]</gradient>"
  gamemode-hover: "<gradient:#6b7280:#9ca3af>Require specific game mode</gradient>"

  # Social requirement conditions
  social-requirements-header: "<gradient:#f472b6:#ec4899>Social:</gradient>"
  add-min-players-requirement: "<gradient:#22c55e:#16a34a>[Min Players]</gradient>"
  min-players-hover: "<gradient:#6b7280:#9ca3af>Minimum players nearby required</gradient>"
  add-max-players-requirement: "<gradient:#ef4444:#dc2626>[Max Players]</gradient>"
  max-players-hover: "<gradient:#6b7280:#9ca3af>Maximum players nearby allowed</gradient>"
  add-solo-requirement: "<gradient:#8b5cf6:#7c3aed>[Solo Only]</gradient>"
  solo-hover: "<gradient:#6b7280:#9ca3af>Player must be alone (no nearby players)</gradient>"

  # Achievement requirement conditions
  achievement-requirements-header: "<gradient:#fbbf24:#f59e0b>Achievements:</gradient>"
  add-advancement-requirement: "<gradient:#10b981:#059669>[Advancement]</gradient>"
  advancement-hover: "<gradient:#6b7280:#9ca3af>Require specific advancement/achievement</gradient>"
  add-playtime-requirement: "<gradient:#6366f1:#4f46e5>[Playtime]</gradient>"
  playtime-hover: "<gradient:#6b7280:#9ca3af>Require minimum playtime in minutes</gradient>"

  # Navigation buttons
  back-to-conditions-button: "<gradient:#6b7280:#9ca3af>← Back to Conditions</gradient>"
  back-to-conditions-hover: "<gradient:#6b7280:#9ca3af>Return to conditions management</gradient>"

  # Chat input prompts for conditions
  money-input-prompt:
    - "<gradient:#ef4444:#dc2626>⚠ Type 'cancel' at any time to abort</gradient>"
    - "<gradient:#22c55e:#16a34a>Enter money amount in dollars (0.01 - 999999):</gradient>"
    - "<gradient:#6b7280:#9ca3af>💡 Common values: 100, 500, 1000</gradient>"
  money-input-example: "<gradient:#3b82f6:#2563eb>Examples: 100, 50.5, 1000, 2500</gradient>"
  material-input-prompt: "<gradient:#fbbf24:#f59e0b>Enter the material name required to use this portal:</gradient>"
  material-input-example: "<gradient:#6b7280:#9ca3af>Example: DIAMOND, GOLD_INGOT, EMERALD</gradient>"
  amount-input-prompt: "<gradient:#f59e0b:#d97706>Enter the quantity (1-64 typical):</gradient>"
  amount-input-example: "<gradient:#3b82f6:#2563eb>Examples: 1, 5, 10, 32, 64</gradient>"
  level-input-prompt:
    - "<gradient:#ef4444:#dc2626>⚠ Type 'cancel' at any time to abort</gradient>"
    - "<gradient:#22c55e:#16a34a>Enter player level requirement (0-1000):</gradient>"
    - "<gradient:#6b7280:#9ca3af>💡 Common: 10, 25, 50, 100</gradient>"
  level-input-example: "<gradient:#3b82f6:#2563eb>Examples: 10, 25, 50, 100</gradient>"
  min-players-input-prompt:
    - "<gradient:#ef4444:#dc2626>⚠ Type 'cancel' at any time to abort</gradient>"
    - "<gradient:#22c55e:#16a34a>Enter minimum players nearby required (1+):</gradient>"
    - "<gradient:#6b7280:#9ca3af>💡 Common: 2, 3, 5, 10</gradient>"
  min-players-input-example: "<gradient:#3b82f6:#2563eb>Examples: 2, 3, 5, 10</gradient>"
  max-players-input-prompt:
    - "<gradient:#ef4444:#dc2626>⚠ Type 'cancel' at any time to abort</gradient>"
    - "<gradient:#22c55e:#16a34a>Enter maximum players nearby allowed (1+):</gradient>"
    - "<gradient:#6b7280:#9ca3af>💡 Common: 5, 10, 20, 50</gradient>"
  max-players-input-example: "<gradient:#3b82f6:#2563eb>Examples: 5, 10, 20, 50</gradient>"
  playtime-input-prompt:
    - "<gradient:#ef4444:#dc2626>⚠ Type 'cancel' at any time to abort</gradient>"
    - "<gradient:#22c55e:#16a34a>Enter required playtime in minutes (1+):</gradient>"
    - "<gradient:#6b7280:#9ca3af>💡 Common: 60 (1hr), 120 (2hr), 300 (5hr)</gradient>"
  playtime-input-example: "<gradient:#3b82f6:#2563eb>Examples: 30, 60, 120, 300, 600</gradient>"
  world-input-prompt:
    - "<gradient:#ef4444:#dc2626>⚠ Type 'cancel' at any time to abort</gradient>"
    - "<gradient:#22c55e:#16a34a>Enter world name required (exact spelling):</gradient>"
  world-input-example: "<gradient:#3b82f6:#2563eb>Examples: world, world_nether, world_the_end</gradient>"
  biome-input-prompt:
    - "<gradient:#ef4444:#dc2626>⚠ Type 'cancel' at any time to abort</gradient>"
    - "<gradient:#22c55e:#16a34a>Enter biome name (not case-sensitive):</gradient>"
  biome-input-example: "<gradient:#3b82f6:#2563eb>Examples: plains, FOREST, desert, mountains</gradient>"
  gamemode-input-prompt:
    - "<gradient:#ef4444:#dc2626>⚠ Type 'cancel' at any time to abort</gradient>"
    - "<gradient:#22c55e:#16a34a>Enter game mode (not case-sensitive):</gradient>"
  gamemode-input-example: "<gradient:#3b82f6:#2563eb>Examples: survival, CREATIVE, adventure, spectator</gradient>"
  advancement-input-prompt:
    - "<gradient:#ef4444:#dc2626>⚠ Type 'cancel' at any time to abort</gradient>"
    - "<gradient:#22c55e:#16a34a>Enter advancement ID (namespace:path format):</gradient>"
  advancement-input-example: "<gradient:#3b82f6:#2563eb>Examples: minecraft:story/mine_stone, minecraft:nether/root</gradient>"

  # Condition validation messages
  amount-too-small: "<gradient:#ef4444:#dc2626>✖ Amount must be greater than 0!</gradient>"
  enter-valid-amount: "<gradient:#6b7280:#9ca3af>Please enter a valid amount:</gradient>"
  invalid-number-format: "<gradient:#ef4444:#dc2626>✖ Invalid number format!</gradient>"
  enter-valid-number: "<gradient:#6b7280:#9ca3af>Please enter a valid number (e.g., 100):</gradient>"
  enter-valid-whole-number: "<gradient:#3b82f6:#2563eb>Please enter a valid whole number (e.g., 5):</gradient>"
  invalid-money-amount: "<gradient:#ef4444:#dc2626>Invalid money amount! Please enter a valid number.</gradient>"
  invalid-item-amount: "<gradient:#ef4444:#dc2626>Invalid item amount! Please enter a valid number.</gradient>"

  # Condition success messages
  condition-added: "<gradient:#22c55e:#16a34a>Successfully added {condition} condition to portal {portal}!</gradient>"
  money-condition-added: "<gradient:#22c55e:#16a34a>✓ Money condition added: ${amount}</gradient> <gradient:#6b7280:#9ca3af>(Total: {total_count} conditions)</gradient>"
  item-condition-added: "<gradient:#22c55e:#16a34a>✓ Item condition added: {amount}x {material}</gradient> <gradient:#6b7280:#9ca3af>(Total: {total_count} conditions)</gradient>"
  level-condition-added: "<gradient:#22c55e:#16a34a>✓ Level requirement added: Level {level}</gradient> <gradient:#6b7280:#9ca3af>(Total: {total_count} conditions)</gradient>"
  min-players-condition-added: "<gradient:#22c55e:#16a34a>✓ Min players added: {count} players</gradient> <gradient:#6b7280:#9ca3af>(Total: {total_count} conditions)</gradient>"
  max-players-condition-added: "<gradient:#22c55e:#16a34a>✓ Max players added: {count} players</gradient> <gradient:#6b7280:#9ca3af>(Total: {total_count} conditions)</gradient>"
  playtime-condition-added: "<gradient:#22c55e:#16a34a>✓ Playtime added: {count} minutes</gradient> <gradient:#6b7280:#9ca3af>(Total: {total_count} conditions)</gradient>"
  world-condition-added: "<gradient:#22c55e:#16a34a>✓ World requirement added: {world}</gradient> <gradient:#6b7280:#9ca3af>(Total: {total_count} conditions)</gradient>"
  biome-condition-added: "<gradient:#22c55e:#16a34a>✓ Biome requirement added: {biome}</gradient> <gradient:#6b7280:#9ca3af>(Total: {total_count} conditions)</gradient>"
  gamemode-condition-added: "<gradient:#22c55e:#16a34a>✓ Gamemode requirement added: {gamemode}</gradient> <gradient:#6b7280:#9ca3af>(Total: {total_count} conditions)</gradient>"
  advancement-condition-added: "<gradient:#22c55e:#16a34a>✓ Advancement required: {advancement}</gradient> <gradient:#6b7280:#9ca3af>(Total: {total_count} conditions)</gradient>"

  # Condition validation errors
  level-too-small: "<gradient:#ef4444:#dc2626>✖ Level must be at least 1.</gradient>"
  enter-valid-level: "<gradient:#3b82f6:#2563eb>Please enter a valid level (1 or higher).</gradient>"
  min-players-too-small: "<gradient:#ef4444:#dc2626>✖ Minimum players must be at least 1.</gradient>"
  enter-valid-min-players: "<gradient:#3b82f6:#2563eb>Please enter a valid number (1 or higher).</gradient>"
  max-players-too-small: "<gradient:#ef4444:#dc2626>✖ Maximum players must be at least 1.</gradient>"
  enter-valid-max-players: "<gradient:#3b82f6:#2563eb>Please enter a valid number (1 or higher).</gradient>"
  playtime-too-small: "<gradient:#ef4444:#dc2626>✖ Playtime must be at least 1 minute.</gradient>"
  enter-valid-playtime: "<gradient:#3b82f6:#2563eb>Please enter a valid number of minutes.</gradient>"
  world-name-empty: "<gradient:#ef4444:#dc2626>✖ World name cannot be empty!</gradient>"
  enter-valid-world: "<gradient:#3b82f6:#2563eb>Please enter a valid world name.</gradient>"
  biome-name-empty: "<gradient:#ef4444:#dc2626>✖ Biome name cannot be empty!</gradient>"
  enter-valid-biome: "<gradient:#3b82f6:#2563eb>Please enter a valid biome name.</gradient>"
  gamemode-name-empty: "<gradient:#ef4444:#dc2626>✖ Gamemode cannot be empty!</gradient>"
  enter-valid-gamemode: "<gradient:#3b82f6:#2563eb>Please enter a valid gamemode.</gradient>"
  advancement-id-empty: "<gradient:#ef4444:#dc2626>✖ Advancement ID cannot be empty!</gradient>"
  enter-valid-advancement: "<gradient:#3b82f6:#2563eb>Please enter a valid advancement ID.</gradient>"
  invalid-advancement: "<gradient:#ef4444:#dc2626>✖ Invalid advancement ID format!</gradient>"

  # Material/item handling
  hand-empty: "<gradient:#ef4444:#dc2626>✖ You must hold an item in your hand.</gradient>"
  enter-valid-material: "<gradient:#3b82f6:#2563eb>Please enter a valid material name.</gradient>"
  custom-item-set: "<gradient:#22c55e:#16a34a>✓ Custom item set:</gradient> <gradient:#f59e0b:#d97706>{item}</gradient>"
  material-set: "<gradient:#22c55e:#16a34a>✓ Material set:</gradient> <gradient:#f59e0b:#d97706>{material}</gradient>"
  enter-amount-required:
    - "<gradient:#ef4444:#dc2626>⚠ Type 'cancel' to abort</gradient>"
    - "<gradient:#22c55e:#16a34a>Step 2 of 2: Now enter the amount of {material} required:</gradient>"
    - "<gradient:#6b7280:#9ca3af>💡 Common: 1, 5, 10, 64</gradient>"
  amount-example: "<gradient:#3b82f6:#2563eb>Examples: 1, 5, 10, 32, 64</gradient>"
  invalid-material: "<gradient:#ef4444:#dc2626>✖ Invalid material:</gradient> <gradient:#f59e0b:#d97706>{material}</gradient>"
  material-tip: "<gradient:#3b82f6:#2563eb>Tip: Type 'HAND' to use the item in your hand, or use tab completion.</gradient>"
  custom-item-condition-added: "<gradient:#22c55e:#16a34a>✓ Item condition added: </gradient><gradient:#f59e0b:#d97706>{amount}x {item}</gradient>"
  portal-not-found: "<gradient:#ef4444:#dc2626>✖ Portal not found! Session expired.</gradient>"

  # ===========================================
  # VISUAL EFFECTS MANAGEMENT
  # ===========================================
  visual-header: "\n\n\n<gradient:#f472b6:#ec4899>Visual Effects:</gradient> <color:#fbbf24>{portal}</color>"
  visual-current:
    - "<gradient:#94a3b8:#64748b>Current Settings:</gradient>"
    - "<color:#e5e7eb>Particle:</color> <color:#fbbf24>{particle}</color> | <color:#e5e7eb>Color:</color> <color:#fbbf24>{color}</color> | <color:#e5e7eb>Count:</color> <color:#fbbf24>{count}</color>"
  visual-particle-button: "<gradient:#f472b6:#ec4899> [Set Particle]</gradient>"
  visual-color-button: "<gradient:#fbbf24:#f59e0b> [Set Color]</gradient>"
  visual-count-button: "<gradient:#4ade80:#22c55e> [Set Count]</gradient>"
  visual-spread-button: "<gradient:#60a5fa:#3b82f6> [Set Spread]</gradient>"
  visual-interval-button: "<gradient:#a78bfa:#8b5cf6> [Set Interval]</gradient>"

  hover-particle: "<gradient:#f472b6:#ec4899>Change particle effect type</gradient>"
  hover-color: "<gradient:#fbbf24:#f59e0b>Set custom particle color</gradient>"
  hover-count: "<gradient:#4ade80:#22c55e>Adjust particle density</gradient>"
  hover-spread: "<gradient:#60a5fa:#3b82f6>Configure particle spread pattern</gradient>"
  hover-interval: "<gradient:#a78bfa:#8b5cf6>Set particle display timing</gradient>"

  # ===========================================
  # AUDIO EFFECTS MANAGEMENT
  # ===========================================
  audio-header: "\n\n\n<gradient:#fbbf24:#f59e0b>Audio Settings:</gradient> <color:#fbbf24>{portal}</color>"
  audio-current-detailed: "<gradient:#94a3b8:#64748b>Current:</gradient> <color:#fbbf24>{sound}</color> | <color:#e5e7eb>Pitch:</color> <color:#fbbf24>{pitch}</color> | <color:#e5e7eb>Volume:</color> <color:#fbbf24>{volume}</color>"
  audio-set-button: "<gradient:#fbbf24:#f59e0b> [Set Sound]</gradient>"
  audio-disable-button: "<gradient:#f87171:#ef4444> [Disable Sound]</gradient>"
  audio-pitch-volume-header: "\n<gradient:#a78bfa:#8b5cf6>🎵 Pitch & Volume Controls</gradient>"
  audio-pitch-low-button: "<gradient:#60a5fa:#3b82f6> [Low Pitch (0.8)]</gradient>"
  audio-pitch-normal-button: "<gradient:#4ade80:#22c55e> [Normal Pitch (1.0)]</gradient>"
  audio-pitch-high-button: "<gradient:#fbbf24:#f59e0b> [High Pitch (1.5)]</gradient>"
  audio-pitch-custom-button: "<gradient:#e5e7eb:#d1d5db> [Custom Pitch...]</gradient>"
  audio-volume-quiet-button: "<gradient:#60a5fa:#3b82f6> [Quiet (0.3)]</gradient>"
  audio-volume-normal-button: "<gradient:#4ade80:#22c55e> [Normal (1.0)]</gradient>"
  audio-volume-loud-button: "<gradient:#fbbf24:#f59e0b> [Loud (1.5)]</gradient>"
  audio-volume-custom-button: "<gradient:#e5e7eb:#d1d5db> [Custom Volume...]</gradient>"
  hover-set-sound: "<gradient:#fbbf24:#f59e0b>Configure portal sound effect</gradient>"
  hover-disable-sound: "<gradient:#f87171:#ef4444>Turn off portal sounds</gradient>"
  hover-pitch-low: "<gradient:#60a5fa:#3b82f6>Set pitch to 0.8 (lower tone)</gradient>"
  hover-pitch-normal: "<gradient:#4ade80:#22c55e>Set pitch to 1.0 (normal tone)</gradient>"
  hover-pitch-high: "<gradient:#fbbf24:#f59e0b>Set pitch to 1.5 (higher tone)</gradient>"
  hover-pitch-custom: "<gradient:#e5e7eb:#d1d5db>Enter a custom pitch value (0.0-2.0)</gradient>"
  hover-volume-quiet: "<gradient:#60a5fa:#3b82f6>Set volume to 0.3 (quieter)</gradient>"
  hover-volume-normal: "<gradient:#4ade80:#22c55e>Set volume to 1.0 (normal)</gradient>"
  hover-volume-loud: "<gradient:#fbbf24:#f59e0b>Set volume to 1.5 (louder)</gradient>"
  hover-volume-custom: "<gradient:#e5e7eb:#d1d5db>Enter a custom volume value (0.0-2.0)</gradient>"
  audio-need-sound-first: "<gradient:#94a3b8:#64748b>→ Set a custom sound first to adjust pitch and volume</gradient>"

  # ===========================================
  # ECONOMY & TIMING MANAGEMENT
  # ===========================================
  economy-header: "\n\n\n<gradient:#4ade80:#22c55e>Economy & Timing:</gradient> <color:#fbbf24>{portal}</color>"
  economy-current:
    - "<gradient:#94a3b8:#64748b>Current Settings:</gradient>"
    - "<color:#e5e7eb>Cost:</color> <color:#fbbf24>{cost}</color> | <color:#e5e7eb>Cooldown:</color> <color:#fbbf24>{cooldown}</color> | <color:#e5e7eb>Warmup:</color> <color:#fbbf24>{warmup}</color>"
  economy-cost-button: "<gradient:#fbbf24:#f59e0b> [Set Cost]</gradient>"
  economy-cooldown-button: "<gradient:#60a5fa:#3b82f6> [Set Cooldown]</gradient>"
  economy-warmup-button: "<gradient:#c084fc:#a855f7> [Set Warmup]</gradient>"
  hover-cost: "<gradient:#fbbf24:#f59e0b>Set portal usage fee</gradient>"
  hover-cooldown: "<gradient:#60a5fa:#3b82f6>Set time between portal uses</gradient>"
  hover-warmup: "<gradient:#c084fc:#a855f7>Set activation delay</gradient>"

  # ===========================================
  # CONNECTION MANAGEMENT
  # ===========================================
  connection-header: "\n\n\n<gradient:#60a5fa:#3b82f6>Connection Settings:</gradient> <color:#fbbf24>{portal}</color>"
  connection-current: "<gradient:#94a3b8:#64748b>Connected To:</gradient> <color:#fbbf24>{target}</color>"
  connection-connect-button: "<gradient:#4ade80:#22c55e> [Connect Portal]</gradient>"
  connection-unlink-button: "<gradient:#f87171:#ef4444> [Unlink Portal]</gradient>"
  connection-type-button: "<gradient:#fbbf24:#f59e0b> [Set Type]</gradient>"
  connection-direction-button: "<gradient:#c084fc:#a855f7> [Set Direction]</gradient>"
  hover-connect: "<gradient:#4ade80:#22c55e>Link to another portal</gradient>"
  hover-unlink: "<gradient:#f87171:#ef4444>Remove portal connection</gradient>"
  hover-type: "<gradient:#fbbf24:#f59e0b>Change portal type (standard/RTP/oneway)</gradient>"
  hover-direction: "<gradient:#c084fc:#a855f7>Set teleport facing direction</gradient>"

  # ===========================================
  # ADMINISTRATIVE MANAGEMENT
  # ===========================================
  admin-header: "\n\n\n\n\n\n\n\n\n\n<gradient:#f87171:#ef4444>Administrative Actions:</gradient> <color:#fbbf24>{portal}</color>"
  admin-status: "<gradient:#94a3b8:#64748b>Portal Status:</gradient> {status}"
  admin-enable-button: "<gradient:#4ade80:#22c55e> [Enable Portal]</gradient>"
  admin-disable-button: "<gradient:#f87171:#ef4444> [Disable Portal]</gradient>"
  admin-rename-button: "<gradient:#fbbf24:#f59e0b> [Rename Portal]</gradient>"
  admin-move-button: "<gradient:#60a5fa:#3b82f6> [Move Portal]</gradient>"
  admin-reset-button: "<gradient:#c084fc:#a855f7> [Reset Settings]</gradient>"
  hover-enable: "<gradient:#4ade80:#22c55e>Activate portal for use</gradient>"
  hover-disable: "<gradient:#f87171:#ef4444>Deactivate portal temporarily</gradient>"
  hover-rename: "<gradient:#fbbf24:#f59e0b>Change portal name</gradient>"
  hover-move: "<gradient:#60a5fa:#3b82f6>Relocate portal to current position</gradient>"
  hover-reset: "<gradient:#c084fc:#a855f7>Reset all settings to defaults</gradient>"

  # ===========================================
  # PAGINATION SYSTEM
  # ===========================================
  paginated-header: "<gradient:#a78bfa:#8b5cf6>{title} ({current}/{total})</gradient>"
  delete-button: "<gradient:#f87171:#ef4444> ✖</gradient>"
  delete-hover: "<gradient:#f87171:#ef4444>Delete {item}</gradient>"
  previous-button: "<gradient:#60a5fa:#3b82f6>←</gradient>"
  previous-hover: "<gradient:#94a3b8:#64748b>Go to page {page}</gradient>"
  page-info: "<gradient:#94a3b8:#64748b> Page {page}/{total_pages} </gradient>"
  next-button: "<gradient:#60a5fa:#3b82f6>→</gradient>"
  next-hover: "<gradient:#94a3b8:#64748b>Go to page {page}</gradient>"
  add-item-button: "<gradient:#4ade80:#22c55e>✚ Add {type}</gradient>"
  add-item-hover: "<gradient:#94a3b8:#64748b>Add a new {type}</gradient>"
  back-to-menu-button: "<gradient:#6b7280:#9ca3af>← [Back to Main Menu]</gradient>"
  back-to-menu-hover: "<gradient:#94a3b8:#64748b>Return to main portal menu</gradient>"

  # ===========================================
  # BREADCRUMB NAVIGATION
  # ===========================================
  breadcrumb-conditions: "<gradient:#6b7280:#9ca3af>❯ Portal Management > Conditions</gradient>"
  breadcrumb-add-condition: "<gradient:#6b7280:#9ca3af>❯ Portal Management > Conditions > Add Condition</gradient>"
  breadcrumb-commands: "<gradient:#6b7280:#9ca3af>❯ Portal Management > Commands</gradient>"
  breadcrumb-add-command: "<gradient:#6b7280:#9ca3af>❯ Portal Management > Commands > Add Command</gradient>"
  breadcrumb-visual: "<gradient:#6b7280:#9ca3af>❯ Portal Management > Visual Effects</gradient>"
  breadcrumb-audio: "<gradient:#6b7280:#9ca3af>❯ Portal Management > Audio Settings</gradient>"
  breadcrumb-economy: "<gradient:#6b7280:#9ca3af>❯ Portal Management > Economy & Timing</gradient>"
  breadcrumb-connection: "<gradient:#6b7280:#9ca3af>❯ Portal Management > Connection Settings</gradient>"
  breadcrumb-admin: "<gradient:#6b7280:#9ca3af>❯ Portal Management > Administrative</gradient>"

  # Back navigation
  back-main-button: "<gradient:#6b7280:#9ca3af>← [Back to Main Menu]</gradient>"
  hover-back-main: "<gradient:#fbbf24:#f59e0b>Return to portal management overview</gradient>"

Still stuck? Ask about this page