Start here

Start here: editions & requirements

MailboxGUI turns physical mailbox builds into persistent personal inboxes. Players send paper and book letters, item/XP packages, COD packages and economy money mail; administrators can manage deliveries, shared staff mail, automated schedules and public access points. Both editions provide the full standalone mail system. Premium adds shared multi-backend infrastructure rather than requiring a purchase to use ordinary mail.

This guide documents the 6.1.0 implementation and is the site’s default MailboxGUI wiki. Check the download page for the editions and builds currently available; marketplace linking readiness is described separately below.

RequirementWhat to install / check
ServerSpigot, Paper or Purpur. Source targets 1.18.2–1.21.11 and 26.1–26.3; test your exact build and integrations. Material/API availability differs by version.
JavaPlugin bytecode baseline is Java 17; use the Java version required by your Minecraft server, which may be newer.
EconomyVault AND a working economy provider for money mail and monetary COD. Item-only COD does not require Vault.
Optional integrationsCitizens for Public Access NPCs; Dynmap for markers; PlaceholderAPI for placeholders; ItemsAdder for registry-backed appearances.
Discord noticesMailboxGUI Free + DiscBridge Free, or MailboxGUI Premium + DiscBridge Premium, using the 6.1.0 / 2.1.0 pair. Mixed editions do not work.
Premium networkingPremium on every participating backend, shared MySQL/MariaDB and reachable Redis. Do not install the backend plugin on the proxy.
Download MailboxGUIDiscord support & channel guide
Back to top ↑

Start here

MailboxGUI & DiscBridge version compatibility

MailboxGUI version / editionDiscBridge version / editionPairing notes
MailboxGUI 5.1.1 FreeDiscBridge 1.1.1Historical pairing; both versions are no longer supported.
MailboxGUI 6.0.0 FreeDiscBridge 2.0.0 FreeSingle-server pairing.
MailboxGUI 6.1.0 FreeDiscBridge 2.1.0 FreeCurrent Free pairing.
MailboxGUI 6.1.0 PremiumDiscBridge 2.1.0 PremiumCurrent Premium pairing; each product has its own license.

For 6.1.0 / 2.1.0, Free must pair with Free and Premium must pair with Premium. Buying one Premium product does not include the other. DiscBridge 2.1.0 requires the MailboxGUI 6.1.0-era integration and a compatible API protocol; do not install it as a drop-in addon for 5.1.1 or 6.0.0. Check future release requirements before mixing versions.

Back to top ↑

Start here

Free & Premium: complete comparison

The two columns compare the same capability row by row. “Premium” identifies a paid plugin feature; the optional resource pack and DiscBridge Premium are separate products and do not automatically license one another.

Free EditionPremium Edition
Physical mailbox stylesAll supported styles and all shulker colors.Physical mailbox stylesSame physical styles.
Multiple personal mailboxesConfigurable limit; default 5 per player.Multiple personal mailboxesSame, with shared network registration.
Mailbox build guide and named kitsIn-game guide, configurable kits, usage limits and reminders.Mailbox build guide and named kitsSame, plus coordinated network kit usage/main backend.
Public Access MailboxesShared access points opening each visitor’s own inbox.Public Access MailboxesSame, with shared network registrations.
Public Access NPCsOptional Citizens integration.Public Access NPCsSame, with network-aware registration locations.
Live inboxesFour 36-item pages, persistent overflow and live refresh.Live inboxesSame, plus cross-backend refresh after committed changes.
Inbox filtersDate, type, expiration and admin-origin mail.Inbox filtersSame filters.
Read-only mailbox checkGUI/chat options; optional readable paper letters.Read-only mailbox checkSame, without bypassing network restrictions.
Delayed-mail trackingTrack mail already waiting for its delivery deadline.Delayed-mail trackingSame, with network delivery diagnostics.
Paper lettersComposition, reading, reply flow and optional expiration.Paper lettersSame, plus Premium backend/group restrictions.
Book lettersWritten books, title, information page and controlled reply/back links.Book lettersSame, plus Premium backend/group restrictions.
Packages28 content positions, retained contents, optional attached message.PackagesSame, plus Premium compatibility checks between backends.
Experience packagesConfigurable XP rewards and sender withdrawal.Experience packagesSame; checked logical XP supports cross-version claims.
Loaded shulker boxesOptional setting; disabled by default.Loaded shulker boxesSame; nested items must also pass network compatibility.
Cash on demandVault, item/template/XP currency, combined prices and returns.Cash on demandSame, with distributed transaction/claim protection.
Money mailVault and an economy provider required; optional message.Money mailSame, with coordinated network claims.
Message formattingLegacy/HEX/visual MiniMessage; /n breaks and shared limits.Message formattingSame formatting.
Delivery delay and expirationMail-type delay defaults; optional admin/API/scheduled expiration.Delivery delay and expirationSame, with coordinated network delayed workers.
Online/offline notificationsText, sound, login summaries and preferences with separate category help and notification status.Online/offline notificationsSame, delivered on the current hosting backend.
Floating new-mail itemsPrivate personal/public indicators and customizable appearances.Floating new-mail itemsSame, refreshed across backend registration/mail events.
Admin ToolsCompose, inspect/manage player inboxes, registrations and templates.Admin ToolsSame, plus Premium Network Tools.
Shared Admin InboxLocal staff inbox, COD payments/returns, claims, clearing and notices.Shared Admin InboxNetwork-wide staff inbox and synchronized notification preferences.
Admin send commandsPaper/book/package/COD/money, audiences and message flags.Admin send commandsSame, plus Premium backend/group targeting flags.
Scheduled mailAll four mail types, recurrence, audiences, notifications and expiration.Scheduled mailSame, plus shared/network-local scopes, owners, targets and history.
Custom item templatesPreserve a held item for admin commands and schedules.Custom item templatesSame, with network template-change reconciliation.
StorageYAML, SQLite or MySQL/MariaDB; deliberate backed-up conversion.StorageSame standalone options; shared MySQL/MariaDB required for networking.
Upgrade protectionData-version 7 migration, snapshots and preservation of custom settings.Upgrade protectionSame, plus fenced legacy 5.0.0–5.1.1 network migration.
Languages and command syntax16 locales, independent display/command settings, English retained.Languages and command syntaxSame, including translated Premium commands/tools.
GUI customizationEdition-specific gui.yml, models, variants and safe original-icon fallback.GUI customizationSame, plus Premium network/restricted-mail roles and GUI scopes.
Optional ItemsAdder integrationRegistry item appearances and floating-item support.Optional ItemsAdder integrationSame, with assets required on each participating backend/client pack.
Paid MailboxGUI Resource PackSeparate purchase; Free-edition bundle has 95 custom models.Paid MailboxGUI Resource PackSame separate purchase; Premium-edition bundle has 122 custom models.
DynmapOptional personal/public/NPC marker layers.DynmapSame; remote/missing registration locations remain explicit.
PlaceholderAPIShared statistics, mail, capacity, delivery, registry and preference values.PlaceholderAPISame, plus Premium backend/group/claim-eligibility placeholders.
Developer APIContract 2.0: mail/query/mutation, schedules, registry, events and providers.Developer APISame, plus a separate Premium read-only network API.
DiscBridge companionRequires DiscBridge 2.1.0 Free for this version.DiscBridge companionRequires DiscBridge 2.1.0 Premium; separately licensed.
UpdatesCredential-free Free release channels.UpdatesProtected Premium downloads using a matching valid license/account.
Optional SpigotMC purchase linkingNot a Free license feature.Optional SpigotMC purchase linkingProduct-specific verified purchase linking; not needed to run the plugin.
Network mail across backendsNot included.Network mail across backendsPremium: shared database, Redis coordination and shared inboxes.
Backend presenceNot included.Backend presencePremium: hosting backend/world, freshness and online recipient discovery.
Backend targetingNot included.Backend targetingPremium: one backend, several, exclusions, or configured groups.
Multiverse / multiple backend worldsLocal world access works without networking.Multiverse / multiple backend worldsPremium: multi-world registration/presence on each backend; backend IDs are not world IDs.
Mixed Minecraft backend versionsNo cross-backend network.Mixed Minecraft backend versionsPremium: opt-in multiversion profiles, manifests and restricted claims.
Partial supported-item claimsNot a cross-version network function.Partial supported-item claimsPremium: opt-in safe per-entry claims, retaining unsupported contents.
Distributed safetyLocal revision/session checks.Distributed safetyPremium: renewable owner/mail/COD/delivery leases and generation fencing.
Shared player/admin preferencesLocal player preferences.Shared player/admin preferencesPremium: shared notification/admin/kit and network GUI preferences.
GUI network scopeLocal GUI settings.GUI network scopePremium: shared or backend-local appearances; shared publisher control.
Network scheduled ownersOne standalone executor.Network scheduled ownersPremium: distributed or explicit owner; conflict/authority checks and occurrence receipts.
Network recoveryLocal persistence and preserved unreadable records.Network recoveryPremium: durable event outbox, bounded replay and revision reconciliation.
Network Tools and support exportsNot included.Network Tools and support exportsPremium: Backends, Connections, Mail Delivery, Consistency, sanitized reports.
Remote registration cleanupLocal registration lifecycle.Remote registration cleanupPremium: remote invalidation and guarded deferred sign cleanup.
Back to top ↑

Start here

Install Free or Premium standalone

  1. Back up the existing plugin folder and selected database before changing editions or versions. For a new server, confirm the server/Java requirements first.
  2. Download the correct edition’s final MailboxGUI jar and place one MailboxGUI jar in plugins/. Do not use a Maven original-* artifact or keep duplicate Free/Premium jars.
  3. Start the server through your usual maintenance process. Inspect the console for a successful load and generated plugins/MailboxGUI/ files.
  4. Review config.yml: default storage is SQLITE at data/data.db. Leave Premium network.enabled false for standalone use. Configure optional integrations only if installed.
  5. Give staff appropriate permissions, run /mb guide, create/register a mailbox, then test a paper letter and a package. Enable command-only access only if desired.
  6. Edit existing YAML using spaces and preserve keys/types. Run /mba reload for supported configuration changes. Root-language registration and storage migration need the separate procedures below.
Optional command access — merge into existing config.yml
mailbox:
  command-open:
    enabled: true
    worlds:
      enabled: true
      whitelist: [world, survival]
package:
  player-command-send:
    enabled: true
money:
  player-command-send:
    enabled: true

These are configuration fragments, not replacements for the full file. Permissions do not enable a feature that its configuration disables. World whitelists are local access rules; they are not Premium backend targeting.

Sending routes and exact new-install defaults

Player enablement, player-command enablement, Admin Tools sending and administrator/console sending are different routes. The table uses values read directly from the bundled config.yml, not example overrides. API and scheduled sending use their own validated request/task path rather than the Admin Tools or admin-command switches. Disabling new sending does not delete existing mail or prevent normal receiving/claiming.

Configuration keyBundled defaultPurpose / scope
mailbox.command-open.enabledfalsePlayer /mb open; disabled does not block physical access.
mailbox.allow-player-self-sendtrueInclude the sending player in normal player recipient menus.
mailbox.loaded-shulker-box.enabledfalsePermit nonempty shulkers in player/admin/API packages.
mailbox.mailbox-check-command.settingguigui or text; neither is a package-claim route.
mailbox.mailbox-check-command.paper-letter-readabletrueExpose paper bodies in the read-only check GUI.
mailbox.kit.usage1Total kit claims per player; 0 means unlimited, not one use per kit.
mailbox.kit.notification-frequency-minutes00 disables periodic reminders; examples using 30 are custom settings.
letter.paper-letter.enabledtrueNew player sending only; existing letters remain readable.
letter.paper-letter.player-command-send.enabledtruePlayer /mb letter also requires this type to be enabled.
letter.paper-letter.admin-mail.send.enabledtrueAdmin Tools composition, independent of the player toggle.
letter.paper-letter.admin-mail.command-send.enabledtrueAdmin/console send commands, independent of Admin Tools.
letter.paper-letter.delivery-delay-seconds5Default delay from enqueue time, in wall-clock seconds.
letter.book-letter.enabledtrueNew player sending only; existing letters remain readable.
letter.book-letter.player-command-send.enabledtruePlayer /mb letter also requires this type to be enabled.
letter.book-letter.admin-mail.send.enabledtrueAdmin Tools composition, independent of the player toggle.
letter.book-letter.admin-mail.command-send.enabledtrueAdmin/console send commands, independent of Admin Tools.
letter.book-letter.delivery-delay-seconds5Default delay from enqueue time, in wall-clock seconds.
package.enabledtrueNew player sending; admin routes have their own switches.
package.player-command-send.enabledfalsePlayer /mb package, separate from mailbox-based composition.
package.admin-mail.send.enabledtrueNew Admin Tools mail.
package.admin-mail.command-send.enabledtrueNew admin/console command mail.
package.delivery-delay-seconds5Default send delay; request overrides can select 0.
money.enabledtrueNew player sending; admin routes have their own switches.
money.player-command-send.enabledfalsePlayer /mb money, separate from mailbox-based composition.
money.admin-mail.send.enabledtrueNew Admin Tools mail.
money.admin-mail.command-send.enabledtrueNew admin/console command mail.
money.delivery-delay-seconds5Default send delay; request overrides can select 0.
package.cash-on-demand.enabledtrueMaster switch for both monetary and item-currency COD.
package.cash-on-demand.vault-economy-currencytrueMoney option additionally requires Vault and an economy provider.
package.cash-on-demand.item-currencytrueItems, templates and XP price components.
package.cash-on-demand.send-reward-in-mailtruePlayer monetary COD payout as money mail rather than direct deposit.
public-mailbox.enabledtruePublic access registration/opening master switch.
public-mailbox.mailboxes.enabledtruePhysical Public Access Mailbox registration/opening.
public-mailbox.mailboxes.allow-any-player-opentrueWhen false, require the public-mailbox access permission.

World restrictions use each route’s worlds.enabled and worlds.whitelist. Enable a whitelist before expecting it to take effect; the applicable focused world-bypass permission does not bypass a disabled send route. No default expiration-duration setting exists in config.yml: choose expiration through Admin Tools, --expire, a scheduled task, or an API request.

Back to top ↑

Player mail

Physical mailboxes, styles & kits

Build and register a personal mailbox

  1. Use /mb guide to see designs available on the running server. Use /mb kit or /mb kit <kit-id> if kits are enabled and your usage allowance remains.
  2. For a classic personal design, place a fence, a single supported body block above it, and a regular wall sign attached to the front. Use a single chest, not a double chest.
  3. For a wall-shelf design, mount a supported shelf against a wall and align the regular wall sign below it with the same mounting wall. This design does not require a fence.
  4. Run /mb register and follow the selection prompt for the build. The plugin writes the configured sign format; you do not need to invent a special marker word.
  5. Right-click the registered mailbox to open your inbox. Use /mb unregister and the prompted selection workflow to remove a personal registration.
Body/styleMinimum stable Minecraft material version / notes
CHEST / TRAPPED_CHESTAvailable throughout the supported 1.18.2+ range. Single-body classic design.
BARRELAvailable throughout the supported 1.18.2+ range.
SHULKER_BOX and all 16 colorsAvailable throughout the supported 1.18.2+ range. White, orange, magenta, light blue, yellow, lime, pink, gray, light gray, cyan, purple, blue, brown, green, red and black.
DROPPER / DISPENSER / ENDER_CHESTAvailable throughout the supported 1.18.2+ range.
CHISELED_BOOKSHELFMinecraft 1.20+.
CRAFTERMinecraft 1.21+.
Copper chestsMinecraft 1.21.9+: copper, exposed, weathered, oxidized and all four waxed variants.
All available *_SHELF materialsMinecraft 1.21.9+: wall-mounted design; runtime material discovery controls availability.

Use regular signs, not hanging signs. Newer bodies and wood types cannot be enabled on a server that lacks their materials. The guide only offers supported designs; an entire kit is unavailable if any required material is unsupported.

Minecraft 1.21.9 material reference — copper chests and shelves

Kits, limits and indicators

The default mailbox limit is 5 per player. Kits are named material lists, not restrictions on which valid designs can be registered. Default enabled examples include Classic_Mailbox, Classic_Barrel, Copper_Chest and Wall_Shelf_Mailbox; newer-server kits may be unavailable on older versions. Disabled shulker examples do not mean other colors are unsupported. Usage defaults to 1; 0 means unlimited. Reminder frequency 0 disables periodic reminders even when the notification flag is true.

Exact bundled mailbox limit and kit defaults — block-list syntax
mailbox:
  max-mailboxes-per-player: 5
  kit:
    enabled: true
    usage: 1
    notification: true
    notification-frequency-minutes: 0
    kits:
      Classic_Mailbox:
        enabled: true
        kit-contents:
          - CHEST:1
          - OAK_SIGN:1
          - OAK_FENCE:1
      Classic_Barrel:
        enabled: true
        kit-contents:
          - BARREL:1
          - DARK_OAK_SIGN:1
          - DARK_OAK_FENCE:1
      Copper_Chest:
        enabled: true
        kit-contents:
          - WAXED_COPPER_CHEST:1
          - ACACIA_SIGN:1
          - ACACIA_FENCE:1
      Wall_Shelf_Mailbox:
        enabled: true
        kit-contents:
          - MANGROVE_SHELF:1
          - MANGROVE_SIGN:1
      Green_Shulker:
        enabled: false
        kit-contents:
          - GREEN_SHULKER_BOX:1
          - SPRUCE_SIGN:1
          - SPRUCE_FENCE:1
      Pink_Shulker:
        enabled: false
        kit-contents:
          - PINK_SHULKER_BOX:1
          - CHERRY_SIGN:1
          - CHERRY_FENCE:1
      Dropper:
        enabled: false
        kit-contents:
          - DROPPER:1
          - PALE_OAK_SIGN:1
          - PALE_OAK_FENCE:1
      Dispenser_Kit:
        enabled: false
        kit-contents:
          - DISPENSER:1
          - CHERRY_SIGN:1
          - CHERRY_FENCE:1
      Ender_Chest:
        enabled: false
        kit-contents:
          - ENDER_CHEST:1
          - WARPED_SIGN:1
          - WARPED_FENCE:1
      Chiseled_Bookshelf:
        enabled: false
        kit-contents:
          - CHISELED_BOOKSHELF:1
          - ACACIA_SIGN:1
          - ACACIA_FENCE:1
      Crafter:
        enabled: false
        kit-contents:
          - CRAFTER:1
          - BAMBOO_SIGN:1
          - BAMBOO_FENCE:1

kit-contents is a YAML list of strings. Write one MATERIAL:amount entry after each dash, with no space between the material and colon; CHEST:1 is a string, whereas CHEST: 1 becomes a YAML mapping and is not a kit item. Keep enabled and kit-contents beneath the named kit, not beneath mailbox.kit directly. Do not use item/template/XP package syntax for building kits.

Custom Blue_Shulker kit and 30-minute reminders — not the defaults
mailbox:
  kit:
    notification-frequency-minutes: 30
    kits:
      Blue_Shulker:
        enabled: true
        kit-contents:
          - BLUE_SHULKER_BOX:1
          - OAK_SIGN:1
          - OAK_FENCE:1

Merge the custom kit into your existing mailbox.kit.kits map; do not replace other kits or create duplicate mailbox keys. /mb kit gives the only available kit immediately, otherwise lists available kits; /mb kit page 2 pages the list and /mb kit Blue_Shulker selects by name. Names are case-insensitive. usage counts claims across all kits, not once per kit; spare inventory space is recommended because leftover blocks drop at the player’s location. Reload with /mba reload and test with a player who has mailboxgui.player.kit and remaining uses.

Personal and Public Access floating new-mail items are owner-specific indicators, not collectible rewards or public unread-mail disclosures. config.yml controls their enablement/base material; gui.yml can style them without changing their position, privacy or lifecycle.

Back to top ↑

Player mail

Public Access Mailboxes & NPCs

Public Access Mailboxes are communal access points: each visitor opens their own mail, never a shared chest of other players’ deliveries. They replace the old “Post Office / PO Box” wording. Personal registration, public registration and the Shared Admin Inbox are three different concepts.

  1. Enable public-mailbox and its mailboxes subsection in config.yml. Build a supported public mailbox; classic public builds do not require the personal fence.
  2. Open /mba tools and the Public Access Mailbox registration workflow. Select/register the location and assign its public name through the prompts.
  3. Test with a non-admin account. If allow-any-player-open is false, grant mailboxgui.player.postoffice.pobox to intended users.
  4. Use the registration overview to manage locations. Public mailbox unregister uses Shift-Right-Click; review the selection before confirming.
  5. For an NPC access point, install Citizens and use the Public Access NPC registration workflow in Admin Tools. Grant mailboxgui.player.postoffice.npc where needed.

Sign templates use %publicmailboxname%; legacy %postofficename% values are migrated. Public registration lists, Dynmap wording and GUI lore use current terminology, while historical permission/API/SQL names may remain for compatibility. Verified Citizens NPC identities are excluded from ordinary player imports; real-player evidence takes precedence during backed-up cleanup.

Back to top ↑

Player mail

Inboxes, filters, checks & tracking

A player inbox has four pages of 36 mail positions (144 active positions). Persistent overflow waits for space; it is already delivered mail and is different from a delayed-mail queue whose arrival deadline has not been reached. Use global page controls and Refresh where shown. Live views update after sends, claims, edits and deletions.

Filter / commandBehavior
By dateDate ordering of inbox entries.
By typeGroup/order by mail type.
By expirationShow mail carrying an expiration deadline; not a generic new-mail filter.
Admin mailFilter by stored administrative/API origin, not the cosmetic sender name.
/mb checkRead-only GUI or configured chat preview. Opening the preview does not claim packages or mark mail checked. Paper-letter reading can be allowed separately.
/mb trackQueued delayed deliveries and remaining time; not future schedule definitions.
Read-only check and tracking settings
mailbox:
  mailbox-check-command:
    setting: gui
    paper-letter-readable: true
  mail-tracking:
    enabled: true

To use chat summaries set mailbox.mailbox-check-command.setting: text, not chat. paper-letter-readable affects only the GUI preview. Opening a real inbox marks its normal mail-notification state checked; /mb check is deliberately read-only and leaves that state intact.

A floating indicator, unchecked count, inbox occupancy and delayed count represent different states. Expired mail is excluded where documented; stored occupancy may still include it until cleanup. A package window is a revision-checked view, not a long-lived lock on the whole inbox. A stale click refreshes instead of claiming an item that moved.

Back to top ↑

Player mail

Paper letters, book letters & formatting

Use a registered mailbox’s compose controls or /mb letter when player command sending is enabled. Paper and book types have independent enablement, player command/world rules, admin send rules, server sender names and delivery delays. Both default to enabled with a five-second delivery delay.

When only one player letter type is enabled, composition skips the type chooser; with both enabled, select paper or book first. The type-level enabled value controls player sending only, not administrator/API/scheduled mail or reading letters already received. There is no shared letter.enabled key in the 6.1.0 default.

  • Paper letters use a text body displayed with translated mail information. Follow recipient/message prompts and review before sending.
  • Book letters use a temporary writable book and title/sign workflow. Cancelling restores protected hotbar state; do not replace the plugin’s temporary-book lifecycle with unrelated book commands.
  • The information page can show sender, date, title, expiration and controlled Reply/Back links. Eligible player-origin books can reply; admin-origin books do not create an arbitrary player reply target.
  • Taking the finished book removes internal inbox navigation links. Reading closes the physical inbox; returning from the book does not silently reopen an old transactional inventory.

Colors, line breaks and body limits

Supported display styles include legacy & colors, compact &#4498DB and expanded HEX, and visual MiniMessage colors/decorations/gradients/rainbow/reset. Interactive click, hover, command and custom-font tags are not executed. Built-in book navigation is controlled by the plugin, not sender-written tags.

English paper and book command examples
/mba sl Alex "&#4498DBWelcome!/n&fEnjoy your stay." --from "&6Server" --delay 0 --expire 7d
/mba sla Alex "Your town guide starts here." --title "Town Guide" --from "&6Mayor"

Use /n for a manual newline and //n for literal /n. Quote formatted YAML strings because an unquoted # starts a YAML comment. Sender-written messages survive stored delivery, delay, returns and reloads; editing a language template does not rewrite those payloads.

Back to top ↑

Player mail

Packages, XP, templates & attachments

Packages use a 54-slot menu with 28 content positions: 10–16, 19–25, 28–34 and 37–43. Navigation and decoration are not payload slots. Claims retain unclaimed contents and validate the current mail revision. gui.yml only changes presentation, never real items or inventory dimensions.

  • Player package composition is available from the mailbox when enabled; /mb package is disabled by default until package.player-command-send.enabled is true.
  • Optional messages use the same formatting/line limits as paper letters. --message is supported for admin packages, COD and money mail; messages are kept after acceptance and returns.
  • XP can be included as a checked reward. package.experience.enabled defaults true, max-experience-per-package -1 means no configured cap, and withdraw-from-sender-on-send defaults true for player sending.
  • Loaded shulker sending is controlled by mailbox.loaded-shulker-box.enabled and defaults false. Enabling it does not bypass nested-content compatibility in Premium networking.
  • Save a held custom item with /mba itemtemplate save event_sword. Use t:event_sword:1 in an admin package or schedule instead of assuming MATERIAL syntax can reproduce custom metadata.
Template and package command examples
/mba itemtemplate save event_sword
/mba sp Alex DIAMOND:3 EMERALD:5 xp:250 --message "&bEvent rewards!/n&fThank you." --delay 0
/mba sp Alex t:event_sword:1 --from "&6Event Team" --expire 3d
Back to top ↑

Player mail

COD payments, returns & money mail

COD means cash on demand: the recipient previews the package and must accept its required payment before claiming protected contents. Prices can combine economy money and item/template/XP currency. Enable package.cash-on-demand and the chosen currency mechanisms; Vault plus an economy provider is required only for monetary components.

English COD and money examples
/mba scod Alex p:250 DIAMOND:3 --message "Auction purchase" --expire 2d
/mba scod Alex p:EMERALD:10 DIAMOND:3
/mba scod Alex p:250,EMERALD:10 r:admin DIAMOND_BLOCK:1 --message "Pay both price components"
/mba sm Alex 100 --message "Weekly reward" --from "&6Rewards" --delay 0

p:/price: supply the price; r:/return: supply the return destination. r:admin routes eligible returns/payments to the Shared Admin Inbox, not a player named “admin”. t:/template: refer to saved items and xp: to experience. Price/contents must be valid and fit the package capacity. Preview is not acceptance; item-currency payment and returned packages are distinct stored mail types.

send-reward-in-mail defaults true: player monetary COD rewards are delivered as money mail instead of directly through the provider. Return behavior also depends on the selected return destination/flow. Decline/expiration can return contents; a message stays attached to accepted or returned packages. Money mail withdraws/pays through the configured economy rather than being a decorative number.

COD and money display configuration
package:
  cash-on-demand:
    enabled: true
    vault-economy-currency: true
    item-currency: true
    send-reward-in-mail: true
money:
  enabled: true
  display-format-mode: PROVIDER
  custom-format: "$%amount%"
  amount-format: "#,##0.00"
Back to top ↑

Player mail

Notifications & player preferences

Players can choose online text notices, notification sound, simple/advanced/off login summaries and kit reminders independently. /mb settings and /mb settings help show the available notification, resource-pack and Discord categories, not a combined status dump. If only notifications are available, they open notification help directly. Non-Discord settings help uses the main MailboxGUI version header, localized descriptions and your command syntax.

Open help or statusWhat it shows
/mb settings notification or /mb settings notification helpDescriptions and syntax for notification status, offline, online, soundalert and the eligible kit toggle.
/mb settings notification statusCurrent notification choices; kit state and remaining uses appear only when eligible. Unlimited uses are localized.
/mb settings resourcepack or /mb settings resourcepack helpResource Pack: On/Off/Auto followed by descriptions of the on, off and auto commands. Hidden when customization/policy disallows this preference.
Discord categoryVisible only through a compatible, ready DiscBridge with its player-command setup gate enabled. Follow the companion guide linked below.
English preference help, status and changes
/mb settings
/mb settings help
/mb settings notification
/mb settings notification help
/mb settings notification status
/mb settings notification offline advanced
/mb settings notification online on
/mb settings notification soundalert off
/mb settings notification kit on
/mb settings resourcepack help
/mb settings resourcepack auto

Kit preference availability requires enabled kits, enabled kit notifications and remaining uses. A notification-frequency-minutes value of 0 disables automatic reminders, but no longer hides the kit toggle, help, completion or notification status. Changing the personal toggle does not override that server interval. Exhausted/disabled kits do not expose the control.

DiscBridge player help, paged guide and notification commands

Floating new-mail items are protected owner-specific visuals. config.yml controls personal/public notification enablement and original material; sounds.yml supplies sound settings. Disabling text/sound does not stop mail from arriving. Silent admin/API/scheduled deliveries still refresh normal inbox state.

Back to top ↑

Administration

Admin Tools & Shared Admin Inbox

Open /mba tools for the supported admin inventory workflows: compose mail, select individual/bulk audiences, inspect player inboxes, manage registrations/public access and use templates. Controls are permission-checked; a hidden/unavailable function is not enabled by changing its icon. Package composition keeps Send, XP, COD and Cancel click actions aligned with the displayed layout even when item-currency COD is available but Vault monetary COD is not; backend targeting and expiration do not shift those actions.

  • Admin Check Player Inbox uses date ordering independently of the player’s chosen filter. It refreshes after player/admin changes while retaining the correct owner/session.
  • Package management separates viewing/taking contents from Shift-Right-Click to Delete Package. Review the displayed action before deleting; sender attachments and current revisions remain protected.
  • Shared Admin Inbox is available in BOTH editions. Open /mba admininbox or /mba ai. It can hold staff mail, COD item-currency payments, monetary payouts and declined/expired returns.
  • Focused permissions govern staff opening, taking, deletion, money collection, clearing COD returns, clearing all and notifications. /mba inboxnotification on|off toggles your staff notices.
  • The obsolete mailbox.admin-mailbox configuration block is not a required enablement switch. Do not add old keys to activate the current Shared Admin Inbox.
Admin navigation and audience examples
/mba tools
/mba admininbox
/mba inboxnotification on
/mba sl Alex,Sam "Server maintenance tonight" --from "&6Staff"
/mba sp onlineplayers DIAMOND:1 --message "Event prize"
/mba sm offlineplayers 25 --message "Welcome back reward"

Bulk audiences are allplayers, onlineplayers and offlineplayers; comma-separated recipients can combine known names and audience tokens. Selection resolves before mutation. admin-mail.include-sender-in-bulk-audiences controls whether the sending player is included. Do not confuse the visible sender label with mail origin or permission.

Back to top ↑

Administration

Command structures & examples

Canonical English roots are /mailbox or /mb for players and /mailboxadmin or /mba for admins. /mailbox admin exposes the admin route too. Commands below are typed by players with a slash; omit the slash in a server console. <angle brackets> are required values; [square brackets] are optional; | means choose one value. Do not type the brackets or a literal ellipsis.

Player commands

English structurePurpose / requirement
/mb help [page]Command help and pagination.
/mb guide [page]Supported physical designs for this running server.
/mb kit [kit-id]Select/receive an available named kit.
/mb kit page <number>Browse kit pages.
/mb registerStart personal physical-mailbox registration.
/mb unregisterStart personal mailbox removal.
/mb openOpen the inbox if command access and its world rules are enabled.
/mb letterCompose an enabled paper/book letter.
/mb packageCompose a package if command sending is enabled.
/mb moneyCompose money mail if enabled and economy is available.
/mb checkRead-only inbox preview; not a package-claim shortcut.
/mb trackView queued delayed deliveries, not future scheduled tasks.
/mb settingsOpen available settings categories; opens notification help directly when it is the only category.
/mb settings helpOpen the same contextual category help as settings.
/mb settings notificationOpen notification command help, not the current-value status view.
/mb settings notification helpExplain available notification commands.
/mb settings notification statusShow current offline/online/sound choices and eligible kit reminder state.
/mb settings notification offline simple|advanced|offChoose the login summary mode.
/mb settings notification online on|offToggle online text notices.
/mb settings notification soundalert on|offToggle notification sound.
/mb settings notification kit on|offToggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/mb settings resourcepackShow Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/mb settings resourcepack helpShow the resource-pack preference and command explanations.
/mb settings resourcepack on|off|autoSelect appearance mode when server policy allows it.

Admin commands

English structurePurpose / requirement
/mba help [page]Admin command help.
/mba toolsOpen the Admin Tools inventory.
/mba admininboxOpen the Shared Admin Inbox; alias ai.
/mba inboxnotification on|offToggle your Shared Admin Inbox notices.
/mba register <player>Register a physical personal mailbox for another player.
/mba unregisterStart admin unregister selection.
/mba import player <name1,name2,...>Import known real player identities; verified Citizens NPCs are excluded.
/mba convert currentInspect the selected storage provider.
/mba convert YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/mba purge <player|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/mba cleanBacked-up legacy-data cleanup; in-game confirmation is by chat.
/mba clean confirmConsole-only cleanup confirmation.
/mba scheduledmail reload|listValidate/reload tasks or list them.
/mba scheduledmail info|run|enable|disable <task-id>Inspect/test/change an existing task.
/mba itemtemplate save <id>Save your held item as a named template.
/mba itemtemplate delete <id>Remove a template.
/mba itemtemplate list [page]Browse stored templates.
/mba itemtemplate give <id> [player]Give a saved template item.
/mba reloadStage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/mba updatecheckCheck available releases and explain channel differences.
/mba update [confirm]Install only from the configured release channel, with confirmation.

Admin sending

English structurePurpose / requirement
/mba sl <recipients> "<message>" [flags]Paper letter.
/mba sla <recipients> "<message>" --title "<title>" [flags]Book letter; title required.
/mba sp <recipients> <item...> [flags]Standard package; optional --message.
/mba scod <recipients> p:<price> [r:<return-to>] <item...> [flags]COD package; optional --message.
/mba sm <recipients> <amount> [flags]Money mail; optional --message; economy required.

Premium-only commands

English structurePurpose / requirement
/mba networkindexPremium: index local world playerdata into the shared recipient lookup.
/mba redis [status]Premium: Redis/runtime status; not a switch to bypass network health.
/mba updatelogin statusPremium: inspect whether protected update credentials are configured.
/mba updatelogin set <username> <password>Premium: console-only credential change; protect command logs.
/mba updatelogin clearPremium: console-only credential removal.
/mba spigotlink <account-link-code>Premium: optional verified SpigotMC linking; keep this canonical command in English.

DiscBridge-specific command entry points

Base command onlyPurpose / requirement
/mb settings discordPlayer Discord notification settings supplied by DiscBridge. Requires installed, detected and enabled DiscBridge.
/mba discordAdministrative Discord controls supplied by DiscBridge. Requires installed, detected and enabled DiscBridge.

The player category also honors the companion’s administrator-controlled setup gate and DiscordSRV readiness. Premium can forward integrated commands to a compatible companion on the DiscordSRV backend; changes persist on that host. A disabled/incompatible recovery-capable companion may retain authorized update-only administration without restoring normal Discord settings or notifications. The companion wiki explains its paged help, player guide and recovery limits.

DiscBridge wiki — player commands and setupDiscBridge wiki — administrator commands

Send flags and payload grammar

Common flags: --from "sender" (-f), --delay <seconds> (-d), --expire <duration>; book letters require --title "title" (-t). Packages, COD and money accept --message "body", including the supported equals form. Explicit sender/delay override the corresponding mail-type config. Duration examples: 30s, 10m, 2h, 2hr, 7d. Keep recipients CSV free of spaces and quote multiword text.

English flag examples — final four require Premium networking
/mba sl Alex "A delayed letter" --delay 60 --expire 7d
/mba sp Alex,Sam DIAMOND:2 --message="Thank you"
/mba sla onlineplayers "Rules and welcome" --title "Welcome"
/mba sp Alex DIAMOND:1 --server survival
/mba sp Alex DIAMOND:1 --servers survival,lobby
/mba sl Alex "Event invitation" --exclude-servers creative
/mba sm Alex 50 --server-group gameplay

Testing commands and destructive actions

Debug/testing structures — require debug enablement and focused permissions
/mba testletter paper|book <player> <amount>
/mba testpackage standard|codv|codi|codvi|codip|codr|coda <amount> <player>
/mba testmoney standard|cod <player>
/mba testaipackage codr|codi <amount>
/mba testaimoney <amount>

Testing routes are administrative fixtures, not player economy shortcuts. Use only a controlled test environment. Purge first displays a preview; /mba purge <player|all> CONFIRM deletes inbox mail and all also includes the Shared Admin Inbox, but does not mean all registrations, delayed mail and schedules are reset. Clean is backed-up legacy-file cleanup: in game follow its chat-confirmation prompt; only console uses clean confirm. Keep a verified backup before either operation.

Hidden test routes require debug.enabled: true in addition to their focused test permission, the admin umbrella or operator access. This optional debug key is not present in the stock config; do not enable it on a public production server merely to send ordinary mail. Supported convenience aliases include /mba ai for admininbox and /mba it save|delete|list|give for itemtemplate; internal book navigation commands are generated by MailboxGUI and should not be typed manually.

Back to top ↑

Administration

All languages & localized command syntax

Display language and executable command syntax are separate. locale.default / auto-detect-player-locale control messages, GUI and date/time presentation. locale.command-syntax.default / auto-detect-player-locale control help, structural aliases, flags and completion. File/config keys and permission nodes remain English.

These MailboxGUI locale settings also control DiscBridge’s local notices and integrated command language. DiscBridge no longer has duplicate locale/default-language settings. On the companion host, MailboxGUI locale.default supplies the Discord DM fallback and mass-mail channel language. A player’s saved Discord language overrides the DM fallback; Minecraft client language never chooses a Discord DM language, including while online.

DiscBridge inherited configuration and language ownership
Spanish default example — independent display and command detection
locale:
  default: es
  auto-detect-player-locale: true
  command-syntax:
    default: es
    auto-detect-player-locale: false
  1. Choose a supported locale and edit config.yml. Customize wording in language/messages_<locale>.yml rather than renaming executable keys.
  2. Use /mba reload for display/template changes. Changing the default COMMAND root language requires your normal planned restart: roots are registered at startup, not replaced by reload.
  3. At startup only English plus the chosen default language’s root set is registered. A default of en registers only English roots; it does not make every translated root available.
  4. With command detection disabled, English roots show English syntax and the registered localized roots show their language. Console and unsupported client locales follow the invoked root.
  5. With command detection enabled, supported client locales change subcommands/help/flags/completion, not which roots exist. English canonical syntax remains accepted; use it as the stable fallback.

Below, every language’s root, localized structures, accepted aliases, flags and argument labels come from the bundled executable dictionaries. Identifiers and values—player names, kit/template/backend IDs, permissions, credentials, codes and message content—are not translated. Structural tokens/audience aliases may have localized spellings; the English p:, r:, t:, xp: forms and English audience names remain usable. Internal book reply/back routes are plugin-managed rather than ordinary player commands.

Language / localePlayer rootsAdmin roots
English (en)/mailbox / /mb/mailboxadmin / /mba
Deutsch (de)/postfach / /pf/adminpostfach / /apf
Español (es)/buzón / /bz/buzónadministrador / /bza
Français (fr)/boîteauxlettres / /bal/boîteauxlettresadmin / /bala
Italiano (it)/casellapostale / /cp/casellapostaleadmin / /cpa
Nederlands (nl)/brievenbus / /bb/beheerbrievenbus / /bbb
Svenska (sv)/brevlåda / /bl/adminbrevlåda / /abl
Polski (pl)/skrzynkapocztowa / /skp/skrzynkaadministratora / /ska
Русский (ru)/почтовыйящик / /пя/ящикадминистратора / /яа
Українська (uk)/поштоваскринька / /пс/скринькаадміністратора / /са
日本語 (ja)/郵便箱 / /郵箱/管理郵便箱 / /管郵
한국어 (ko)/우편함 / /우함/관리자우편함 / /관우
简体中文 (zh_cn)/邮箱 / /邮/管理员邮箱 / /管邮
繁體中文(臺灣) (zh_tw)/信箱 / /郵/管理員信箱 / /管郵
繁體中文(香港) (zh_hk)/郵箱 / /郵/管理員郵箱 / /管郵
Português (Brasil) (pt_br)/caixadecorreio / /cc/caixadecorreioadmin / /cca
English — en: commands, aliases & examples

These roots exist only when this is the configured default root language (English always remains). The final example below requires Premium networking. Values such as Alex, DIAMOND and survival are not translated.

English examples
/mb register
/mb settings resourcepack auto
/mba sl Alex "Welcome!/nEnjoy your stay." --from "Server" --delay 0
/mba sp Alex DIAMOND:1 --message "Your reward"
/mba sp Alex DIAMOND:1 --server survival

Player

Localized structureMeaning / requirement
/mb help [page]Command help and pagination.
/mb guide [page]Supported physical designs for this running server.
/mb kit [kit-id]Select/receive an available named kit.
/mb kit page <number>Browse kit pages.
/mb registerStart personal physical-mailbox registration.
/mb unregisterStart personal mailbox removal.
/mb openOpen the inbox if command access and its world rules are enabled.
/mb letterCompose an enabled paper/book letter.
/mb packageCompose a package if command sending is enabled.
/mb moneyCompose money mail if enabled and economy is available.
/mb checkRead-only inbox preview; not a package-claim shortcut.
/mb trackView queued delayed deliveries, not future scheduled tasks.
/mb settingsOpen available settings categories; opens notification help directly when it is the only category.
/mb settings helpOpen the same contextual category help as settings.
/mb settings notificationOpen notification command help, not the current-value status view.
/mb settings notification helpExplain available notification commands.
/mb settings notification statusShow current offline/online/sound choices and eligible kit reminder state.
/mb settings notification offline simple|advanced|offChoose the login summary mode.
/mb settings notification online on|offToggle online text notices.
/mb settings notification soundalert on|offToggle notification sound.
/mb settings notification kit on|offToggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/mb settings resourcepackShow Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/mb settings resourcepack helpShow the resource-pack preference and command explanations.
/mb settings resourcepack on|off|autoSelect appearance mode when server policy allows it.

Administration

Localized structureMeaning / requirement
/mba help [page]Admin command help.
/mba toolsOpen the Admin Tools inventory.
/mba admininboxOpen the Shared Admin Inbox; alias ai.
/mba inboxnotification on|offToggle your Shared Admin Inbox notices.
/mba register <player>Register a physical personal mailbox for another player.
/mba unregisterStart admin unregister selection.
/mba import player <name1,name2,...>Import known real player identities; verified Citizens NPCs are excluded.
/mba convert currentInspect the selected storage provider.
/mba convert YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/mba purge <player|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/mba cleanBacked-up legacy-data cleanup; in-game confirmation is by chat.
/mba clean confirmConsole-only cleanup confirmation.
/mba scheduledmail reload|listValidate/reload tasks or list them.
/mba scheduledmail info|run|enable|disable <id>Inspect/test/change an existing task.
/mba itemtemplate save <id>Save your held item as a named template.
/mba itemtemplate delete <id>Remove a template.
/mba itemtemplate list [page]Browse stored templates.
/mba itemtemplate give <id> [player]Give a saved template item.
/mba reloadStage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/mba updatecheckCheck available releases and explain channel differences.
/mba update [confirm]Install only from the configured release channel, with confirmation.

Sending

Localized structureMeaning / requirement
/mba sl <recipients> "<message>" [flags]Paper letter.
/mba sla <recipients> "<message>" --title "<title>" [flags]Book letter; title required.
/mba sp <recipients> <item...> [flags]Standard package; optional --message.
/mba scod <recipients> p:<price> [r:<return-to>] <item...> [flags]COD package; optional --message.
/mba sm <recipients> <amount> [flags]Money mail; optional --message; economy required.

Premium only

Localized structureMeaning / requirement
/mba networkindexPremium: index local world playerdata into the shared recipient lookup.
/mba redis [status]Premium: Redis/runtime status; not a switch to bypass network health.
/mba updatelogin statusPremium: inspect whether protected update credentials are configured.
/mba updatelogin set <username> <password>Premium: console-only credential change; protect command logs.
/mba updatelogin clearPremium: console-only credential removal.

Use the exact English marketplace command /mba spigotlink <account-link-code> when verification is available.

All accepted structural aliases and flags
English tokenLocalized accepted formsEdition
sendsendShared
discorddiscordPremium only
statusstatusPremium only
resourcepackresourcepackShared
autoautoShared
p:p:Shared
price:price:Shared
r:r:Shared
return:return:Shared
t:t:Shared
template:template:Shared
xp:xp:Shared
truetrueShared
falsefalseShared
enabledenabledShared
disableddisabledShared
allplayersallplayersShared
onlineplayersonlineplayersShared
offlineplayersofflineplayersShared
adminadminShared
helphelpShared
openopenShared
guideguideShared
kitkitShared
letterletterShared
packagepackageShared
moneymoneyShared
checkcheckShared
tracktrackShared
settingssettingsShared
registerregisterShared
unregisterunregisterShared
toolstoolsShared
admininboxadmininbox / aiShared
inboxnotificationinboxnotificationShared
importimportShared
convertconvertShared
purgepurgeShared
reloadreloadShared
updatecheckupdatecheckShared
updateupdateShared
cleancleanShared
scheduledmailscheduledmailShared
itemtemplateitemtemplate / itShared
ititemtemplate / itShared
itsaveitsaveShared
itdeleteitdeleteShared
itlistitlistShared
itgiveitgiveShared
slsendletterpaper / slShared
slasendletteradvancedbook / slaShared
spsendpackage / spShared
scodsendcashondemand / scodShared
smsendmoney / smShared
testlettertestletterShared
testpackagetestpackageShared
testmoneytestmoneyShared
testaipackagetestaipackageShared
testaimoneytestaimoneyShared
pagepageShared
notificationnotificationShared
offlineofflineShared
onlineonlineShared
soundalertsoundalertShared
simplesimpleShared
advancedadvancedShared
offoffShared
ononShared
listlistShared
infoinfoShared
runrunShared
enableenableShared
disabledisableShared
savesaveShared
deletedeleteShared
removeremoveShared
givegiveShared
playerplayerShared
currentcurrentShared
confirmconfirmShared
paperpaperShared
bookbookShared
standardstandardShared
codvcashondemandVault / codvShared
codicashondemanditems / codiShared
codvicashondemandVaultanditems / codviShared
codipcashondemanditempayment / codipShared
codrreturnedcashondemandpackage / codrShared
codaacceptedcashondemandpackage / codaShared
codcodShared
--from--from / -fShared
--delay--delay / -dShared
--expire--expireShared
--message--messageShared
--title--title / -tShared
aiadmininbox / aiShared
updateloginupdatelogin / ulPremium only
spigotlinkSpigotlink / splPremium only
networkindexnetworkindex / niPremium only
redisredisPremium only
setsetPremium only
clearclearPremium only
--server--serverPremium only
--servers--serversPremium only
--exclude-servers--exclude-serversPremium only
--server-group--server-groupPremium only
Argument labels (documentation, not translated values)
English labelLocalized label
playerplayer
recipientrecipient
recipientsrecipients
sendersender
messagemessage
titletitle
secondsseconds
durationduration
amountamount
priceprice
itemitem
idid
pagepage
namename
kitkit
typetype
timetime
fromfrom
playernameplayer
kitnamekit
booktitletitle
task-idid
name1name1
name2name2
name3name3
recipient1recipient1
recipient2recipient2
recipient3recipient3
usernameusername
passwordpassword
account-link-codeaccount-link-code
groupgroup
idsids
Deutsch — de: commands, aliases & examples

These roots exist only when this is the configured default root language (English always remains). The final example below requires Premium networking. Values such as Alex, DIAMOND and survival are not translated.

Deutsch examples
/pf registrieren
/pf einstellungen ressourcenpaket automatisch
/apf papierbriefsenden Alex "Welcome!/nEnjoy your stay." --absender "Server" --verzögerung 0
/apf paketsenden Alex DIAMOND:1 --nachricht "Your reward"
/apf paketsenden Alex DIAMOND:1 --server survival

Player

Localized structureMeaning / requirement
/pf hilfe [seite]Command help and pagination.
/pf anleitung [seite]Supported physical designs for this running server.
/pf bausatz [kit-id]Select/receive an available named kit.
/pf bausatz seite <number>Browse kit pages.
/pf registrierenStart personal physical-mailbox registration.
/pf abmeldenStart personal mailbox removal.
/pf öffnenOpen the inbox if command access and its world rules are enabled.
/pf briefCompose an enabled paper/book letter.
/pf paketCompose a package if command sending is enabled.
/pf geldCompose money mail if enabled and economy is available.
/pf prüfenRead-only inbox preview; not a package-claim shortcut.
/pf verfolgenView queued delayed deliveries, not future scheduled tasks.
/pf einstellungenOpen available settings categories; opens notification help directly when it is the only category.
/pf einstellungen hilfeOpen the same contextual category help as settings.
/pf einstellungen benachrichtigungOpen notification command help, not the current-value status view.
/pf einstellungen benachrichtigung hilfeExplain available notification commands.
/pf einstellungen benachrichtigung statusShow current offline/online/sound choices and eligible kit reminder state.
/pf einstellungen benachrichtigung offline einfach|erweitert|ausChoose the login summary mode.
/pf einstellungen benachrichtigung online an|ausToggle online text notices.
/pf einstellungen benachrichtigung ton an|ausToggle notification sound.
/pf einstellungen benachrichtigung bausatz an|ausToggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/pf einstellungen ressourcenpaketShow Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/pf einstellungen ressourcenpaket hilfeShow the resource-pack preference and command explanations.
/pf einstellungen ressourcenpaket an|aus|automatischSelect appearance mode when server policy allows it.

Administration

Localized structureMeaning / requirement
/apf hilfe [seite]Admin command help.
/apf werkzeugeOpen the Admin Tools inventory.
/apf adminposteingangOpen the Shared Admin Inbox; alias ai.
/apf posteingangshinweis an|ausToggle your Shared Admin Inbox notices.
/apf registrieren <Spieler>Register a physical personal mailbox for another player.
/apf abmeldenStart admin unregister selection.
/apf importieren spieler <Name1,Name2,...>Import known real player identities; verified Citizens NPCs are excluded.
/apf konvertieren aktuellInspect the selected storage provider.
/apf konvertieren YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/apf bereinigen <Spieler|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/apf aufräumenBacked-up legacy-data cleanup; in-game confirmation is by chat.
/apf aufräumen bestätigenConsole-only cleanup confirmation.
/apf zeitplan neuladen|listeValidate/reload tasks or list them.
/apf zeitplan info|ausführen|aktivieren|deaktivieren <ID>Inspect/test/change an existing task.
/apf gegenstandsvorlage speichern <ID>Save your held item as a named template.
/apf gegenstandsvorlage löschen <ID>Remove a template.
/apf gegenstandsvorlage liste [seite]Browse stored templates.
/apf gegenstandsvorlage geben <ID> [spieler]Give a saved template item.
/apf neuladenStage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/apf updatesprüfenCheck available releases and explain channel differences.
/apf aktualisieren [bestätigen]Install only from the configured release channel, with confirmation.

Sending

Localized structureMeaning / requirement
/apf papierbriefsenden <Empfänger> "<Nachricht>" [flags]Paper letter.
/apf buchbriefsenden <Empfänger> "<Nachricht>" --titel "<Titel>" [flags]Book letter; title required.
/apf paketsenden <Empfänger> <item...> [flags]Standard package; optional --message.
/apf nachnahmesenden <Empfänger> p:<Preis> [r:<return-to>] <item...> [flags]COD package; optional --message.
/apf geldsenden <Empfänger> <Menge> [flags]Money mail; optional --message; economy required.

Premium only

Localized structureMeaning / requirement
/apf netzwerkindexPremium: index local world playerdata into the shared recipient lookup.
/apf redis [status]Premium: Redis/runtime status; not a switch to bypass network health.
/apf aktualisierungsanmeldung statusPremium: inspect whether protected update credentials are configured.
/apf aktualisierungsanmeldung setzen <Benutzername> <Passwort>Premium: console-only credential change; protect command logs.
/apf aktualisierungsanmeldung leerenPremium: console-only credential removal.

Use the exact English marketplace command /mba spigotlink <account-link-code> when verification is available.

All accepted structural aliases and flags
English tokenLocalized accepted formsEdition
sendsendenShared
discorddiscordPremium only
statusstatusPremium only
resourcepackressourcenpaketShared
autoautomatischShared
p:preis:Shared
price:preis-lang:Shared
r:rückgabe:Shared
return:rückgabe-lang:Shared
t:vorlage:Shared
template:vorlage-lang:Shared
xp:erfahrung:Shared
truewahrShared
falsefalschShared
enabledaktiviertShared
disableddeaktiviertShared
allplayersallespielerShared
onlineplayersonlinespielerShared
offlineplayersofflinespielerShared
adminverwaltungShared
helphilfeShared
openöffnenShared
guideanleitungShared
kitbausatzShared
letterbriefShared
packagepaketShared
moneygeldShared
checkprüfenShared
trackverfolgenShared
settingseinstellungenShared
registerregistrierenShared
unregisterabmeldenShared
toolswerkzeugeShared
admininboxadminposteingang / apeShared
inboxnotificationposteingangshinweisShared
importimportierenShared
convertkonvertierenShared
purgebereinigenShared
reloadneuladenShared
updatecheckupdatesprüfenShared
updateaktualisierenShared
cleanaufräumenShared
scheduledmailzeitplanShared
itemtemplategegenstandsvorlage / gvShared
itgegenstandsvorlage / gvShared
itsavegegenstandsvorlage-speichernShared
itdeletegegenstandsvorlage-löschenShared
itlistgegenstandsvorlage-listeShared
itgivegegenstandsvorlage-gebenShared
slpapierbriefsenden / pbsShared
slabuchbriefsenden / bbsShared
sppaketsenden / psShared
scodnachnahmesenden / nsShared
smgeldsenden / gsShared
testletterprüfen-briefShared
testpackageprüfen-paketShared
testmoneyprüfen-geldShared
testaipackageprüfen-adminposteingang-paketShared
testaimoneyprüfen-adminposteingang-geldShared
pageseiteShared
notificationbenachrichtigungShared
offlineofflineShared
onlineonlineShared
soundalerttonShared
simpleeinfachShared
advancederweitertShared
offausShared
onanShared
listlisteShared
infoinfoShared
runausführenShared
enableaktivierenShared
disabledeaktivierenShared
savespeichernShared
deletelöschenShared
removeentfernenShared
givegebenShared
playerspielerShared
currentaktuellShared
confirmbestätigenShared
paperpapierShared
bookbuchShared
standardstandardShared
codvnachnahme-Vault / nvShared
codinachnahme-gegenstände / ngShared
codvinachnahme-Vault-und-gegenstände / nvgShared
codipnachnahme-gegenstandszahlung / ngzShared
codrzurückgesendetes-nachnahmepaket / nrShared
codaangenommenes-nachnahmepaket / naShared
codnachnahmeShared
--from--absender / -aShared
--delay--verzögerung / -vShared
--expire--ablaufShared
--message--nachrichtShared
--title--titel / -tShared
aiadminposteingang / apeShared
updateloginaktualisierungsanmeldung / aanPremium only
spigotlinkSpigotverknüpfen / SpigotvPremium only
networkindexnetzwerkindex / nwiPremium only
redisredisPremium only
setsetzenPremium only
clearleerenPremium only
--server--serverPremium only
--servers--serverlistePremium only
--exclude-servers--serverausschlussPremium only
--server-group--servergruppePremium only
Argument labels (documentation, not translated values)
English labelLocalized label
playerSpieler
recipientEmpfänger
recipientsEmpfänger
senderAbsender
messageNachricht
titleTitel
secondsSekunden
durationDauer
amountMenge
pricePreis
itemGegenstand
idID
pageSeite
nameName
kitBausatz
typeTyp
timeZeit
fromAbsender
playernameSpieler
kitnameBausatz
booktitleTitel
task-idID
name1Name1
name2Name2
name3Name3
recipient1Empfänger1
recipient2Empfänger2
recipient3Empfänger3
usernameBenutzername
passwordPasswort
account-link-codeKontoverknüpfungscode
groupGruppe
idsIDs
Español — es: commands, aliases & examples

These roots exist only when this is the configured default root language (English always remains). The final example below requires Premium networking. Values such as Alex, DIAMOND and survival are not translated.

Español examples
/bz registrar
/bz ajustes paquetederecursos automático
/bza enviarcartapapel Alex "Welcome!/nEnjoy your stay." --remitente "Server" --demora 0
/bza enviarpaquete Alex DIAMOND:1 --mensaje "Your reward"
/bza enviarpaquete Alex DIAMOND:1 --servidor survival

Player

Localized structureMeaning / requirement
/bz ayuda [página]Command help and pagination.
/bz guía [página]Supported physical designs for this running server.
/bz kit [kit-id]Select/receive an available named kit.
/bz kit página <number>Browse kit pages.
/bz registrarStart personal physical-mailbox registration.
/bz desregistrarStart personal mailbox removal.
/bz abrirOpen the inbox if command access and its world rules are enabled.
/bz cartaCompose an enabled paper/book letter.
/bz paqueteCompose a package if command sending is enabled.
/bz dineroCompose money mail if enabled and economy is available.
/bz revisarRead-only inbox preview; not a package-claim shortcut.
/bz rastrearView queued delayed deliveries, not future scheduled tasks.
/bz ajustesOpen available settings categories; opens notification help directly when it is the only category.
/bz ajustes ayudaOpen the same contextual category help as settings.
/bz ajustes notificaciónOpen notification command help, not the current-value status view.
/bz ajustes notificación ayudaExplain available notification commands.
/bz ajustes notificación estadoShow current offline/online/sound choices and eligible kit reminder state.
/bz ajustes notificación desconectado simple|avanzado|apagadoChoose the login summary mode.
/bz ajustes notificación conectado encendido|apagadoToggle online text notices.
/bz ajustes notificación sonido encendido|apagadoToggle notification sound.
/bz ajustes notificación kit encendido|apagadoToggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/bz ajustes paquetederecursosShow Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/bz ajustes paquetederecursos ayudaShow the resource-pack preference and command explanations.
/bz ajustes paquetederecursos encendido|apagado|automáticoSelect appearance mode when server policy allows it.

Administration

Localized structureMeaning / requirement
/bza ayuda [página]Admin command help.
/bza herramientasOpen the Admin Tools inventory.
/bza bandejaadministradorOpen the Shared Admin Inbox; alias ai.
/bza avisobuzón encendido|apagadoToggle your Shared Admin Inbox notices.
/bza registrar <jugador>Register a physical personal mailbox for another player.
/bza desregistrarStart admin unregister selection.
/bza importar jugador <nombre1,nombre2,...>Import known real player identities; verified Citizens NPCs are excluded.
/bza convertir actualInspect the selected storage provider.
/bza convertir YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/bza purgar <jugador|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/bza limpiarBacked-up legacy-data cleanup; in-game confirmation is by chat.
/bza limpiar confirmarConsole-only cleanup confirmation.
/bza correo-programado recargar|listaValidate/reload tasks or list them.
/bza correo-programado información|ejecutar|activar|desactivar <id>Inspect/test/change an existing task.
/bza plantilladeobjeto guardar <id>Save your held item as a named template.
/bza plantilladeobjeto borrar <id>Remove a template.
/bza plantilladeobjeto lista [página]Browse stored templates.
/bza plantilladeobjeto dar <id> [jugador]Give a saved template item.
/bza recargarStage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/bza buscaractualizaciónCheck available releases and explain channel differences.
/bza actualizar [confirmar]Install only from the configured release channel, with confirmation.

Sending

Localized structureMeaning / requirement
/bza enviarcartapapel <destinatarios> "<mensaje>" [flags]Paper letter.
/bza enviarcartalibro <destinatarios> "<mensaje>" --título "<título>" [flags]Book letter; title required.
/bza enviarpaquete <destinatarios> <item...> [flags]Standard package; optional --message.
/bza enviarcontrarreembolso <destinatarios> p:<precio> [r:<return-to>] <item...> [flags]COD package; optional --message.
/bza enviardinero <destinatarios> <cantidad> [flags]Money mail; optional --message; economy required.

Premium only

Localized structureMeaning / requirement
/bza índiceredPremium: index local world playerdata into the shared recipient lookup.
/bza redis [estado]Premium: Redis/runtime status; not a switch to bypass network health.
/bza accesoactualización estadoPremium: inspect whether protected update credentials are configured.
/bza accesoactualización establecer <usuario> <contraseña>Premium: console-only credential change; protect command logs.
/bza accesoactualización vaciarPremium: console-only credential removal.

Use the exact English marketplace command /mba spigotlink <account-link-code> when verification is available.

All accepted structural aliases and flags
English tokenLocalized accepted formsEdition
sendenviarShared
discorddiscordPremium only
statusestadoPremium only
resourcepackpaquetederecursosShared
autoautomáticoShared
p:precio:Shared
price:precio-largo:Shared
r:devolución:Shared
return:devolución-larga:Shared
t:plantilla:Shared
template:plantilla-larga:Shared
xp:experiencia:Shared
trueverdaderoShared
falsefalsoShared
enabledhabilitadoShared
disableddeshabilitadoShared
allplayerstodoslosjugadoresShared
onlineplayersjugadoresconectadosShared
offlineplayersjugadoresdesconectadosShared
adminadministraciónShared
helpayudaShared
openabrirShared
guideguíaShared
kitkitShared
lettercartaShared
packagepaqueteShared
moneydineroShared
checkrevisarShared
trackrastrearShared
settingsajustesShared
registerregistrarShared
unregisterdesregistrarShared
toolsherramientasShared
admininboxbandejaadministrador / baShared
inboxnotificationavisobuzónShared
importimportarShared
convertconvertirShared
purgepurgarShared
reloadrecargarShared
updatecheckbuscaractualizaciónShared
updateactualizarShared
cleanlimpiarShared
scheduledmailcorreo-programadoShared
itemtemplateplantilladeobjeto / poShared
itplantilladeobjeto / poShared
itsaveplantilladeobjeto-guardarShared
itdeleteplantilladeobjeto-borrarShared
itlistplantilladeobjeto-listaShared
itgiveplantilladeobjeto-darShared
slenviarcartapapel / ecpShared
slaenviarcartalibro / eclShared
spenviarpaquete / epShared
scodenviarcontrarreembolso / ecrShared
smenviardinero / edShared
testletterprobar-cartaShared
testpackageprobar-paqueteShared
testmoneyprobar-dineroShared
testaipackageprobar-bandejaadministrador-paqueteShared
testaimoneyprobar-bandejaadministrador-dineroShared
pagepáginaShared
notificationnotificaciónShared
offlinedesconectadoShared
onlineconectadoShared
soundalertsonidoShared
simplesimpleShared
advancedavanzadoShared
offapagadoShared
onencendidoShared
listlistaShared
infoinformaciónShared
runejecutarShared
enableactivarShared
disabledesactivarShared
saveguardarShared
deleteborrarShared
removequitarShared
givedarShared
playerjugadorShared
currentactualShared
confirmconfirmarShared
paperpapelShared
booklibroShared
standardestándarShared
codvcontrarreembolso-Vault / crvShared
codicontrarreembolso-objetos / croShared
codvicontrarreembolso-Vault-y-objetos / crvoShared
codippago-contrarreembolso-objetos / cropShared
codrpaquete-contrarreembolso-devuelto / crdShared
codapaquete-contrarreembolso-aceptado / craShared
codcontrareembolsoShared
--from--remitente / -rShared
--delay--demora / -dShared
--expire--caducidadShared
--message--mensajeShared
--title--título / -tShared
aibandejaadministrador / baShared
updateloginaccesoactualización / aaPremium only
spigotlinkvincularSpigot / vSpigotPremium only
networkindexíndicered / irPremium only
redisredisPremium only
setestablecerPremium only
clearvaciarPremium only
--server--servidorPremium only
--servers--servidoresPremium only
--exclude-servers--excluir-servidoresPremium only
--server-group--grupo-servidorPremium only
Argument labels (documentation, not translated values)
English labelLocalized label
playerjugador
recipientdestinatario
recipientsdestinatarios
senderremitente
messagemensaje
titletítulo
secondssegundos
durationduración
amountcantidad
priceprecio
itemobjeto
idid
pagepágina
namenombre
kitkit
typetipo
timetiempo
fromremitente
playernamejugador
kitnamekit
booktitletítulo
task-idid
name1nombre1
name2nombre2
name3nombre3
recipient1destinatario1
recipient2destinatario2
recipient3destinatario3
usernameusuario
passwordcontraseña
account-link-codecódigo-de-vinculación
groupgrupo
idsids
Français — fr: commands, aliases & examples

These roots exist only when this is the configured default root language (English always remains). The final example below requires Premium networking. Values such as Alex, DIAMOND and survival are not translated.

Français examples
/bal inscrire
/bal paramètres packderessources automatique
/bala envoyerlettrepapier Alex "Welcome!/nEnjoy your stay." --expéditeur "Server" --délai 0
/bala envoyercolis Alex DIAMOND:1 --message "Your reward"
/bala envoyercolis Alex DIAMOND:1 --serveur survival

Player

Localized structureMeaning / requirement
/bal aide [page]Command help and pagination.
/bal guide [page]Supported physical designs for this running server.
/bal kit [kit-id]Select/receive an available named kit.
/bal kit page <number>Browse kit pages.
/bal inscrireStart personal physical-mailbox registration.
/bal désinscrireStart personal mailbox removal.
/bal ouvrirOpen the inbox if command access and its world rules are enabled.
/bal lettreCompose an enabled paper/book letter.
/bal colisCompose a package if command sending is enabled.
/bal argentCompose money mail if enabled and economy is available.
/bal vérifierRead-only inbox preview; not a package-claim shortcut.
/bal suivreView queued delayed deliveries, not future scheduled tasks.
/bal paramètresOpen available settings categories; opens notification help directly when it is the only category.
/bal paramètres aideOpen the same contextual category help as settings.
/bal paramètres notificationOpen notification command help, not the current-value status view.
/bal paramètres notification aideExplain available notification commands.
/bal paramètres notification étatShow current offline/online/sound choices and eligible kit reminder state.
/bal paramètres notification horsligne simple|avancé|nonChoose the login summary mode.
/bal paramètres notification enligne oui|nonToggle online text notices.
/bal paramètres notification son oui|nonToggle notification sound.
/bal paramètres notification kit oui|nonToggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/bal paramètres packderessourcesShow Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/bal paramètres packderessources aideShow the resource-pack preference and command explanations.
/bal paramètres packderessources oui|non|automatiqueSelect appearance mode when server policy allows it.

Administration

Localized structureMeaning / requirement
/bala aide [page]Admin command help.
/bala outilsOpen the Admin Tools inventory.
/bala boîtederéceptionadminOpen the Shared Admin Inbox; alias ai.
/bala notificationboîte oui|nonToggle your Shared Admin Inbox notices.
/bala inscrire <joueur>Register a physical personal mailbox for another player.
/bala désinscrireStart admin unregister selection.
/bala importer joueur <nom1,nom2,...>Import known real player identities; verified Citizens NPCs are excluded.
/bala convertir actuelInspect the selected storage provider.
/bala convertir YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/bala purger <joueur|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/bala nettoyerBacked-up legacy-data cleanup; in-game confirmation is by chat.
/bala nettoyer confirmerConsole-only cleanup confirmation.
/bala courrier-planifié recharger|listeValidate/reload tasks or list them.
/bala courrier-planifié informations|exécuter|activer|désactiver <id>Inspect/test/change an existing task.
/bala modèledobjet enregistrer <id>Save your held item as a named template.
/bala modèledobjet supprimer <id>Remove a template.
/bala modèledobjet liste [page]Browse stored templates.
/bala modèledobjet donner <id> [joueur]Give a saved template item.
/bala rechargerStage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/bala vérifiermiseàjourCheck available releases and explain channel differences.
/bala mettreàjour [confirmer]Install only from the configured release channel, with confirmation.

Sending

Localized structureMeaning / requirement
/bala envoyerlettrepapier <destinataires> "<message>" [flags]Paper letter.
/bala envoyerlettrelivre <destinataires> "<message>" --titre "<titre>" [flags]Book letter; title required.
/bala envoyercolis <destinataires> <item...> [flags]Standard package; optional --message.
/bala envoyercontreremboursement <destinataires> p:<prix> [r:<return-to>] <item...> [flags]COD package; optional --message.
/bala envoyerargent <destinataires> <quantité> [flags]Money mail; optional --message; economy required.

Premium only

Localized structureMeaning / requirement
/bala indexréseauPremium: index local world playerdata into the shared recipient lookup.
/bala redis [état]Premium: Redis/runtime status; not a switch to bypass network health.
/bala connexionmiseàjour étatPremium: inspect whether protected update credentials are configured.
/bala connexionmiseàjour définir <utilisateur> <mot-de-passe>Premium: console-only credential change; protect command logs.
/bala connexionmiseàjour effacerPremium: console-only credential removal.

Use the exact English marketplace command /mba spigotlink <account-link-code> when verification is available.

All accepted structural aliases and flags
English tokenLocalized accepted formsEdition
sendenvoyerShared
discorddiscordPremium only
statusétatPremium only
resourcepackpackderessourcesShared
autoautomatiqueShared
p:prix:Shared
price:prix-long:Shared
r:retour:Shared
return:retour-long:Shared
t:modèle:Shared
template:modèle-long:Shared
xp:expérience:Shared
truevraiShared
falsefauxShared
enabledactivéShared
disableddésactivéShared
allplayerstouslesjoueursShared
onlineplayersjoueursenligneShared
offlineplayersjoueurshorsligneShared
adminadministrationShared
helpaideShared
openouvrirShared
guideguideShared
kitkitShared
letterlettreShared
packagecolisShared
moneyargentShared
checkvérifierShared
tracksuivreShared
settingsparamètresShared
registerinscrireShared
unregisterdésinscrireShared
toolsoutilsShared
admininboxboîtederéceptionadmin / braShared
inboxnotificationnotificationboîteShared
importimporterShared
convertconvertirShared
purgepurgerShared
reloadrechargerShared
updatecheckvérifiermiseàjourShared
updatemettreàjourShared
cleannettoyerShared
scheduledmailcourrier-planifiéShared
itemtemplatemodèledobjet / moShared
itmodèledobjet / moShared
itsavemodèledobjet-enregistrerShared
itdeletemodèledobjet-supprimerShared
itlistmodèledobjet-listeShared
itgivemodèledobjet-donnerShared
slenvoyerlettrepapier / elpShared
slaenvoyerlettrelivre / ellShared
spenvoyercolis / ecShared
scodenvoyercontreremboursement / ecrShared
smenvoyerargent / eaShared
testlettertester-lettreShared
testpackagetester-colisShared
testmoneytester-argentShared
testaipackagetester-boîtederéceptionadmin-colisShared
testaimoneytester-boîtederéceptionadmin-argentShared
pagepageShared
notificationnotificationShared
offlinehorsligneShared
onlineenligneShared
soundalertsonShared
simplesimpleShared
advancedavancéShared
offnonShared
onouiShared
listlisteShared
infoinformationsShared
runexécuterShared
enableactiverShared
disabledésactiverShared
saveenregistrerShared
deletesupprimerShared
removeretirerShared
givedonnerShared
playerjoueurShared
currentactuelShared
confirmconfirmerShared
paperpapierShared
booklivreShared
standardstandardShared
codvcontre-remboursement-Vault / crvShared
codicontre-remboursement-objets / croShared
codvicontre-remboursement-Vault-et-objets / crvoShared
codippaiement-contre-remboursement-objets / cropShared
codrcolis-contre-remboursement-retourné / crrShared
codacolis-contre-remboursement-accepté / craShared
codcontre-remboursementShared
--from--expéditeur / -eShared
--delay--délai / -dShared
--expire--expirationShared
--message--messageShared
--title--titre / -tShared
aiboîtederéceptionadmin / braShared
updateloginconnexionmiseàjour / cmajPremium only
spigotlinklierSpigot / lSpigotPremium only
networkindexindexréseau / irPremium only
redisredisPremium only
setdéfinirPremium only
cleareffacerPremium only
--server--serveurPremium only
--servers--serveursPremium only
--exclude-servers--exclure-serveursPremium only
--server-group--groupe-serveurPremium only
Argument labels (documentation, not translated values)
English labelLocalized label
playerjoueur
recipientdestinataire
recipientsdestinataires
senderexpéditeur
messagemessage
titletitre
secondssecondes
durationdurée
amountquantité
priceprix
itemobjet
idid
pagepage
namenom
kitkit
typetype
timetemps
fromexpéditeur
playernamejoueur
kitnamekit
booktitletitre
task-idid
name1nom1
name2nom2
name3nom3
recipient1destinataire1
recipient2destinataire2
recipient3destinataire3
usernameutilisateur
passwordmot-de-passe
account-link-codecode-de-liaison
groupgroupe
idsids
Italiano — it: commands, aliases & examples

These roots exist only when this is the configured default root language (English always remains). The final example below requires Premium networking. Values such as Alex, DIAMOND and survival are not translated.

Italiano examples
/cp registra
/cp impostazioni pacchettorisorse automatico
/cpa invialetteracarta Alex "Welcome!/nEnjoy your stay." --mittente "Server" --ritardo 0
/cpa inviapacco Alex DIAMOND:1 --messaggio "Your reward"
/cpa inviapacco Alex DIAMOND:1 --server survival

Player

Localized structureMeaning / requirement
/cp aiuto [pagina]Command help and pagination.
/cp guida [pagina]Supported physical designs for this running server.
/cp kit [kit-id]Select/receive an available named kit.
/cp kit pagina <number>Browse kit pages.
/cp registraStart personal physical-mailbox registration.
/cp deregistraStart personal mailbox removal.
/cp apriOpen the inbox if command access and its world rules are enabled.
/cp letteraCompose an enabled paper/book letter.
/cp paccoCompose a package if command sending is enabled.
/cp denaroCompose money mail if enabled and economy is available.
/cp controllaRead-only inbox preview; not a package-claim shortcut.
/cp tracciaView queued delayed deliveries, not future scheduled tasks.
/cp impostazioniOpen available settings categories; opens notification help directly when it is the only category.
/cp impostazioni aiutoOpen the same contextual category help as settings.
/cp impostazioni notificaOpen notification command help, not the current-value status view.
/cp impostazioni notifica aiutoExplain available notification commands.
/cp impostazioni notifica statoShow current offline/online/sound choices and eligible kit reminder state.
/cp impostazioni notifica offline semplice|avanzato|spentoChoose the login summary mode.
/cp impostazioni notifica online acceso|spentoToggle online text notices.
/cp impostazioni notifica suono acceso|spentoToggle notification sound.
/cp impostazioni notifica kit acceso|spentoToggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/cp impostazioni pacchettorisorseShow Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/cp impostazioni pacchettorisorse aiutoShow the resource-pack preference and command explanations.
/cp impostazioni pacchettorisorse acceso|spento|automaticoSelect appearance mode when server policy allows it.

Administration

Localized structureMeaning / requirement
/cpa aiuto [pagina]Admin command help.
/cpa strumentiOpen the Admin Tools inventory.
/cpa postaamministratoreOpen the Shared Admin Inbox; alias ai.
/cpa avvisocasella acceso|spentoToggle your Shared Admin Inbox notices.
/cpa registra <giocatore>Register a physical personal mailbox for another player.
/cpa deregistraStart admin unregister selection.
/cpa importa giocatore <nome1,nome2,...>Import known real player identities; verified Citizens NPCs are excluded.
/cpa converti attualeInspect the selected storage provider.
/cpa converti YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/cpa elimina-dati <giocatore|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/cpa pulisciBacked-up legacy-data cleanup; in-game confirmation is by chat.
/cpa pulisci confermaConsole-only cleanup confirmation.
/cpa posta-programmata ricarica|listaValidate/reload tasks or list them.
/cpa posta-programmata informazioni|esegui|abilita|disabilita <id>Inspect/test/change an existing task.
/cpa modellodioggetto salva <id>Save your held item as a named template.
/cpa modellodioggetto elimina <id>Remove a template.
/cpa modellodioggetto lista [pagina]Browse stored templates.
/cpa modellodioggetto dai <id> [giocatore]Give a saved template item.
/cpa ricaricaStage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/cpa verificaaggiornamentiCheck available releases and explain channel differences.
/cpa aggiorna [conferma]Install only from the configured release channel, with confirmation.

Sending

Localized structureMeaning / requirement
/cpa invialetteracarta <destinatari> "<messaggio>" [flags]Paper letter.
/cpa invialetteralibro <destinatari> "<messaggio>" --titolo "<titolo>" [flags]Book letter; title required.
/cpa inviapacco <destinatari> <item...> [flags]Standard package; optional --message.
/cpa inviacontrassegno <destinatari> p:<prezzo> [r:<return-to>] <item...> [flags]COD package; optional --message.
/cpa inviadenaro <destinatari> <quantità> [flags]Money mail; optional --message; economy required.

Premium only

Localized structureMeaning / requirement
/cpa indiceretePremium: index local world playerdata into the shared recipient lookup.
/cpa redis [stato]Premium: Redis/runtime status; not a switch to bypass network health.
/cpa accessoaggiornamenti statoPremium: inspect whether protected update credentials are configured.
/cpa accessoaggiornamenti imposta <utente> <password>Premium: console-only credential change; protect command logs.
/cpa accessoaggiornamenti svuotaPremium: console-only credential removal.

Use the exact English marketplace command /mba spigotlink <account-link-code> when verification is available.

All accepted structural aliases and flags
English tokenLocalized accepted formsEdition
sendinviareShared
discorddiscordPremium only
statusstatoPremium only
resourcepackpacchettorisorseShared
autoautomaticoShared
p:prezzo:Shared
price:prezzo-lungo:Shared
r:ritorno:Shared
return:ritorno-lungo:Shared
t:modello:Shared
template:modello-lungo:Shared
xp:esperienza:Shared
trueveroShared
falsefalsoShared
enabledabilitatoShared
disableddisabilitatoShared
allplayerstuttigiocatoriShared
onlineplayersgiocatorionlineShared
offlineplayersgiocatoriofflineShared
adminamministrazioneShared
helpaiutoShared
openapriShared
guideguidaShared
kitkitShared
letterletteraShared
packagepaccoShared
moneydenaroShared
checkcontrollaShared
tracktracciaShared
settingsimpostazioniShared
registerregistraShared
unregisterderegistraShared
toolsstrumentiShared
admininboxpostaamministratore / paShared
inboxnotificationavvisocasellaShared
importimportaShared
convertconvertiShared
purgeelimina-datiShared
reloadricaricaShared
updatecheckverificaaggiornamentiShared
updateaggiornaShared
cleanpulisciShared
scheduledmailposta-programmataShared
itemtemplatemodellodioggetto / moShared
itmodellodioggetto / moShared
itsavemodellodioggetto-salvaShared
itdeletemodellodioggetto-eliminaShared
itlistmodellodioggetto-listaShared
itgivemodellodioggetto-daiShared
slinvialetteracarta / ilcShared
slainvialetteralibro / illShared
spinviapacco / ipShared
scodinviacontrassegno / icShared
sminviadenaro / idShared
testletterprova-letteraShared
testpackageprova-paccoShared
testmoneyprova-denaroShared
testaipackageprova-postaamministratore-paccoShared
testaimoneyprova-postaamministratore-denaroShared
pagepaginaShared
notificationnotificaShared
offlineofflineShared
onlineonlineShared
soundalertsuonoShared
simplesempliceShared
advancedavanzatoShared
offspentoShared
onaccesoShared
listlistaShared
infoinformazioniShared
runeseguiShared
enableabilitaShared
disabledisabilitaShared
savesalvaShared
deleteeliminaShared
removerimuoviShared
givedaiShared
playergiocatoreShared
currentattualeShared
confirmconfermaShared
papercartaShared
booklibroShared
standardstandardShared
codvcontrassegno-Vault / cvShared
codicontrassegno-oggetti / coShared
codvicontrassegno-Vault-e-oggetti / cvoShared
codippagamento-contrassegno-oggetti / copShared
codrpacco-contrassegno-restituito / crShared
codapacco-contrassegno-accettato / caShared
codcontrassegnoShared
--from--mittente / -mShared
--delay--ritardo / -rShared
--expire--scadenzaShared
--message--messaggioShared
--title--titolo / -tShared
aipostaamministratore / paShared
updateloginaccessoaggiornamenti / aaPremium only
spigotlinkcollegaSpigot / cSpigotPremium only
networkindexindicerete / irPremium only
redisredisPremium only
setimpostaPremium only
clearsvuotaPremium only
--server--serverPremium only
--servers--servermultipliPremium only
--exclude-servers--escludi-serverPremium only
--server-group--gruppo-serverPremium only
Argument labels (documentation, not translated values)
English labelLocalized label
playergiocatore
recipientdestinatario
recipientsdestinatari
sendermittente
messagemessaggio
titletitolo
secondssecondi
durationdurata
amountquantità
priceprezzo
itemoggetto
idid
pagepagina
namenome
kitkit
typetipo
timetempo
frommittente
playernamegiocatore
kitnamekit
booktitletitolo
task-idid
name1nome1
name2nome2
name3nome3
recipient1destinatario1
recipient2destinatario2
recipient3destinatario3
usernameutente
passwordpassword
account-link-codecodice-di-collegamento
groupgruppo
idsid
Nederlands — nl: commands, aliases & examples

These roots exist only when this is the configured default root language (English always remains). The final example below requires Premium networking. Values such as Alex, DIAMOND and survival are not translated.

Nederlands examples
/bb registreren
/bb instellingen resourcepakket automatisch
/bbb verstuurpapierbrief Alex "Welcome!/nEnjoy your stay." --afzender "Server" --vertraging 0
/bbb verstuurpakket Alex DIAMOND:1 --bericht "Your reward"
/bbb verstuurpakket Alex DIAMOND:1 --server survival

Player

Localized structureMeaning / requirement
/bb hulp [pagina]Command help and pagination.
/bb handleiding [pagina]Supported physical designs for this running server.
/bb bouwpakket [kit-id]Select/receive an available named kit.
/bb bouwpakket pagina <number>Browse kit pages.
/bb registrerenStart personal physical-mailbox registration.
/bb uitschrijvenStart personal mailbox removal.
/bb openenOpen the inbox if command access and its world rules are enabled.
/bb briefCompose an enabled paper/book letter.
/bb pakketCompose a package if command sending is enabled.
/bb geldCompose money mail if enabled and economy is available.
/bb controlerenRead-only inbox preview; not a package-claim shortcut.
/bb volgenView queued delayed deliveries, not future scheduled tasks.
/bb instellingenOpen available settings categories; opens notification help directly when it is the only category.
/bb instellingen hulpOpen the same contextual category help as settings.
/bb instellingen meldingOpen notification command help, not the current-value status view.
/bb instellingen melding hulpExplain available notification commands.
/bb instellingen melding statusShow current offline/online/sound choices and eligible kit reminder state.
/bb instellingen melding offline eenvoudig|uitgebreid|uitChoose the login summary mode.
/bb instellingen melding online aan|uitToggle online text notices.
/bb instellingen melding geluid aan|uitToggle notification sound.
/bb instellingen melding bouwpakket aan|uitToggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/bb instellingen resourcepakketShow Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/bb instellingen resourcepakket hulpShow the resource-pack preference and command explanations.
/bb instellingen resourcepakket aan|uit|automatischSelect appearance mode when server policy allows it.

Administration

Localized structureMeaning / requirement
/bbb hulp [pagina]Admin command help.
/bbb gereedschapOpen the Admin Tools inventory.
/bbb beheerpostvakOpen the Shared Admin Inbox; alias ai.
/bbb postvakmelding aan|uitToggle your Shared Admin Inbox notices.
/bbb registreren <speler>Register a physical personal mailbox for another player.
/bbb uitschrijvenStart admin unregister selection.
/bbb importeren speler <naam1,naam2,...>Import known real player identities; verified Citizens NPCs are excluded.
/bbb omzetten huidigInspect the selected storage provider.
/bbb omzetten YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/bbb wissen <speler|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/bbb opschonenBacked-up legacy-data cleanup; in-game confirmation is by chat.
/bbb opschonen bevestigenConsole-only cleanup confirmation.
/bbb geplande-post herladen|lijstValidate/reload tasks or list them.
/bbb geplande-post informatie|uitvoeren|inschakelen|uitschakelen <id>Inspect/test/change an existing task.
/bbb voorwerpsjabloon opslaan <id>Save your held item as a named template.
/bbb voorwerpsjabloon verwijderen <id>Remove a template.
/bbb voorwerpsjabloon lijst [pagina]Browse stored templates.
/bbb voorwerpsjabloon geven <id> [speler]Give a saved template item.
/bbb herladenStage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/bbb updatecontrolerenCheck available releases and explain channel differences.
/bbb bijwerken [bevestigen]Install only from the configured release channel, with confirmation.

Sending

Localized structureMeaning / requirement
/bbb verstuurpapierbrief <ontvangers> "<bericht>" [flags]Paper letter.
/bbb verstuurboekbrief <ontvangers> "<bericht>" --titel "<titel>" [flags]Book letter; title required.
/bbb verstuurpakket <ontvangers> <item...> [flags]Standard package; optional --message.
/bbb verstuurrembours <ontvangers> p:<prijs> [r:<return-to>] <item...> [flags]COD package; optional --message.
/bbb verstuurgeld <ontvangers> <aantal> [flags]Money mail; optional --message; economy required.

Premium only

Localized structureMeaning / requirement
/bbb netwerkindexPremium: index local world playerdata into the shared recipient lookup.
/bbb redis [status]Premium: Redis/runtime status; not a switch to bypass network health.
/bbb updateaanmelding statusPremium: inspect whether protected update credentials are configured.
/bbb updateaanmelding instellen <gebruikersnaam> <wachtwoord>Premium: console-only credential change; protect command logs.
/bbb updateaanmelding leegmakenPremium: console-only credential removal.

Use the exact English marketplace command /mba spigotlink <account-link-code> when verification is available.

All accepted structural aliases and flags
English tokenLocalized accepted formsEdition
sendverzendenShared
discorddiscordPremium only
statusstatusPremium only
resourcepackresourcepakketShared
autoautomatischShared
p:prijs:Shared
price:prijs-lang:Shared
r:retour:Shared
return:retour-lang:Shared
t:sjabloon:Shared
template:sjabloon-lang:Shared
xp:ervaring:Shared
truewaarShared
falseonwaarShared
enabledingeschakeldShared
disableduitgeschakeldShared
allplayersallespelersShared
onlineplayersonlinespelersShared
offlineplayersofflinespelersShared
adminbeheerShared
helphulpShared
openopenenShared
guidehandleidingShared
kitbouwpakketShared
letterbriefShared
packagepakketShared
moneygeldShared
checkcontrolerenShared
trackvolgenShared
settingsinstellingenShared
registerregistrerenShared
unregisteruitschrijvenShared
toolsgereedschapShared
admininboxbeheerpostvak / bpShared
inboxnotificationpostvakmeldingShared
importimporterenShared
convertomzettenShared
purgewissenShared
reloadherladenShared
updatecheckupdatecontrolerenShared
updatebijwerkenShared
cleanopschonenShared
scheduledmailgeplande-postShared
itemtemplatevoorwerpsjabloon / vsShared
itvoorwerpsjabloon / vsShared
itsavevoorwerpsjabloon-opslaanShared
itdeletevoorwerpsjabloon-verwijderenShared
itlistvoorwerpsjabloon-lijstShared
itgivevoorwerpsjabloon-gevenShared
slverstuurpapierbrief / vpbShared
slaverstuurboekbrief / vbbShared
spverstuurpakket / vpShared
scodverstuurrembours / vrShared
smverstuurgeld / vgShared
testlettertest-briefShared
testpackagetest-pakketShared
testmoneytest-geldShared
testaipackagetest-beheerpostvak-pakketShared
testaimoneytest-beheerpostvak-geldShared
pagepaginaShared
notificationmeldingShared
offlineofflineShared
onlineonlineShared
soundalertgeluidShared
simpleeenvoudigShared
advanceduitgebreidShared
offuitShared
onaanShared
listlijstShared
infoinformatieShared
runuitvoerenShared
enableinschakelenShared
disableuitschakelenShared
saveopslaanShared
deleteverwijderenShared
removeweghalenShared
givegevenShared
playerspelerShared
currenthuidigShared
confirmbevestigenShared
paperpapierShared
bookboekShared
standardstandaardShared
codvrembours-Vault / rvShared
codirembours-voorwerpen / riShared
codvirembours-Vault-en-voorwerpen / rviShared
codiprembours-voorwerpbetaling / ribShared
codrteruggestuurd-rembourspakket / rtShared
codaaanvaard-rembourspakket / raShared
codremboursShared
--from--afzender / -aShared
--delay--vertraging / -vShared
--expire--vervaldatumShared
--message--berichtShared
--title--titel / -tShared
aibeheerpostvak / bpShared
updateloginupdateaanmelding / uaPremium only
spigotlinkSpigotkoppelen / SpigotkPremium only
networkindexnetwerkindex / nwiPremium only
redisredisPremium only
setinstellenPremium only
clearleegmakenPremium only
--server--serverPremium only
--servers--serversPremium only
--exclude-servers--uitgesloten-serversPremium only
--server-group--servergroepPremium only
Argument labels (documentation, not translated values)
English labelLocalized label
playerspeler
recipientontvanger
recipientsontvangers
senderafzender
messagebericht
titletitel
secondsseconden
durationduur
amountaantal
priceprijs
itemvoorwerp
idid
pagepagina
namenaam
kitpakket
typetype
timetijd
fromafzender
playernamespeler
kitnamepakket
booktitletitel
task-idid
name1naam1
name2naam2
name3naam3
recipient1ontvanger1
recipient2ontvanger2
recipient3ontvanger3
usernamegebruikersnaam
passwordwachtwoord
account-link-codekoppelcode
groupgroep
idsids
Svenska — sv: commands, aliases & examples

These roots exist only when this is the configured default root language (English always remains). The final example below requires Premium networking. Values such as Alex, DIAMOND and survival are not translated.

Svenska examples
/bl registrera
/bl inställningar resurspaket automatiskt
/abl skickapappersbrev Alex "Welcome!/nEnjoy your stay." --avsändare "Server" --fördröjning 0
/abl skickapaket Alex DIAMOND:1 --meddelande "Your reward"
/abl skickapaket Alex DIAMOND:1 --server survival

Player

Localized structureMeaning / requirement
/bl hjälp [sida]Command help and pagination.
/bl guide [sida]Supported physical designs for this running server.
/bl byggsats [kit-id]Select/receive an available named kit.
/bl byggsats sida <number>Browse kit pages.
/bl registreraStart personal physical-mailbox registration.
/bl avregistreraStart personal mailbox removal.
/bl öppnaOpen the inbox if command access and its world rules are enabled.
/bl brevCompose an enabled paper/book letter.
/bl paketCompose a package if command sending is enabled.
/bl pengarCompose money mail if enabled and economy is available.
/bl kontrolleraRead-only inbox preview; not a package-claim shortcut.
/bl spåraView queued delayed deliveries, not future scheduled tasks.
/bl inställningarOpen available settings categories; opens notification help directly when it is the only category.
/bl inställningar hjälpOpen the same contextual category help as settings.
/bl inställningar aviseringOpen notification command help, not the current-value status view.
/bl inställningar avisering hjälpExplain available notification commands.
/bl inställningar avisering statusShow current offline/online/sound choices and eligible kit reminder state.
/bl inställningar avisering offline enkel|avancerad|avChoose the login summary mode.
/bl inställningar avisering online på|avToggle online text notices.
/bl inställningar avisering ljud på|avToggle notification sound.
/bl inställningar avisering byggsats på|avToggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/bl inställningar resurspaketShow Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/bl inställningar resurspaket hjälpShow the resource-pack preference and command explanations.
/bl inställningar resurspaket på|av|automatisktSelect appearance mode when server policy allows it.

Administration

Localized structureMeaning / requirement
/abl hjälp [sida]Admin command help.
/abl verktygOpen the Admin Tools inventory.
/abl admininkorgOpen the Shared Admin Inbox; alias ai.
/abl inkorgsavisering på|avToggle your Shared Admin Inbox notices.
/abl registrera <spelare>Register a physical personal mailbox for another player.
/abl avregistreraStart admin unregister selection.
/abl importera spelare <namn1,namn2,...>Import known real player identities; verified Citizens NPCs are excluded.
/abl konvertera aktuellInspect the selected storage provider.
/abl konvertera YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/abl rensa-data <spelare|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/abl städaBacked-up legacy-data cleanup; in-game confirmation is by chat.
/abl städa bekräftaConsole-only cleanup confirmation.
/abl schemalagd-post laddaom|listaValidate/reload tasks or list them.
/abl schemalagd-post information|kör|aktivera|inaktivera <id>Inspect/test/change an existing task.
/abl föremålsmall spara <id>Save your held item as a named template.
/abl föremålsmall radera <id>Remove a template.
/abl föremålsmall lista [sida]Browse stored templates.
/abl föremålsmall ge <id> [spelare]Give a saved template item.
/abl laddaomStage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/abl sökuppdateringCheck available releases and explain channel differences.
/abl uppdatera [bekräfta]Install only from the configured release channel, with confirmation.

Sending

Localized structureMeaning / requirement
/abl skickapappersbrev <mottagare> "<meddelande>" [flags]Paper letter.
/abl skickabokbrev <mottagare> "<meddelande>" --titel "<titel>" [flags]Book letter; title required.
/abl skickapaket <mottagare> <item...> [flags]Standard package; optional --message.
/abl skickapostförskott <mottagare> p:<pris> [r:<return-to>] <item...> [flags]COD package; optional --message.
/abl skickapengar <mottagare> <antal> [flags]Money mail; optional --message; economy required.

Premium only

Localized structureMeaning / requirement
/abl nätverksindexPremium: index local world playerdata into the shared recipient lookup.
/abl redis [status]Premium: Redis/runtime status; not a switch to bypass network health.
/abl uppdateringsinloggning statusPremium: inspect whether protected update credentials are configured.
/abl uppdateringsinloggning ställ-in <användarnamn> <lösenord>Premium: console-only credential change; protect command logs.
/abl uppdateringsinloggning tömPremium: console-only credential removal.

Use the exact English marketplace command /mba spigotlink <account-link-code> when verification is available.

All accepted structural aliases and flags
English tokenLocalized accepted formsEdition
sendskickaShared
discorddiscordPremium only
statusstatusPremium only
resourcepackresurspaketShared
autoautomatisktShared
p:pris:Shared
price:pris-lång:Shared
r:retur:Shared
return:retur-lång:Shared
t:mall:Shared
template:mall-lång:Shared
xp:erfarenhet:Shared
truesantShared
falsefalsktShared
enabledaktiveradShared
disabledinaktiveradShared
allplayersallaspelareShared
onlineplayersonlinespelareShared
offlineplayersofflinespelareShared
adminadministrationShared
helphjälpShared
openöppnaShared
guideguideShared
kitbyggsatsShared
letterbrevShared
packagepaketShared
moneypengarShared
checkkontrolleraShared
trackspåraShared
settingsinställningarShared
registerregistreraShared
unregisteravregistreraShared
toolsverktygShared
admininboxadmininkorg / aikShared
inboxnotificationinkorgsaviseringShared
importimporteraShared
convertkonverteraShared
purgerensa-dataShared
reloadladdaomShared
updatechecksökuppdateringShared
updateuppdateraShared
cleanstädaShared
scheduledmailschemalagd-postShared
itemtemplateföremålsmall / fmShared
itföremålsmall / fmShared
itsaveföremålsmall-sparaShared
itdeleteföremålsmall-raderaShared
itlistföremålsmall-listaShared
itgiveföremålsmall-geShared
slskickapappersbrev / spbShared
slaskickabokbrev / sbbShared
spskickapaket / spShared
scodskickapostförskott / spfShared
smskickapengar / speShared
testlettertesta-brevShared
testpackagetesta-paketShared
testmoneytesta-pengarShared
testaipackagetesta-admininkorg-paketShared
testaimoneytesta-admininkorg-pengarShared
pagesidaShared
notificationaviseringShared
offlineofflineShared
onlineonlineShared
soundalertljudShared
simpleenkelShared
advancedavanceradShared
offavShared
onpåShared
listlistaShared
infoinformationShared
runkörShared
enableaktiveraShared
disableinaktiveraShared
savesparaShared
deleteraderaShared
removeta-bortShared
givegeShared
playerspelareShared
currentaktuellShared
confirmbekräftaShared
paperpapperShared
bookbokShared
standardstandardShared
codvpostförskott-Vault / pfvShared
codipostförskott-föremål / pffShared
codvipostförskott-Vault-och-föremål / pfvfShared
codippostförskott-föremålsbetalning / pffbShared
codrreturnerat-postförskottspaket / pfrShared
codaaccepterat-postförskottspaket / pfaShared
codpostförskottShared
--from--avsändare / -aShared
--delay--fördröjning / -förShared
--expire--utgångShared
--message--meddelandeShared
--title--titel / -tShared
aiadmininkorg / aikShared
updateloginuppdateringsinloggning / uiPremium only
spigotlinkSpigotkoppling / SpigotkPremium only
networkindexnätverksindex / nviPremium only
redisredisPremium only
setställ-inPremium only
cleartömPremium only
--server--serverPremium only
--servers--servrarPremium only
--exclude-servers--uteslut-servrarPremium only
--server-group--servergruppPremium only
Argument labels (documentation, not translated values)
English labelLocalized label
playerspelare
recipientmottagare
recipientsmottagare
senderavsändare
messagemeddelande
titletitel
secondssekunder
durationvaraktighet
amountantal
pricepris
itemföremål
idid
pagesida
namenamn
kitbyggsats
typetyp
timetid
fromavsändare
playernamespelare
kitnamebyggsats
booktitletitel
task-idid
name1namn1
name2namn2
name3namn3
recipient1mottagare1
recipient2mottagare2
recipient3mottagare3
usernameanvändarnamn
passwordlösenord
account-link-codekontolänkningskod
groupgrupp
idsid
Polski — pl: commands, aliases & examples

These roots exist only when this is the configured default root language (English always remains). The final example below requires Premium networking. Values such as Alex, DIAMOND and survival are not translated.

Polski examples
/skp zarejestruj
/skp ustawienia pakietzasobów automatycznie
/ska wyślijlistpapierowy Alex "Welcome!/nEnjoy your stay." --nadawca "Server" --opóźnienie 0
/ska wyślijpaczkę Alex DIAMOND:1 --wiadomość "Your reward"
/ska wyślijpaczkę Alex DIAMOND:1 --serwer survival

Player

Localized structureMeaning / requirement
/skp pomoc [strona]Command help and pagination.
/skp poradnik [strona]Supported physical designs for this running server.
/skp zestaw [kit-id]Select/receive an available named kit.
/skp zestaw strona <number>Browse kit pages.
/skp zarejestrujStart personal physical-mailbox registration.
/skp wyrejestrujStart personal mailbox removal.
/skp otwórzOpen the inbox if command access and its world rules are enabled.
/skp listCompose an enabled paper/book letter.
/skp paczkaCompose a package if command sending is enabled.
/skp pieniądzeCompose money mail if enabled and economy is available.
/skp sprawdźRead-only inbox preview; not a package-claim shortcut.
/skp śledźView queued delayed deliveries, not future scheduled tasks.
/skp ustawieniaOpen available settings categories; opens notification help directly when it is the only category.
/skp ustawienia pomocOpen the same contextual category help as settings.
/skp ustawienia powiadomienieOpen notification command help, not the current-value status view.
/skp ustawienia powiadomienie pomocExplain available notification commands.
/skp ustawienia powiadomienie stanShow current offline/online/sound choices and eligible kit reminder state.
/skp ustawienia powiadomienie offline prosty|zaawansowany|nieChoose the login summary mode.
/skp ustawienia powiadomienie online tak|nieToggle online text notices.
/skp ustawienia powiadomienie dźwięk tak|nieToggle notification sound.
/skp ustawienia powiadomienie zestaw tak|nieToggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/skp ustawienia pakietzasobówShow Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/skp ustawienia pakietzasobów pomocShow the resource-pack preference and command explanations.
/skp ustawienia pakietzasobów tak|nie|automatycznieSelect appearance mode when server policy allows it.

Administration

Localized structureMeaning / requirement
/ska pomoc [strona]Admin command help.
/ska narzędziaOpen the Admin Tools inventory.
/ska skrzynkaodbiorczaadministratoraOpen the Shared Admin Inbox; alias ai.
/ska powiadomienieskrzyni tak|nieToggle your Shared Admin Inbox notices.
/ska zarejestruj <gracz>Register a physical personal mailbox for another player.
/ska wyrejestrujStart admin unregister selection.
/ska importuj gracz <nazwa1,nazwa2,...>Import known real player identities; verified Citizens NPCs are excluded.
/ska konwertuj obecnyInspect the selected storage provider.
/ska konwertuj YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/ska usuń-dane <gracz|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/ska wyczyśćBacked-up legacy-data cleanup; in-game confirmation is by chat.
/ska wyczyść potwierdźConsole-only cleanup confirmation.
/ska poczta-zaplanowana przeładuj|listaValidate/reload tasks or list them.
/ska poczta-zaplanowana informacje|uruchom|włącz|wyłącz <id>Inspect/test/change an existing task.
/ska szablonprzedmiotu zapisz <id>Save your held item as a named template.
/ska szablonprzedmiotu usuń <id>Remove a template.
/ska szablonprzedmiotu lista [strona]Browse stored templates.
/ska szablonprzedmiotu daj <id> [gracz]Give a saved template item.
/ska przeładujStage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/ska sprawdźaktualizacjeCheck available releases and explain channel differences.
/ska aktualizuj [potwierdź]Install only from the configured release channel, with confirmation.

Sending

Localized structureMeaning / requirement
/ska wyślijlistpapierowy <odbiorcy> "<wiadomość>" [flags]Paper letter.
/ska wyślijlistksiążkowy <odbiorcy> "<wiadomość>" --tytuł "<tytuł>" [flags]Book letter; title required.
/ska wyślijpaczkę <odbiorcy> <item...> [flags]Standard package; optional --message.
/ska wyślijzapobraniem <odbiorcy> p:<cena> [r:<return-to>] <item...> [flags]COD package; optional --message.
/ska wyślijpieniądze <odbiorcy> <ilość> [flags]Money mail; optional --message; economy required.

Premium only

Localized structureMeaning / requirement
/ska indekssieciPremium: index local world playerdata into the shared recipient lookup.
/ska redis [stan]Premium: Redis/runtime status; not a switch to bypass network health.
/ska logowanieaktualizacji stanPremium: inspect whether protected update credentials are configured.
/ska logowanieaktualizacji ustaw <użytkownik> <hasło>Premium: console-only credential change; protect command logs.
/ska logowanieaktualizacji opróżnijPremium: console-only credential removal.

Use the exact English marketplace command /mba spigotlink <account-link-code> when verification is available.

All accepted structural aliases and flags
English tokenLocalized accepted formsEdition
sendwyślijShared
discorddiscordPremium only
statusstanPremium only
resourcepackpakietzasobówShared
autoautomatycznieShared
p:cena:Shared
price:cena-pełna:Shared
r:zwrot:Shared
return:zwrot-pełny:Shared
t:szablon:Shared
template:szablon-pełny:Shared
xp:doświadczenie:Shared
trueprawdaShared
falsefałszShared
enabledwłączoneShared
disabledwyłączoneShared
allplayerswszyscygraczeShared
onlineplayersgraczeonlineShared
offlineplayersgraczeofflineShared
adminadministracjaShared
helppomocShared
openotwórzShared
guideporadnikShared
kitzestawShared
letterlistShared
packagepaczkaShared
moneypieniądzeShared
checksprawdźShared
trackśledźShared
settingsustawieniaShared
registerzarejestrujShared
unregisterwyrejestrujShared
toolsnarzędziaShared
admininboxskrzynkaodbiorczaadministratora / soaShared
inboxnotificationpowiadomienieskrzyniShared
importimportujShared
convertkonwertujShared
purgeusuń-daneShared
reloadprzeładujShared
updatechecksprawdźaktualizacjeShared
updateaktualizujShared
cleanwyczyśćShared
scheduledmailpoczta-zaplanowanaShared
itemtemplateszablonprzedmiotu / szpShared
itszablonprzedmiotu / szpShared
itsaveszablonprzedmiotu-zapiszShared
itdeleteszablonprzedmiotu-usuńShared
itlistszablonprzedmiotu-listaShared
itgiveszablonprzedmiotu-dajShared
slwyślijlistpapierowy / wlpShared
slawyślijlistksiążkowy / wlkShared
spwyślijpaczkę / wpShared
scodwyślijzapobraniem / wzpShared
smwyślijpieniądze / wpiShared
testlettertestuj-listShared
testpackagetestuj-paczkaShared
testmoneytestuj-pieniądzeShared
testaipackagetestuj-skrzynkaodbiorczaadministratora-paczkaShared
testaimoneytestuj-skrzynkaodbiorczaadministratora-pieniądzeShared
pagestronaShared
notificationpowiadomienieShared
offlineofflineShared
onlineonlineShared
soundalertdźwiękShared
simpleprostyShared
advancedzaawansowanyShared
offnieShared
ontakShared
listlistaShared
infoinformacjeShared
runuruchomShared
enablewłączShared
disablewyłączShared
savezapiszShared
deleteusuńShared
removeskasujShared
givedajShared
playergraczShared
currentobecnyShared
confirmpotwierdźShared
paperpapierShared
bookksiążkaShared
standardstandardShared
codvpobranie-Vault / pvShared
codipobranie-przedmioty / ppShared
codvipobranie-Vault-i-przedmioty / pvpShared
codipzapłata-za-pobranie-przedmiotami / ppzShared
codrzwrócona-paczka-za-pobraniem / pzShared
codaprzyjęta-paczka-za-pobraniem / paShared
codpobranieShared
--from--nadawca / -nShared
--delay--opóźnienie / -oShared
--expire--wygaśnięcieShared
--message--wiadomośćShared
--title--tytuł / -tShared
aiskrzynkaodbiorczaadministratora / soaShared
updateloginlogowanieaktualizacji / laPremium only
spigotlinkpołączSpigot / pSpigotPremium only
networkindexindekssieci / isPremium only
redisredisPremium only
setustawPremium only
clearopróżnijPremium only
--server--serwerPremium only
--servers--serweryPremium only
--exclude-servers--wyklucz-serweryPremium only
--server-group--grupa-serwerówPremium only
Argument labels (documentation, not translated values)
English labelLocalized label
playergracz
recipientodbiorca
recipientsodbiorcy
sendernadawca
messagewiadomość
titletytuł
secondssekundy
durationczas-trwania
amountilość
pricecena
itemprzedmiot
idid
pagestrona
namenazwa
kitzestaw
typetyp
timeczas
fromnadawca
playernamegracz
kitnamezestaw
booktitletytuł
task-idid
name1nazwa1
name2nazwa2
name3nazwa3
recipient1odbiorca1
recipient2odbiorca2
recipient3odbiorca3
usernameużytkownik
passwordhasło
account-link-codekod-powiązania
groupgrupa
idsidentyfikatory
Русский — ru: commands, aliases & examples

These roots exist only when this is the configured default root language (English always remains). The final example below requires Premium networking. Values such as Alex, DIAMOND and survival are not translated.

Русский examples
/пя зарегистрировать
/пя настройки ресурспак автоматически
/яа отправитьбумажноеписьмо Alex "Welcome!/nEnjoy your stay." --отправитель "Server" --задержка 0
/яа отправитьпосылку Alex DIAMOND:1 --сообщение "Your reward"
/яа отправитьпосылку Alex DIAMOND:1 --сервер survival

Player

Localized structureMeaning / requirement
/пя помощь [страница]Command help and pagination.
/пя руководство [страница]Supported physical designs for this running server.
/пя набор [kit-id]Select/receive an available named kit.
/пя набор страница <number>Browse kit pages.
/пя зарегистрироватьStart personal physical-mailbox registration.
/пя отменить-регистрациюStart personal mailbox removal.
/пя открытьOpen the inbox if command access and its world rules are enabled.
/пя письмоCompose an enabled paper/book letter.
/пя посылкаCompose a package if command sending is enabled.
/пя деньгиCompose money mail if enabled and economy is available.
/пя проверитьRead-only inbox preview; not a package-claim shortcut.
/пя отследитьView queued delayed deliveries, not future scheduled tasks.
/пя настройкиOpen available settings categories; opens notification help directly when it is the only category.
/пя настройки помощьOpen the same contextual category help as settings.
/пя настройки уведомлениеOpen notification command help, not the current-value status view.
/пя настройки уведомление помощьExplain available notification commands.
/пя настройки уведомление состояниеShow current offline/online/sound choices and eligible kit reminder state.
/пя настройки уведомление офлайн простой|расширенный|нетChoose the login summary mode.
/пя настройки уведомление онлайн да|нетToggle online text notices.
/пя настройки уведомление звук да|нетToggle notification sound.
/пя настройки уведомление набор да|нетToggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/пя настройки ресурспакShow Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/пя настройки ресурспак помощьShow the resource-pack preference and command explanations.
/пя настройки ресурспак да|нет|автоматическиSelect appearance mode when server policy allows it.

Administration

Localized structureMeaning / requirement
/яа помощь [страница]Admin command help.
/яа инструментыOpen the Admin Tools inventory.
/яа входящиеадминистратораOpen the Shared Admin Inbox; alias ai.
/яа уведомлениеящика да|нетToggle your Shared Admin Inbox notices.
/яа зарегистрировать <игрок>Register a physical personal mailbox for another player.
/яа отменить-регистрациюStart admin unregister selection.
/яа импорт игрок <имя1,имя2,...>Import known real player identities; verified Citizens NPCs are excluded.
/яа преобразовать текущийInspect the selected storage provider.
/яа преобразовать YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/яа удалить-данные <игрок|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/яа очиститьBacked-up legacy-data cleanup; in-game confirmation is by chat.
/яа очистить подтвердитьConsole-only cleanup confirmation.
/яа почта-по-расписанию перезагрузить|списокValidate/reload tasks or list them.
/яа почта-по-расписанию информация|запустить|включить|отключить <ид>Inspect/test/change an existing task.
/яа шаблонпредмета сохранить <ид>Save your held item as a named template.
/яа шаблонпредмета удалить <ид>Remove a template.
/яа шаблонпредмета список [страница]Browse stored templates.
/яа шаблонпредмета выдать <ид> [игрок]Give a saved template item.
/яа перезагрузитьStage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/яа проверитьобновленияCheck available releases and explain channel differences.
/яа обновить [подтвердить]Install only from the configured release channel, with confirmation.

Sending

Localized structureMeaning / requirement
/яа отправитьбумажноеписьмо <получатели> "<сообщение>" [flags]Paper letter.
/яа отправитьписьмокнигу <получатели> "<сообщение>" --заголовок "<название>" [flags]Book letter; title required.
/яа отправитьпосылку <получатели> <item...> [flags]Standard package; optional --message.
/яа отправитьналоженнымплатежом <получатели> p:<цена> [r:<return-to>] <item...> [flags]COD package; optional --message.
/яа отправитьденьги <получатели> <количество> [flags]Money mail; optional --message; economy required.

Premium only

Localized structureMeaning / requirement
/яа индекссетиPremium: index local world playerdata into the shared recipient lookup.
/яа redis [состояние]Premium: Redis/runtime status; not a switch to bypass network health.
/яа входобновлений состояниеPremium: inspect whether protected update credentials are configured.
/яа входобновлений установить <имя-пользователя> <пароль>Premium: console-only credential change; protect command logs.
/яа входобновлений сброситьPremium: console-only credential removal.

Use the exact English marketplace command /mba spigotlink <account-link-code> when verification is available.

All accepted structural aliases and flags
English tokenLocalized accepted formsEdition
sendотправитьShared
discorddiscordPremium only
statusсостояниеPremium only
resourcepackресурспакShared
autoавтоматическиShared
p:цена:Shared
price:цена-полная:Shared
r:возврат:Shared
return:возврат-полный:Shared
t:шаблон:Shared
template:шаблон-полный:Shared
xp:опыт:Shared
trueистинаShared
falseложьShared
enabledвключеноShared
disabledотключеноShared
allplayersвсеигрокиShared
onlineplayersигрокионлайнShared
offlineplayersигрокиоффлайнShared
adminадминShared
helpпомощьShared
openоткрытьShared
guideруководствоShared
kitнаборShared
letterписьмоShared
packageпосылкаShared
moneyденьгиShared
checkпроверитьShared
trackотследитьShared
settingsнастройкиShared
registerзарегистрироватьShared
unregisterотменить-регистрациюShared
toolsинструментыShared
admininboxвходящиеадминистратора / ваShared
inboxnotificationуведомлениеящикаShared
importимпортShared
convertпреобразоватьShared
purgeудалить-данныеShared
reloadперезагрузитьShared
updatecheckпроверитьобновленияShared
updateобновитьShared
cleanочиститьShared
scheduledmailпочта-по-расписаниюShared
itemtemplateшаблонпредмета / шпShared
itшаблонпредмета / шпShared
itsaveшаблонпредмета-сохранитьShared
itdeleteшаблонпредмета-удалитьShared
itlistшаблонпредмета-списокShared
itgiveшаблонпредмета-выдатьShared
slотправитьбумажноеписьмо / бпShared
slaотправитьписьмокнигу / пкShared
spотправитьпосылку / посShared
scodотправитьналоженнымплатежом / нпShared
smотправитьденьги / денShared
testletterтест-письмоShared
testpackageтест-посылкаShared
testmoneyтест-деньгиShared
testaipackageтест-входящиеадминистратора-посылкаShared
testaimoneyтест-входящиеадминистратора-деньгиShared
pageстраницаShared
notificationуведомлениеShared
offlineофлайнShared
onlineонлайнShared
soundalertзвукShared
simpleпростойShared
advancedрасширенныйShared
offнетShared
onдаShared
listсписокShared
infoинформацияShared
runзапуститьShared
enableвключитьShared
disableотключитьShared
saveсохранитьShared
deleteудалитьShared
removeубратьShared
giveвыдатьShared
playerигрокShared
currentтекущийShared
confirmподтвердитьShared
paperбумагаShared
bookкнигаShared
standardобычныйShared
codvналоженныйплатёж-Vault / нвShared
codiналоженныйплатёж-предметами / нпShared
codviналоженныйплатёж-Vault-и-предметами / нвпShared
codipоплатапредметами-заналоженныйплатёж / нопShared
codrвозвращённаяпосылка-наложенныйплатёж / нвозShared
codaпринятаяпосылка-наложенныйплатёж / нпрShared
codналоженный-платёжShared
--from--отправитель / -оShared
--delay--задержка / -зShared
--expire--срокShared
--message--сообщениеShared
--title--заголовок / -тShared
aiвходящиеадминистратора / ваShared
updateloginвходобновлений / воPremium only
spigotlinkсвязатьSpigot / сSpigotPremium only
networkindexиндекссети / исPremium only
redisredisPremium only
setустановитьPremium only
clearсброситьPremium only
--server--серверPremium only
--servers--серверыPremium only
--exclude-servers--исключить-серверыPremium only
--server-group--группа-серверовPremium only
Argument labels (documentation, not translated values)
English labelLocalized label
playerигрок
recipientполучатель
recipientsполучатели
senderотправитель
messageсообщение
titleназвание
secondsсекунды
durationдлительность
amountколичество
priceцена
itemпредмет
idид
pageстраница
nameимя
kitнабор
typeтип
timeвремя
fromотправитель
playernameигрок
kitnameнабор
booktitleназвание
task-idид
name1имя1
name2имя2
name3имя3
recipient1получатель1
recipient2получатель2
recipient3получатель3
usernameимя-пользователя
passwordпароль
account-link-codeкод-привязки
groupгруппа
idsидентификаторы
Українська — uk: commands, aliases & examples

These roots exist only when this is the configured default root language (English always remains). The final example below requires Premium networking. Values such as Alex, DIAMOND and survival are not translated.

Українська examples
/пс зареєструвати
/пс налаштування пакетресурсів автоматично
/са надіслатипаперовийлист Alex "Welcome!/nEnjoy your stay." --відправник "Server" --затримка 0
/са надіслатипакунок Alex DIAMOND:1 --повідомлення "Your reward"
/са надіслатипакунок Alex DIAMOND:1 --сервер survival

Player

Localized structureMeaning / requirement
/пс допомога [сторінка]Command help and pagination.
/пс посібник [сторінка]Supported physical designs for this running server.
/пс набір [kit-id]Select/receive an available named kit.
/пс набір сторінка <number>Browse kit pages.
/пс зареєструватиStart personal physical-mailbox registration.
/пс скасувати-реєстраціюStart personal mailbox removal.
/пс відкритиOpen the inbox if command access and its world rules are enabled.
/пс листCompose an enabled paper/book letter.
/пс пакунокCompose a package if command sending is enabled.
/пс грошіCompose money mail if enabled and economy is available.
/пс перевіритиRead-only inbox preview; not a package-claim shortcut.
/пс відстежитиView queued delayed deliveries, not future scheduled tasks.
/пс налаштуванняOpen available settings categories; opens notification help directly when it is the only category.
/пс налаштування допомогаOpen the same contextual category help as settings.
/пс налаштування сповіщенняOpen notification command help, not the current-value status view.
/пс налаштування сповіщення допомогаExplain available notification commands.
/пс налаштування сповіщення станShow current offline/online/sound choices and eligible kit reminder state.
/пс налаштування сповіщення офлайн простий|розширений|ніChoose the login summary mode.
/пс налаштування сповіщення онлайн так|ніToggle online text notices.
/пс налаштування сповіщення звук так|ніToggle notification sound.
/пс налаштування сповіщення набір так|ніToggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/пс налаштування пакетресурсівShow Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/пс налаштування пакетресурсів допомогаShow the resource-pack preference and command explanations.
/пс налаштування пакетресурсів так|ні|автоматичноSelect appearance mode when server policy allows it.

Administration

Localized structureMeaning / requirement
/са допомога [сторінка]Admin command help.
/са інструментиOpen the Admin Tools inventory.
/са вхідніадміністратораOpen the Shared Admin Inbox; alias ai.
/са сповіщенняскриньки так|ніToggle your Shared Admin Inbox notices.
/са зареєструвати <гравець>Register a physical personal mailbox for another player.
/са скасувати-реєстраціюStart admin unregister selection.
/са імпорт гравець <ім’я1,ім’я2,...>Import known real player identities; verified Citizens NPCs are excluded.
/са конвертувати поточнийInspect the selected storage provider.
/са конвертувати YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/са видалити-дані <гравець|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/са очиститиBacked-up legacy-data cleanup; in-game confirmation is by chat.
/са очистити підтвердитиConsole-only cleanup confirmation.
/са пошта-за-розкладом перезавантажити|списокValidate/reload tasks or list them.
/са пошта-за-розкладом інформація|запустити|увімкнути|вимкнути <ід>Inspect/test/change an existing task.
/са шаблонпредмета зберегти <ід>Save your held item as a named template.
/са шаблонпредмета видалити <ід>Remove a template.
/са шаблонпредмета список [сторінка]Browse stored templates.
/са шаблонпредмета видати <ід> [гравець]Give a saved template item.
/са перезавантажитиStage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/са перевіритионовленняCheck available releases and explain channel differences.
/са оновити [підтвердити]Install only from the configured release channel, with confirmation.

Sending

Localized structureMeaning / requirement
/са надіслатипаперовийлист <одержувачі> "<повідомлення>" [flags]Paper letter.
/са надіслатилисткнигу <одержувачі> "<повідомлення>" --заголовок "<назва>" [flags]Book letter; title required.
/са надіслатипакунок <одержувачі> <item...> [flags]Standard package; optional --message.
/са надіслатипісляплатою <одержувачі> p:<ціна> [r:<return-to>] <item...> [flags]COD package; optional --message.
/са надіслатигроші <одержувачі> <кількість> [flags]Money mail; optional --message; economy required.

Premium only

Localized structureMeaning / requirement
/са індексмережіPremium: index local world playerdata into the shared recipient lookup.
/са redis [стан]Premium: Redis/runtime status; not a switch to bypass network health.
/са вхідоновлень станPremium: inspect whether protected update credentials are configured.
/са вхідоновлень встановити <ім’я-користувача> <пароль>Premium: console-only credential change; protect command logs.
/са вхідоновлень скинутиPremium: console-only credential removal.

Use the exact English marketplace command /mba spigotlink <account-link-code> when verification is available.

All accepted structural aliases and flags
English tokenLocalized accepted formsEdition
sendнадіслатиShared
discorddiscordPremium only
statusстанPremium only
resourcepackпакетресурсівShared
autoавтоматичноShared
p:ціна:Shared
price:ціна-повна:Shared
r:повернення:Shared
return:повернення-повне:Shared
t:шаблон:Shared
template:шаблон-повний:Shared
xp:досвід:Shared
trueістинаShared
falseхибністьShared
enabledувімкненоShared
disabledвимкненоShared
allplayersусігравціShared
onlineplayersгравціонлайнShared
offlineplayersгравціофлайнShared
adminадмінShared
helpдопомогаShared
openвідкритиShared
guideпосібникShared
kitнабірShared
letterлистShared
packageпакунокShared
moneyгрошіShared
checkперевіритиShared
trackвідстежитиShared
settingsналаштуванняShared
registerзареєструватиShared
unregisterскасувати-реєстраціюShared
toolsінструментиShared
admininboxвхідніадміністратора / ваShared
inboxnotificationсповіщенняскринькиShared
importімпортShared
convertконвертуватиShared
purgeвидалити-даніShared
reloadперезавантажитиShared
updatecheckперевіритионовленняShared
updateоновитиShared
cleanочиститиShared
scheduledmailпошта-за-розкладомShared
itemtemplateшаблонпредмета / шпShared
itшаблонпредмета / шпShared
itsaveшаблонпредмета-зберегтиShared
itdeleteшаблонпредмета-видалитиShared
itlistшаблонпредмета-списокShared
itgiveшаблонпредмета-видатиShared
slнадіслатипаперовийлист / плShared
slaнадіслатилисткнигу / лкShared
spнадіслатипакунок / пакShared
scodнадіслатипісляплатою / ппShared
smнадіслатигроші / грShared
testletterтест-листShared
testpackageтест-пакунокShared
testmoneyтест-грошіShared
testaipackageтест-вхідніадміністратора-пакунокShared
testaimoneyтест-вхідніадміністратора-грошіShared
pageсторінкаShared
notificationсповіщенняShared
offlineофлайнShared
onlineонлайнShared
soundalertзвукShared
simpleпростийShared
advancedрозширенийShared
offніShared
onтакShared
listсписокShared
infoінформаціяShared
runзапуститиShared
enableувімкнутиShared
disableвимкнутиShared
saveзберегтиShared
deleteвидалитиShared
removeприбратиShared
giveвидатиShared
playerгравецьShared
currentпоточнийShared
confirmпідтвердитиShared
paperпапірShared
bookкнигаShared
standardзвичайнийShared
codvпісляплата-Vault / пвShared
codiпісляплата-предметами / ппShared
codviпісляплата-Vault-і-предметами / пвпShared
codipоплатапредметами-запісляплату / попShared
codrповерненийпакунок-зпісляплатою / пповShared
codaприйнятийпакунок-зпісляплатою / ппрShared
codпісляплатаShared
--from--відправник / -вShared
--delay--затримка / -зShared
--expire--строкShared
--message--повідомленняShared
--title--заголовок / -нShared
aiвхідніадміністратора / ваShared
updateloginвхідоновлень / воPremium only
spigotlinkпривʼязатиSpigot / пSpigotPremium only
networkindexіндексмережі / імPremium only
redisredisPremium only
setвстановитиPremium only
clearскинутиPremium only
--server--серверPremium only
--servers--сервериPremium only
--exclude-servers--виключити-сервериPremium only
--server-group--група-серверівPremium only
Argument labels (documentation, not translated values)
English labelLocalized label
playerгравець
recipientодержувач
recipientsодержувачі
senderвідправник
messageповідомлення
titleназва
secondsсекунди
durationтривалість
amountкількість
priceціна
itemпредмет
idід
pageсторінка
nameім’я
kitнабір
typeтип
timeчас
fromвідправник
playernameгравець
kitnameнабір
booktitleназва
task-idід
name1ім’я1
name2ім’я2
name3ім’я3
recipient1одержувач1
recipient2одержувач2
recipient3одержувач3
usernameім’я-користувача
passwordпароль
account-link-codeкод-прив’язування
groupгрупа
idsідентифікатори
日本語 — ja: commands, aliases & examples

These roots exist only when this is the configured default root language (English always remains). The final example below requires Premium networking. Values such as Alex, DIAMOND and survival are not translated.

日本語 examples
/郵箱 登録
/郵箱 設定 リソースパック 自動
/管郵 紙の手紙送信 Alex "Welcome!/nEnjoy your stay." --送信者 "Server" --遅延 0
/管郵 荷物送信 Alex DIAMOND:1 --メッセージ "Your reward"
/管郵 荷物送信 Alex DIAMOND:1 --サーバー survival

Player

Localized structureMeaning / requirement
/郵箱 ヘルプ [ページ]Command help and pagination.
/郵箱 ガイド [ページ]Supported physical designs for this running server.
/郵箱 キット [kit-id]Select/receive an available named kit.
/郵箱 キット ページ <number>Browse kit pages.
/郵箱 登録Start personal physical-mailbox registration.
/郵箱 登録解除Start personal mailbox removal.
/郵箱 開くOpen the inbox if command access and its world rules are enabled.
/郵箱 手紙Compose an enabled paper/book letter.
/郵箱 荷物Compose a package if command sending is enabled.
/郵箱 お金Compose money mail if enabled and economy is available.
/郵箱 確認Read-only inbox preview; not a package-claim shortcut.
/郵箱 追跡View queued delayed deliveries, not future scheduled tasks.
/郵箱 設定Open available settings categories; opens notification help directly when it is the only category.
/郵箱 設定 ヘルプOpen the same contextual category help as settings.
/郵箱 設定 通知Open notification command help, not the current-value status view.
/郵箱 設定 通知 ヘルプExplain available notification commands.
/郵箱 設定 通知 状態Show current offline/online/sound choices and eligible kit reminder state.
/郵箱 設定 通知 オフライン 簡易|詳細|オフChoose the login summary mode.
/郵箱 設定 通知 オンライン オン|オフToggle online text notices.
/郵箱 設定 通知 通知音 オン|オフToggle notification sound.
/郵箱 設定 通知 キット オン|オフToggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/郵箱 設定 リソースパックShow Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/郵箱 設定 リソースパック ヘルプShow the resource-pack preference and command explanations.
/郵箱 設定 リソースパック オン|オフ|自動Select appearance mode when server policy allows it.

Administration

Localized structureMeaning / requirement
/管郵 ヘルプ [ページ]Admin command help.
/管郵 ツールOpen the Admin Tools inventory.
/管郵 管理者受信箱Open the Shared Admin Inbox; alias ai.
/管郵 受信箱通知 オン|オフToggle your Shared Admin Inbox notices.
/管郵 登録 <プレイヤー>Register a physical personal mailbox for another player.
/管郵 登録解除Start admin unregister selection.
/管郵 インポート プレイヤー <名前1,名前2,...>Import known real player identities; verified Citizens NPCs are excluded.
/管郵 変換 現在Inspect the selected storage provider.
/管郵 変換 YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/管郵 全削除 <プレイヤー|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/管郵 清掃Backed-up legacy-data cleanup; in-game confirmation is by chat.
/管郵 清掃 確認するConsole-only cleanup confirmation.
/管郵 予約メール 再読込|一覧Validate/reload tasks or list them.
/管郵 予約メール 情報|実行|有効化|無効化 <ID>Inspect/test/change an existing task.
/管郵 アイテムひな形 保存 <ID>Save your held item as a named template.
/管郵 アイテムひな形 削除 <ID>Remove a template.
/管郵 アイテムひな形 一覧 [ページ]Browse stored templates.
/管郵 アイテムひな形 付与 <ID> [プレイヤー]Give a saved template item.
/管郵 再読込Stage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/管郵 更新確認Check available releases and explain channel differences.
/管郵 更新 [確認する]Install only from the configured release channel, with confirmation.

Sending

Localized structureMeaning / requirement
/管郵 紙の手紙送信 <受取人一覧> "<メッセージ>" [flags]Paper letter.
/管郵 本の手紙送信 <受取人一覧> "<メッセージ>" --題名 "<タイトル>" [flags]Book letter; title required.
/管郵 荷物送信 <受取人一覧> <item...> [flags]Standard package; optional --message.
/管郵 代金引換送信 <受取人一覧> p:<価格> [r:<return-to>] <item...> [flags]COD package; optional --message.
/管郵 お金送信 <受取人一覧> <数量> [flags]Money mail; optional --message; economy required.

Premium only

Localized structureMeaning / requirement
/管郵 ネットワーク索引Premium: index local world playerdata into the shared recipient lookup.
/管郵 redis [状態]Premium: Redis/runtime status; not a switch to bypass network health.
/管郵 更新ログイン 状態Premium: inspect whether protected update credentials are configured.
/管郵 更新ログイン 設定する <ユーザー名> <パスワード>Premium: console-only credential change; protect command logs.
/管郵 更新ログイン 消去Premium: console-only credential removal.

Use the exact English marketplace command /mba spigotlink <account-link-code> when verification is available.

All accepted structural aliases and flags
English tokenLocalized accepted formsEdition
send送信Shared
discorddiscordPremium only
status状態Premium only
resourcepackリソースパックShared
auto自動Shared
p:価格:Shared
price:価格指定:Shared
r:返品:Shared
return:返品指定:Shared
t:テンプレート:Shared
template:テンプレート指定:Shared
xp:経験値:Shared
true真Shared
false偽Shared
enabled有効Shared
disabled無効Shared
allplayers全プレイヤーShared
onlineplayersオンラインプレイヤーShared
offlineplayersオフラインプレイヤーShared
admin管理Shared
helpヘルプShared
open開くShared
guideガイドShared
kitキットShared
letter手紙Shared
package荷物Shared
moneyお金Shared
check確認Shared
track追跡Shared
settings設定Shared
register登録Shared
unregister登録解除Shared
toolsツールShared
admininbox管理者受信箱 / 管受Shared
inboxnotification受信箱通知Shared
importインポートShared
convert変換Shared
purge全削除Shared
reload再読込Shared
updatecheck更新確認Shared
update更新Shared
clean清掃Shared
scheduledmail予約メールShared
itemtemplateアイテムひな形 / ひな形Shared
itアイテムひな形 / ひな形Shared
itsaveアイテムひな形-保存Shared
itdeleteアイテムひな形-削除Shared
itlistアイテムひな形-一覧Shared
itgiveアイテムひな形-付与Shared
sl紙の手紙送信 / 紙便Shared
sla本の手紙送信 / 本便Shared
sp荷物送信 / 荷送Shared
scod代金引換送信 / 代引Shared
smお金送信 / 送金Shared
testletter試験-手紙Shared
testpackage試験-荷物Shared
testmoney試験-お金Shared
testaipackage試験-管理者受信箱-荷物Shared
testaimoney試験-管理者受信箱-お金Shared
pageページShared
notification通知Shared
offlineオフラインShared
onlineオンラインShared
soundalert通知音Shared
simple簡易Shared
advanced詳細Shared
offオフShared
onオンShared
list一覧Shared
info情報Shared
run実行Shared
enable有効化Shared
disable無効化Shared
save保存Shared
delete削除Shared
remove除去Shared
give付与Shared
playerプレイヤーShared
current現在Shared
confirm確認するShared
paper紙Shared
book本Shared
standard通常Shared
codv代金引換-Vault / 代引金Shared
codi代金引換-アイテム / 代引品Shared
codvi代金引換-Vaultとアイテム / 代引両Shared
codip代金引換-アイテム支払い / 代引品払Shared
codr返品された代金引換荷物 / 代引返Shared
coda受取済み代金引換荷物 / 代引済Shared
cod代金引換Shared
--from--送信者 / -送Shared
--delay--遅延 / -遅Shared
--expire--期限Shared
--message--メッセージShared
--title--題名 / -題Shared
ai管理者受信箱 / 管受Shared
updatelogin更新ログイン / 更新認証Premium only
spigotlinkSpigot連携 / Spigot接続Premium only
networkindexネットワーク索引 / 網索引Premium only
redisredisPremium only
set設定するPremium only
clear消去Premium only
--server--サーバーPremium only
--servers--サーバー一覧Premium only
--exclude-servers--除外サーバーPremium only
--server-group--サーバーグループPremium only
Argument labels (documentation, not translated values)
English labelLocalized label
playerプレイヤー
recipient受取人
recipients受取人一覧
sender差出人
messageメッセージ
titleタイトル
seconds秒数
duration期間
amount数量
price価格
itemアイテム
idID
pageページ
name名前
kitキット
type種類
time時間
from差出人
playernameプレイヤー
kitnameキット
booktitleタイトル
task-idID
name1名前1
name2名前2
name3名前3
recipient1受取人1
recipient2受取人2
recipient3受取人3
usernameユーザー名
passwordパスワード
account-link-codeアカウント連携コード
groupグループ
idsID一覧
한국어 — ko: commands, aliases & examples

These roots exist only when this is the configured default root language (English always remains). The final example below requires Premium networking. Values such as Alex, DIAMOND and survival are not translated.

한국어 examples
/우함 등록
/우함 설정 리소스팩 자동
/관우 종이편지보내기 Alex "Welcome!/nEnjoy your stay." --발신자 "Server" --지연 0
/관우 소포보내기 Alex DIAMOND:1 --메시지 "Your reward"
/관우 소포보내기 Alex DIAMOND:1 --서버 survival

Player

Localized structureMeaning / requirement
/우함 도움말 [페이지]Command help and pagination.
/우함 안내 [페이지]Supported physical designs for this running server.
/우함 키트 [kit-id]Select/receive an available named kit.
/우함 키트 페이지 <number>Browse kit pages.
/우함 등록Start personal physical-mailbox registration.
/우함 등록해제Start personal mailbox removal.
/우함 열기Open the inbox if command access and its world rules are enabled.
/우함 편지Compose an enabled paper/book letter.
/우함 소포Compose a package if command sending is enabled.
/우함 돈Compose money mail if enabled and economy is available.
/우함 확인Read-only inbox preview; not a package-claim shortcut.
/우함 추적View queued delayed deliveries, not future scheduled tasks.
/우함 설정Open available settings categories; opens notification help directly when it is the only category.
/우함 설정 도움말Open the same contextual category help as settings.
/우함 설정 알림Open notification command help, not the current-value status view.
/우함 설정 알림 도움말Explain available notification commands.
/우함 설정 알림 상태Show current offline/online/sound choices and eligible kit reminder state.
/우함 설정 알림 오프라인 간단|상세|끄기Choose the login summary mode.
/우함 설정 알림 온라인 켜기|끄기Toggle online text notices.
/우함 설정 알림 알림음 켜기|끄기Toggle notification sound.
/우함 설정 알림 키트 켜기|끄기Toggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/우함 설정 리소스팩Show Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/우함 설정 리소스팩 도움말Show the resource-pack preference and command explanations.
/우함 설정 리소스팩 켜기|끄기|자동Select appearance mode when server policy allows it.

Administration

Localized structureMeaning / requirement
/관우 도움말 [페이지]Admin command help.
/관우 도구Open the Admin Tools inventory.
/관우 관리자받은우편함Open the Shared Admin Inbox; alias ai.
/관우 우편함알림 켜기|끄기Toggle your Shared Admin Inbox notices.
/관우 등록 <플레이어>Register a physical personal mailbox for another player.
/관우 등록해제Start admin unregister selection.
/관우 가져오기 플레이어 <이름1,이름2,...>Import known real player identities; verified Citizens NPCs are excluded.
/관우 변환 현재Inspect the selected storage provider.
/관우 변환 YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/관우 데이터삭제 <플레이어|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/관우 정리Backed-up legacy-data cleanup; in-game confirmation is by chat.
/관우 정리 승인Console-only cleanup confirmation.
/관우 예약우편 다시불러오기|목록Validate/reload tasks or list them.
/관우 예약우편 정보|실행|활성화|비활성화 <ID>Inspect/test/change an existing task.
/관우 아이템견본 저장 <ID>Save your held item as a named template.
/관우 아이템견본 삭제 <ID>Remove a template.
/관우 아이템견본 목록 [페이지]Browse stored templates.
/관우 아이템견본 지급 <ID> [플레이어]Give a saved template item.
/관우 다시불러오기Stage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/관우 업데이트확인Check available releases and explain channel differences.
/관우 업데이트 [승인]Install only from the configured release channel, with confirmation.

Sending

Localized structureMeaning / requirement
/관우 종이편지보내기 <수신자목록> "<메시지>" [flags]Paper letter.
/관우 책편지보내기 <수신자목록> "<메시지>" --제목 "<제목>" [flags]Book letter; title required.
/관우 소포보내기 <수신자목록> <item...> [flags]Standard package; optional --message.
/관우 착불소포보내기 <수신자목록> p:<가격> [r:<return-to>] <item...> [flags]COD package; optional --message.
/관우 돈보내기 <수신자목록> <수량> [flags]Money mail; optional --message; economy required.

Premium only

Localized structureMeaning / requirement
/관우 네트워크색인Premium: index local world playerdata into the shared recipient lookup.
/관우 redis [상태]Premium: Redis/runtime status; not a switch to bypass network health.
/관우 업데이트로그인 상태Premium: inspect whether protected update credentials are configured.
/관우 업데이트로그인 지정 <사용자명> <비밀번호>Premium: console-only credential change; protect command logs.
/관우 업데이트로그인 초기화Premium: console-only credential removal.

Use the exact English marketplace command /mba spigotlink <account-link-code> when verification is available.

All accepted structural aliases and flags
English tokenLocalized accepted formsEdition
send보내기Shared
discorddiscordPremium only
status상태Premium only
resourcepack리소스팩Shared
auto자동Shared
p:가격:Shared
price:가격지정:Shared
r:반환:Shared
return:반환지정:Shared
t:템플릿:Shared
template:템플릿지정:Shared
xp:경험치:Shared
true참Shared
false거짓Shared
enabled활성Shared
disabled비활성Shared
allplayers모든플레이어Shared
onlineplayers온라인플레이어Shared
offlineplayers오프라인플레이어Shared
admin관리Shared
help도움말Shared
open열기Shared
guide안내Shared
kit키트Shared
letter편지Shared
package소포Shared
money돈Shared
check확인Shared
track추적Shared
settings설정Shared
register등록Shared
unregister등록해제Shared
tools도구Shared
admininbox관리자받은우편함 / 관리받은함Shared
inboxnotification우편함알림Shared
import가져오기Shared
convert변환Shared
purge데이터삭제Shared
reload다시불러오기Shared
updatecheck업데이트확인Shared
update업데이트Shared
clean정리Shared
scheduledmail예약우편Shared
itemtemplate아이템견본 / 견본Shared
it아이템견본 / 견본Shared
itsave아이템견본-저장Shared
itdelete아이템견본-삭제Shared
itlist아이템견본-목록Shared
itgive아이템견본-지급Shared
sl종이편지보내기 / 종이편지Shared
sla책편지보내기 / 책편지Shared
sp소포보내기 / 소포발송Shared
scod착불소포보내기 / 착불발송Shared
sm돈보내기 / 송금Shared
testletter테스트-편지Shared
testpackage테스트-소포Shared
testmoney테스트-돈Shared
testaipackage테스트-관리자받은우편함-소포Shared
testaimoney테스트-관리자받은우편함-돈Shared
page페이지Shared
notification알림Shared
offline오프라인Shared
online온라인Shared
soundalert알림음Shared
simple간단Shared
advanced상세Shared
off끄기Shared
on켜기Shared
list목록Shared
info정보Shared
run실행Shared
enable활성화Shared
disable비활성화Shared
save저장Shared
delete삭제Shared
remove제거Shared
give지급Shared
player플레이어Shared
current현재Shared
confirm승인Shared
paper종이Shared
book책Shared
standard일반Shared
codv착불-Vault / 착불돈Shared
codi착불-아이템 / 착불품Shared
codvi착불-Vault와아이템 / 착불둘Shared
codip착불-아이템지불 / 착불품지불Shared
codr반송된착불소포 / 착불반송Shared
coda수락된착불소포 / 착불수락Shared
cod착불Shared
--from--발신자 / -발Shared
--delay--지연 / -지Shared
--expire--만료Shared
--message--메시지Shared
--title--제목 / -제Shared
ai관리자받은우편함 / 관리받은함Shared
updatelogin업데이트로그인 / 업데이트인증Premium only
spigotlinkSpigot연결 / Spigot연동Premium only
networkindex네트워크색인 / 망색인Premium only
redisredisPremium only
set지정Premium only
clear초기화Premium only
--server--서버Premium only
--servers--서버목록Premium only
--exclude-servers--제외서버Premium only
--server-group--서버그룹Premium only
Argument labels (documentation, not translated values)
English labelLocalized label
player플레이어
recipient수신자
recipients수신자목록
sender발신자
message메시지
title제목
seconds초
duration기간
amount수량
price가격
item아이템
idID
page페이지
name이름
kit키트
type유형
time시간
from발신자
playername플레이어
kitname키트
booktitle제목
task-idID
name1이름1
name2이름2
name3이름3
recipient1수신자1
recipient2수신자2
recipient3수신자3
username사용자명
password비밀번호
account-link-code계정연결코드
group그룹
idsID목록
简体中文 — zh_cn: commands, aliases & examples

These roots exist only when this is the configured default root language (English always remains). The final example below requires Premium networking. Values such as Alex, DIAMOND and survival are not translated.

简体中文 examples
/邮 注册
/邮 设置 资源包 自动
/管邮 发送纸质信件 Alex "Welcome!/nEnjoy your stay." --发件人 "Server" --延迟 0
/管邮 发送包裹 Alex DIAMOND:1 --消息 "Your reward"
/管邮 发送包裹 Alex DIAMOND:1 --服务器 survival

Player

Localized structureMeaning / requirement
/邮 帮助 [页码]Command help and pagination.
/邮 指南 [页码]Supported physical designs for this running server.
/邮 套件 [kit-id]Select/receive an available named kit.
/邮 套件 页码 <number>Browse kit pages.
/邮 注册Start personal physical-mailbox registration.
/邮 注销Start personal mailbox removal.
/邮 打开Open the inbox if command access and its world rules are enabled.
/邮 信件Compose an enabled paper/book letter.
/邮 包裹Compose a package if command sending is enabled.
/邮 金钱Compose money mail if enabled and economy is available.
/邮 检查Read-only inbox preview; not a package-claim shortcut.
/邮 追踪View queued delayed deliveries, not future scheduled tasks.
/邮 设置Open available settings categories; opens notification help directly when it is the only category.
/邮 设置 帮助Open the same contextual category help as settings.
/邮 设置 通知Open notification command help, not the current-value status view.
/邮 设置 通知 帮助Explain available notification commands.
/邮 设置 通知 状态Show current offline/online/sound choices and eligible kit reminder state.
/邮 设置 通知 离线 简单|详细|关Choose the login summary mode.
/邮 设置 通知 在线 开|关Toggle online text notices.
/邮 设置 通知 提示音 开|关Toggle notification sound.
/邮 设置 通知 套件 开|关Toggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/邮 设置 资源包Show Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/邮 设置 资源包 帮助Show the resource-pack preference and command explanations.
/邮 设置 资源包 开|关|自动Select appearance mode when server policy allows it.

Administration

Localized structureMeaning / requirement
/管邮 帮助 [页码]Admin command help.
/管邮 工具Open the Admin Tools inventory.
/管邮 管理员收件箱Open the Shared Admin Inbox; alias ai.
/管邮 收件箱通知 开|关Toggle your Shared Admin Inbox notices.
/管邮 注册 <玩家>Register a physical personal mailbox for another player.
/管邮 注销Start admin unregister selection.
/管邮 导入 玩家 <名称1,名称2,...>Import known real player identities; verified Citizens NPCs are excluded.
/管邮 转换 当前Inspect the selected storage provider.
/管邮 转换 YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/管邮 清除数据 <玩家|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/管邮 清理Backed-up legacy-data cleanup; in-game confirmation is by chat.
/管邮 清理 确认Console-only cleanup confirmation.
/管邮 定时邮件 重载|列表Validate/reload tasks or list them.
/管邮 定时邮件 信息|运行|启用|禁用 <编号>Inspect/test/change an existing task.
/管邮 物品模板 保存 <编号>Save your held item as a named template.
/管邮 物品模板 删除 <编号>Remove a template.
/管邮 物品模板 列表 [页码]Browse stored templates.
/管邮 物品模板 给予 <编号> [玩家]Give a saved template item.
/管邮 重载Stage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/管邮 检查更新Check available releases and explain channel differences.
/管邮 更新 [确认]Install only from the configured release channel, with confirmation.

Sending

Localized structureMeaning / requirement
/管邮 发送纸质信件 <收件人列表> "<消息>" [flags]Paper letter.
/管邮 发送书信 <收件人列表> "<消息>" --标题 "<标题>" [flags]Book letter; title required.
/管邮 发送包裹 <收件人列表> <item...> [flags]Standard package; optional --message.
/管邮 发送货到付款包裹 <收件人列表> p:<价格> [r:<return-to>] <item...> [flags]COD package; optional --message.
/管邮 发送金钱 <收件人列表> <数量> [flags]Money mail; optional --message; economy required.

Premium only

Localized structureMeaning / requirement
/管邮 网络索引Premium: index local world playerdata into the shared recipient lookup.
/管邮 redis [状态]Premium: Redis/runtime status; not a switch to bypass network health.
/管邮 更新登录 状态Premium: inspect whether protected update credentials are configured.
/管邮 更新登录 设定 <用户名> <密码>Premium: console-only credential change; protect command logs.
/管邮 更新登录 清空Premium: console-only credential removal.

Use the exact English marketplace command /mba spigotlink <account-link-code> when verification is available.

All accepted structural aliases and flags
English tokenLocalized accepted formsEdition
send发送Shared
discorddiscordPremium only
status状态Premium only
resourcepack资源包Shared
auto自动Shared
p:价格:Shared
price:价格指定:Shared
r:退回:Shared
return:退回指定:Shared
t:模板:Shared
template:模板指定:Shared
xp:经验:Shared
true真Shared
false假Shared
enabled已启用Shared
disabled已禁用Shared
allplayers所有玩家Shared
onlineplayers在线玩家Shared
offlineplayers离线玩家Shared
admin管理Shared
help帮助Shared
open打开Shared
guide指南Shared
kit套件Shared
letter信件Shared
package包裹Shared
money金钱Shared
check检查Shared
track追踪Shared
settings设置Shared
register注册Shared
unregister注销Shared
tools工具Shared
admininbox管理员收件箱 / 管收Shared
inboxnotification收件箱通知Shared
import导入Shared
convert转换Shared
purge清除数据Shared
reload重载Shared
updatecheck检查更新Shared
update更新Shared
clean清理Shared
scheduledmail定时邮件Shared
itemtemplate物品模板 / 物模Shared
it物品模板 / 物模Shared
itsave物品模板-保存Shared
itdelete物品模板-删除Shared
itlist物品模板-列表Shared
itgive物品模板-给予Shared
sl发送纸质信件 / 发纸信Shared
sla发送书信 / 发书信Shared
sp发送包裹 / 发包裹Shared
scod发送货到付款包裹 / 发到付Shared
sm发送金钱 / 汇款Shared
testletter测试-信件Shared
testpackage测试-包裹Shared
testmoney测试-金钱Shared
testaipackage测试-管理员收件箱-包裹Shared
testaimoney测试-管理员收件箱-金钱Shared
page页码Shared
notification通知Shared
offline离线Shared
online在线Shared
soundalert提示音Shared
simple简单Shared
advanced详细Shared
off关Shared
on开Shared
list列表Shared
info信息Shared
run运行Shared
enable启用Shared
disable禁用Shared
save保存Shared
delete删除Shared
remove移除Shared
give给予Shared
player玩家Shared
current当前Shared
confirm确认Shared
paper纸张Shared
book书籍Shared
standard普通Shared
codv货到付款-Vault / 到付金Shared
codi货到付款-物品 / 到付物Shared
codvi货到付款-Vault和物品 / 到付双Shared
codip货到付款-物品收款 / 到付物款Shared
codr退回的货到付款包裹 / 到付退Shared
coda已接受的货到付款包裹 / 到付收Shared
cod货到付款Shared
--from--发件人 / -寄Shared
--delay--延迟 / -延Shared
--expire--到期Shared
--message--消息Shared
--title--标题 / -题Shared
ai管理员收件箱 / 管收Shared
updatelogin更新登录 / 更新认证Premium only
spigotlinkSpigot关联 / Spigot绑定Premium only
networkindex网络索引 / 网索引Premium only
redisredisPremium only
set设定Premium only
clear清空Premium only
--server--服务器Premium only
--servers--服务器列表Premium only
--exclude-servers--排除服务器Premium only
--server-group--服务器组Premium only
Argument labels (documentation, not translated values)
English labelLocalized label
player玩家
recipient收件人
recipients收件人列表
sender发件人
message消息
title标题
seconds秒数
duration时长
amount数量
price价格
item物品
id编号
page页码
name名称
kit套件
type类型
time时间
from发件人
playername玩家
kitname套件
booktitle标题
task-id编号
name1名称1
name2名称2
name3名称3
recipient1收件人1
recipient2收件人2
recipient3收件人3
username用户名
password密码
account-link-code账户关联码
group组
ids编号列表
繁體中文(臺灣) — zh_tw: commands, aliases & examples

These roots exist only when this is the configured default root language (English always remains). The final example below requires Premium networking. Values such as Alex, DIAMOND and survival are not translated.

繁體中文(臺灣) examples
/郵 註冊
/郵 設定 資源包 自動
/管郵 寄送紙本信件 Alex "Welcome!/nEnjoy your stay." --寄件者 "Server" --延遲 0
/管郵 寄送包裹 Alex DIAMOND:1 --訊息 "Your reward"
/管郵 寄送包裹 Alex DIAMOND:1 --伺服器 survival

Player

Localized structureMeaning / requirement
/郵 說明 [頁碼]Command help and pagination.
/郵 指南 [頁碼]Supported physical designs for this running server.
/郵 套件 [kit-id]Select/receive an available named kit.
/郵 套件 頁碼 <number>Browse kit pages.
/郵 註冊Start personal physical-mailbox registration.
/郵 取消註冊Start personal mailbox removal.
/郵 開啟Open the inbox if command access and its world rules are enabled.
/郵 信件Compose an enabled paper/book letter.
/郵 包裹Compose a package if command sending is enabled.
/郵 金錢Compose money mail if enabled and economy is available.
/郵 檢查Read-only inbox preview; not a package-claim shortcut.
/郵 追蹤View queued delayed deliveries, not future scheduled tasks.
/郵 設定Open available settings categories; opens notification help directly when it is the only category.
/郵 設定 說明Open the same contextual category help as settings.
/郵 設定 通知Open notification command help, not the current-value status view.
/郵 設定 通知 說明Explain available notification commands.
/郵 設定 通知 狀態Show current offline/online/sound choices and eligible kit reminder state.
/郵 設定 通知 離線 簡易|詳細|關Choose the login summary mode.
/郵 設定 通知 線上 開|關Toggle online text notices.
/郵 設定 通知 提示音 開|關Toggle notification sound.
/郵 設定 通知 套件 開|關Toggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/郵 設定 資源包Show Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/郵 設定 資源包 說明Show the resource-pack preference and command explanations.
/郵 設定 資源包 開|關|自動Select appearance mode when server policy allows it.

Administration

Localized structureMeaning / requirement
/管郵 說明 [頁碼]Admin command help.
/管郵 工具Open the Admin Tools inventory.
/管郵 管理員收件匣Open the Shared Admin Inbox; alias ai.
/管郵 收件匣通知 開|關Toggle your Shared Admin Inbox notices.
/管郵 註冊 <玩家>Register a physical personal mailbox for another player.
/管郵 取消註冊Start admin unregister selection.
/管郵 匯入 玩家 <名稱1,名稱2,...>Import known real player identities; verified Citizens NPCs are excluded.
/管郵 轉換 目前Inspect the selected storage provider.
/管郵 轉換 YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/管郵 清除資料 <玩家|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/管郵 清理Backed-up legacy-data cleanup; in-game confirmation is by chat.
/管郵 清理 確認Console-only cleanup confirmation.
/管郵 排程郵件 重新載入|清單Validate/reload tasks or list them.
/管郵 排程郵件 資訊|執行|啟用|停用 <編號>Inspect/test/change an existing task.
/管郵 物品範本 儲存 <編號>Save your held item as a named template.
/管郵 物品範本 刪除 <編號>Remove a template.
/管郵 物品範本 清單 [頁碼]Browse stored templates.
/管郵 物品範本 給予 <編號> [玩家]Give a saved template item.
/管郵 重新載入Stage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/管郵 檢查更新Check available releases and explain channel differences.
/管郵 更新 [確認]Install only from the configured release channel, with confirmation.

Sending

Localized structureMeaning / requirement
/管郵 寄送紙本信件 <收件人清單> "<訊息>" [flags]Paper letter.
/管郵 寄送書信 <收件人清單> "<訊息>" --標題 "<標題>" [flags]Book letter; title required.
/管郵 寄送包裹 <收件人清單> <item...> [flags]Standard package; optional --message.
/管郵 寄送貨到付款包裹 <收件人清單> p:<價格> [r:<return-to>] <item...> [flags]COD package; optional --message.
/管郵 寄送金錢 <收件人清單> <數量> [flags]Money mail; optional --message; economy required.

Premium only

Localized structureMeaning / requirement
/管郵 網路索引Premium: index local world playerdata into the shared recipient lookup.
/管郵 redis [狀態]Premium: Redis/runtime status; not a switch to bypass network health.
/管郵 更新登入 狀態Premium: inspect whether protected update credentials are configured.
/管郵 更新登入 設置 <使用者名稱> <密碼>Premium: console-only credential change; protect command logs.
/管郵 更新登入 清空Premium: console-only credential removal.

Use the exact English marketplace command /mba spigotlink <account-link-code> when verification is available.

All accepted structural aliases and flags
English tokenLocalized accepted formsEdition
send傳送Shared
discorddiscordPremium only
status狀態Premium only
resourcepack資源包Shared
auto自動Shared
p:價格:Shared
price:價格指定:Shared
r:退回:Shared
return:退回指定:Shared
t:範本:Shared
template:範本指定:Shared
xp:經驗:Shared
true真Shared
false假Shared
enabled已啟用Shared
disabled已停用Shared
allplayers所有玩家Shared
onlineplayers線上玩家Shared
offlineplayers離線玩家Shared
admin管理Shared
help說明Shared
open開啟Shared
guide指南Shared
kit套件Shared
letter信件Shared
package包裹Shared
money金錢Shared
check檢查Shared
track追蹤Shared
settings設定Shared
register註冊Shared
unregister取消註冊Shared
tools工具Shared
admininbox管理員收件匣 / 管收Shared
inboxnotification收件匣通知Shared
import匯入Shared
convert轉換Shared
purge清除資料Shared
reload重新載入Shared
updatecheck檢查更新Shared
update更新Shared
clean清理Shared
scheduledmail排程郵件Shared
itemtemplate物品範本 / 物範Shared
it物品範本 / 物範Shared
itsave物品範本-儲存Shared
itdelete物品範本-刪除Shared
itlist物品範本-清單Shared
itgive物品範本-給予Shared
sl寄送紙本信件 / 寄紙信Shared
sla寄送書信 / 寄書信Shared
sp寄送包裹 / 寄包裹Shared
scod寄送貨到付款包裹 / 寄到付Shared
sm寄送金錢 / 匯款Shared
testletter測試-信件Shared
testpackage測試-包裹Shared
testmoney測試-金錢Shared
testaipackage測試-管理員收件匣-包裹Shared
testaimoney測試-管理員收件匣-金錢Shared
page頁碼Shared
notification通知Shared
offline離線Shared
online線上Shared
soundalert提示音Shared
simple簡易Shared
advanced詳細Shared
off關Shared
on開Shared
list清單Shared
info資訊Shared
run執行Shared
enable啟用Shared
disable停用Shared
save儲存Shared
delete刪除Shared
remove移除Shared
give給予Shared
player玩家Shared
current目前Shared
confirm確認Shared
paper紙張Shared
book書籍Shared
standard一般Shared
codv貨到付款-Vault / 到付金Shared
codi貨到付款-物品 / 到付物Shared
codvi貨到付款-Vault和物品 / 到付雙Shared
codip貨到付款-物品收款 / 到付物款Shared
codr退回的貨到付款包裹 / 到付退Shared
coda已接受的貨到付款包裹 / 到付收Shared
cod貨到付款Shared
--from--寄件者 / -寄Shared
--delay--延遲 / -延Shared
--expire--到期Shared
--message--訊息Shared
--title--標題 / -題Shared
ai管理員收件匣 / 管收Shared
updatelogin更新登入 / 更新驗證Premium only
spigotlinkSpigot連結 / Spigot綁定Premium only
networkindex網路索引 / 網索引Premium only
redisredisPremium only
set設置Premium only
clear清空Premium only
--server--伺服器Premium only
--servers--伺服器清單Premium only
--exclude-servers--排除伺服器Premium only
--server-group--伺服器群組Premium only
Argument labels (documentation, not translated values)
English labelLocalized label
player玩家
recipient收件人
recipients收件人清單
sender寄件人
message訊息
title標題
seconds秒數
duration期間
amount數量
price價格
item物品
id編號
page頁碼
name名稱
kit套件
type類型
time時間
from寄件人
playername玩家
kitname套件
booktitle標題
task-id編號
name1名稱1
name2名稱2
name3名稱3
recipient1收件人1
recipient2收件人2
recipient3收件人3
username使用者名稱
password密碼
account-link-code帳戶連結碼
group群組
ids編號清單
繁體中文(香港) — zh_hk: commands, aliases & examples

These roots exist only when this is the configured default root language (English always remains). The final example below requires Premium networking. Values such as Alex, DIAMOND and survival are not translated.

繁體中文(香港) examples
/郵 註冊
/郵 設定 資源包 自動
/管郵 寄出紙本信件 Alex "Welcome!/nEnjoy your stay." --寄件者 "Server" --延遲 0
/管郵 寄出包裹 Alex DIAMOND:1 --訊息 "Your reward"
/管郵 寄出包裹 Alex DIAMOND:1 --伺服器 survival

Player

Localized structureMeaning / requirement
/郵 說明 [頁碼]Command help and pagination.
/郵 指南 [頁碼]Supported physical designs for this running server.
/郵 套件 [kit-id]Select/receive an available named kit.
/郵 套件 頁碼 <number>Browse kit pages.
/郵 註冊Start personal physical-mailbox registration.
/郵 取消註冊Start personal mailbox removal.
/郵 開啟Open the inbox if command access and its world rules are enabled.
/郵 信件Compose an enabled paper/book letter.
/郵 包裹Compose a package if command sending is enabled.
/郵 金錢Compose money mail if enabled and economy is available.
/郵 檢查Read-only inbox preview; not a package-claim shortcut.
/郵 追蹤View queued delayed deliveries, not future scheduled tasks.
/郵 設定Open available settings categories; opens notification help directly when it is the only category.
/郵 設定 說明Open the same contextual category help as settings.
/郵 設定 通知Open notification command help, not the current-value status view.
/郵 設定 通知 說明Explain available notification commands.
/郵 設定 通知 狀態Show current offline/online/sound choices and eligible kit reminder state.
/郵 設定 通知 離線 簡易|詳細|關Choose the login summary mode.
/郵 設定 通知 在線 開|關Toggle online text notices.
/郵 設定 通知 提示音 開|關Toggle notification sound.
/郵 設定 通知 套件 開|關Toggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/郵 設定 資源包Show Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/郵 設定 資源包 說明Show the resource-pack preference and command explanations.
/郵 設定 資源包 開|關|自動Select appearance mode when server policy allows it.

Administration

Localized structureMeaning / requirement
/管郵 說明 [頁碼]Admin command help.
/管郵 工具Open the Admin Tools inventory.
/管郵 管理員收件箱Open the Shared Admin Inbox; alias ai.
/管郵 收件箱通知 開|關Toggle your Shared Admin Inbox notices.
/管郵 註冊 <玩家>Register a physical personal mailbox for another player.
/管郵 取消註冊Start admin unregister selection.
/管郵 匯入 玩家 <名稱1,名稱2,...>Import known real player identities; verified Citizens NPCs are excluded.
/管郵 轉換 目前Inspect the selected storage provider.
/管郵 轉換 YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/管郵 清除資料 <玩家|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/管郵 清理Backed-up legacy-data cleanup; in-game confirmation is by chat.
/管郵 清理 確認Console-only cleanup confirmation.
/管郵 排程郵件 重新載入|清單Validate/reload tasks or list them.
/管郵 排程郵件 資訊|執行|啟用|停用 <編號>Inspect/test/change an existing task.
/管郵 物品範本 儲存 <編號>Save your held item as a named template.
/管郵 物品範本 刪除 <編號>Remove a template.
/管郵 物品範本 清單 [頁碼]Browse stored templates.
/管郵 物品範本 給予 <編號> [玩家]Give a saved template item.
/管郵 重新載入Stage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/管郵 檢查更新Check available releases and explain channel differences.
/管郵 更新 [確認]Install only from the configured release channel, with confirmation.

Sending

Localized structureMeaning / requirement
/管郵 寄出紙本信件 <收件人清單> "<訊息>" [flags]Paper letter.
/管郵 寄出書信 <收件人清單> "<訊息>" --標題 "<標題>" [flags]Book letter; title required.
/管郵 寄出包裹 <收件人清單> <item...> [flags]Standard package; optional --message.
/管郵 寄出貨到付款包裹 <收件人清單> p:<價格> [r:<return-to>] <item...> [flags]COD package; optional --message.
/管郵 寄出金錢 <收件人清單> <數量> [flags]Money mail; optional --message; economy required.

Premium only

Localized structureMeaning / requirement
/管郵 網絡索引Premium: index local world playerdata into the shared recipient lookup.
/管郵 redis [狀態]Premium: Redis/runtime status; not a switch to bypass network health.
/管郵 更新登入 狀態Premium: inspect whether protected update credentials are configured.
/管郵 更新登入 設置 <用戶名稱> <密碼>Premium: console-only credential change; protect command logs.
/管郵 更新登入 清空Premium: console-only credential removal.

Use the exact English marketplace command /mba spigotlink <account-link-code> when verification is available.

All accepted structural aliases and flags
English tokenLocalized accepted formsEdition
send傳送Shared
discorddiscordPremium only
status狀態Premium only
resourcepack資源包Shared
auto自動Shared
p:價格:Shared
price:價格指定:Shared
r:退回:Shared
return:退回指定:Shared
t:範本:Shared
template:範本指定:Shared
xp:經驗:Shared
true真Shared
false假Shared
enabled已啟用Shared
disabled已停用Shared
allplayers所有玩家Shared
onlineplayers在線玩家Shared
offlineplayers離線玩家Shared
admin管理Shared
help說明Shared
open開啟Shared
guide指南Shared
kit套件Shared
letter信件Shared
package包裹Shared
money金錢Shared
check檢查Shared
track追蹤Shared
settings設定Shared
register註冊Shared
unregister取消註冊Shared
tools工具Shared
admininbox管理員收件箱 / 管收Shared
inboxnotification收件箱通知Shared
import匯入Shared
convert轉換Shared
purge清除資料Shared
reload重新載入Shared
updatecheck檢查更新Shared
update更新Shared
clean清理Shared
scheduledmail排程郵件Shared
itemtemplate物品範本 / 物範Shared
it物品範本 / 物範Shared
itsave物品範本-儲存Shared
itdelete物品範本-刪除Shared
itlist物品範本-清單Shared
itgive物品範本-給予Shared
sl寄出紙本信件 / 寄紙信Shared
sla寄出書信 / 寄書信Shared
sp寄出包裹 / 寄包裹Shared
scod寄出貨到付款包裹 / 寄到付Shared
sm寄出金錢 / 匯款Shared
testletter測試-信件Shared
testpackage測試-包裹Shared
testmoney測試-金錢Shared
testaipackage測試-管理員收件箱-包裹Shared
testaimoney測試-管理員收件箱-金錢Shared
page頁碼Shared
notification通知Shared
offline離線Shared
online在線Shared
soundalert提示音Shared
simple簡易Shared
advanced詳細Shared
off關Shared
on開Shared
list清單Shared
info資訊Shared
run執行Shared
enable啟用Shared
disable停用Shared
save儲存Shared
delete刪除Shared
remove移除Shared
give給予Shared
player玩家Shared
current目前Shared
confirm確認Shared
paper紙張Shared
book書籍Shared
standard一般Shared
codv貨到付款-Vault / 到付金Shared
codi貨到付款-物品 / 到付物Shared
codvi貨到付款-Vault和物品 / 到付雙Shared
codip貨到付款-物品收款 / 到付物款Shared
codr退回的貨到付款包裹 / 到付退Shared
coda已接受的貨到付款包裹 / 到付收Shared
cod貨到付款Shared
--from--寄件者 / -寄Shared
--delay--延遲 / -延Shared
--expire--到期Shared
--message--訊息Shared
--title--標題 / -題Shared
ai管理員收件箱 / 管收Shared
updatelogin更新登入 / 更新驗證Premium only
spigotlinkSpigot連結 / Spigot綁定Premium only
networkindex網絡索引 / 網索引Premium only
redisredisPremium only
set設置Premium only
clear清空Premium only
--server--伺服器Premium only
--servers--伺服器清單Premium only
--exclude-servers--排除伺服器Premium only
--server-group--伺服器群組Premium only
Argument labels (documentation, not translated values)
English labelLocalized label
player玩家
recipient收件人
recipients收件人清單
sender寄件人
message訊息
title標題
seconds秒數
duration時長
amount數量
price價格
item物品
id編號
page頁碼
name名稱
kit套件
type類型
time時間
from寄件人
playername玩家
kitname套件
booktitle標題
task-id編號
name1名稱1
name2名稱2
name3名稱3
recipient1收件人1
recipient2收件人2
recipient3收件人3
username用戶名稱
password密碼
account-link-code帳戶連結碼
group群組
ids編號清單
Português (Brasil) — pt_br: commands, aliases & examples

These roots exist only when this is the configured default root language (English always remains). The final example below requires Premium networking. Values such as Alex, DIAMOND and survival are not translated.

Português (Brasil) examples
/cc registrar
/cc configurações pacotederecursos automático
/cca enviarcartapapel Alex "Welcome!/nEnjoy your stay." --remetente "Server" --atraso 0
/cca enviarpacote Alex DIAMOND:1 --mensagem "Your reward"
/cca enviarpacote Alex DIAMOND:1 --servidor survival

Player

Localized structureMeaning / requirement
/cc ajuda [página]Command help and pagination.
/cc guia [página]Supported physical designs for this running server.
/cc kit [kit-id]Select/receive an available named kit.
/cc kit página <number>Browse kit pages.
/cc registrarStart personal physical-mailbox registration.
/cc desregistrarStart personal mailbox removal.
/cc abrirOpen the inbox if command access and its world rules are enabled.
/cc cartaCompose an enabled paper/book letter.
/cc pacoteCompose a package if command sending is enabled.
/cc dinheiroCompose money mail if enabled and economy is available.
/cc verificarRead-only inbox preview; not a package-claim shortcut.
/cc rastrearView queued delayed deliveries, not future scheduled tasks.
/cc configuraçõesOpen available settings categories; opens notification help directly when it is the only category.
/cc configurações ajudaOpen the same contextual category help as settings.
/cc configurações notificaçãoOpen notification command help, not the current-value status view.
/cc configurações notificação ajudaExplain available notification commands.
/cc configurações notificação estadoShow current offline/online/sound choices and eligible kit reminder state.
/cc configurações notificação offline simples|avançado|desligadoChoose the login summary mode.
/cc configurações notificação online ligado|desligadoToggle online text notices.
/cc configurações notificação som ligado|desligadoToggle notification sound.
/cc configurações notificação kit ligado|desligadoToggle kit reminders when kits and kit notifications are enabled and uses remain; a zero reminder interval does not hide the control.
/cc configurações pacotederecursosShow Resource Pack: On/Off/Auto followed by command help, when customization and policy permit.
/cc configurações pacotederecursos ajudaShow the resource-pack preference and command explanations.
/cc configurações pacotederecursos ligado|desligado|automáticoSelect appearance mode when server policy allows it.

Administration

Localized structureMeaning / requirement
/cca ajuda [página]Admin command help.
/cca ferramentasOpen the Admin Tools inventory.
/cca caixadeentradaadminOpen the Shared Admin Inbox; alias ai.
/cca avisocaixa ligado|desligadoToggle your Shared Admin Inbox notices.
/cca registrar <jogador>Register a physical personal mailbox for another player.
/cca desregistrarStart admin unregister selection.
/cca importar jogador <nome1,nome2,...>Import known real player identities; verified Citizens NPCs are excluded.
/cca converter atualInspect the selected storage provider.
/cca converter YAML|SQLITE|MYSQLBack up and replace the destination before switching provider; not a merge.
/cca apagar-dados <jogador|all> [CONFIRM]Preview/confirm inbox deletion. CONFIRM is uppercase.
/cca limparBacked-up legacy-data cleanup; in-game confirmation is by chat.
/cca limpar confirmarConsole-only cleanup confirmation.
/cca correio-agendado recarregar|listaValidate/reload tasks or list them.
/cca correio-agendado informações|executar|ativar|desativar <id>Inspect/test/change an existing task.
/cca modelodeitem salvar <id>Save your held item as a named template.
/cca modelodeitem excluir <id>Remove a template.
/cca modelodeitem lista [página]Browse stored templates.
/cca modelodeitem dar <id> [jogador]Give a saved template item.
/cca recarregarStage/validate MailboxGUI configs, languages, GUI, schedules and Premium network services. Premium also refreshes DiscBridge network state only; use /mba discord reload for companion configuration, languages and templates.
/cca verificaratualizaçãoCheck available releases and explain channel differences.
/cca atualizar [confirmar]Install only from the configured release channel, with confirmation.

Sending

Localized structureMeaning / requirement
/cca enviarcartapapel <destinatários> "<mensagem>" [flags]Paper letter.
/cca enviarcartalivro <destinatários> "<mensagem>" --título "<título>" [flags]Book letter; title required.
/cca enviarpacote <destinatários> <item...> [flags]Standard package; optional --message.
/cca enviarpagamentonaentrega <destinatários> p:<preço> [r:<return-to>] <item...> [flags]COD package; optional --message.
/cca enviardinheiro <destinatários> <quantidade> [flags]Money mail; optional --message; economy required.

Premium only

Localized structureMeaning / requirement
/cca índiceredePremium: index local world playerdata into the shared recipient lookup.
/cca redis [estado]Premium: Redis/runtime status; not a switch to bypass network health.
/cca loginatualização estadoPremium: inspect whether protected update credentials are configured.
/cca loginatualização definir <usuário> <senha>Premium: console-only credential change; protect command logs.
/cca loginatualização limpar-valorPremium: console-only credential removal.

Use the exact English marketplace command /mba spigotlink <account-link-code> when verification is available.

All accepted structural aliases and flags
English tokenLocalized accepted formsEdition
sendenviarShared
discorddiscordPremium only
statusestadoPremium only
resourcepackpacotederecursosShared
autoautomáticoShared
p:preço:Shared
price:preço-longo:Shared
r:retorno:Shared
return:retorno-longo:Shared
t:modelo:Shared
template:modelo-longo:Shared
xp:experiência:Shared
trueverdadeiroShared
falsefalsoShared
enabledativadoShared
disableddesativadoShared
allplayerstodososjogadoresShared
onlineplayersjogadoresonlineShared
offlineplayersjogadoresofflineShared
adminadministraçãoShared
helpajudaShared
openabrirShared
guideguiaShared
kitkitShared
lettercartaShared
packagepacoteShared
moneydinheiroShared
checkverificarShared
trackrastrearShared
settingsconfiguraçõesShared
registerregistrarShared
unregisterdesregistrarShared
toolsferramentasShared
admininboxcaixadeentradaadmin / ceaShared
inboxnotificationavisocaixaShared
importimportarShared
convertconverterShared
purgeapagar-dadosShared
reloadrecarregarShared
updatecheckverificaratualizaçãoShared
updateatualizarShared
cleanlimparShared
scheduledmailcorreio-agendadoShared
itemtemplatemodelodeitem / miShared
itmodelodeitem / miShared
itsavemodelodeitem-salvarShared
itdeletemodelodeitem-excluirShared
itlistmodelodeitem-listaShared
itgivemodelodeitem-darShared
slenviarcartapapel / ecpShared
slaenviarcartalivro / eclShared
spenviarpacote / epShared
scodenviarpagamentonaentrega / epeShared
smenviardinheiro / edShared
testlettertestar-cartaShared
testpackagetestar-pacoteShared
testmoneytestar-dinheiroShared
testaipackagetestar-caixadeentradaadmin-pacoteShared
testaimoneytestar-caixadeentradaadmin-dinheiroShared
pagepáginaShared
notificationnotificaçãoShared
offlineofflineShared
onlineonlineShared
soundalertsomShared
simplesimplesShared
advancedavançadoShared
offdesligadoShared
onligadoShared
listlistaShared
infoinformaçõesShared
runexecutarShared
enableativarShared
disabledesativarShared
savesalvarShared
deleteexcluirShared
removeremoverShared
givedarShared
playerjogadorShared
currentatualShared
confirmconfirmarShared
paperpapelShared
booklivroShared
standardpadrãoShared
codvpagamento-na-entrega-Vault / pevShared
codipagamento-na-entrega-itens / peiShared
codvipagamento-na-entrega-Vault-e-itens / peviShared
codippagamento-em-itens-pela-entrega / peipShared
codrpacote-pagamento-na-entrega-devolvido / pedShared
codapacote-pagamento-na-entrega-aceito / peaShared
codpagamento-na-entregaShared
--from--remetente / -rShared
--delay--atraso / -aShared
--expire--expiraçãoShared
--message--mensagemShared
--title--título / -tShared
aicaixadeentradaadmin / ceaShared
updateloginloginatualização / laPremium only
spigotlinkvincularSpigot / vSpigotPremium only
networkindexíndicerede / irPremium only
redisredisPremium only
setdefinirPremium only
clearlimpar-valorPremium only
--server--servidorPremium only
--servers--servidoresPremium only
--exclude-servers--excluir-servidoresPremium only
--server-group--grupo-servidoresPremium only
Argument labels (documentation, not translated values)
English labelLocalized label
playerjogador
recipientdestinatário
recipientsdestinatários
senderremetente
messagemensagem
titletítulo
secondssegundos
durationduração
amountquantidade
pricepreço
itemitem
idid
pagepágina
namenome
kitkit
typetipo
timetempo
fromremetente
playernamejogador
kitnamekit
booktitletítulo
task-idid
name1nome1
name2nome2
name3nome3
recipient1destinatário1
recipient2destinatário2
recipient3destinatário3
usernameusuário
passwordsenha
account-link-codecódigo-de-vinculação
groupgrupo
idsids
Back to top ↑

Administration

Permissions & staff access

Use your permission manager to grant only necessary nodes. Player use/command nodes generally default true, admin umbrellas default op, and focused GUI nodes may default false but be inherited through an umbrella. World bypass nodes do not activate a disabled command. Historical postoffice permission names remain valid for current Public Access terminology.

The complete tables below are read from each edition’s plugin.yml, including default and child grants. Premium-only additions are identified independently; granting one on Free does not install networking. Legacy compatibility nodes do not promise a removed experimental GUI action.

Free / shared permissions — 84 nodes
PermissionDefaultPurpose / child grants
mailboxgui.player.discordtrueAllows integrated Discord notification settings when enabled by the administrator
mailboxgui.admin.discordopAllows integrated DiscBridge administration through /mba discord
mailboxgui.player.usetrueAllows use of /mailbox, /mb, /mailbox register, and /mailbox unregister
mailboxgui.player.opentrueAllows players to use /mailbox open and /mb open when command mailbox access is enabled
mailboxgui.player.open.world.*falseAllows players to bypass /mb open world whitelist checks when mailbox.command-open.worlds.enabled is true
mailboxgui.player.kittrueAllows players to use /mailbox kit and /mb kit when mailbox kits are enabled
mailboxgui.player.lettercommandsendtrueAllows players to use /mailbox send letter and /mb send letter when player letter command sending is enabled
mailboxgui.player.lettercommandsend.world.*falseAllows players to bypass enabled paper-letter or book-letter /mb send letter world whitelists
mailboxgui.player.packagecommandsendtrueAllows players to use /mailbox send package and /mb send package when player package command sending is enabled
mailboxgui.player.packagecommandsend.world.*falseAllows players to bypass /mb send package world whitelist checks when package.player-command-send.worlds.enabled is true
mailboxgui.player.moneycommandsendtrueAllows players to use /mailbox send money and /mb send money when player money command sending is enabled
mailboxgui.player.moneycommandsend.world.*falseAllows players to bypass /mb send money world whitelist checks when money.player-command-send.worlds.enabled is true
mailboxgui.player.postoffice.npctrueAllows players to open mailbox access through Post Office NPCs
mailboxgui.player.postoffice.poboxtrueAllows players to open public mailboxes when permission-gated
mailboxgui.adminopFull access to all MailboxGUI admin commands, tools, import, reload, conversion, and admin functions
  • mailboxgui.admin.reload: true
  • mailboxgui.admin.discord: true
  • mailboxgui.admin.import: true
  • mailboxgui.admin.update: true
  • mailboxgui.admin.update.notify: true
  • mailboxgui.admin.convert: true
  • mailboxgui.admin.purge.*: true
  • mailboxgui.admin.clean: true
  • mailboxgui.admin.scheduledmail: true
  • mailboxgui.admin.admininbox: true
  • mailboxgui.admin.admininbox.notification: true
  • mailboxgui.admin.test.*: true
  • mailboxgui.admin.send: true
  • mailboxgui.admin.itemtemplate: true
  • mailboxgui.admin.tools.*: true
mailboxgui.admin.reloadopAllows reloading MailboxGUI config and language files
mailboxgui.admin.importopAllows importing player serverdata into MailboxGUI data
mailboxgui.admin.updateopAllows checking, preparing, and staging MailboxGUI updates from the website release system
mailboxgui.admin.update.notifyopAllows receiving in-game MailboxGUI update notifications
mailboxgui.admin.convertopAllows converting MailboxGUI storage between YAML, SQLite, and MySQL
mailboxgui.admin.purge.*opAllows all MailboxGUI admin purge commands
  • mailboxgui.admin.purge.player: true
  • mailboxgui.admin.purge.all: true
mailboxgui.admin.purge.playeropAllows clearing a single player's inbox contents after exact confirmation
mailboxgui.admin.purge.allopAllows clearing all player inbox contents and the Shared Admin Inbox after exact confirmation
mailboxgui.admin.cleanopAllows cleaning MailboxGUI generated backup files after confirming the upgraded mail data is working
mailboxgui.admin.scheduledmailopAllows viewing and managing MailboxGUI Scheduled Mail tasks
  • mailboxgui.admin.scheduledmail.reload: true
  • mailboxgui.admin.scheduledmail.run: true
  • mailboxgui.admin.scheduledmail.manage: true
mailboxgui.admin.scheduledmail.reloadopAllows reloading scheduled-mail/scheduled-mail.yml
mailboxgui.admin.scheduledmail.runopAllows manually running Scheduled Mail tasks
mailboxgui.admin.scheduledmail.manageopAllows enabling and disabling Scheduled Mail tasks
mailboxgui.admin.admininboxopAllows all Shared Admin Inbox actions
  • mailboxgui.admin.admininbox.open: true
  • mailboxgui.admin.admininbox.claim: true
  • mailboxgui.admin.admininbox.delete: true
  • mailboxgui.admin.admininbox.collectmoney: true
  • mailboxgui.admin.admininbox.clearcodreturns: true
  • mailboxgui.admin.admininbox.clearall: true
  • mailboxgui.admin.admininbox.notification: true
mailboxgui.admin.admininbox.openopAllows opening the Shared Admin Inbox
mailboxgui.admin.admininbox.claimopAllows claiming mail from the Shared Admin Inbox
mailboxgui.admin.admininbox.deleteopAllows deleting mail from the Shared Admin Inbox
mailboxgui.admin.admininbox.collectmoneyopAllows collecting all Shared Admin Inbox money payouts
mailboxgui.admin.admininbox.clearcodreturnsopAllows clearing returned COD packages from the Shared Admin Inbox
mailboxgui.admin.admininbox.clearallopAllows clearing the entire Shared Admin Inbox
mailboxgui.admin.admininbox.notificationopAllows toggling online Shared Admin Inbox notifications with /mba inboxnotification
mailboxgui.admin.test.*opAllows all hidden MailboxGUI debug test commands when debug.enabled is true
  • mailboxgui.admin.test.letter: true
  • mailboxgui.admin.test.package: true
  • mailboxgui.admin.test.money: true
  • mailboxgui.admin.test.admininbox.package: true
  • mailboxgui.admin.test.admininbox.money: true
mailboxgui.admin.test.letteropAllows /mba testletter when debug.enabled is true
mailboxgui.admin.test.packageopAllows /mba testpackage when debug.enabled is true
mailboxgui.admin.test.moneyopAllows /mba testmoney when debug.enabled is true
mailboxgui.admin.test.admininbox.packageopAllows /mba testaipackage when debug.enabled is true
mailboxgui.admin.test.admininbox.moneyopAllows /mba testaimoney when debug.enabled is true
mailboxgui.admin.sendopAllows all API-backed admin send-mail commands
  • mailboxgui.admin.send.letter: true
  • mailboxgui.admin.send.package: true
  • mailboxgui.admin.send.cod: true
  • mailboxgui.admin.send.money: true
mailboxgui.admin.send.letteropAllows sending admin letters by command
mailboxgui.admin.send.packageopAllows sending regular admin packages by command
mailboxgui.admin.send.codopAllows sending Cash on Demand admin packages by command
mailboxgui.admin.send.moneyopAllows sending admin money mail by command
mailboxgui.admin.itemtemplateopAllows all MailboxGUI item template commands
  • mailboxgui.admin.itemtemplate.save: true
  • mailboxgui.admin.itemtemplate.delete: true
  • mailboxgui.admin.itemtemplate.list: true
  • mailboxgui.admin.itemtemplate.give: true
mailboxgui.admin.itemtemplate.saveopAllows saving held items as MailboxGUI package templates
mailboxgui.admin.itemtemplate.deleteopAllows deleting MailboxGUI package item templates
mailboxgui.admin.itemtemplate.listopAllows listing MailboxGUI package item templates
mailboxgui.admin.itemtemplate.giveopAllows giving saved MailboxGUI package item templates
mailboxgui.admin.tools.*opAccess to all MailboxGUI admin GUI tools
  • mailboxgui.admin.tools.sendmail.*: true
  • mailboxgui.admin.tools.postoffice.*: true
  • mailboxgui.admin.tools.inboxcheck.*: true
  • mailboxgui.admin.tools.managemailbox.*: true
  • mailboxgui.admin.admininbox: true
mailboxgui.admin.tools.sendmail.*falseAccess to all admin send-mail options
  • mailboxgui.admin.tools.sendmail.letter.*: true
  • mailboxgui.admin.tools.sendmail.package.*: true
  • mailboxgui.admin.tools.sendmail.money.*: true
mailboxgui.admin.tools.sendmail.letter.*falseAccess to all admin letter send options
  • mailboxgui.admin.tools.sendmail.letter.allmailboxes: true
  • mailboxgui.admin.tools.sendmail.letter.onlinemailboxes: true
  • mailboxgui.admin.tools.sendmail.letter.offlinemailboxes: true
  • mailboxgui.admin.tools.sendmail.letter.selectrecipient: true
mailboxgui.admin.tools.sendmail.letter.allmailboxesfalseSend admin letters to all mailbox players
mailboxgui.admin.tools.sendmail.letter.onlinemailboxesfalseSend admin letters to online mailbox players
mailboxgui.admin.tools.sendmail.letter.offlinemailboxesfalseSend admin letters to offline mailbox players
mailboxgui.admin.tools.sendmail.letter.selectrecipientfalseSend admin letters to selected recipients
mailboxgui.admin.tools.sendmail.package.*falseAccess to all admin package send options
  • mailboxgui.admin.tools.sendmail.package.allmailboxes: true
  • mailboxgui.admin.tools.sendmail.package.onlinemailboxes: true
  • mailboxgui.admin.tools.sendmail.package.offlinemailboxes: true
  • mailboxgui.admin.tools.sendmail.package.selectrecipient: true
mailboxgui.admin.tools.sendmail.package.allmailboxesfalseSend admin packages to all mailbox players
mailboxgui.admin.tools.sendmail.package.onlinemailboxesfalseSend admin packages to online mailbox players
mailboxgui.admin.tools.sendmail.package.offlinemailboxesfalseSend admin packages to offline mailbox players
mailboxgui.admin.tools.sendmail.package.selectrecipientfalseSend admin packages to selected recipients
mailboxgui.admin.tools.sendmail.money.*falseAccess to all admin money send options
  • mailboxgui.admin.tools.sendmail.money.allmailboxes: true
  • mailboxgui.admin.tools.sendmail.money.onlinemailboxes: true
  • mailboxgui.admin.tools.sendmail.money.offlinemailboxes: true
  • mailboxgui.admin.tools.sendmail.money.selectrecipient: true
mailboxgui.admin.tools.sendmail.money.allmailboxesfalseSend admin money to all mailbox players
mailboxgui.admin.tools.sendmail.money.onlinemailboxesfalseSend admin money to online mailbox players
mailboxgui.admin.tools.sendmail.money.offlinemailboxesfalseSend admin money to offline mailbox players
mailboxgui.admin.tools.sendmail.money.selectrecipientfalseSend admin money to selected recipients
mailboxgui.admin.tools.postoffice.*falseAccess to all Post Office registration tools
  • mailboxgui.admin.tools.postoffice.mailbox.*: true
  • mailboxgui.admin.tools.postoffice.npc.*: true
mailboxgui.admin.tools.postoffice.mailbox.*falseAccess to all Post Office box registration tools
  • mailboxgui.admin.tools.postoffice.mailbox.set: true
  • mailboxgui.admin.tools.postoffice.mailbox.remove: true
  • mailboxgui.admin.tools.postoffice.mailbox.list: true
mailboxgui.admin.tools.postoffice.mailbox.setfalseRegister Post Office boxes
mailboxgui.admin.tools.postoffice.mailbox.removefalseRemove Post Office boxes through selector mode
mailboxgui.admin.tools.postoffice.mailbox.listfalseView registered Post Office boxes
mailboxgui.admin.tools.postoffice.npc.*falseAccess to all Post Office NPC tools
  • mailboxgui.admin.tools.postoffice.npc.set: true
  • mailboxgui.admin.tools.postoffice.npc.remove: true
mailboxgui.admin.tools.postoffice.npc.setfalseSet Post Office NPCs
mailboxgui.admin.tools.postoffice.npc.removefalseRemove Post Office NPCs
mailboxgui.admin.tools.inboxcheck.*falseAccess to all admin inbox check controls
  • mailboxgui.admin.tools.inboxcheck.see: true
  • mailboxgui.admin.tools.inboxcheck.edit: true
mailboxgui.admin.tools.inboxcheck.seefalseView player inboxes
mailboxgui.admin.tools.inboxcheck.editfalseEdit player inboxes
mailboxgui.admin.tools.managemailbox.*falseAccess to all mailbox management controls
  • mailboxgui.admin.tools.managemailbox.see: true
  • mailboxgui.admin.tools.managemailbox.unregister: true
  • mailboxgui.admin.tools.managemailbox.register: true
mailboxgui.admin.tools.managemailbox.seefalseView registered player mailboxes
mailboxgui.admin.tools.managemailbox.unregisterfalseUnregister player mailboxes through admin tools or command
mailboxgui.admin.tools.managemailbox.registerfalseRegister a mailbox for a specific player through admin tools or command
Premium-only permission additions — 17 nodes
PermissionDefaultPurpose / child grants
mailboxgui.admin.spigotlinkopAllows optionally linking this SpigotMC purchase to a website account
mailboxgui.admin.networkindexopAllows indexing local backend playerdata into the shared MailboxGUI network player index
mailboxgui.admin.network.redisopAllows viewing Premium Redis/network health status
mailboxgui.admin.network.*opAllows all MailboxGUI Premium network administration tools
  • mailboxgui.admin.network.tools: true
  • mailboxgui.admin.network.backendstatus: true
  • mailboxgui.admin.network.targetedsend: true
  • mailboxgui.admin.network.restrictedmail: true
  • mailboxgui.admin.network.compatibilityscan: true
  • mailboxgui.admin.network.locks: true
  • mailboxgui.admin.network.delayedmail: true
  • mailboxgui.admin.network.retarget: true
  • mailboxgui.admin.network.redis: true
  • mailboxgui.admin.network.diagnostics: true
  • mailboxgui.admin.network.deliverysearch: true
  • mailboxgui.admin.network.scheduledmail: true
  • mailboxgui.admin.network.consistency: true
  • mailboxgui.admin.network.supportreport: true
mailboxgui.admin.network.toolsopAllows opening MailboxGUI Premium Network Tools
mailboxgui.admin.network.diagnosticsopAllows viewing network connection diagnostics and running bounded health probes
mailboxgui.admin.network.deliverysearchopAllows read-only delivery searches by mail ID or player UUID
mailboxgui.admin.network.scheduledmailopAllows viewing network scheduled task status without changing tasks
mailboxgui.admin.network.consistencyopAllows viewing relevant network configuration and backend group differences
mailboxgui.admin.network.supportreportopAllows exporting sanitized network support reports without mail bodies or item payloads
mailboxgui.admin.network.backendstatusopAllows viewing Premium network backend status
mailboxgui.admin.network.targetedsendopAllows using Premium backend targeting for admin send commands and tools
mailboxgui.admin.network.restrictedmailopAllows viewing Premium restricted mail tools
mailboxgui.admin.network.compatibilityscanopAllows running Premium network mail compatibility scans
mailboxgui.admin.network.locksopAllows viewing and managing Premium network locks
mailboxgui.admin.network.delayedmailopAllows viewing Premium delayed mail routing
mailboxgui.admin.network.retargetopAllows retargeting Premium network mail
Premium shared/umbrella permissions — including changed child grants
PermissionDefaultPurpose / child grants
mailboxgui.player.discordtrueAllows integrated Discord notification settings when enabled by the administrator
mailboxgui.admin.discordopAllows integrated DiscBridge administration through /mba discord
mailboxgui.player.usetrueAllows use of /mailbox, /mb, /mailbox register, and /mailbox unregister
mailboxgui.player.opentrueAllows players to use /mailbox open and /mb open when command mailbox access is enabled
mailboxgui.player.open.world.*falseAllows players to bypass /mb open world whitelist checks when mailbox.command-open.worlds.enabled is true
mailboxgui.player.lettercommandsendtrueAllows players to use /mailbox send letter and /mb send letter when player letter command sending is enabled
mailboxgui.player.lettercommandsend.world.*falseAllows players to bypass enabled paper-letter or book-letter /mb send letter world whitelists
mailboxgui.player.packagecommandsendtrueAllows players to use /mailbox send package and /mb send package when player package command sending is enabled
mailboxgui.player.packagecommandsend.world.*falseAllows players to bypass /mb send package world whitelist checks when package.player-command-send.worlds.enabled is true
mailboxgui.player.moneycommandsendtrueAllows players to use /mailbox send money and /mb send money when player money command sending is enabled
mailboxgui.player.moneycommandsend.world.*falseAllows players to bypass /mb send money world whitelist checks when money.player-command-send.worlds.enabled is true
mailboxgui.player.postoffice.npctrueAllows players to open mailbox access through Post Office NPCs
mailboxgui.player.postoffice.poboxtrueAllows players to open public mailboxes when permission-gated
mailboxgui.adminopFull access to all MailboxGUI admin commands, tools, import, reload, conversion, and admin functions
  • mailboxgui.admin.reload: true
  • mailboxgui.admin.discord: true
  • mailboxgui.admin.import: true
  • mailboxgui.admin.networkindex: true
  • mailboxgui.admin.network.redis: true
  • mailboxgui.admin.update: true
  • mailboxgui.admin.spigotlink: true
  • mailboxgui.admin.update.notify: true
  • mailboxgui.admin.convert: true
  • mailboxgui.admin.purge.*: true
  • mailboxgui.admin.clean: true
  • mailboxgui.admin.scheduledmail: true
  • mailboxgui.admin.admininbox: true
  • mailboxgui.admin.admininbox.notification: true
  • mailboxgui.admin.test.*: true
  • mailboxgui.admin.send: true
  • mailboxgui.admin.network.*: true
  • mailboxgui.admin.itemtemplate: true
  • mailboxgui.admin.tools.*: true
mailboxgui.admin.reloadopAllows reloading MailboxGUI config and language files
mailboxgui.admin.importopAllows importing player serverdata into MailboxGUI data
mailboxgui.admin.updateopAllows checking, preparing, and staging MailboxGUI updates from the website release system
mailboxgui.admin.update.notifyopAllows receiving in-game MailboxGUI update notifications
mailboxgui.admin.convertopAllows converting MailboxGUI storage between YAML, SQLite, and MySQL
mailboxgui.admin.purge.*opAllows all MailboxGUI admin purge commands
  • mailboxgui.admin.purge.player: true
  • mailboxgui.admin.purge.all: true
mailboxgui.admin.purge.playeropAllows clearing a single player's inbox contents after exact confirmation
mailboxgui.admin.purge.allopAllows clearing all player inbox contents and the Shared Admin Inbox after exact confirmation
mailboxgui.admin.cleanopAllows cleaning MailboxGUI generated backup files after confirming the upgraded mail data is working
mailboxgui.admin.scheduledmailopAllows viewing and managing MailboxGUI Scheduled Mail tasks
  • mailboxgui.admin.scheduledmail.reload: true
  • mailboxgui.admin.scheduledmail.run: true
  • mailboxgui.admin.scheduledmail.manage: true
mailboxgui.admin.scheduledmail.reloadopAllows reloading scheduled-mail/scheduled-mail.yml
mailboxgui.admin.scheduledmail.runopAllows manually running Scheduled Mail tasks
mailboxgui.admin.scheduledmail.manageopAllows enabling and disabling Scheduled Mail tasks
mailboxgui.admin.admininboxopAllows all Shared Admin Inbox actions
  • mailboxgui.admin.admininbox.open: true
  • mailboxgui.admin.admininbox.claim: true
  • mailboxgui.admin.admininbox.delete: true
  • mailboxgui.admin.admininbox.collectmoney: true
  • mailboxgui.admin.admininbox.clearcodreturns: true
  • mailboxgui.admin.admininbox.clearall: true
  • mailboxgui.admin.admininbox.notification: true
mailboxgui.admin.admininbox.openopAllows opening the Shared Admin Inbox
mailboxgui.admin.admininbox.claimopAllows claiming mail from the Shared Admin Inbox
mailboxgui.admin.admininbox.deleteopAllows deleting mail from the Shared Admin Inbox
mailboxgui.admin.admininbox.collectmoneyopAllows collecting all Shared Admin Inbox money payouts
mailboxgui.admin.admininbox.clearcodreturnsopAllows clearing returned COD packages from the Shared Admin Inbox
mailboxgui.admin.admininbox.clearallopAllows clearing the entire Shared Admin Inbox
mailboxgui.admin.admininbox.notificationopAllows toggling online Shared Admin Inbox notifications with /mba inboxnotification
mailboxgui.admin.test.*opAllows all hidden MailboxGUI debug test commands when debug.enabled is true
  • mailboxgui.admin.test.letter: true
  • mailboxgui.admin.test.package: true
  • mailboxgui.admin.test.money: true
  • mailboxgui.admin.test.admininbox.package: true
  • mailboxgui.admin.test.admininbox.money: true
mailboxgui.admin.test.letteropAllows /mba testletter when debug.enabled is true
mailboxgui.admin.test.packageopAllows /mba testpackage when debug.enabled is true
mailboxgui.admin.test.moneyopAllows /mba testmoney when debug.enabled is true
mailboxgui.admin.test.admininbox.packageopAllows /mba testaipackage when debug.enabled is true
mailboxgui.admin.test.admininbox.moneyopAllows /mba testaimoney when debug.enabled is true
mailboxgui.admin.sendopAllows all API-backed admin send-mail commands
  • mailboxgui.admin.send.letter: true
  • mailboxgui.admin.send.package: true
  • mailboxgui.admin.send.cod: true
  • mailboxgui.admin.send.money: true
mailboxgui.admin.send.letteropAllows sending admin letters by command
mailboxgui.admin.send.packageopAllows sending regular admin packages by command
mailboxgui.admin.send.codopAllows sending Cash on Demand admin packages by command
mailboxgui.admin.send.moneyopAllows sending admin money mail by command
mailboxgui.admin.itemtemplateopAllows all MailboxGUI item template commands
  • mailboxgui.admin.itemtemplate.save: true
  • mailboxgui.admin.itemtemplate.delete: true
  • mailboxgui.admin.itemtemplate.list: true
  • mailboxgui.admin.itemtemplate.give: true
mailboxgui.admin.itemtemplate.saveopAllows saving held items as MailboxGUI package templates
mailboxgui.admin.itemtemplate.deleteopAllows deleting MailboxGUI package item templates
mailboxgui.admin.itemtemplate.listopAllows listing MailboxGUI package item templates
mailboxgui.admin.itemtemplate.giveopAllows giving saved MailboxGUI package item templates
mailboxgui.admin.tools.*opAccess to all MailboxGUI admin GUI tools
  • mailboxgui.admin.tools.sendmail.*: true
  • mailboxgui.admin.tools.postoffice.*: true
  • mailboxgui.admin.tools.inboxcheck.*: true
  • mailboxgui.admin.tools.managemailbox.*: true
  • mailboxgui.admin.admininbox: true
mailboxgui.admin.tools.sendmail.*falseAccess to all admin send-mail options
  • mailboxgui.admin.tools.sendmail.letter.*: true
  • mailboxgui.admin.tools.sendmail.package.*: true
  • mailboxgui.admin.tools.sendmail.money.*: true
mailboxgui.admin.tools.sendmail.letter.*falseAccess to all admin letter send options
  • mailboxgui.admin.tools.sendmail.letter.allmailboxes: true
  • mailboxgui.admin.tools.sendmail.letter.onlinemailboxes: true
  • mailboxgui.admin.tools.sendmail.letter.offlinemailboxes: true
  • mailboxgui.admin.tools.sendmail.letter.selectrecipient: true
mailboxgui.admin.tools.sendmail.letter.allmailboxesfalseSend admin letters to all mailbox players
mailboxgui.admin.tools.sendmail.letter.onlinemailboxesfalseSend admin letters to online mailbox players
mailboxgui.admin.tools.sendmail.letter.offlinemailboxesfalseSend admin letters to offline mailbox players
mailboxgui.admin.tools.sendmail.letter.selectrecipientfalseSend admin letters to selected recipients
mailboxgui.admin.tools.sendmail.package.*falseAccess to all admin package send options
  • mailboxgui.admin.tools.sendmail.package.allmailboxes: true
  • mailboxgui.admin.tools.sendmail.package.onlinemailboxes: true
  • mailboxgui.admin.tools.sendmail.package.offlinemailboxes: true
  • mailboxgui.admin.tools.sendmail.package.selectrecipient: true
mailboxgui.admin.tools.sendmail.package.allmailboxesfalseSend admin packages to all mailbox players
mailboxgui.admin.tools.sendmail.package.onlinemailboxesfalseSend admin packages to online mailbox players
mailboxgui.admin.tools.sendmail.package.offlinemailboxesfalseSend admin packages to offline mailbox players
mailboxgui.admin.tools.sendmail.package.selectrecipientfalseSend admin packages to selected recipients
mailboxgui.admin.tools.sendmail.money.*falseAccess to all admin money send options
  • mailboxgui.admin.tools.sendmail.money.allmailboxes: true
  • mailboxgui.admin.tools.sendmail.money.onlinemailboxes: true
  • mailboxgui.admin.tools.sendmail.money.offlinemailboxes: true
  • mailboxgui.admin.tools.sendmail.money.selectrecipient: true
mailboxgui.admin.tools.sendmail.money.allmailboxesfalseSend admin money to all mailbox players
mailboxgui.admin.tools.sendmail.money.onlinemailboxesfalseSend admin money to online mailbox players
mailboxgui.admin.tools.sendmail.money.offlinemailboxesfalseSend admin money to offline mailbox players
mailboxgui.admin.tools.sendmail.money.selectrecipientfalseSend admin money to selected recipients
mailboxgui.admin.tools.postoffice.*falseAccess to all Post Office registration tools
  • mailboxgui.admin.tools.postoffice.mailbox.*: true
  • mailboxgui.admin.tools.postoffice.npc.*: true
mailboxgui.admin.tools.postoffice.mailbox.*falseAccess to all Post Office box registration tools
  • mailboxgui.admin.tools.postoffice.mailbox.set: true
  • mailboxgui.admin.tools.postoffice.mailbox.remove: true
  • mailboxgui.admin.tools.postoffice.mailbox.list: true
mailboxgui.admin.tools.postoffice.mailbox.setfalseRegister Post Office boxes
mailboxgui.admin.tools.postoffice.mailbox.removefalseRemove Post Office boxes through selector mode
mailboxgui.admin.tools.postoffice.mailbox.listfalseView registered Post Office boxes
mailboxgui.admin.tools.postoffice.npc.*falseAccess to all Post Office NPC tools
  • mailboxgui.admin.tools.postoffice.npc.set: true
  • mailboxgui.admin.tools.postoffice.npc.remove: true
mailboxgui.admin.tools.postoffice.npc.setfalseSet Post Office NPCs
mailboxgui.admin.tools.postoffice.npc.removefalseRemove Post Office NPCs
mailboxgui.admin.tools.inboxcheck.*falseAccess to all admin inbox check controls
  • mailboxgui.admin.tools.inboxcheck.see: true
  • mailboxgui.admin.tools.inboxcheck.edit: true
mailboxgui.admin.tools.inboxcheck.seefalseView player inboxes
mailboxgui.admin.tools.inboxcheck.editfalseEdit player inboxes
mailboxgui.admin.tools.managemailbox.*falseAccess to all mailbox management controls
  • mailboxgui.admin.tools.managemailbox.see: true
  • mailboxgui.admin.tools.managemailbox.unregister: true
  • mailboxgui.admin.tools.managemailbox.register: true
mailboxgui.admin.tools.managemailbox.seefalseView registered player mailboxes
mailboxgui.admin.tools.managemailbox.unregisterfalseUnregister player mailboxes through admin tools or command
mailboxgui.admin.tools.managemailbox.registerfalseRegister a mailbox for a specific player through admin tools or command
Back to top ↑

Administration

Storage, conversion & safe upgrades

Storage supports YAML, SQLite and MySQL/MariaDB. Default SQLite is data/data.db. Storage choice, database/path, credentials and backend identity determine which data you see; a fresh default can select another store and make existing mail appear missing without deleting it.

New installations default to SQLite. A legacy 3.1.2-or-older installation with existing mailbox data and no explicit storage type retains YAML during configuration synchronization. Changing storage.type manually selects another store; it does not convert your existing records. Use the backed-up conversion workflow instead.

  1. Back up the entire plugin folder plus a consistent SQLite backup or MySQL dump. Protect credential-containing configs/backups.
  2. Keep storage settings and existing data/language/schedule/template files when upgrading. Let synchronization merge missing defaults and migrate old names; do not delete files as the standard upgrade procedure.
  3. Data version 7 upgrades supported legacy mail/registration records with backup safeguards. Unknown/unreadable occupied mail and delayed records are preserved/refused, not silently dropped.
  4. For deliberate provider conversion, inspect /mba convert current, configure the destination and use /mba convert YAML|SQLITE|MYSQL. Conversion backs up source/destination, replaces destination and validates totals before switching; it is NOT a merge.
  5. If conversion fails, the source remains selected but the destination may be partially copied. Review/restore it before retrying. Conversion is blocked while Premium network mode is active.
  6. Verify inboxes, COD, delayed queues, public/player registrations, templates and scheduled progression before reopening normal use. Roll back with a consistent database AND plugin-folder backup, not only an old jar.

Missing worlds or unavailable backend references are retained rather than treated as deletion evidence. Free-to-Premium synchronization preserves mail, templates, preferences and owner-customized language while adding Premium defaults. Citizens cleanup uses verified NPC identity and backed-up removal, not names/skin owners alone.

Back to top ↑

Administration

Configuration files & complete defaults

Settings shared with the DiscBridge companion

Authoritative MailboxGUI fileSettings inherited by DiscBridge
config.ymllocale.default and locale.auto-detect-player-locale for local notices; locale.command-syntax for command help/syntax. The host locale.default is also the Discord fallback/channel language, without overriding saved player Discord languages.
network/config.yml — Premium onlynetwork.enabled selects LOCAL/NETWORK_NODE; the single DiscBridge host inherits its unique network.server-id. No separate companion mode toggle or notifier ID is configured.

On Premium, /mba reload applies MailboxGUI’s own reload and automatically refreshes the enabled local DiscBridge companion’s inherited network settings/runtime. This network-only refresh does not reload DiscBridge config.yml, language files, Discord templates or other companion configuration. Use /mba discord reload after changing those companion files. Companion notification policies, player-command enablement, server-name, templates and Premium update credentials remain in the DiscBridge folder. Root-language registration still requires a planned restart.

FilePurpose / reload behavior
config.ymlShared behavior, storage, language/syntax, command/world gates, kits, letters/packages/money, public access, Dynmap and release channel. Premium adds protected updates.auth.
language/messages_<locale>.ymlTranslated titles, lore, actions, chat/help, formatting and book information/date templates. Preserve keys/placeholders and YAML types.
gui.ymlEdition-specific icon appearance only; generated/synchronized while gui-customization.enabled is true.
network/config.ymlPREMIUM ONLY: backend identity, Redis, presence, groups, compatibility, leases, GUI/kit scope and network scheduling defaults.
scheduled-mail/scheduled-mail.ymlTask definitions and commented examples. Validate with scheduledmail reload; reload is not startup catch-up.
sounds.ymlSound feedback; a sound disabled by player preference stays disabled.
data/itemtemplates.yml / active-provider template storageSaved custom item templates. Use itemtemplate commands; do not treat stored metadata as simple MATERIAL:amount kit entries or delete it when changing editions.
UPGRADE-SAFETY.txtGenerated operational guidance and snapshot/rollback cautions. Keep existing configs/data and take a consistent backup.
Data / network recovery filesPersistence, preference, registration and recovery state—not ordinary editable configuration. Do not modify to invent mail or reset locks.

Examples are fragments to merge into the existing file, not multiple competing copies of the same YAML key. Use spaces, quote formatted text, keep material names and config keys English, and validate before reloading. Invalid staged configuration is not accepted as an empty replacement. /mba reload can rebuild Premium services; readiness may remain STARTING until storage, leases and Redis subscriptions are ready.

language/messages_xx.yml examples

xx is the locale code, such as en, es or pt_br. All supported locale files and both editions’ defaults are available below. A customized phrase is retained during stock-text upgrades; the plugin can still add missing keys and remove obsolete settings. Always back up before large template edits.

messages_en.yml — English example
file-version: 16
messages:
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>Mailbox Inbox</gradient>"
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>Mailbox Check</gradient>"
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Back</gradient>"
  item-letter-name: "<gold><bold>Letter</bold>"
  item-money-lore-amount: "<gray>Amount: <gold><bold>%amount%</bold>"
  settings-resourcepack-usage: "<white>Use /mb settings resourcepack <red>{on|off|auto}</red>. on = client-installed pack; off = built-in icons; auto = server-pack detection.</white>"
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>MailboxGUI Book Letter"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>From: %sender%"
    - "<gray>Date: %date%"
    - "<gray>Title: %title%"
    - "<gray>Expires: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>Go to the next page to read this Book Letter."
    - "%reply%"
    - "%back%"
  book-letter-date-time-pattern: ""

Reference only: merge selected keys into your existing file, preserving other messages.

messages_de.yml — Deutsch example
file-version: 16
messages:
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>Posteingang</gradient>"
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>Postfachprüfung</gradient>"
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Zurück</gradient>"
  item-letter-name: "<gold><bold>Brief</bold>"
  item-money-lore-amount: "<gray>Betrag: <gold><bold>%amount%</bold>"
  settings-resourcepack-usage: "<white>Verwende /mb settings resourcepack <red>{on|off|auto}</red>. on = lokales Paket; off = Standardsymbole; auto = Serverpaketerkennung.</white>"
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>MailboxGUI Buchbrief"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>Von: %sender%"
    - "<gray>Datum: %date%"
    - "<gray>Titel: %title%"
    - "<gray>Läuft ab: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>Gehe zur naechsten Seite, um diesen Buchbrief zu lesen."
    - "%reply%"
    - "%back%"
  book-letter-date-time-pattern: ""

Reference only: merge selected keys into your existing file, preserving other messages.

messages_es.yml — Español example
file-version: 16
messages:
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>Buzón de entrada</gradient>"
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>Verificación de buzón</gradient>"
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Volver</gradient>"
  item-letter-name: "<gold><bold>Carta</bold>"
  item-money-lore-amount: "<gray>Cantidad: <gold><bold>%amount%</bold>"
  settings-resourcepack-usage: "<white>Usa /mb settings resourcepack <red>{on|off|auto}</red>. on = paquete del cliente; off = iconos predeterminados; auto = detección del paquete del servidor.</white>"
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>Carta de libro de MailboxGUI"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>De: %sender%"
    - "<gray>Fecha: %date%"
    - "<gray>Título: %title%"
    - "<gray>Caduca: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>Ve a la pagina siguiente para leer esta carta de libro."
    - "%reply%"
    - "%back%"
  book-letter-date-time-pattern: ""

Reference only: merge selected keys into your existing file, preserving other messages.

messages_fr.yml — Français example
file-version: 16
messages:
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>Boîte de réception</gradient>"
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>Vérification de la boîte aux lettres</gradient>"
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Retour</gradient>"
  item-letter-name: "<gold><bold>Lettre</bold>"
  item-money-lore-amount: "<gray>Montant: <gold><bold>%amount%</bold>"
  settings-resourcepack-usage: "<white>Utilise /mb settings resourcepack <red>{on|off|auto}</red>. on = pack du client ; off = icônes par défaut ; auto = détection du pack du serveur.</white>"
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>Lettre livre MailboxGUI"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>De : %sender%"
    - "<gray>Date : %date%"
    - "<gray>Titre: %title%"
    - "<gray>Expire: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>Passez a la page suivante pour lire cette lettre livre."
    - "%reply%"
    - "%back%"
  book-letter-date-time-pattern: ""

Reference only: merge selected keys into your existing file, preserving other messages.

messages_it.yml — Italiano example
file-version: 16
messages:
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>Casella di posta Posta in arrivo</gradient>"
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>Controllo della casella di posta</gradient>"
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Indietro</gradient>"
  item-letter-name: "<gold><bold>Lettera</bold>"
  item-money-lore-amount: "<gray>Importo: <gold><bold>%amount%</bold>"
  settings-resourcepack-usage: "<white>Usa /mb settings resourcepack <red>{on|off|auto}</red>. on = pacchetto del client; off = icone predefinite; auto = rilevamento del pacchetto del server.</white>"
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>Lettera libro MailboxGUI"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>Da: %sender%"
    - "<gray>Data: %date%"
    - "<gray>Titolo: %title%"
    - "<gray>Scade: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>Vai alla pagina successiva per leggere questa lettera libro."
    - "%reply%"
    - "%back%"
  book-letter-date-time-pattern: ""

Reference only: merge selected keys into your existing file, preserving other messages.

messages_nl.yml — Nederlands example
file-version: 16
messages:
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>Postbus Inbox</gradient>"
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>Postbuscontrole</gradient>"
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Terug</gradient>"
  item-letter-name: "<gold><bold>Brief</bold>"
  item-money-lore-amount: "<gray>Bedrag: <gold><bold>%amount%</bold>"
  settings-resourcepack-usage: "<white>Gebruik /mb settings resourcepack <red>{on|off|auto}</red>. on = lokaal pakket; off = standaardiconen; auto = detectie van serverpakketten.</white>"
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>MailboxGUI Boekbrief"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>Van: %sender%"
    - "<gray>Datum: %date%"
    - "<gray>Titel: %title%"
    - "<gray>Verloopt: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>Ga naar de volgende pagina om deze boekbrief te lezen."
    - "%reply%"
    - "%back%"
  book-letter-date-time-pattern: ""

Reference only: merge selected keys into your existing file, preserving other messages.

messages_sv.yml — Svenska example
file-version: 16
messages:
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>Brevlådans inkorg</gradient>"
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>Postlådekontroll</gradient>"
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Tillbaka</gradient>"
  item-letter-name: "<gold><bold>Brev</bold>"
  item-money-lore-amount: "<gray>Belopp: <gold><bold>%amount%</bold>"
  settings-resourcepack-usage: "<white>Använd /mb settings resourcepack <red>{on|off|auto}</red>. on = klientpaket; off = standardikoner; auto = identifiering av serverpaket.</white>"
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>MailboxGUI bokbrev"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>Fran: %sender%"
    - "<gray>Datum: %date%"
    - "<gray>Titel: %title%"
    - "<gray>Går ut: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>Ga till nasta sida for att lasa detta bokbrev."
    - "%reply%"
    - "%back%"
  book-letter-date-time-pattern: ""

Reference only: merge selected keys into your existing file, preserving other messages.

messages_pl.yml — Polski example
file-version: 16
messages:
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>Skrzynka odbiorcza</gradient>"
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>Kontrola skrzynki pocztowej</gradient>"
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Wstecz</gradient>"
  item-letter-name: "<gold><bold>List</bold>"
  item-money-lore-amount: "<gray>Kwota: <gold><bold>%amount%</bold>"
  settings-resourcepack-usage: "<white>Użyj /mb settings resourcepack <red>{on|off|auto}</red>. on = pakiet klienta; off = domyślne ikony; auto = wykrywanie pakietu serwera.</white>"
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>List ksiazkowy MailboxGUI"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>Od: %sender%"
    - "<gray>Data: %date%"
    - "<gray>Tytuł: %title%"
    - "<gray>Wygasa: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>Przejdz do nastepnej strony, aby przeczytac ten list ksiazkowy."
    - "%reply%"
    - "%back%"
  book-letter-date-time-pattern: ""

Reference only: merge selected keys into your existing file, preserving other messages.

messages_ru.yml — Русский example
file-version: 16
messages:
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>Почтовый ящик Входящие</gradient>"
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>Проверка почтового ящика</gradient>"
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Назад</gradient>"
  item-letter-name: "<gold><bold>Письмо</bold>"
  item-money-lore-amount: "<gray>Сумма: <gold><bold>%amount%</bold>"
  settings-resourcepack-usage: "<white>Используйте /mb settings resourcepack <red>{on|off|auto}</red>. on = клиентский ресурспак; off = стандартные значки; auto = определение серверного ресурспака.</white>"
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>Книжное письмо MailboxGUI"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>От: %sender%"
    - "<gray>Дата: %date%"
    - "<gray>Заголовок: %title%"
    - "<gray>Истекает: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>Перейдите на следующую страницу, чтобы прочитать это книжное письмо."
    - "%reply%"
    - "%back%"
  book-letter-date-time-pattern: ""

Reference only: merge selected keys into your existing file, preserving other messages.

messages_uk.yml — Українська example
file-version: 16
messages:
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>Поштова скринька Вхідні</gradient>"
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>Перевірка поштової скриньки</gradient>"
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Назад</gradient>"
  item-letter-name: "<gold><bold>Лист</bold>"
  item-money-lore-amount: "<gray>Сума: <gold><bold>%amount%</bold>"
  settings-resourcepack-usage: "<white>Використовуйте /mb settings resourcepack <red>{on|off|auto}</red>. on = клієнтський пакет; off = стандартні значки; auto = визначення серверного пакета.</white>"
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>Книжковий лист MailboxGUI"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>Від: %sender%"
    - "<gray>Дата: %date%"
    - "<gray>Заголовок: %title%"
    - "<gray>Діє до: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>Перейдіть на наступну сторінку, щоб прочитати цей книжковий лист."
    - "%reply%"
    - "%back%"
  book-letter-date-time-pattern: ""

Reference only: merge selected keys into your existing file, preserving other messages.

messages_ja.yml — 日本語 example
file-version: 16
messages:
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>メールボックス 受信ボックス</gradient>"
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>メールボックスのチェック</gradient>"
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>戻る</gradient>"
  item-letter-name: "<gold><bold>レター</bold>"
  item-money-lore-amount: "<gray>金額: <gold><bold>%amount%</bold>"
  settings-resourcepack-usage: "<white>使用方法: /mb settings resourcepack <red>{on|off|auto}</red>. on = クライアントパック、off = 標準アイコン、auto = サーバーパックの検出。</white>"
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>MailboxGUI ブックレター"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>差出人: %sender%"
    - "<gray>日付: %date%"
    - "<gray>題名: %title%"
    - "<gray>有効期限: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>次のページでこのブックレターを読めます。"
    - "%reply%"
    - "%back%"
  book-letter-date-time-pattern: ""

Reference only: merge selected keys into your existing file, preserving other messages.

messages_ko.yml — 한국어 example
file-version: 16
messages:
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>사서함 받은 편지함</gradient>"
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>우편함 확인</gradient>"
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>뒤로</gradient>"
  item-letter-name: "<gold><bold>문자</bold>"
  item-money-lore-amount: "<gray>금액: <gold><bold>%amount%</bold>"
  settings-resourcepack-usage: "<white>사용법: /mb settings resourcepack <red>{on|off|auto}</red>. on = 클라이언트 팩, off = 기본 아이콘, auto = 서버 팩 감지.</white>"
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>MailboxGUI 책 편지"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>보낸 사람: %sender%"
    - "<gray>날짜: %date%"
    - "<gray>제목: %title%"
    - "<gray>만료: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>다음 페이지로 이동하여 이 책 편지를 읽으세요."
    - "%reply%"
    - "%back%"
  book-letter-date-time-pattern: ""

Reference only: merge selected keys into your existing file, preserving other messages.

messages_zh_cn.yml — 简体中文 example
file-version: 16
messages:
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>邮箱收件箱</gradient>"
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>邮箱检查</gradient>"
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>返回</gradient>"
  item-letter-name: "<gold><bold>字母</bold>"
  item-money-lore-amount: "<gray>金额: <gold><bold>%amount%</bold>"
  settings-resourcepack-usage: "<white>用法: /mb settings resourcepack <red>{on|off|auto}</red>. on = 客户端资源包;off = 默认图标;auto = 检测服务器资源包。</white>"
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>MailboxGUI 书信"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>来自: %sender%"
    - "<gray>日期: %date%"
    - "<gray>标题: %title%"
    - "<gray>到期时间: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>前往下一页阅读这封书信。"
    - "%reply%"
    - "%back%"
  book-letter-date-time-pattern: ""

Reference only: merge selected keys into your existing file, preserving other messages.

messages_zh_tw.yml — 繁體中文(臺灣) example
file-version: 16
messages:
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>郵件信箱收件匣</gradient>"
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>信箱檢查</gradient>"
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>返回</gradient>"
  item-letter-name: "<gold><bold>字母</bold>"
  item-money-lore-amount: "<gray>金額: <gold><bold>%amount%</bold>"
  settings-resourcepack-usage: "<white>用法: /mb settings resourcepack <red>{on|off|auto}</red>. on = 用戶端資源包;off = 預設圖示;auto = 偵測伺服器資源包。</white>"
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>MailboxGUI 書信"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>來自: %sender%"
    - "<gray>日期: %date%"
    - "<gray>標題: %title%"
    - "<gray>到期時間: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>前往下一頁閱讀這封書信。"
    - "%reply%"
    - "%back%"
  book-letter-date-time-pattern: ""

Reference only: merge selected keys into your existing file, preserving other messages.

messages_zh_hk.yml — 繁體中文(香港) example
file-version: 16
messages:
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>郵件信箱收件匣</gradient>"
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>信箱檢查</gradient>"
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>返回</gradient>"
  item-letter-name: "<gold><bold>字母</bold>"
  item-money-lore-amount: "<gray>金額: <gold><bold>%amount%</bold>"
  settings-resourcepack-usage: "<white>用法: /mb settings resourcepack <red>{on|off|auto}</red>. on = 客戶端資源包;off = 預設圖示;auto = 偵測伺服器資源包。</white>"
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>MailboxGUI 書信"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>來自: %sender%"
    - "<gray>日期: %date%"
    - "<gray>標題: %title%"
    - "<gray>到期時間: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>前往下一頁閱讀呢封書信。"
    - "%reply%"
    - "%back%"
  book-letter-date-time-pattern: ""

Reference only: merge selected keys into your existing file, preserving other messages.

messages_pt_br.yml — Português (Brasil) example
file-version: 16
messages:
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>Caixa de Entrada</gradient>"
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>Verificação da Caixa de Correio</gradient>"
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Voltar</gradient>"
  item-letter-name: "<gold><bold>Carta</bold>"
  item-money-lore-amount: "<gray>Valor: <gold><bold>%amount%</bold>"
  settings-resourcepack-usage: "<white>Use /mb settings resourcepack <red>{on|off|auto}</red>. on = pacote do cliente; off = ícones padrão; auto = detecção do pacote do servidor.</white>"
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough></dark_gray>"
    - "<gold>Carta em Livro do MailboxGUI</gold>"
    - "<dark_gray><strikethrough>--------------------</strikethrough></dark_gray>"
    - "<gray>De: <white>%sender%</white></gray>"
    - "<gray>Data: <white>%date%</white></gray>"
    - "<gray>Título: <white>%title%</white></gray>"
    - "<gray>Expira em: <white>%expiration%</white></gray>"
    - "<dark_gray><strikethrough>--------------------</strikethrough></dark_gray>"
    - "<dark_green>Vá para a próxima página para ler esta Carta em Livro.</dark_green>"
    - "%reply%"
    - "%back%"
  book-letter-date-time-pattern: "dd/MM/yyyy 'às' HH:mm"

Reference only: merge selected keys into your existing file, preserving other messages.

Book information uses book-letter-information-page (a list) with %sender%, %date%, %title%, %expiration%, %reply% and %back% where applicable. book-letter-date-time-pattern can use the locale default when empty. Editing translated titles/names/lore does not rewrite sender messages or quantities inserted into them.

Full bundled defaults — expandable reference

These are clean source defaults, not this server’s private live configuration. Use your installed version’s generated file as the working copy. Premium protected-update credentials below are blank placeholders; never publish your populated file or backups. Full localized messages can be downloaded individually for reference.

config.yml — complete shared / Free default
Download clean reference text
# ============================================================
# MailboxGUI Configuration
# ============================================================
# This file controls mailbox behavior, Public Access Mailboxes,
# Dynmap markers, language behavior, mail systems, packages,
# money mail, and update checking.
#
# Important:
# - Use spaces, not tabs.
# - Display text supports legacy '&' codes, HEX colors (&#RRGGBB),
#   and restricted MiniMessage colors/decorations/gradients/rainbows.
#   Interactive, click, hover, and other unsupported MiniMessage tags
#   are not executed. Placeholders and literal /n remain intact.
# - Text placeholders such as %player% and %sender% are replaced
#   by the plugin where supported.
# - Startup and /mba reload synchronize missing defaults while preserving existing
#   settings. Version migrations may rename legacy keys without resetting their values.
# - Back up the entire plugin data folder before an upgrade.
# - Keep this config, language files and scheduled-mail settings when
#   moving from Free to Premium. Do not delete them to get new defaults.
# - See UPGRADE-SAFETY.txt for stock-text refresh and rollback cautions.
# ============================================================

config-version: 13

# Enables icon appearance overrides from gui.yml for every inventory menu and inbox mail type.
# Controls share one appearance per purpose; fillers have one global appearance.
# Recipient online/offline states and package/money message/expiration variants are separate.
# Paper/book letters use only their base and expiration appearances because they inherently contain messages.
# GUI titles, icon names, lore, colors, and translated text are customized in language/messages_<locale>.yml.
# Real package contents, claimed items, menu layouts, permissions, and click actions are not changed by appearance overrides.
# Inbox session and claim protection remain mandatory; appearance settings cannot disable them.
# When false, built-in appearances are used and gui.yml is not generated or synchronized.
# Any existing gui.yml is preserved but ignored while this setting is false.
# Set true, then use /mba reload to generate gui.yml and load its appearance settings.
# While enabled, /mba reload also applies edits made directly to gui.yml.
# Optional ItemsAdder appearances: set itemsadder-item: namespace:id on supported gui.yml roles/variants.
# Global navigation example: icons.controls.back.itemsadder-item; personal/public floating items also support it.
# ItemsAdder must be installed, compatible with this server version, and finished loading its custom item registry.
# Non-null itemsadder-item takes precedence over same-layer material/custom-model-data/item-model fields.
# Missing/unready/incompatible ItemsAdder or invalid/unknown IDs retain the preceding inherited/built-in appearance.
# Same-layer sibling fields are not fallback fields; configure an earlier layer or set itemsadder-item to null.
# ItemsAdder owns pack building/merging, hosting and deployment; MailboxGUI never sends a second pack.
# Include all referenced models in its deployed pack; ItemsAdder availability is NOT proof of player pack acceptance.
# /iareload reloads ItemsAdder content; rebuild/deploy its pack when needed, then /mba reload applies GUI edits.
# ItemsAdder does not bypass gui-customization.enabled, player On/Off/Auto or forced automatic detection.
# Automatic resource-pack fallback: each player uses built-in icons until a server-supplied pack is confirmed loaded.
# In auto mode, declined, failed, pending, or unknown status uses original icons, not gui.yml material/model overrides.
# This also applies to each owner's floating new-mail item; pack acceptance is not required to use mail.
# Pack status is local to the player's connection on each backend, not shared across the network.
# Proxy-delivered packs may not produce Bukkit acknowledgements. A pack provider can integrate
# the public resource-pack status API in both editions; confirmations expire unless refreshed.
# Unsupported item-model assignments use CustomModelData when configured, otherwise the original icon.
# The server cannot inspect individual client assets or detect manually installed local packs.
# A loaded pack must contain your configured models; unrelated/missing models cannot be detected automatically.
# Pack status changes take effect on the next normal GUI render/open; /mba reload retains known pack status.
# Client-installed packs: /mb settings resourcepack on explicitly enables gui.yml icons for that player.
# /mb settings resourcepack off forces built-in icons, even with a loaded server pack.
# /mb settings resourcepack auto restores automatic server-pack detection (the default).
# The on setting is the player's confirmation, not asset detection; the matching pack must be installed and enabled.
# Choices are saved locally per player/backend and survive reconnects, reloads, and restarts.
# Changing a choice refreshes the owner's floating notification; reopen inventory menus to update icons.
# The player choices above are available only when require-automatic-detection is false.
gui-customization:
  enabled: false
  # Locks every player to auto mode; takes effect after /mba reload in both editions.
  # Hides/disables only /mb settings resourcepack (including localized aliases),
  # its help entry, settings output and tab completion. Other player settings remain available.
  # Existing saved on/off choices are ignored, not deleted; disabling this restores them.
  # Requires a SERVER-SENT pack (server.properties or another pack-delivery plugin).
  # Proxy pack plugins must forward verified loaded status through the public resource-pack API
  # if the backend receives no native acknowledgement. MailboxGUI itself does not forward proxy status.
  # A manually installed client pack cannot be detected and will use built-in icons in this mode.
  # MailboxGUI NEVER sends/downloads/requires a pack or disconnects players for not loading one.
  # To require your server pack, configure that in server.properties or your pack-delivery plugin.
  # Detection only confirms a server pack loaded, NOT which assets it contains.
  # ItemsAdder being installed or resolving an item does not bypass this policy or verify client models.
  # Include every gui.yml model reference in the pack you send; an unrelated loaded pack
  # or missing/incompatible client models can still produce incorrect/missing custom icons.
  # Use a pack and gui.yml matching the edition, server API and client Minecraft version.
  # Older APIs need custom-model-data fallback where item-model is unsupported.
  # No loaded pack -> original icons; mail and the other settings remain usable.
  # This setting does nothing while gui-customization.enabled is false.
  require-automatic-detection: false

# ============================================================
# Data Storage
# ============================================================
# Controls how MailboxGUI stores persistent plugin data.
#
# Available storage types:
# - YAML   = flat YAML files under plugins/MailboxGUI/data/playerdata and data/postofficedata
# - SQLITE = local database file under plugins/MailboxGUI/data/data.db
# - MYSQL  = remote MySQL database storage
#
# New installs default to SQLITE.
# Upgrades with legacy mailboxdata from 3.1.2 or older default to YAML unless storage.type already existed.
# Keep the existing config: deleting it selects new-install defaults, not your former database.
# Changing storage.type selects a provider; it is not an automatic data conversion.
# Back up all storage first and use /mba convert <YAML|SQLITE|MYSQL> to migrate data.
# /mba reload loads edited connection settings but does not convert data between providers.
# ============================================================

storage:
  type: SQLITE

  sqlite:
    file: data/data.db

  mysql:
    host: localhost
    port: 3306
    database: mailboxgui
    username: root
    password: ''
    use-ssl: false

# ============================================================
# Language / Locale
# ============================================================
# MailboxGUI can use the player's Minecraft client locale when
# a matching language file exists.
#
# Language files are stored in:
# plugins/MailboxGUI/language/
#
# Supported locale.default codes:
# en, es, fr, de, sv, nl, it, ja, ko, pl, pt_br, ru, uk, zh_cn, zh_hk, zh_tw
# ============================================================

locale:
  # Default language code.
  #
  # Used when automatic locale detection is disabled or when a
  # player's locale is not supported by MailboxGUI.
  default: en

  # If true, MailboxGUI attempts to use the player's Minecraft
  # client language.
  #
  # If false, all players use locale.default.
  auto-detect-player-locale: true

  # Command names and syntax are independent of message, GUI, and date languages.
  # At startup, ONLY command-syntax.default language roots and English roots are registered.
  # With default: en, only English root aliases are registered.
  # A non-English default registers that language's root aliases plus English root aliases.
  # English roots are always available; other languages' roots are not registered.
  # Changing registered roots requires a server restart; /mba reload does not register roots.
  # Player names, messages, IDs, permission nodes, and configuration keys are not translated.
  command-syntax:
    # Selects the roots registered at startup alongside the always-available English roots.
    # Console and unsupported client locales fall back to the invoking root's language.
    # For example, console /mba uses English even with command-syntax.default: es.
    # Uses the same supported language codes listed above; en is the default.
    default: en

    # If true, use a supported Minecraft client language ONLY for subcommands,
    # help arguments, flags, and tab completion, never for command roots.
    # If false, syntax follows the root used: /mb uses English, /bz uses Spanish, etc.
    # A translated root is usable only if it was registered at startup.
    # Message, GUI, and date locales remain independent of command syntax.
    auto-detect-player-locale: true

# ============================================================
# Player Mailboxes
# ============================================================
# Player mailboxes are private physical mailbox locations owned
# by a specific player.
#
# Supported bodies, matching regular wall signs and required bases depend on
# the mailbox style and materials available on the running Minecraft version.
# Use /mb guide to inspect supported styles; some styles require a fence below.
# Registration validates the actual structure, not only the container material.
# ============================================================

mailbox:
  # Maximum number of physical player mailboxes one player may register.
  max-mailboxes-per-player: 5

  # Controls what /mb check does for players.
  #
  # gui  = opens a read-only inbox view where players can inspect mail icons and lore.
  # text = sends a chat summary of unchecked mail counts by mail type.
  # Both are check-only: they do not claim mail or clear unchecked-mail notifications.
  # GUI check shows package icons/lore, not package contents or management actions.
  #
  # paper-letter-readable:
  #   true  = paper letter message bodies are visible in the /mb check GUI.
  #   false = paper letters only show a notice that the player must open
  #           their real inbox to read the message body.
  #   This setting only applies when mailbox.mailbox-check-command.setting is gui.
  mailbox-check-command:
    setting: gui
    paper-letter-readable: true

  # Allows players to use /mb track to see delayed mail waiting
  # to arrive for them.
  #
  # Mail type delivery delays are included. Admin command sends,
  # console command sends and API sends may also
  # use custom delays that differ from the standard mail type delay.
  # Tracking delayed mail helps players understand when mail is still
  # on the way, and delays help larger servers spread out mail delivery
  # instead of processing every mail item at the same instant.
  # Future scheduled tasks are not tracked here; only mail already in the delayed queue is listed.
  mail-tracking:
    enabled: true

  # If true, players may send letters, packages, and money mail
  # to themselves through normal player recipient menus.
  #
  # If false, the sender is hidden from their own recipient lists.
  allow-player-self-send: true

  # Allows loaded shulker boxes to be placed inside MailboxGUI packages.
  #
  # false = shulker boxes that already contain items are blocked.
  # true  = loaded shulker boxes are allowed in packages.
  #
  # This applies to player, admin, command, and API package creation.
  loaded-shulker-box:
    enabled: false

  # Allows players to open the main MailboxGUI menu by command with
  # /mailbox open or /mb open.
  #
  # This is disabled by default so physical mailbox, Public Access Mailbox,
  # and Public Access NPC access remains the normal access flow.
  # Enable it for backend servers that do not have mailbox access points.
  command-open:
    enabled: false
    worlds:
      enabled: false
      whitelist:
        - worldname1
        - worldname2

  # Gives players starter blocks for building a physical mailbox.
  #
  # /mailbox kit and /mb kit use the named kits below.
  # If exactly one kit is enabled and supported on the running Minecraft version,
  # the command gives that kit immediately.
  # If multiple kits are enabled and supported, /mb kit shows a list and
  # /mb kit <kitname> claims one kit.
  #
  # Kit contents use Bukkit material names. Materials that do not exist on the
  # running server version make that whole kit unavailable. This lets newer
  # examples stay in the config while preserving Spigot/Paper/Purpur 1.18.2+
  # compatibility.
  #
  # enabled:
  #   false = the kit command and reminder are disabled.
  #   true  = eligible players may use /mb kit.
  #
  # usage:
  #   1 = each player may claim the kit once.
  #   0 = unlimited kit claims.
  #
  # notification:
  #   true  = enables /mb kit reminder support and allows players
  #           to toggle the reminder in /mb settings notification.
  #   false = disables kit reminders completely and hides the kit
  #           notification setting from /mb settings.
  #
  # notification-frequency-minutes:
  #   How often online players with remaining kit uses are reminded
  #   that /mb kit is available.
  #   0 = do not send reminder messages.
  #   This setting only works when mailbox.kit.notification is true.
  kit:
    enabled: true
    usage: 1
    notification: true
    notification-frequency-minutes: 0
    kits:
      Classic_Mailbox:
        enabled: true
        kit-contents:
          - CHEST:1
          - OAK_SIGN:1
          - OAK_FENCE:1

      Classic_Barrel:
        enabled: true
        kit-contents:
          - BARREL:1
          - DARK_OAK_SIGN:1
          - DARK_OAK_FENCE:1

      Copper_Chest:
        enabled: true
        kit-contents:
          - WAXED_COPPER_CHEST:1
          - ACACIA_SIGN:1
          - ACACIA_FENCE:1

      Wall_Shelf_Mailbox:
        enabled: true
        kit-contents:
          - MANGROVE_SHELF:1
          - MANGROVE_SIGN:1

      Green_Shulker:
        enabled: false
        kit-contents:
          - GREEN_SHULKER_BOX:1
          - SPRUCE_SIGN:1
          - SPRUCE_FENCE:1

      Pink_Shulker:
        enabled: false
        kit-contents:
          - PINK_SHULKER_BOX:1
          - CHERRY_SIGN:1
          - CHERRY_FENCE:1

      Dropper:
        enabled: false
        kit-contents:
          - DROPPER:1
          - PALE_OAK_SIGN:1
          - PALE_OAK_FENCE:1

      Dispenser_Kit:
        enabled: false
        kit-contents:
          - DISPENSER:1
          - CHERRY_SIGN:1
          - CHERRY_FENCE:1

      Ender_Chest:
        enabled: false
        kit-contents:
          - ENDER_CHEST:1
          - WARPED_SIGN:1
          - WARPED_FENCE:1

      Chiseled_Bookshelf:
        enabled: false
        kit-contents:
          - CHISELED_BOOKSHELF:1
          - ACACIA_SIGN:1
          - ACACIA_FENCE:1

      Crafter:
        enabled: false
        kit-contents:
          - CRAFTER:1
          - BAMBOO_SIGN:1
          - BAMBOO_FENCE:1

  # Shows a floating item above registered physical player mailboxes
  # when the mailbox owner has unread mail.
  #
  # The notification clears when the owner has no unchecked mail left.
  # MailboxGUI controls the item position and refresh timing internally.
  #
  # This uses a no-gravity dropped item for 1.18+ compatibility.
  # APPEARANCE OVERRIDES (gui.yml): icons.new-mail-notification.personal
  # Require gui-customization.enabled: true AND personal.enabled: true there.
  # - A valid, non-null personal.material replaces ONLY the item setting below.
  # - A null/omitted material retains this base material (PAPER by default).
  # - personal.custom-model-data and personal.item-model add item metadata;
  #   they do not replace any other config.yml setting. The model must exist
  #   in the player's resource pack; item-model needs a supporting server API.
  #
  # NOT OVERRIDDEN: mailbox.new-mail-notification.enabled, saved mailbox location, sign text,
  # unread/expired-mail checks, visibility rules, pickup/despawn protection,
  # or notification clearing. gui.yml does not move the item or change timers.
  # World anchor, height, and refresh timing are controlled internally by MailboxGUI,
  # not configurable here or in gui.yml. A pack's ground display transform controls
  # how the model looks in the world, not the mailbox's saved location.
  new-mail-notification:
    # Master toggle for personal mailbox notifications; appearance cannot enable it.
    enabled: true
    # Base non-air Minecraft item Material. Used unless an active valid gui.yml
    # personal.material overrides it; custom model metadata may still use this base.
    item: PAPER

  detection:
    # If true, player mailbox signs are refreshed on startup/reload
    # when the saved world, container, and sign are physically available.
    #
    # Mailbox numbers remain available in mailbox management views
    # and Dynmap marker text.
    refresh-signs-on-load: true

  sign-format:
    # Sign format used when a normal player mailbox is registered.
    #
    # Available placeholders:
    # %player% = mailbox owner's player name
    #
    # Keep all four lines present.
    line-1: '&6[&lMailbox&r&6]'
    line-2: '%player%'
    line-3: '&bPersonal Access'
    line-4: '&7Right Click'

# ============================================================
# Letters
# ============================================================
# ============================================================

letter:
  # Paper letters: controls player sending only, never existing mail claims.
  paper-letter:
    enabled: true
    # /mb send letter requires this flag AND paper-letter.enabled; permissions do not bypass either.
    player-command-send:
      enabled: true
      worlds:
        # When enabled, allow whitelisted worlds OR the existing letter world permission.
        enabled: false
        whitelist:
          - worldname1
          - worldname2
    # Administrator sending is independent of the player enabled setting.
    admin-mail:
      send:
        # New letters sent through Admin Tools.
        enabled: true
      command-send:
        # New letters sent through administrator/console commands.
        enabled: true
      # Sender display supports legacy & colors, HEX colors, and supported restricted MiniMessage.
      server-name: '&a&lServer'
    # Default delivery delay in seconds; 0 sends immediately.
    # Shared Admin Inbox mail uses its own delay for large mass-mail returns.
    # Commands, API requests and scheduled tasks can override this delay.
    # Delivery uses enqueue time plus this delay in wall-clock seconds, not server ticks.
    delivery-delay-seconds: 5

  # Book letters: controls player sending only, never existing mail claims.
  book-letter:
    enabled: true
    # /mb send letter requires this flag AND book-letter.enabled; permissions do not bypass either.
    player-command-send:
      enabled: true
      worlds:
        # When enabled, allow whitelisted worlds OR the existing letter world permission.
        enabled: false
        whitelist:
          - worldname1
          - worldname2
    # Administrator sending is independent of the player enabled setting.
    admin-mail:
      send:
        # New letters sent through Admin Tools.
        enabled: true
      command-send:
        # New letters sent through administrator/console commands.
        enabled: true
      # Sender display supports legacy & colors, HEX colors, and supported restricted MiniMessage.
      server-name: '&a&lServer'
    # Default delivery delay in seconds; 0 sends immediately.
    # Shared Admin Inbox mail uses its own delay for large mass-mail returns.
    # Commands, API requests and scheduled tasks can override this delay.
    # Delivery uses enqueue time plus this delay in wall-clock seconds, not server ticks.
    delivery-delay-seconds: 5

# ============================================================
# Packages
# ============================================================
# Packages can contain items and optional package experience.
#
# Cash On Delivery packages use Vault/economy when available.
# ============================================================

package:
  # Enables or disables package sending.
  enabled: true

  # Enables /mailbox send package and /mb send package.
  #
  # Default: false.
  # This does not affect mailbox-based Package sending.
  player-command-send:
    enabled: false
    worlds:
      enabled: false
      whitelist:
        - worldname1
        - worldname2

  # Controls new administrator-created Package sending.
  admin-mail:
    # Controls Package sending from Admin Tools.
    # Does not control existing mail claims or API sending.
    send:
      enabled: true

    # Controls Package sending from administrator and console commands.
    # Does not control Admin Tools or API sending.
    command-send:
      enabled: true

    # Display sender name for administrator/server Package mail.
    server-name: '&a&lServer'

  # Default package delivery delay in seconds; 0 sends immediately.
  # Player/admin sending uses this default unless the request supplies a custom delay.
  # Commands, API requests and scheduled tasks can override this delay.
  # Delivery uses enqueue time plus this delay in wall-clock seconds, not server ticks.
  # Shared Admin Inbox delivery uses its own delay for large return batches.
  delivery-delay-seconds: 5

  experience:
    # Enables or disables adding experience to packages.
    #
    # Experience is stored as a special MailboxGUI package item
    # using Bottle o' Enchanting as the default material.
    enabled: true

    # Maximum raw experience points a normal player may add to one
    # package.
    #
    # -1 = no plugin cap.
    #
    # Normal players are still limited by how much experience they
    # currently have. Admin package experience does not depend on
    # the admin's personal experience amount.
    max-experience-per-package: -1

    # If true, normal player senders must already have the experience
    # they add to a package.
    #
    # The experience is removed when the package is actually sent,
    # not when the chat amount is typed.
    withdraw-from-sender-on-send: true

    item:
      # Bukkit material used for the special package experience item.
      #
      # EXPERIENCE_BOTTLE = Bottle o' Enchanting.
      material: EXPERIENCE_BOTTLE

      # Display name for the experience item when it is inside a
      # received package.
      display-name: '&aExperience Package'

      # Lore for the experience item when it is inside a received
      # package.
      #
      # Compose GUIs use language-file lore instead so they can say
      # "Right-click to remove experience" while receive GUIs say
      # "Any click to claim."
      #
      # Available placeholders:
      # %experience% = raw experience points stored in the item
      lore:
        - '&7Stored Experience: &a%experience%'
        - '&e&lAny click to claim'

      # Lore for the experience item only while previewing an unpaid
      # COD package.
      #
      # This prevents the preview GUI from telling players they can
      # claim XP before accepting the COD package.
      #
      # Available placeholders:
      # %experience% = raw experience points stored in the item
      cod-preview-lore:
        - '&7Stored Experience: &a%experience%'
        - '&cAccept COD Package before you can claim this XP'

  cash-on-demand:
    # Enables or disables Cash On Delivery packages globally.
    #
    # If false, both Vault/economy COD and item-currency COD are disabled.
    enabled: true

    # Enables or disables Vault/economy currency as a COD payment option.
    #
    # If Vault or an economy provider is not available, MailboxGUI hides
    # only the Vault/economy COD option and can still allow item-currency COD.
    vault-economy-currency: true

    # Enables or disables item-currency payments as a COD payment option.
    #
    # Item-currency COD supports normal material names, XP entries, and
    # saved item templates using t:<id>:# syntax.
    item-currency: true

    # If true, successful player-origin Vault/economy COD payments are returned
    # to the sender as money mail.
    #
    # If false, successful player-origin Vault/economy COD payments are deposited
    # directly into the sender's economy account.
    #
    # This setting controls player-origin payouts, not the admin/server sender.
    # Admin COD payment returns use the request's Shared Admin Inbox return option;
    # without that option, no player-sender payout is created for the admin/server.
    send-reward-in-mail: true

  lore:
    # Lore shown on normal standard package icons.
    #
    # Available placeholders:
    # %sender% = sender name shown on the package
    standard-package:
      - '&7From: &f%sender%'
      - '&7Right-click to open'

    # Lore shown on unpaid COD package icons.
    #
    # Available placeholders:
    # %sender% = sender name shown on the package
    cash-on-demand-package:
      - '&7From: &f%sender%'
      - '&7Right-click to preview contents'

# ============================================================
# Money Mail
# ============================================================
# Money mail requires a working economy/Vault setup.
# ============================================================

money:
  # Enables or disables money mail.
  enabled: true

  # Enables /mailbox send money and /mb send money.
  #
  # Default: false.
  # This does not affect mailbox-based Money Mail sending.
  player-command-send:
    enabled: false
    worlds:
      enabled: false
      whitelist:
        - worldname1
        - worldname2

  # Controls new administrator-created Money Mail sending.
  admin-mail:
    # Controls Money Mail sending from Admin Tools.
    # Does not control existing mail claims or API sending.
    send:
      enabled: true

    # Controls Money Mail sending from administrator and console commands.
    # Does not control Admin Tools or API sending.
    command-send:
      enabled: true

    # Display sender name for administrator/server Money Mail.
    server-name: '&a&lServer'

  # Default money-mail delivery delay in seconds; 0 sends immediately.
  # Player/admin sending uses this default unless the request supplies a custom delay.
  # Commands, API requests and scheduled tasks can override this delay.
  # Delivery uses enqueue time plus this delay in wall-clock seconds, not server ticks.
  # Shared Admin Inbox delivery uses its own delay for large return batches.
  delivery-delay-seconds: 5

  # Controls how MailboxGUI displays economy amounts in money mail,
  # admin money mail, COD package prices, and COD return payments.
  #
  # PROVIDER = use the Vault economy provider's own format(amount) result.
  # CUSTOM = use the custom-format below.
  # RAW = show only the formatted number with no currency symbol/name.
  display-format-mode: PROVIDER

  # Used when display-format-mode is CUSTOM, and also used as the safe fallback
  # if PROVIDER mode cannot get a valid formatted value from Vault.
  #
  # Available placeholders:
  # %amount% = formatted number, such as 1,250.00
  # %raw_amount% = raw decimal amount, such as 1250.0
  # %currency_singular% = Vault provider singular currency name, if available
  # %currency_plural% = Vault provider plural currency name, if available
  custom-format: "$%amount%"

  # Decimal format used for %amount% and RAW mode.
  #
  # Common examples:
  # "#,##0.00" = 1,250.00
  # "#,##0" = 1,250
  # "0.00" = 1250.00
  amount-format: "#,##0.00"

# ============================================================
# Admin Mail Sending
# ============================================================
# Controls how Admin Tools bulk mail audiences behave.
# ============================================================

admin-mail:
  # If true, the admin who sends bulk admin mail is included in
  # All Players and Online Players deliveries.
  #
  # This is useful for testing server-wide letters, packages,
  # money mail, and package/COD behavior.
  include-sender-in-bulk-audiences: true

# ============================================================
# Public Access Mailbox System
# ============================================================
# Public Access Mailboxes are shared access points to each player's own inbox.
#
# They are useful for:
# - players who do not have a private mailbox yet
# - spawn/mailroom access points
# - servers that do not want to rely only on Citizens NPCs
#
# A valid Public Access Mailbox must use a supported mailbox container/style
# with an associated sign. Use /mb guide to view the available styles.
#
# Public Access Mailboxes do not require a fence-post base.
# Older post-office settings are migrated here without resetting owner values.
# ============================================================

public-mailbox:
  # Enables or disables Public Access Mailbox.
  #
  # If false, Public Access Mailbox opening and registration tools
  # are disabled.
  enabled: true

  mailboxes:
    # Enables or disables Public Access Mailbox registration
    # and opening.
    enabled: true

    # If true, any player may open a registered Public Access Mailbox.
    #
    # If false, players need:
    # mailboxgui.player.postoffice.pobox
    allow-any-player-open: true

    # If true, Public Access Mailbox signs are refreshed on startup/reload
    # when their saved world, container, and sign are physically available.
    refresh-signs-on-load: true

    # Shows a floating item above registered Public Access Mailboxes
    # when the viewing player has unread mail.
    #
    # This notification is visible only to the player who has unchecked
    # mail and is hidden from all other players using the same Public Access Mailbox.
    #
    # APPEARANCE OVERRIDES (gui.yml): icons.new-mail-notification.public
    # Require gui-customization.enabled: true AND public.enabled: true there.
    # - A valid, non-null public.material replaces ONLY the item setting below.
    # - A null/omitted material retains this base material (PAPER by default).
    # - public.custom-model-data and public.item-model add item metadata;
    #   they do not replace any other config.yml setting. The model must exist
    #   in the player's resource pack; item-model needs a supporting server API.
    #
    # NOT OVERRIDDEN: public-mailbox.mailboxes.new-mail-notification.enabled,
    # public-mailbox.enabled, public-mailbox.mailboxes.enabled, saved Public Access Mailbox location, sign text,
    # unread/expired-mail checks, owner-only visibility, pickup/despawn protection,
    # or notification clearing. gui.yml does not move the item or change timers.
    # World anchor, height, and refresh timing are controlled internally by MailboxGUI,
    # not configurable here or in gui.yml. A pack's ground display transform controls
    # how the model looks in the world, not the Public Access Mailbox's saved location.
    new-mail-notification:
      # Public notification toggle; also requires both public access parent toggles.
      enabled: true
      # Base non-air Minecraft item Material. Used unless an active valid gui.yml
      # public.material overrides it; custom model metadata may still use this base.
      item: PAPER

    sign-format:
      # Sign format used when a Public Access Mailbox is registered or refreshed.
      #
      # Available placeholders:
      # %publicmailboxname% = Public Access Mailbox name entered by the admin
      #
      # Keep all four lines present.
      line-1: '&6[&lMailbox&r&6]'
      line-2: '%publicmailboxname%'
      line-3: '&6Public Access'
      line-4: '&7Right Click'

# ============================================================
# Dynmap Support
# ============================================================
# Dynmap support is optional.
#
# If Dynmap is installed and this section is enabled, MailboxGUI
# creates a Dynmap marker layer for player mailboxes, public
# mailboxes, and public access NPCs.
#
# If Dynmap is missing, MailboxGUI continues normally.
# ============================================================

dynmap:
  # Enables or disables MailboxGUI Dynmap support.
  enabled: true

  marker-set:
    # Internal Dynmap marker set ID.
    #
    # Keep this stable once markers exist on your map.
    id: 'mailboxgui-mailboxes'

    # Visible layer name in Dynmap's marker selector.
    #
    # This is the checkbox name players/admins can toggle.
    label: 'Mailboxes/NPCs'

    # If true, the Mailboxes/NPCs layer is hidden by default.
    #
    # If false, the layer is visible by default.
    hide-by-default: false

    # Dynmap layer priority.
    #
    # Higher values can appear higher in Dynmap's layer list.
    layer-priority: 10

  markers:
    player-mailboxes:
      # If true, registered player mailboxes appear on Dynmap.
      enabled: true

      # Dynmap marker icon ID for player mailboxes.
      #
      # If this icon is missing, MailboxGUI falls back to another
      # available Dynmap icon.
      icon-id: 'chest'

      # Marker label shown on the map.
      #
      # Available placeholders:
      # %player% = mailbox owner
      # %number% = mailbox number for that owner
      label-format: '%player% Mailbox #%number%'

      # Marker description shown when clicking the marker.
      #
      # Basic HTML is supported by Dynmap descriptions.
      #
      # Available placeholders:
      # %player% = mailbox owner
      # %number% = mailbox number
      # %world% = world name
      # %status% = Loaded/Unloaded status text
      description:
        - '<b>MailboxGUI Player Mailbox</b>'
        - 'Player: %player%'
        - 'Mailbox: #%number%'
        - 'World: %world%'
        - 'Status: %status%'

    public-mailboxes:
      # If true, registered Public Access Mailboxes appear on Dynmap.
      enabled: true

      # Dynmap marker icon ID for Public Access Mailboxes.
      icon-id: 'chest'

      # Marker label shown on the map.
      #
      # Available placeholders:
      # %publicmailboxname% = Public Access Mailbox name
      label-format: 'Public Access Mailbox: %publicmailboxname%'

      # Marker description shown when clicking the marker.
      #
      # Available placeholders:
      # %publicmailboxname% = Public Access Mailbox name
      # %world% = world name
      # %status% = Loaded/Unloaded status text
      description:
        - '<b>MailboxGUI Public Access Mailbox</b>'
        - 'Public Access Mailbox Name: %publicmailboxname%'
        - 'World: %world%'
        - 'Status: %status%'

    public-access-npcs:
      # If true, Citizens public access NPCs appear on Dynmap.
      #
      # Citizens must be installed and the NPC must be marked as a
      # MailboxGUI public access NPC.
      enabled: true

      # Dynmap marker icon ID for public access NPCs.
      #
      # Dynmap's default "walk" marker icon is used for NPCs.
      icon-id: 'walk'

      # Marker label shown on the map.
      #
      # Available placeholders:
      # %npc% = NPC name
      # %id% = Citizens NPC ID
      label-format: 'Public Access NPC: %npc%'

      # Marker description shown when clicking the marker.
      #
      # Available placeholders:
      # %npc% = NPC name
      # %id% = Citizens NPC ID
      # %world% = world name
      description:
        - '<b>MailboxGUI Public Access NPC</b>'
        - 'NPC: %npc%'
        - 'NPC ID: %id%'
        - 'World: %world%'

  update:
    # If true, markers are refreshed when the plugin starts
    # and Dynmap becomes available.
    refresh-on-startup: true

    # If true, markers are refreshed when MailboxGUI reloads.
    refresh-on-reload: true

    # If true, markers are refreshed after registering a mailbox.
    refresh-on-register: true

    # If true, markers are refreshed after unregistering a mailbox.
    refresh-on-unregister: true

# Update Checker
# ============================================================
# Checks for plugin updates from the MailboxGUI website release system.
# ============================================================

updates:
  # Enables or disables the update checker.
  enabled: true

  # Release channel used by /mba update and automatic update notices.
  # Valid values: release, beta, alpha.
  # /mba updatecheck checks all three channels and explains how to select another channel.
  release-channel: release

  # If true, MailboxGUI checks for updates during startup.
  check-on-startup: true

  # If true, admins with the notify permission are told when
  # an update is available when they join.
  notify-admins-on-join: true
config.yml — shared default + Premium runtime auth extension
Download clean reference text
# ============================================================
# MailboxGUI Configuration
# ============================================================
# This file controls mailbox behavior, Public Access Mailboxes,
# Dynmap markers, language behavior, mail systems, packages,
# money mail, and update checking.
#
# Important:
# - Use spaces, not tabs.
# - Display text supports legacy '&' codes, HEX colors (&#RRGGBB),
#   and restricted MiniMessage colors/decorations/gradients/rainbows.
#   Interactive, click, hover, and other unsupported MiniMessage tags
#   are not executed. Placeholders and literal /n remain intact.
# - Text placeholders such as %player% and %sender% are replaced
#   by the plugin where supported.
# - Startup and /mba reload synchronize missing defaults while preserving existing
#   settings. Version migrations may rename legacy keys without resetting their values.
# - Back up the entire plugin data folder before an upgrade.
# - Keep this config, language files and scheduled-mail settings when
#   moving from Free to Premium. Do not delete them to get new defaults.
# - See UPGRADE-SAFETY.txt for stock-text refresh and rollback cautions.
# ============================================================

config-version: 13

# Enables icon appearance overrides from gui.yml for every inventory menu and inbox mail type.
# Controls share one appearance per purpose; fillers have one global appearance.
# Recipient online/offline states and package/money message/expiration variants are separate.
# Paper/book letters use only their base and expiration appearances because they inherently contain messages.
# GUI titles, icon names, lore, colors, and translated text are customized in language/messages_<locale>.yml.
# Real package contents, claimed items, menu layouts, permissions, and click actions are not changed by appearance overrides.
# Inbox session and claim protection remain mandatory; appearance settings cannot disable them.
# When false, built-in appearances are used and gui.yml is not generated or synchronized.
# Any existing gui.yml is preserved but ignored while this setting is false.
# Set true, then use /mba reload to generate gui.yml and load its appearance settings.
# While enabled, /mba reload also applies edits made directly to gui.yml.
# Optional ItemsAdder appearances: set itemsadder-item: namespace:id on supported gui.yml roles/variants.
# Global navigation example: icons.controls.back.itemsadder-item; personal/public floating items also support it.
# ItemsAdder must be installed, compatible with this server version, and finished loading its custom item registry.
# Non-null itemsadder-item takes precedence over same-layer material/custom-model-data/item-model fields.
# Missing/unready/incompatible ItemsAdder or invalid/unknown IDs retain the preceding inherited/built-in appearance.
# Same-layer sibling fields are not fallback fields; configure an earlier layer or set itemsadder-item to null.
# ItemsAdder owns pack building/merging, hosting and deployment; MailboxGUI never sends a second pack.
# Include all referenced models in its deployed pack; ItemsAdder availability is NOT proof of player pack acceptance.
# /iareload reloads ItemsAdder content; rebuild/deploy its pack when needed, then /mba reload applies GUI edits.
# ItemsAdder does not bypass gui-customization.enabled, player On/Off/Auto or forced automatic detection.
# Automatic resource-pack fallback: each player uses built-in icons until a server-supplied pack is confirmed loaded.
# In auto mode, declined, failed, pending, or unknown status uses original icons, not gui.yml material/model overrides.
# This also applies to each owner's floating new-mail item; pack acceptance is not required to use mail.
# Pack status is local to the player's connection on each backend, not shared across the network.
# Proxy-delivered packs may not produce Bukkit acknowledgements. A pack provider can integrate
# the public resource-pack status API in both editions; confirmations expire unless refreshed.
# Unsupported item-model assignments use CustomModelData when configured, otherwise the original icon.
# The server cannot inspect individual client assets or detect manually installed local packs.
# A loaded pack must contain your configured models; unrelated/missing models cannot be detected automatically.
# Pack status changes take effect on the next normal GUI render/open; /mba reload retains known pack status.
# Client-installed packs: /mb settings resourcepack on explicitly enables gui.yml icons for that player.
# /mb settings resourcepack off forces built-in icons, even with a loaded server pack.
# /mb settings resourcepack auto restores automatic server-pack detection (the default).
# The on setting is the player's confirmation, not asset detection; the matching pack must be installed and enabled.
# Choices are saved locally per player/backend and survive reconnects, reloads, and restarts.
# Changing a choice refreshes the owner's floating notification; reopen inventory menus to update icons.
# The player choices above are available only when require-automatic-detection is false.
gui-customization:
  enabled: false
  # Locks every player to auto mode; takes effect after /mba reload in both editions.
  # Hides/disables only /mb settings resourcepack (including localized aliases),
  # its help entry, settings output and tab completion. Other player settings remain available.
  # Existing saved on/off choices are ignored, not deleted; disabling this restores them.
  # Requires a SERVER-SENT pack (server.properties or another pack-delivery plugin).
  # Proxy pack plugins must forward verified loaded status through the public resource-pack API
  # if the backend receives no native acknowledgement. MailboxGUI itself does not forward proxy status.
  # A manually installed client pack cannot be detected and will use built-in icons in this mode.
  # MailboxGUI NEVER sends/downloads/requires a pack or disconnects players for not loading one.
  # To require your server pack, configure that in server.properties or your pack-delivery plugin.
  # Detection only confirms a server pack loaded, NOT which assets it contains.
  # ItemsAdder being installed or resolving an item does not bypass this policy or verify client models.
  # Include every gui.yml model reference in the pack you send; an unrelated loaded pack
  # or missing/incompatible client models can still produce incorrect/missing custom icons.
  # Use a pack and gui.yml matching the edition, server API and client Minecraft version.
  # Older APIs need custom-model-data fallback where item-model is unsupported.
  # No loaded pack -> original icons; mail and the other settings remain usable.
  # This setting does nothing while gui-customization.enabled is false.
  require-automatic-detection: false

# ============================================================
# Data Storage
# ============================================================
# Controls how MailboxGUI stores persistent plugin data.
#
# Available storage types:
# - YAML   = flat YAML files under plugins/MailboxGUI/data/playerdata and data/postofficedata
# - SQLITE = local database file under plugins/MailboxGUI/data/data.db
# - MYSQL  = remote MySQL database storage
#
# New installs default to SQLITE.
# Upgrades with legacy mailboxdata from 3.1.2 or older default to YAML unless storage.type already existed.
# Keep the existing config: deleting it selects new-install defaults, not your former database.
# Changing storage.type selects a provider; it is not an automatic data conversion.
# Back up all storage first and use /mba convert <YAML|SQLITE|MYSQL> to migrate data.
# /mba reload loads edited connection settings but does not convert data between providers.
# ============================================================

storage:
  type: SQLITE

  sqlite:
    file: data/data.db

  mysql:
    host: localhost
    port: 3306
    database: mailboxgui
    username: root
    password: ''
    use-ssl: false

# ============================================================
# Language / Locale
# ============================================================
# MailboxGUI can use the player's Minecraft client locale when
# a matching language file exists.
#
# Language files are stored in:
# plugins/MailboxGUI/language/
#
# Supported locale.default codes:
# en, es, fr, de, sv, nl, it, ja, ko, pl, pt_br, ru, uk, zh_cn, zh_hk, zh_tw
# ============================================================

locale:
  # Default language code.
  #
  # Used when automatic locale detection is disabled or when a
  # player's locale is not supported by MailboxGUI.
  default: en

  # If true, MailboxGUI attempts to use the player's Minecraft
  # client language.
  #
  # If false, all players use locale.default.
  auto-detect-player-locale: true

  # Command names and syntax are independent of message, GUI, and date languages.
  # At startup, ONLY command-syntax.default language roots and English roots are registered.
  # With default: en, only English root aliases are registered.
  # A non-English default registers that language's root aliases plus English root aliases.
  # English roots are always available; other languages' roots are not registered.
  # Changing registered roots requires a server restart; /mba reload does not register roots.
  # Player names, messages, IDs, permission nodes, and configuration keys are not translated.
  command-syntax:
    # Selects the roots registered at startup alongside the always-available English roots.
    # Console and unsupported client locales fall back to the invoking root's language.
    # For example, console /mba uses English even with command-syntax.default: es.
    # Uses the same supported language codes listed above; en is the default.
    default: en

    # If true, use a supported Minecraft client language ONLY for subcommands,
    # help arguments, flags, and tab completion, never for command roots.
    # If false, syntax follows the root used: /mb uses English, /bz uses Spanish, etc.
    # A translated root is usable only if it was registered at startup.
    # Message, GUI, and date locales remain independent of command syntax.
    auto-detect-player-locale: true

# ============================================================
# Player Mailboxes
# ============================================================
# Player mailboxes are private physical mailbox locations owned
# by a specific player.
#
# Supported bodies, matching regular wall signs and required bases depend on
# the mailbox style and materials available on the running Minecraft version.
# Use /mb guide to inspect supported styles; some styles require a fence below.
# Registration validates the actual structure, not only the container material.
# ============================================================

mailbox:
  # Maximum number of physical player mailboxes one player may register.
  max-mailboxes-per-player: 5

  # Controls what /mb check does for players.
  #
  # gui  = opens a read-only inbox view where players can inspect mail icons and lore.
  # text = sends a chat summary of unchecked mail counts by mail type.
  # Both are check-only: they do not claim mail or clear unchecked-mail notifications.
  # GUI check shows package icons/lore, not package contents or management actions.
  #
  # paper-letter-readable:
  #   true  = paper letter message bodies are visible in the /mb check GUI.
  #   false = paper letters only show a notice that the player must open
  #           their real inbox to read the message body.
  #   This setting only applies when mailbox.mailbox-check-command.setting is gui.
  mailbox-check-command:
    setting: gui
    paper-letter-readable: true

  # Allows players to use /mb track to see delayed mail waiting
  # to arrive for them.
  #
  # Mail type delivery delays are included. Admin command sends,
  # console command sends and API sends may also
  # use custom delays that differ from the standard mail type delay.
  # Tracking delayed mail helps players understand when mail is still
  # on the way, and delays help larger servers spread out mail delivery
  # instead of processing every mail item at the same instant.
  # Future scheduled tasks are not tracked here; only mail already in the delayed queue is listed.
  mail-tracking:
    enabled: true

  # If true, players may send letters, packages, and money mail
  # to themselves through normal player recipient menus.
  #
  # If false, the sender is hidden from their own recipient lists.
  allow-player-self-send: true

  # Allows loaded shulker boxes to be placed inside MailboxGUI packages.
  #
  # false = shulker boxes that already contain items are blocked.
  # true  = loaded shulker boxes are allowed in packages.
  #
  # This applies to player, admin, command, and API package creation.
  loaded-shulker-box:
    enabled: false

  # Allows players to open the main MailboxGUI menu by command with
  # /mailbox open or /mb open.
  #
  # This is disabled by default so physical mailbox, Public Access Mailbox,
  # and Public Access NPC access remains the normal access flow.
  # Enable it for backend servers that do not have mailbox access points.
  command-open:
    enabled: false
    worlds:
      enabled: false
      whitelist:
        - worldname1
        - worldname2

  # Gives players starter blocks for building a physical mailbox.
  #
  # /mailbox kit and /mb kit use the named kits below.
  # If exactly one kit is enabled and supported on the running Minecraft version,
  # the command gives that kit immediately.
  # If multiple kits are enabled and supported, /mb kit shows a list and
  # /mb kit <kitname> claims one kit.
  #
  # Kit contents use Bukkit material names. Materials that do not exist on the
  # running server version make that whole kit unavailable. This lets newer
  # examples stay in the config while preserving Spigot/Paper/Purpur 1.18.2+
  # compatibility.
  #
  # enabled:
  #   false = the kit command and reminder are disabled.
  #   true  = eligible players may use /mb kit.
  #
  # usage:
  #   1 = each player may claim the kit once.
  #   0 = unlimited kit claims.
  #
  # notification:
  #   true  = enables /mb kit reminder support and allows players
  #           to toggle the reminder in /mb settings notification.
  #   false = disables kit reminders completely and hides the kit
  #           notification setting from /mb settings.
  #
  # notification-frequency-minutes:
  #   How often online players with remaining kit uses are reminded
  #   that /mb kit is available.
  #   0 = do not send reminder messages.
  #   This setting only works when mailbox.kit.notification is true.
  kit:
    enabled: true
    usage: 1
    notification: true
    notification-frequency-minutes: 0
    kits:
      Classic_Mailbox:
        enabled: true
        kit-contents:
          - CHEST:1
          - OAK_SIGN:1
          - OAK_FENCE:1

      Classic_Barrel:
        enabled: true
        kit-contents:
          - BARREL:1
          - DARK_OAK_SIGN:1
          - DARK_OAK_FENCE:1

      Copper_Chest:
        enabled: true
        kit-contents:
          - WAXED_COPPER_CHEST:1
          - ACACIA_SIGN:1
          - ACACIA_FENCE:1

      Wall_Shelf_Mailbox:
        enabled: true
        kit-contents:
          - MANGROVE_SHELF:1
          - MANGROVE_SIGN:1

      Green_Shulker:
        enabled: false
        kit-contents:
          - GREEN_SHULKER_BOX:1
          - SPRUCE_SIGN:1
          - SPRUCE_FENCE:1

      Pink_Shulker:
        enabled: false
        kit-contents:
          - PINK_SHULKER_BOX:1
          - CHERRY_SIGN:1
          - CHERRY_FENCE:1

      Dropper:
        enabled: false
        kit-contents:
          - DROPPER:1
          - PALE_OAK_SIGN:1
          - PALE_OAK_FENCE:1

      Dispenser_Kit:
        enabled: false
        kit-contents:
          - DISPENSER:1
          - CHERRY_SIGN:1
          - CHERRY_FENCE:1

      Ender_Chest:
        enabled: false
        kit-contents:
          - ENDER_CHEST:1
          - WARPED_SIGN:1
          - WARPED_FENCE:1

      Chiseled_Bookshelf:
        enabled: false
        kit-contents:
          - CHISELED_BOOKSHELF:1
          - ACACIA_SIGN:1
          - ACACIA_FENCE:1

      Crafter:
        enabled: false
        kit-contents:
          - CRAFTER:1
          - BAMBOO_SIGN:1
          - BAMBOO_FENCE:1

  # Shows a floating item above registered physical player mailboxes
  # when the mailbox owner has unread mail.
  #
  # The notification clears when the owner has no unchecked mail left.
  # MailboxGUI controls the item position and refresh timing internally.
  #
  # This uses a no-gravity dropped item for 1.18+ compatibility.
  # APPEARANCE OVERRIDES (gui.yml): icons.new-mail-notification.personal
  # Require gui-customization.enabled: true AND personal.enabled: true there.
  # - A valid, non-null personal.material replaces ONLY the item setting below.
  # - A null/omitted material retains this base material (PAPER by default).
  # - personal.custom-model-data and personal.item-model add item metadata;
  #   they do not replace any other config.yml setting. The model must exist
  #   in the player's resource pack; item-model needs a supporting server API.
  #
  # NOT OVERRIDDEN: mailbox.new-mail-notification.enabled, saved mailbox location, sign text,
  # unread/expired-mail checks, visibility rules, pickup/despawn protection,
  # or notification clearing. gui.yml does not move the item or change timers.
  # World anchor, height, and refresh timing are controlled internally by MailboxGUI,
  # not configurable here or in gui.yml. A pack's ground display transform controls
  # how the model looks in the world, not the mailbox's saved location.
  new-mail-notification:
    # Master toggle for personal mailbox notifications; appearance cannot enable it.
    enabled: true
    # Base non-air Minecraft item Material. Used unless an active valid gui.yml
    # personal.material overrides it; custom model metadata may still use this base.
    item: PAPER

  detection:
    # If true, player mailbox signs are refreshed on startup/reload
    # when the saved world, container, and sign are physically available.
    #
    # Mailbox numbers remain available in mailbox management views
    # and Dynmap marker text.
    refresh-signs-on-load: true

  sign-format:
    # Sign format used when a normal player mailbox is registered.
    #
    # Available placeholders:
    # %player% = mailbox owner's player name
    #
    # Keep all four lines present.
    line-1: '&6[&lMailbox&r&6]'
    line-2: '%player%'
    line-3: '&bPersonal Access'
    line-4: '&7Right Click'

# ============================================================
# Letters
# ============================================================
# ============================================================

letter:
  # Paper letters: controls player sending only, never existing mail claims.
  paper-letter:
    enabled: true
    # /mb send letter requires this flag AND paper-letter.enabled; permissions do not bypass either.
    player-command-send:
      enabled: true
      worlds:
        # When enabled, allow whitelisted worlds OR the existing letter world permission.
        enabled: false
        whitelist:
          - worldname1
          - worldname2
    # Administrator sending is independent of the player enabled setting.
    admin-mail:
      send:
        # New letters sent through Admin Tools.
        enabled: true
      command-send:
        # New letters sent through administrator/console commands.
        enabled: true
      # Sender display supports legacy & colors, HEX colors, and supported restricted MiniMessage.
      server-name: '&a&lServer'
    # Default delivery delay in seconds; 0 sends immediately.
    # Shared Admin Inbox mail uses its own delay for large mass-mail returns.
    # Commands, API requests and scheduled tasks can override this delay.
    # Delivery uses enqueue time plus this delay in wall-clock seconds, not server ticks.
    delivery-delay-seconds: 5

  # Book letters: controls player sending only, never existing mail claims.
  book-letter:
    enabled: true
    # /mb send letter requires this flag AND book-letter.enabled; permissions do not bypass either.
    player-command-send:
      enabled: true
      worlds:
        # When enabled, allow whitelisted worlds OR the existing letter world permission.
        enabled: false
        whitelist:
          - worldname1
          - worldname2
    # Administrator sending is independent of the player enabled setting.
    admin-mail:
      send:
        # New letters sent through Admin Tools.
        enabled: true
      command-send:
        # New letters sent through administrator/console commands.
        enabled: true
      # Sender display supports legacy & colors, HEX colors, and supported restricted MiniMessage.
      server-name: '&a&lServer'
    # Default delivery delay in seconds; 0 sends immediately.
    # Shared Admin Inbox mail uses its own delay for large mass-mail returns.
    # Commands, API requests and scheduled tasks can override this delay.
    # Delivery uses enqueue time plus this delay in wall-clock seconds, not server ticks.
    delivery-delay-seconds: 5

# ============================================================
# Packages
# ============================================================
# Packages can contain items and optional package experience.
#
# Cash On Delivery packages use Vault/economy when available.
# ============================================================

package:
  # Enables or disables package sending.
  enabled: true

  # Enables /mailbox send package and /mb send package.
  #
  # Default: false.
  # This does not affect mailbox-based Package sending.
  player-command-send:
    enabled: false
    worlds:
      enabled: false
      whitelist:
        - worldname1
        - worldname2

  # Controls new administrator-created Package sending.
  admin-mail:
    # Controls Package sending from Admin Tools.
    # Does not control existing mail claims or API sending.
    send:
      enabled: true

    # Controls Package sending from administrator and console commands.
    # Does not control Admin Tools or API sending.
    command-send:
      enabled: true

    # Display sender name for administrator/server Package mail.
    server-name: '&a&lServer'

  # Default package delivery delay in seconds; 0 sends immediately.
  # Player/admin sending uses this default unless the request supplies a custom delay.
  # Commands, API requests and scheduled tasks can override this delay.
  # Delivery uses enqueue time plus this delay in wall-clock seconds, not server ticks.
  # Shared Admin Inbox delivery uses its own delay for large return batches.
  delivery-delay-seconds: 5

  experience:
    # Enables or disables adding experience to packages.
    #
    # Experience is stored as a special MailboxGUI package item
    # using Bottle o' Enchanting as the default material.
    enabled: true

    # Maximum raw experience points a normal player may add to one
    # package.
    #
    # -1 = no plugin cap.
    #
    # Normal players are still limited by how much experience they
    # currently have. Admin package experience does not depend on
    # the admin's personal experience amount.
    max-experience-per-package: -1

    # If true, normal player senders must already have the experience
    # they add to a package.
    #
    # The experience is removed when the package is actually sent,
    # not when the chat amount is typed.
    withdraw-from-sender-on-send: true

    item:
      # Bukkit material used for the special package experience item.
      #
      # EXPERIENCE_BOTTLE = Bottle o' Enchanting.
      material: EXPERIENCE_BOTTLE

      # Display name for the experience item when it is inside a
      # received package.
      display-name: '&aExperience Package'

      # Lore for the experience item when it is inside a received
      # package.
      #
      # Compose GUIs use language-file lore instead so they can say
      # "Right-click to remove experience" while receive GUIs say
      # "Any click to claim."
      #
      # Available placeholders:
      # %experience% = raw experience points stored in the item
      lore:
        - '&7Stored Experience: &a%experience%'
        - '&e&lAny click to claim'

      # Lore for the experience item only while previewing an unpaid
      # COD package.
      #
      # This prevents the preview GUI from telling players they can
      # claim XP before accepting the COD package.
      #
      # Available placeholders:
      # %experience% = raw experience points stored in the item
      cod-preview-lore:
        - '&7Stored Experience: &a%experience%'
        - '&cAccept COD Package before you can claim this XP'

  cash-on-demand:
    # Enables or disables Cash On Delivery packages globally.
    #
    # If false, both Vault/economy COD and item-currency COD are disabled.
    enabled: true

    # Enables or disables Vault/economy currency as a COD payment option.
    #
    # If Vault or an economy provider is not available, MailboxGUI hides
    # only the Vault/economy COD option and can still allow item-currency COD.
    vault-economy-currency: true

    # Enables or disables item-currency payments as a COD payment option.
    #
    # Item-currency COD supports normal material names, XP entries, and
    # saved item templates using t:<id>:# syntax.
    item-currency: true

    # If true, successful player-origin Vault/economy COD payments are returned
    # to the sender as money mail.
    #
    # If false, successful player-origin Vault/economy COD payments are deposited
    # directly into the sender's economy account.
    #
    # This setting controls player-origin payouts, not the admin/server sender.
    # Admin COD payment returns use the request's Shared Admin Inbox return option;
    # without that option, no player-sender payout is created for the admin/server.
    send-reward-in-mail: true

  lore:
    # Lore shown on normal standard package icons.
    #
    # Available placeholders:
    # %sender% = sender name shown on the package
    standard-package:
      - '&7From: &f%sender%'
      - '&7Right-click to open'

    # Lore shown on unpaid COD package icons.
    #
    # Available placeholders:
    # %sender% = sender name shown on the package
    cash-on-demand-package:
      - '&7From: &f%sender%'
      - '&7Right-click to preview contents'

# ============================================================
# Money Mail
# ============================================================
# Money mail requires a working economy/Vault setup.
# ============================================================

money:
  # Enables or disables money mail.
  enabled: true

  # Enables /mailbox send money and /mb send money.
  #
  # Default: false.
  # This does not affect mailbox-based Money Mail sending.
  player-command-send:
    enabled: false
    worlds:
      enabled: false
      whitelist:
        - worldname1
        - worldname2

  # Controls new administrator-created Money Mail sending.
  admin-mail:
    # Controls Money Mail sending from Admin Tools.
    # Does not control existing mail claims or API sending.
    send:
      enabled: true

    # Controls Money Mail sending from administrator and console commands.
    # Does not control Admin Tools or API sending.
    command-send:
      enabled: true

    # Display sender name for administrator/server Money Mail.
    server-name: '&a&lServer'

  # Default money-mail delivery delay in seconds; 0 sends immediately.
  # Player/admin sending uses this default unless the request supplies a custom delay.
  # Commands, API requests and scheduled tasks can override this delay.
  # Delivery uses enqueue time plus this delay in wall-clock seconds, not server ticks.
  # Shared Admin Inbox delivery uses its own delay for large return batches.
  delivery-delay-seconds: 5

  # Controls how MailboxGUI displays economy amounts in money mail,
  # admin money mail, COD package prices, and COD return payments.
  #
  # PROVIDER = use the Vault economy provider's own format(amount) result.
  # CUSTOM = use the custom-format below.
  # RAW = show only the formatted number with no currency symbol/name.
  display-format-mode: PROVIDER

  # Used when display-format-mode is CUSTOM, and also used as the safe fallback
  # if PROVIDER mode cannot get a valid formatted value from Vault.
  #
  # Available placeholders:
  # %amount% = formatted number, such as 1,250.00
  # %raw_amount% = raw decimal amount, such as 1250.0
  # %currency_singular% = Vault provider singular currency name, if available
  # %currency_plural% = Vault provider plural currency name, if available
  custom-format: "$%amount%"

  # Decimal format used for %amount% and RAW mode.
  #
  # Common examples:
  # "#,##0.00" = 1,250.00
  # "#,##0" = 1,250
  # "0.00" = 1250.00
  amount-format: "#,##0.00"

# ============================================================
# Admin Mail Sending
# ============================================================
# Controls how Admin Tools bulk mail audiences behave.
# ============================================================

admin-mail:
  # If true, the admin who sends bulk admin mail is included in
  # All Players and Online Players deliveries.
  #
  # This is useful for testing server-wide letters, packages,
  # money mail, and package/COD behavior.
  include-sender-in-bulk-audiences: true

# ============================================================
# Public Access Mailbox System
# ============================================================
# Public Access Mailboxes are shared access points to each player's own inbox.
#
# They are useful for:
# - players who do not have a private mailbox yet
# - spawn/mailroom access points
# - servers that do not want to rely only on Citizens NPCs
#
# A valid Public Access Mailbox must use a supported mailbox container/style
# with an associated sign. Use /mb guide to view the available styles.
#
# Public Access Mailboxes do not require a fence-post base.
# Older post-office settings are migrated here without resetting owner values.
# ============================================================

public-mailbox:
  # Enables or disables Public Access Mailbox.
  #
  # If false, Public Access Mailbox opening and registration tools
  # are disabled.
  enabled: true

  mailboxes:
    # Enables or disables Public Access Mailbox registration
    # and opening.
    enabled: true

    # If true, any player may open a registered Public Access Mailbox.
    #
    # If false, players need:
    # mailboxgui.player.postoffice.pobox
    allow-any-player-open: true

    # If true, Public Access Mailbox signs are refreshed on startup/reload
    # when their saved world, container, and sign are physically available.
    refresh-signs-on-load: true

    # Shows a floating item above registered Public Access Mailboxes
    # when the viewing player has unread mail.
    #
    # This notification is visible only to the player who has unchecked
    # mail and is hidden from all other players using the same Public Access Mailbox.
    #
    # APPEARANCE OVERRIDES (gui.yml): icons.new-mail-notification.public
    # Require gui-customization.enabled: true AND public.enabled: true there.
    # - A valid, non-null public.material replaces ONLY the item setting below.
    # - A null/omitted material retains this base material (PAPER by default).
    # - public.custom-model-data and public.item-model add item metadata;
    #   they do not replace any other config.yml setting. The model must exist
    #   in the player's resource pack; item-model needs a supporting server API.
    #
    # NOT OVERRIDDEN: public-mailbox.mailboxes.new-mail-notification.enabled,
    # public-mailbox.enabled, public-mailbox.mailboxes.enabled, saved Public Access Mailbox location, sign text,
    # unread/expired-mail checks, owner-only visibility, pickup/despawn protection,
    # or notification clearing. gui.yml does not move the item or change timers.
    # World anchor, height, and refresh timing are controlled internally by MailboxGUI,
    # not configurable here or in gui.yml. A pack's ground display transform controls
    # how the model looks in the world, not the Public Access Mailbox's saved location.
    new-mail-notification:
      # Public notification toggle; also requires both public access parent toggles.
      enabled: true
      # Base non-air Minecraft item Material. Used unless an active valid gui.yml
      # public.material overrides it; custom model metadata may still use this base.
      item: PAPER

    sign-format:
      # Sign format used when a Public Access Mailbox is registered or refreshed.
      #
      # Available placeholders:
      # %publicmailboxname% = Public Access Mailbox name entered by the admin
      #
      # Keep all four lines present.
      line-1: '&6[&lMailbox&r&6]'
      line-2: '%publicmailboxname%'
      line-3: '&6Public Access'
      line-4: '&7Right Click'

# ============================================================
# Dynmap Support
# ============================================================
# Dynmap support is optional.
#
# If Dynmap is installed and this section is enabled, MailboxGUI
# creates a Dynmap marker layer for player mailboxes, public
# mailboxes, and public access NPCs.
#
# If Dynmap is missing, MailboxGUI continues normally.
# ============================================================

dynmap:
  # Enables or disables MailboxGUI Dynmap support.
  enabled: true

  marker-set:
    # Internal Dynmap marker set ID.
    #
    # Keep this stable once markers exist on your map.
    id: 'mailboxgui-mailboxes'

    # Visible layer name in Dynmap's marker selector.
    #
    # This is the checkbox name players/admins can toggle.
    label: 'Mailboxes/NPCs'

    # If true, the Mailboxes/NPCs layer is hidden by default.
    #
    # If false, the layer is visible by default.
    hide-by-default: false

    # Dynmap layer priority.
    #
    # Higher values can appear higher in Dynmap's layer list.
    layer-priority: 10

  markers:
    player-mailboxes:
      # If true, registered player mailboxes appear on Dynmap.
      enabled: true

      # Dynmap marker icon ID for player mailboxes.
      #
      # If this icon is missing, MailboxGUI falls back to another
      # available Dynmap icon.
      icon-id: 'chest'

      # Marker label shown on the map.
      #
      # Available placeholders:
      # %player% = mailbox owner
      # %number% = mailbox number for that owner
      label-format: '%player% Mailbox #%number%'

      # Marker description shown when clicking the marker.
      #
      # Basic HTML is supported by Dynmap descriptions.
      #
      # Available placeholders:
      # %player% = mailbox owner
      # %number% = mailbox number
      # %world% = world name
      # %status% = Loaded/Unloaded status text
      description:
        - '<b>MailboxGUI Player Mailbox</b>'
        - 'Player: %player%'
        - 'Mailbox: #%number%'
        - 'World: %world%'
        - 'Status: %status%'

    public-mailboxes:
      # If true, registered Public Access Mailboxes appear on Dynmap.
      enabled: true

      # Dynmap marker icon ID for Public Access Mailboxes.
      icon-id: 'chest'

      # Marker label shown on the map.
      #
      # Available placeholders:
      # %publicmailboxname% = Public Access Mailbox name
      label-format: 'Public Access Mailbox: %publicmailboxname%'

      # Marker description shown when clicking the marker.
      #
      # Available placeholders:
      # %publicmailboxname% = Public Access Mailbox name
      # %world% = world name
      # %status% = Loaded/Unloaded status text
      description:
        - '<b>MailboxGUI Public Access Mailbox</b>'
        - 'Public Access Mailbox Name: %publicmailboxname%'
        - 'World: %world%'
        - 'Status: %status%'

    public-access-npcs:
      # If true, Citizens public access NPCs appear on Dynmap.
      #
      # Citizens must be installed and the NPC must be marked as a
      # MailboxGUI public access NPC.
      enabled: true

      # Dynmap marker icon ID for public access NPCs.
      #
      # Dynmap's default "walk" marker icon is used for NPCs.
      icon-id: 'walk'

      # Marker label shown on the map.
      #
      # Available placeholders:
      # %npc% = NPC name
      # %id% = Citizens NPC ID
      label-format: 'Public Access NPC: %npc%'

      # Marker description shown when clicking the marker.
      #
      # Available placeholders:
      # %npc% = NPC name
      # %id% = Citizens NPC ID
      # %world% = world name
      description:
        - '<b>MailboxGUI Public Access NPC</b>'
        - 'NPC: %npc%'
        - 'NPC ID: %id%'
        - 'World: %world%'

  update:
    # If true, markers are refreshed when the plugin starts
    # and Dynmap becomes available.
    refresh-on-startup: true

    # If true, markers are refreshed when MailboxGUI reloads.
    refresh-on-reload: true

    # If true, markers are refreshed after registering a mailbox.
    refresh-on-register: true

    # If true, markers are refreshed after unregistering a mailbox.
    refresh-on-unregister: true

# Update Checker
# ============================================================
# Checks for plugin updates from the MailboxGUI website release system.
# ============================================================

updates:
  # Enables or disables the update checker.
  enabled: true

  # Release channel used by /mba update and automatic update notices.
  # Valid values: release, beta, alpha.
  # /mba updatecheck checks all three channels and explains how to select another channel.
  release-channel: release

  # If true, MailboxGUI checks for updates during startup.
  check-on-startup: true

  # If true, admins with the notify permission are told when
  # an update is available when they join.
  notify-admins-on-join: true

  # Premium-only runtime extension. Keep populated credentials private.
  auth:
    username: ""
    password: ""
network/config.yml — all Premium default settings (owner-only API notes omitted)
Download clean reference text
# ============================================================
# MailboxGUI Network Configuration
# ============================================================
#
# This file controls optional multi-backend network mode.
#
# File location after startup:
# /plugins/MailboxGUI/network/config.yml
#
# IMPORTANT:
# - Network mode is disabled by default.
# - Single-server setups do not need Redis.
# - Single-server setups do not need MySQL.
# - Redis settings exist in this file, but there is NO redis.enabled option.
# - Redis is ignored when network.enabled is false.
# - Redis is required when network.enabled is true.
# - Network mode requires shared MySQL/MariaDB storage.
# - YAML and SQLite are not valid storage modes when network mode is enabled.
# - Keep backend and database host clocks synchronized (for example with NTP).
#   Presence, scheduling and companion lease decisions compare timestamps; a
#   database-clock write timestamp does not remove client clock-skew risks.
#
# Recommended use:
# - Leave network.enabled false for normal single-server setups.
# - Enable network mode only when running MailboxGUI on multiple backend servers
#   that share the same MySQL/MariaDB database and Redis instance.
#
# ============================================================

config-version: 4

network:
  # Master toggle for MailboxGUI network mode.
  #
  # false:
  # - MailboxGUI works like a normal single-server plugin.
  # - Redis is not contacted.
  # - YAML, SQLite, and MySQL are valid storage options.
  #
  # true:
  # - MailboxGUI runs in multi-backend network mode.
  # - Active storage must be MYSQL/MariaDB.
  # - Redis must be reachable.
  # - If MySQL or Redis validation fails, MailboxGUI disables itself on startup
  #   to avoid running network mode without required shared services.
  # - /mba reload also reloads this file and restarts the network runtime.
  # - After validation, readiness requires an asynchronous backend ownership lease,
  #   Redis SUBSCRIBE acknowledgment, and healthy shared storage.
  # - Claims, kit usage, and delayed delivery wait for these readiness checks.
  # - Reload may return while the runtime is STARTING, before it becomes ready.
  # - If a reload validation fails while network.enabled is true, MailboxGUI
  #   disables itself to protect shared network mail data.
  enabled: false

  # Redis coordination namespace shared by all backends in this MailboxGUI network.
  # Use only letters, numbers, dots, underscores or hyphens.
  # mailboxgui preserves the existing channel and lock-key names.
  # Other values isolate Redis channels and ownership/lock keys from another network.
  # Keep this identical across backends in the same network.
  # Independent networks need distinct shared MySQL databases AND distinct namespaces.
  # The namespace isolates Redis and companion-coordination records, not shared
  # mail, player, registration or scheduled-state MySQL tables.
  # Stop all network backends before changing this value, then update every backend.
  # Never mix namespaces while sharing one MySQL mail database: separate Redis locks
  # cannot safely coordinate concurrent access to the same mail data.
  namespace: mailboxgui

  # Unique ID for this backend server.
  #
  # Every backend must have a different server-id.
  # A duplicate ID pauses the offending runtime to protect shared mail.
  # Give that backend a unique ID, then run /mba reload to retry.
  #
  # Examples:
  # server-id: live
  # server-id: legacy
  # server-id: lobby
  # server-id: survival
  # server-id: creative
  #
  # Do not use spaces or color codes here.
  server-id: server1

  # Friendly display name for this backend.
  #
  # This may be shown in admin output, recipient status lore, and logs.
  #
  # Examples:
  # server-display-name: ImagineCraft1.0
  # server-display-name: Legacy
  # server-display-name: Lobby
  #
  # Color codes are not recommended here because this value may be used in logs.
  server-display-name: 'Server 1'

gui:
  # Active/validated only when global config.yml gui-customization.enabled is true
  # AND network.enabled is true. Disabled customization ignores these settings.
  # Scope covers themed icons only, never arbitrary inventory layouts or actions.
  # shared: one authoritative icon configuration across backends (default).
  # backend-local: each backend keeps its own themed icon configuration.
  # A resource pack may contain all themed assets for every backend.
  # gui.yml itemsadder-item: namespace:id works with shared and backend-local appearances.
  # Every rendering backend needs compatible ItemsAdder and the referenced item registry loaded locally.
  # Shared GUI IDs do not synchronize ItemsAdder content, prove pack acceptance, or validate model files.
  # Non-null itemsadder-item takes precedence over same-layer material/custom-model-data/item-model fields.
  # Missing/unready/incompatible ItemsAdder or invalid/unknown IDs retain the preceding inherited/built-in appearance.
  # Same-layer sibling fields are not fallback fields; configure an earlier layer or set itemsadder-item to null.
  # ItemsAdder owns pack building/merging, hosting and deployment; MailboxGUI never sends a second pack.
  # Include all referenced assets for all themes in its deployed pack, valid for each server/client version.
  # After ItemsAdder content changes use /iareload and rebuild/deploy its pack when needed; use /mba reload for GUI edits.
  # In shared scope, edit/reload the authoritative GUI backend; load ItemsAdder content on every rendering backend.
  # Global gui-customization.enabled and required auto detection remain authoritative with ItemsAdder.
  # Player On/Off/Auto preferences are shared in BOTH scopes; actual pack-loaded status stays local.
  scope: shared

  # Optional authoritative publisher backend ID for shared scope only.
  # Empty selects the authoritative first publisher, not each backend's local file.
  # Ignored in backend-local scope. Keep the shared policy identical on all backends.
  shared-main-backend: ''

redis:
  # Redis connection settings.
  #
  # There is intentionally NO redis.enabled setting.
  #
  # Redis behavior:
  # - Ignored when network.enabled is false.
  # - Required and validated when network.enabled is true.
  # - Recovery uses Redis Streams (Redis 5 or newer) as bounded event history.
  # - Up to 4096 recent events are retained; older notifications may not replay.
  # - Enable Redis persistence and protect its files if event history must survive
  #   a Redis restart. Shared mail itself remains in MySQL/MariaDB.
  # - Unsynced events and replay cursors are kept under network/recovery locally.
  #   Preserve this folder across plugin updates; do not share it between servers.
  # - Recovery checks saved storage revisions and refreshes live views; it never
  #   sends persisted mail again or repeats claims, COD payments, or payouts.
  # - A newly configured backend starts from the current event tail, not old alerts.
  # - The local outbox refuses new recovery entries when its bounded capacity is
  #   exhausted; it does not silently discard pending entries. Check console warnings.
  # - Replay is bounded recovery, not an exactly-once notification guarantee.
  #   Lost/trimmed event history may require cache refresh without replaying old alerts.
  #
  # All backend servers in the same MailboxGUI network should point
  # to the same Redis server.

  # Redis host or IP address.
  #
  # For Redis on the same machine:
  # host: 127.0.0.1
  #
  # For Redis on another machine:
  # host: redis.example.com
  host: 127.0.0.1

  # Redis port.
  #
  # Default Redis port is 6379.
  port: 6379

  # Redis password.
  #
  # Leave blank if your Redis server does not require authentication.
  #
  # Example:
  # password: 'yourRedisPassword'
  password: ''

  # Redis database number.
  #
  # Most setups can leave this at 0.
  # Use a different database number only if you intentionally separate data
  # between multiple applications on the same Redis server.
  # This selects the database for keys/Streams, not Pub/Sub channels: channels
  # span Redis databases. Distinct networks still require distinct namespaces.
  database: 0

  # Enables SSL/TLS for the Redis connection.
  #
  # Only set true if your Redis server is configured for SSL/TLS.
  # Most local Redis installs use false.
  use-ssl: false

  channels:
    # Main network event channel.
    #
    # Used for mail delivery refresh events and general backend sync messages.
    network: 'mailboxgui:network'

    # Presence channel.
    #
    # Auxiliary presence publication channel. The runtime subscriber consumes the
    # main network channel; durable presence lookup uses shared MySQL player data.
    presence: 'mailboxgui:presence'

    # Cache refresh channel.
    #
    # Reserved for cache invalidation and future targeted reload messages.
    cache: 'mailboxgui:cache'

    # Lock channel.
    #
    # Reserved for lock-related diagnostics/future lock messages.
    # Actual lock ownership is stored using Redis keys, not only this channel.
    locks: 'mailboxgui:locks'

  connection:
    # Redis connection timeout in milliseconds.
    #
    # Bounds socket operations and subscriber authentication/SUBSCRIBE handshakes.
    # It is not a total timeout for every multi-step operation. Network Tools probes
    # separately cap Redis socket timeouts at five seconds.
    timeout-millis: 5000

    # Subscriber retries per outage, after the initial connection attempt.
    # 0 = make the initial attempt only, with no retries.
    # The retry budget resets after Redis acknowledges SUBSCRIBE.
    # Once retries are exhausted, use /mba reload or restart to reconnect.
    reconnect-attempts: 3

    # Delay between Redis reconnect attempts.
    reconnect-delay-seconds: 5

presence:
  # Enables network player presence tracking.
  #
  # This lets MailboxGUI know which backend a player is online on.
  #
  # Used by:
  # - Online/offline recipient filters
  # - Admin online player targeting
  # - Recipient GUI status lore
  # false stops player presence writes and omits public API presence snapshots;
  # unknown presence is not proof that a player is offline. Presence-dependent
  # scheduled checks and companion recipient policies may wait for authoritative data.
  # Backend compatibility heartbeats, ownership and readiness remain active.
  enabled: true

  # Backend ownership/compatibility heartbeat interval and, when enabled, player updates.
  # Must be less than stale-after-seconds even when player presence is disabled.
  heartbeat-seconds: 30

  # How long a player presence record is considered fresh.
  #
  # Expired online entries are excluded from online network audiences.
  # The companion API marks stale presence as unknown, not confirmed offline.
  # Must be greater than heartbeat-seconds; allow headroom for backend lag.
  stale-after-seconds: 90

  # Shows backend name in recipient GUI lore.
  #
  # Example:
  # Online on Legacy
  show-server-in-recipient-list: true

  # Shows last known world in recipient GUI lore.
  #
  # Example:
  # World: Croatan
  show-world-in-recipient-list: true

recipients:
  # Uses shared MailboxGUI player data for recipient lookup.
  #
  # This should remain true in network mode so players known on one backend
  # can be found from another backend.
  use-shared-player-data: true

  # Uses network presence for online/offline recipient filtering.
  #
  # This lets Online Players include players online on other backend servers.
  use-network-presence: true

  # Allows local world/playerdata fallback if a typed recipient is not found
  # in shared MailboxGUI data or the network player index.
  #
  # Useful for old/legacy servers where players have joined before but do not
  # yet have MailboxGUI data.
  #
  # If false, typed recipient lookup in network mode only trusts shared/network data.
  allow-local-playerdata-fallback: true

compatibility:
  multiversion-backends:
    # Enables advanced mixed-version backend compatibility.
    #
    # false:
    # - Default and safest behavior.
    # - Every backend in the MailboxGUI network must use the same compatibility profile.
    # - Profile checks include Minecraft version, Bukkit/Paper data version,
    #   MailboxGUI version, network protocol version, package manifest version,
    #   and package serializer profile.
    # - If a mismatched backend is detected, MailboxGUI will fail safely to
    #   protect shared mail data.
    #
    # true:
    # - Allows supported Minecraft versions from 1.18.2 through 1.21.11
    #   and 26.1 through 26.3 to share this network.
    # - Every backend must run the same MailboxGUI Premium build with compatible
    #   mail data, network protocol, and package manifest versions.
    # - Known Bukkit map and Paper/Purpur native-byte serializers may coexist.
    #   A backend without the required item codec cannot claim that payload.
    # - Item compatibility is checked per package entry, not only by the
    #   Minecraft version of the sending backend. Unknown materials and
    #   unreadable custom item data remain restricted without losing their bytes.
    # - Admin tools do not override backend targets or item compatibility.
    # - Unknown backend profiles or incompatible mail schemas still stop
    #   network startup. This toggle does not bypass data-safety validation.
    # - Test every backend combination before enabling this in production.
    enabled: false

  packages:
    # Controls package behavior when a backend cannot support one or more
    # materials inside a package created on another Minecraft version.
    # This controls claiming only. Packages are still delivered and visible
    # across the network even when their contents cannot be claimed here.
    #
    # false:
    # - The whole package is view-only on incompatible backends.
    # - Players must claim it from a backend that supports every item.
    #
    # true:
    # - Compatible entries can be claimed when the package framing and manifest
    #   are valid and the remaining original item records can be retained exactly.
    # - Unsupported items stay in the package and use the unavailable-item display.
    #   Premium gui.yml can customize that display, not its claim restrictions.
    # - Plain vanilla items may use a verified portable representation written
    #   by the sender. Custom item metadata is never stripped to permit a claim.
    # - An unreadable entry stays blocked; corrupt package framing blocks claims.
    #   This option does not discard unsupported item data or change mail targets.
    #
    # Admin player-inbox and shared-inbox views can inspect contents with either
    # value. Admins can take only supported entries on an allowed target backend;
    # unreadable entries remain in the package, and pending COD needs acceptance.
    #
    # This is a local backend policy. If only one backend enables this, only
    # that backend allows partial claims. If every backend uses the same value,
    # the whole network behaves consistently.
    allow-partial-unsupported-item-claims: false

backend-groups:
  # Optional named backend groups for advanced Premium network targeting.
  #
  # These groups are used by mail/package metadata with the BACKEND_GROUP
  # target type. A backend can claim/process that mail only when its
  # network.server-id is listed in the matching group.
  #
  # Use lowercase IDs that match network.server-id values across your backends.
  #
  # Example:
  # groups:
  #   modern:
  #     - survival
  #     - creative
  #   legacy:
  #     - legacy
  # Keep group names and members identical on every backend using group targets.
  # This file is reloaded locally; editing one backend does not distribute its YAML.
  groups: {}

sync:
  kit:
    # Enables network-aware mailbox kit usage sync.
    #
    # true:
    # - /mb kit usage is saved in shared player data and remote backend caches
    #   are refreshed after kit usage or kit notification changes.
    enabled: true

    # Optional main backend for kit command ownership.
    #
    # Leave empty to allow kit claims on any backend.
    # Set to a network.server-id to make only that backend process /mb kit.
    main-backend: ''

  # Inbox and shared mail data synchronization is mandatory in network mode.
  # Remote mail events refresh live inboxes and caches; this cannot be disabled.

  # Refresh physical new-mail notification visuals after remote mail events.
  # This visual switch does not disable mail delivery or mandatory inbox synchronization.
  refresh-notifications-on-mail-event: true

  # Refresh registered player mailbox caches after remote register/unregister events.
  refresh-mailboxes-on-registration-change: true

  # Synchronize Public Access Mailboxes/NPCs between backends.
  #
  # Remote changes refresh locally cached public access registrations.
  # The legacy setting name below remains unchanged for compatibility.
  refresh-post-offices-on-change: true

  # Refresh the local item template cache after remote template changes.
  refresh-item-templates-on-change: true

locks:
  # Enables Redis-backed network locks.
  #
  # Required when network.enabled is true; startup validation rejects disabled locks.
  # false is allowed when network.enabled is false.
  #
  # Locks prevent multiple backend servers from processing the same shared
  # mail item at the same time.
  #
  # Protected examples:
  # - COD accept/decline
  # - Money mail claim
  # - Normal package receive session
  # - Delayed mail delivery
  #
  # Keep true for network mode.
  enabled: true

  # Renewable Redis lease duration for money mail claims and package receive sessions.
  #
  # Active locks renew automatically; this is not a maximum package GUI open time.
  # Allow enough time for Redis/network delays between renewals.
  # After a backend stops renewing, Redis expires the lease within this duration.
  # Longer leases can delay recovery after a crash; shorter leases tolerate less lag.
  #
  # Recommended default: 120 seconds.
  mail-claim-lock-seconds: 120

  # Renewable Redis lease duration for COD accept/decline transactions.
  #
  # COD actions are quick transactions:
  # - Check COD package
  # - Withdraw/deposit or create COD payment mail
  # - Convert/return package
  # - Save mailbox data
  #
  # Recommended default: 15 seconds.
  cod-transaction-lock-seconds: 15

  # Renewable Redis lease duration for delayed mail delivery.
  #
  # Prevents multiple backend servers from delivering the same delayed mail
  # queue entry at the same time.
  #
  # Recommended default: 30 seconds.
  delayed-mail-lock-seconds: 30

delayed-mail:
  # Maximum number of due delayed mail entries a backend may claim/process
  # during one scan cycle.
  claim-batch-size: 25

  # Maximum wall-clock interval between shared queue scans, in seconds.
  # Known future delivery deadlines wake the worker sooner than this interval.
  # Delivery runs on the server thread; server stalls, locks and batching may delay it.
  scan-interval-seconds: 30

scheduled-mail:
  # Default execution owner for shared scheduled tasks without network.owner.
  # distributed = eligible backends coordinate one shared execution.
  # server:<server-id> = only the identified backend may execute the task.
  # Use a unique, active network.server-id; an unavailable owner pauses its tasks.
  # Per-task network.owner takes precedence. Legacy network-owner-mode is accepted
  # when network.owner is absent; use network.owner for new tasks.
  # Per-task network.scope defaults to shared. backend-local tasks run independently
  # on their own backend and are not one globally shared execution.
  # This default-owner applies only to shared tasks. A backend-local task without
  # an explicit owner runs locally; an explicit different backend owner is invalid.
  # Conflicting shared definitions or pending definition checks pause execution;
  # a shared lock alone does not resolve conflicting definitions.
  # recipients.scope defaults to network and is independent of execution ownership.
  # ONLINE_PLAYERS and PERMISSION checks use authoritative owning backends.
  # Offline permission evaluation is unsupported and pauses the task.
  # Define matching PERMISSION tasks on every backend that may host eligible
  # players; missing/stale eligibility proofs pause rather than guess permissions.
  # Per-task delivery.target defaults to network. Other targets: current-backend,
  # backends, exclude-backends, or group. Use delivery.backends for backend lists
  # and delivery.group for a configured backend group; keep group definitions consistent.
  # Shared distributed tasks cannot use the ambiguous current-backend target.
  # Mail delivery targets are independent of task execution and recipient scope.
  # See the Premium scheduled-mail/scheduled-mail.yml reference for disabled examples.
  # That file is generated only if missing; existing tasks/files are not overwritten.
  # This setting does not restrict normal delayed-mail queue delivery.
  default-owner: distributed


debug:
  # Enables extra network debug logs.
  #
  # Keep false for normal servers.
  enabled: false

  # Logs Redis publish/subscriber activity; also requires debug.enabled: true.
  #
  # Useful when diagnosing network sync issues.
  # Can be noisy on active servers.
  log-redis-messages: false

  # Logs presence heartbeat activity; also requires debug.enabled: true.
  #
  # Useful when diagnosing cross-server online status.
  # Can be noisy on active servers.
  log-presence-heartbeats: false
gui.yml — complete Free plugin default (not paid-pack mappings)
Download clean reference text
# Enable gui-customization.enabled in config.yml, then use /mba reload.
# Appearance only: inventory layouts, actions, permissions and real contents never change.
# Inbox session and claim protection remain mandatory; this file cannot disable them.
# Names, lore and titles are configured in language/messages_*.yml.
# material: valid non-air item Material; null preserves the original Minecraft icon.
# custom-model-data: integer resource-pack metadata; null preserves original metadata.
# item-model and tooltip-style: namespaced resource-pack keys, applied on supported APIs.
# itemsadder-item: optional ItemsAdder namespace:id appearance, e.g. "mail_theme:back"; null uses ordinary fields/inheritance.
# Supported on every appearance role/variant below, including personal/public floating notifications.
# Example global navigation path: icons.controls.back.itemsadder-item (not menu/slot mappings).
# ItemsAdder must be installed, compatible, and finished loading the configured item registry.
# Non-null itemsadder-item takes precedence over same-layer material/custom-model-data/item-model fields.
# Missing/unready/incompatible ItemsAdder or invalid/unknown IDs retain the preceding inherited/built-in appearance.
# Same-layer sibling fields are not fallback fields; configure an earlier layer or set itemsadder-item to null.
# ItemsAdder owns pack building, merging, hosting and deployment; MailboxGUI never sends a second pack.
# Include all referenced assets in that deployed pack; ItemsAdder presence alone does not prove the player loaded it.
# Both gui-customization.enabled and existing On/Off/Auto/forced-auto policy still apply.
# After ItemsAdder content edits use /iareload (and rebuild/deploy its pack when needed), then /mba reload.
# The plugin validates key syntax/API availability, not the contents of a player's pack.
# Automatic mode shows overrides only after a server-supplied resource pack is confirmed loaded.
# For client-installed packs, players use /mb settings resourcepack on; off forces built-in icons; auto restores detection.
# config.yml gui-customization.require-automatic-detection: true locks auto and hides/disables that player setting.
# This policy requires a SERVER-SENT pack; manually installed client packs cannot be detected.
# MailboxGUI never sends or requires a pack. Other player settings remain available.
# Include ALL configured models in your server pack; any loaded server pack can trigger these overrides.
# Match pack assets/format to the client and these material/model fields to the backend API.
# An accepted incompatible pack or missing assets can display incorrectly; automatic detection cannot validate them.
# Unknown/pending/declined/failed status in automatic mode uses the untouched built-in icon, including its material.
# Client-local packs and individual missing assets cannot be detected; unrelated loaded packs are not validated.
# Status changes apply on the next normal GUI render/open. Real package items remain untouched.
# Example item-model: "mailboxgui:paper_letter"; that exact key must exist in the pack.
# Older APIs need custom-model-data fallback for item-model assignments, otherwise the built-in icon is used.
# Controls merge original appearance -> defaults.control -> controls.<purpose>.
# The same purpose uses ONE setting everywhere, regardless of menu, slot or state.
# Null fields retain original materials and state-dependent appearances; they never reset metadata.
# Decorative fillers use ONLY defaults.filler, outside all control/recipient layers.
# Recipient entries use defaults.control -> defaults.recipient -> online/offline state.
# Mail message/expiration variants are independent of controls; see their sections below.
# Real package items are never appearance-customized. Synthetic XP uses controls.experience.
# Physical notifications have their own enable gates and do not inherit GUI defaults.
# No menu, slot, compose-specific or material-state appearance mappings are supported.
# gui-config-version is the schema marker; leave it unchanged.
gui-config-version: 1

# Global semantic appearances; never inventory layout or permission settings.
icons:
  # PHYSICAL FLOATING NEW-MAIL ITEMS: independent from GUI control defaults.
  # Apply only when gui-customization.enabled AND the personal/public block.enabled are true.
  # config.yml notification enable toggles remain authoritative; never bypassed here.
  # Base material: mailbox.new-mail-notification.item (personal),
  # public-mailbox.mailboxes.new-mail-notification.item (public); null retains earlier values.
  # ItemStack metadata selects models that must exist in the player's resource pack.
  # item-model requires newer supported APIs; the pack needs a correct ground display model/transform.
  # itemsadder-item may select an ItemsAdder appearance; no arbitrary NBT edits or new mail templates are needed.
  # Physical floating item appearance, not an inventory icon or a notification feature toggle.
  # Privacy, pickup/despawn protection, unread/expiry handling and read lifecycle remain unchanged.
  # Position and refresh are internal plugin behavior, not options in gui.yml or configurable config.yml settings.
  # Resource-pack ground transforms may change visual size, but do not change the plugin spawn anchor.
  # Use the personal/public role below; GUI defaults, fillers, recipients and shared control roles do not apply here.
  new-mail-notification:
    # Personal physical mailbox floating item.
    # Personal/private mailbox role: replaces only the floating personal new-mail ItemStack appearance.
    # Requires config.yml gui-customization.enabled AND this personal.enabled to be true.
    # config.yml mailbox.new-mail-notification.enabled remains authoritative; this cannot enable notifications.
    # A valid non-null material replaces only mailbox.new-mail-notification.item; null keeps that config.yml base.
    # custom-model-data and item-model add ItemStack metadata, not global config keys; the pack must supply the model and ground appearance.
    # No tooltip-style is used for this world item; placement, refresh and notification lifecycle stay internal and unchanged.
    personal:
      # Opt in to personal appearance only when config.yml gui-customization.enabled is also true.
      # False retains the config.yml mailbox.new-mail-notification.item base; never overrides notification enable gates.
      enabled: false
      # Valid non-air ITEM Material replaces only config.yml mailbox.new-mail-notification.item when both appearance gates pass.
      # Null or an invalid material retains the config.yml base (plugin fallback if that base is invalid).
      material: null
      # Optional integer ItemStack model metadata for the personal floating item; not a new global config.yml key.
      # Null leaves base metadata unchanged; the player's pack must define a model with suitable ground appearance.
      custom-model-data: null
      # Optional namespaced ItemStack model metadata for the personal floating item; ignored on unsupported server APIs.
      # Null leaves base metadata unchanged; requires the matching resource-pack model and correct ground transforms, not tooltip-style.
      item-model: null
      itemsadder-item: null
    # Public Access Mailbox floating item.
    # Public Access Mailbox role: replaces only the floating public new-mail ItemStack appearance.
    # Requires config.yml gui-customization.enabled AND this public.enabled to be true.
    # config.yml public-mailbox.mailboxes.new-mail-notification.enabled remains authoritative; never overridden here.
    # Parent config.yml public-mailbox.enabled AND public-mailbox.mailboxes.enabled must also remain true.
    # A valid non-null material replaces only public-mailbox.mailboxes.new-mail-notification.item; null keeps that config.yml base.
    # custom-model-data and item-model add ItemStack metadata, not global config keys; the pack must supply the model and ground appearance.
    # No tooltip-style is used for this world item; placement, refresh and notification lifecycle stay internal and unchanged.
    public:
      # Opt in to public appearance only when config.yml gui-customization.enabled is also true.
      # False retains the config.yml public-mailbox.mailboxes.new-mail-notification.item base; never overrides notification enable gates.
      enabled: false
      # Valid non-air ITEM Material replaces only config.yml public-mailbox.mailboxes.new-mail-notification.item when both appearance gates pass.
      # Null or an invalid material retains the config.yml base (plugin fallback if that base is invalid).
      material: null
      # Optional integer ItemStack model metadata for the public floating item; not a new global config.yml key.
      # Null leaves base metadata unchanged; the player's pack must define a model with suitable ground appearance.
      custom-model-data: null
      # Optional namespaced ItemStack model metadata for the public floating item; ignored on unsupported server APIs.
      # Null leaves base metadata unchanged; requires the matching resource-pack model and correct ground transforms, not tooltip-style.
      item-model: null
      itemsadder-item: null

  # Global control base. Only non-null properties override the existing role icon.
  # Shared appearance layers for eligible GUI controls; purpose-specific controls refine each non-null property.
  defaults:
    # Global base for eligible GUI controls, including synthetic displays; null retains the original role appearance.
    control: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Sole decorative filler appearance for all menus; no menu/slot/state inheritance and never fills empty slots.
    filler: {material: GRAY_STAINED_GLASS_PANE, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Semantic player-recipient role, not filler/navigation; null retains the actual built-in entry.
    # Shared by ALL player/admin letter/package/money/check-inbox and registered-mailbox recipient lists.
    # Exception to global info: Mailbox Details player information also uses this role and its online/offline state.
    recipient:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Online/offline selected from real player status in every recipient list and Mailbox Details, never from an overridden material.
      states:
        # Online recipient appearance; null inherits the recipient base and does not change status or eligibility.
        online: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Offline recipient appearance; null inherits the recipient base and does not change status or eligibility.
        offline: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}

  # INBOX MAIL DISPLAY COPIES: player, read-only check, inspected player, shared admin.
  # No stored mail, handed-out mail, book pages, money amount, or package contents change.
  # Letters inherently contain messages: only base + category expiration variants apply; body/pages remain unchanged.
  # Package/money priority: category base -> message variant -> category expiration
  # -> combined message.expiration variant. Null fields preserve earlier appearance.
  # Expiration is selected from original mail metadata, never lore, config, or the clock.
  # Overdue mail remains with-expiration until cleanup; letters have no separate message variants.
  # Inbox display-copy appearances by mail category; refine message/expiration variants below without changing stored or claimed mail.
  mail:
    # Built-in PAPER: paper letter body in lore. Null material retains it.
    # Base inbox display for paper letter; null preserves its built-in material and mail data, with variants layered below.
    paper-letter:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox paper letter: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox paper letter: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Built-in WRITTEN_BOOK: book letter with its original pages. Null material retains it.
    # Base inbox display for book letter; null preserves its built-in material and mail data, with variants layered below.
    book-letter:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox book letter: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox book letter: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Built-in SHULKER_BOX: ordinary package, no COD payment required. Null material retains it.
    # Base inbox display for ordinary non-COD package; null preserves its built-in material and mail data, with variants layered below.
    standard-package:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox ordinary non-COD package: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox ordinary non-COD package: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Ordinary non-COD package with a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      with-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox ordinary non-COD package with a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox ordinary non-COD package with a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Ordinary non-COD package without a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      without-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox ordinary non-COD package without a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox ordinary non-COD package without a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Built-in RED_SHULKER_BOX: COD package awaiting payment. Null material retains it.
    # Base inbox display for COD package awaiting payment; null preserves its built-in material and mail data, with variants layered below.
    pending-cod-package:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox COD package awaiting payment: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox COD package awaiting payment: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # COD package awaiting payment with a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      with-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox COD package awaiting payment with a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox COD package awaiting payment with a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # COD package awaiting payment without a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      without-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox COD package awaiting payment without a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox COD package awaiting payment without a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Built-in BLUE_SHULKER_BOX: COD package whose payment was already accepted. Null material retains it.
    # Base inbox display for COD package with accepted payment; null preserves its built-in material and mail data, with variants layered below.
    accepted-cod-package:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox COD package with accepted payment: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox COD package with accepted payment: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # COD package with accepted payment with a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      with-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox COD package with accepted payment with a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox COD package with accepted payment with a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # COD package with accepted payment without a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      without-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox COD package with accepted payment without a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox COD package with accepted payment without a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Built-in YELLOW_SHULKER_BOX: declined or expired COD package returned to sender. Null material retains it.
    # Base inbox display for declined/expired COD package returned to sender; null preserves its built-in material and mail data, with variants layered below.
    returned-cod-package:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox declined/expired COD package returned to sender: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox declined/expired COD package returned to sender: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Declined/expired COD package returned to sender with a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      with-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox declined/expired COD package returned to sender with a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox declined/expired COD package returned to sender with a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Declined/expired COD package returned to sender without a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      without-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox declined/expired COD package returned to sender without a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox declined/expired COD package returned to sender without a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Built-in PURPLE_SHULKER_BOX: item-currency COD payout, not the original package. Null material retains it.
    # Base inbox display for COD item-currency payout; null preserves its built-in material and mail data, with variants layered below.
    cod-item-currency-payment:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox COD item-currency payout: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox COD item-currency payout: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # COD item-currency payout with a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      with-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox COD item-currency payout with a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox COD item-currency payout with a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # COD item-currency payout without a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      without-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox COD item-currency payout without a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox COD item-currency payout without a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Built-in GOLD_NUGGET: ordinary money mail. Null material retains it.
    # Base inbox display for ordinary money mail; null preserves its built-in material and mail data, with variants layered below.
    money-mail:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox ordinary money mail: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox ordinary money mail: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Ordinary money mail with a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      with-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox ordinary money mail with a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox ordinary money mail with a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Ordinary money mail without a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      without-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox ordinary money mail without a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox ordinary money mail without a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Built-in GOLD_NUGGET: money-currency COD payout, not ordinary money mail. Null material retains it.
    # Base inbox display for COD money-currency payout; null preserves its built-in material and mail data, with variants layered below.
    cod-money-payment:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox COD money-currency payout: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox COD money-currency payout: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # COD money-currency payout with a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      with-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox COD money-currency payout with a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox COD money-currency payout with a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # COD money-currency payout without a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      without-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox COD money-currency payout without a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox COD money-currency payout without a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}

  # One setting per control purpose, shared by every player/admin screen using it.
  # All fields are neutral: null retains each built-in Minecraft icon and its state.
  # These settings do not enable features, change actions or change menu positions.
  controls:

    # 1. SHARED NAVIGATION
    # Return to the parent menu, including recipient Back and package Close/Cancel. Separate from Exit and compose cancellation; default BARRIER.
    # Location: AdminExpirationModeGUI, AdminInboxPackageActionGUI, AdminInboxTargetGUI, AdminInboxViewGUI, AdminLetterTypeSelectionGUI, AdminMailAudienceGUI, AdminNpcToolsGUI, AdminPostOfficeGUI, AdminPostOfficeMailboxGUI, AdminPostOfficeMailboxListGUI, AdminRegisteredMailboxDetailGUI, AdminRegisteredMailboxTargetGUI, AdminSendMailGUI, InboxFilterGUI, LetterTargetGUI, LetterTypeSelectionGUI, MoneyMessageModeGUI, MoneyTargetGUI, PackagePreviewGUI, PackageReceiveGUI, PackageTargetGUI, PlayerMailboxManageGUI, SendMailMenuGUI, SharedAdminInboxFilterGUI, SharedAdminInboxGUI. Names/lore remain in language files.
    back: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Cancel an unfinished compose/confirmation operation. Does not customize Back or Exit.
    # Location: AdminInboxClearConfirmGUI, AdminPackageComposeGUI, AdminRegisteredMailboxRemoveConfirmGUI, PackageComposeGUI, ReturnedCodCleanupConfirmGUI, SharedAdminInboxClearConfirmGUI. Names/lore remain in language files.
    cancel: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Leave the player inbox/check or unregister menu. Shared exit appearance, never inherited from Back.
    # Location: AdminToolsGUI, InboxGUI, PlayerUnregisterMenuGUI. Names/lore remain in language files.
    exit: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Navigate to an available next page in every player/admin/network list. Delivery Search results use this; individual details are not paginated.
    # Location: AdminInboxTargetGUI, AdminInboxViewGUI, AdminPostOfficeMailboxListGUI, AdminRegisteredMailboxDetailGUI, AdminRegisteredMailboxTargetGUI, InboxGUI, LetterTargetGUI, MoneyTargetGUI, PackageTargetGUI, PlayerMailboxManageGUI, SharedAdminInboxGUI. Names/lore remain in language files.
    next-page: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Disabled next-page indicator in base menus. Network lists omit the indicator instead of showing a disabled arrow.
    # Location: AdminInboxTargetGUI, AdminInboxViewGUI, AdminPostOfficeMailboxListGUI, AdminRegisteredMailboxDetailGUI, AdminRegisteredMailboxTargetGUI, InboxGUI, LetterTargetGUI, MoneyTargetGUI, PackageTargetGUI, PlayerMailboxManageGUI, SharedAdminInboxGUI. Names/lore remain in language files.
    no-next-page: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Disabled previous-page indicator in base menus. Network lists omit the indicator instead of showing a disabled arrow.
    # Location: AdminInboxTargetGUI, AdminInboxViewGUI, AdminPostOfficeMailboxListGUI, AdminRegisteredMailboxDetailGUI, AdminRegisteredMailboxTargetGUI, InboxGUI, LetterTargetGUI, MoneyTargetGUI, PackageTargetGUI, PlayerMailboxManageGUI, SharedAdminInboxGUI. Names/lore remain in language files.
    no-previous-page: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Navigate to an available previous page in every player/admin/network list. Does not customize a disabled page indicator.
    # Location: AdminInboxTargetGUI, AdminInboxViewGUI, AdminPostOfficeMailboxListGUI, AdminRegisteredMailboxDetailGUI, AdminRegisteredMailboxTargetGUI, InboxGUI, LetterTargetGUI, MoneyTargetGUI, PackageTargetGUI, PlayerMailboxManageGUI, SharedAdminInboxGUI. Names/lore remain in language files.
    previous-page: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}

    # 2. SHARED INFORMATION AND CONFIRMATION
    # confirm appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminInboxClearConfirmGUI, AdminRegisteredMailboxRemoveConfirmGUI, ReturnedCodCleanupConfirmGUI, SharedAdminInboxClearConfirmGUI. Names/lore remain in language files.
    confirm: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Loading/empty/result-limit/general status information; default PAPER where used by Network Tools.
    # Location: AdminInboxTargetGUI, AdminRegisteredMailboxTargetGUI. Names/lore remain in language files.
    empty: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # ALL information/header/package-information controls share this appearance. Mailbox Details player information is the recipient exception.
    # Location: AdminInboxPackageActionGUI, AdminInboxTargetGUI, AdminInboxViewGUI, AdminLetterTypeSelectionGUI, AdminPostOfficeMailboxListGUI, AdminRegisteredMailboxTargetGUI, InboxGUI, LetterTargetGUI, LetterTypeSelectionGUI, MainMailboxGUI, MoneyTargetGUI, PackageReceiveGUI, PackageTargetGUI, PlayerMailboxManageGUI, SendMailMenuGUI, SharedAdminInboxGUI. Names/lore remain in language files.
    info: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}

    # 3. RECIPIENT LIST CONTROLS
    # All Players recipient-list filter shared across all letter/package/money/admin recipient selection menus.
    # Location: AdminInboxTargetGUI, LetterTargetGUI, MoneyTargetGUI, PackageTargetGUI. Names/lore remain in language files.
    recipient-filter-all: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Offline Players recipient-list filter shared across all recipient selection menus.
    # Location: AdminInboxTargetGUI, LetterTargetGUI, MoneyTargetGUI, PackageTargetGUI. Names/lore remain in language files.
    recipient-filter-offline: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Online Players recipient-list filter shared across all recipient selection menus.
    # Location: AdminInboxTargetGUI, LetterTargetGUI, MoneyTargetGUI, PackageTargetGUI. Names/lore remain in language files.
    recipient-filter-online: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Registered Mailboxes audience filter in admin registration management.
    # Location: AdminRegisteredMailboxTargetGUI. Names/lore remain in language files.
    register-filter-registered: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Stored Players audience filter in admin registration management.
    # Location: AdminRegisteredMailboxTargetGUI. Names/lore remain in language files.
    register-filter-stored: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # type recipient name appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminInboxTargetGUI, LetterTargetGUI, MoneyTargetGUI, PackageTargetGUI. Names/lore remain in language files.
    type-recipient-name: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}

    # 4. INBOX CONTROLS
    # clear cod returns appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: SharedAdminInboxGUI. Names/lore remain in language files.
    clear-cod-returns: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # clear inbox appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminInboxViewGUI, SharedAdminInboxGUI. Names/lore remain in language files.
    clear-inbox: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # collect money appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: SharedAdminInboxGUI. Names/lore remain in language files.
    collect-money: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Open inbox filtering; the current filter name stays localized in lore. Filter choices have separate purposes below.
    # Location: InboxGUI, SharedAdminInboxGUI. Names/lore remain in language files.
    filter: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Admin Mail choice in the player inbox filter menu.
    # Location: InboxFilterGUI. Names/lore remain in language files.
    filter-admin-mail: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # By Date choice, shared by player and Shared Admin Inbox filter menus.
    # Location: InboxFilterGUI, SharedAdminInboxFilterGUI. Names/lore remain in language files.
    filter-by-date: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # By Expiration choice in the player inbox filter menu.
    # Location: InboxFilterGUI. Names/lore remain in language files.
    filter-by-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # By Type choice, shared by player and Shared Admin Inbox filter menus.
    # Location: InboxFilterGUI, SharedAdminInboxFilterGUI. Names/lore remain in language files.
    filter-by-type: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # inbox appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminToolsGUI, MainMailboxGUI. Names/lore remain in language files.
    inbox: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # send mail appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminToolsGUI, InboxGUI, MainMailboxGUI. Names/lore remain in language files.
    send-mail: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}

    # 5. MAIL COMPOSITION AND PACKAGE CONTROLS
    # Accept a received COD/returned package in preview. Appearance never bypasses price, capacity or compatibility validation.
    # Location: PackagePreviewGUI. Names/lore remain in language files.
    accept-package: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # All Players audience shared across server paper/book/package/money sending menus.
    # Location: AdminMailAudienceGUI. Names/lore remain in language files.
    audience-all: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Offline Players audience shared across server paper/book/package/money sending menus.
    # Location: AdminMailAudienceGUI. Names/lore remain in language files.
    audience-offline: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Online Players audience shared across server paper/book/package/money sending menus.
    # Location: AdminMailAudienceGUI. Names/lore remain in language files.
    audience-online: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Select Recipient(s) audience shared across server paper/book/package/money sending menus.
    # Location: AdminMailAudienceGUI. Names/lore remain in language files.
    audience-select: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # book letter appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminLetterTypeSelectionGUI, LetterTypeSelectionGUI. Names/lore remain in language files.
    book-letter: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Package-compose Cash-On-Demand setting. The preview price has its own cod-price appearance.
    # Location: AdminPackageComposeGUI, PackageComposeGUI. Names/lore remain in language files.
    cod: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Read-only price display in COD Package Preview; does not change Vault/item-currency amounts.
    # Location: PackagePreviewGUI. Names/lore remain in language files.
    cod-price: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Confirm the player/admin composed package; distinct from accepting a received COD package.
    # Location: AdminPackageComposeGUI, PackageComposeGUI. Names/lore remain in language files.
    confirm-package: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # decline appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: PackagePreviewGUI. Names/lore remain in language files.
    decline: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Shared Add Experience control and synthetic claimable XP item in ALL player/admin package compose, preview and contents views. Never changes awarded XP.
    # Location: AdminInboxPackageActionGUI, AdminPackageComposeGUI, PackageComposeGUI, PackagePreviewGUI, PackageReceiveGUI. Names/lore remain in language files.
    experience: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # With Expiration selection in the admin sending flow; not an inbox mail expiration variant.
    # Location: AdminExpirationModeGUI. Names/lore remain in language files.
    expiration-with: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Without Expiration selection in the admin sending flow; not an inbox mail expiration variant.
    # Location: AdminExpirationModeGUI. Names/lore remain in language files.
    expiration-without: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # letter appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: SendMailMenuGUI. Names/lore remain in language files.
    letter: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # money appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: SendMailMenuGUI. Names/lore remain in language files.
    money: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Add Message choice shared by player/admin Money Mail Message menus.
    # Location: MoneyMessageModeGUI. Names/lore remain in language files.
    money-message-with: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Without Message choice shared by player/admin Money Mail Message menus.
    # Location: MoneyMessageModeGUI. Names/lore remain in language files.
    money-message-without: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # package appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: SendMailMenuGUI. Names/lore remain in language files.
    package: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Add/edit attached package message in player and admin compose. This does not style money message choices or sender-written text.
    # Location: AdminPackageComposeGUI, PackageComposeGUI. Names/lore remain in language files.
    package-message: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # paper letter appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminLetterTypeSelectionGUI, LetterTypeSelectionGUI. Names/lore remain in language files.
    paper-letter: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # return to admin appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminPackageComposeGUI. Names/lore remain in language files.
    return-to-admin: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Admin View Package Take Contents control; default CHEST. Partial claims and backend safety are unchanged.
    # Location: AdminInboxPackageActionGUI. Names/lore remain in language files.
    take-contents: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}

    # 6. MAILBOX REGISTRATION AND ADMIN TOOLS
    # check inbox appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminToolsGUI. Names/lore remain in language files.
    check-inbox: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Open My Mailboxes from the player unregister selection menu.
    # Location: PlayerUnregisterMenuGUI. Names/lore remain in language files.
    manage-personal-mailboxes: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Open Manage Registered Mailboxes from Admin Tools.
    # Location: AdminToolsGUI. Names/lore remain in language files.
    manage-registered-mailboxes: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Registered personal mailbox entries shared by My Mailboxes and admin Mailbox Details, irrespective of body style.
    # Location: AdminRegisteredMailboxDetailGUI, PlayerMailboxManageGUI. Names/lore remain in language files.
    personal-mailbox: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # public access appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminToolsGUI. Names/lore remain in language files.
    public-access: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Named Public Access Mailbox list entry; same appearance for every public registration.
    # Location: AdminPostOfficeMailboxListGUI. Names/lore remain in language files.
    public-mailbox: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Open the registered Public Access Mailboxes list.
    # Location: AdminPostOfficeMailboxGUI. Names/lore remain in language files.
    public-mailbox-list: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Set Public Access Mailbox action; independent from setting an NPC or a personal mailbox.
    # Location: AdminPostOfficeMailboxGUI. Names/lore remain in language files.
    public-mailbox-register: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Remove Public Access Mailbox action; list entries still require their documented Shift-Right-Click.
    # Location: AdminPostOfficeMailboxGUI. Names/lore remain in language files.
    public-mailbox-remove: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Public Access Mailbox Set/Remove branch in Public Mail Access Registration.
    # Location: AdminPostOfficeGUI. Names/lore remain in language files.
    public-mailbox-tools: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Set Public Access NPC action in the NPC registration menu.
    # Location: AdminNpcToolsGUI. Names/lore remain in language files.
    public-npc-register: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Remove Public Access NPC action in the NPC registration menu.
    # Location: AdminNpcToolsGUI. Names/lore remain in language files.
    public-npc-remove: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Public Access NPC Set/Remove branch in Public Mail Access Registration.
    # Location: AdminPostOfficeGUI. Names/lore remain in language files.
    public-npc-tools: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Register a personal mailbox for the selected player from Mailbox Details.
    # Location: AdminRegisteredMailboxDetailGUI. Names/lore remain in language files.
    register-mailbox: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # selection mode appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: PlayerUnregisterMenuGUI. Names/lore remain in language files.
    selection-mode: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
gui.yml — complete Premium plugin default (not paid-pack mappings)
Download clean reference text
# Enable gui-customization.enabled in config.yml, then use /mba reload.
# Appearance only: inventory layouts, actions, permissions and real contents never change.
# In network mode, network/config.yml gui.scope selects shared or backend-local appearances.
# Shared (default): edit/reload only the authoritative backend's gui.yml. Followers use the
# verified shared definition without overwriting their own file or comments.
# Set gui.shared-main-backend to an existing backend ID before the first shared publication;
# empty binds the first successful publisher and does not allow later backends to replace it.
# Backend-local: each backend uses its own gui.yml. A single pack may contain all themed assets.
# Include every referenced model and legacy custom-model-data fallback in the shared pack.
# Player On/Off/Auto preferences remain network-wide; loaded-pack evidence stays connection-local.
# Inbox session and claim protection remain mandatory; this file cannot disable them.
# Names, lore and titles are configured in language/messages_*.yml.
# material: valid non-air item Material; null preserves the original Minecraft icon.
# custom-model-data: integer resource-pack metadata; null preserves original metadata.
# item-model and tooltip-style: namespaced resource-pack keys, applied on supported APIs.
# itemsadder-item: optional ItemsAdder namespace:id appearance, e.g. "mail_theme:back"; null uses ordinary fields/inheritance.
# Supported on every appearance role/variant below, including personal/public floating notifications.
# Example global navigation path: icons.controls.back.itemsadder-item (not menu/slot mappings).
# ItemsAdder must be installed, compatible, and finished loading the configured item registry.
# Non-null itemsadder-item takes precedence over same-layer material/custom-model-data/item-model fields.
# Missing/unready/incompatible ItemsAdder or invalid/unknown IDs retain the preceding inherited/built-in appearance.
# Same-layer sibling fields are not fallback fields; configure an earlier layer or set itemsadder-item to null.
# ItemsAdder owns pack building, merging, hosting and deployment; MailboxGUI never sends a second pack.
# Include all referenced assets in that deployed pack; ItemsAdder presence alone does not prove the player loaded it.
# Both gui-customization.enabled and existing On/Off/Auto/forced-auto policy still apply.
# After ItemsAdder content edits use /iareload (and rebuild/deploy its pack when needed), then /mba reload.
# The plugin validates key syntax/API availability, not the contents of a player's pack.
# Automatic mode shows overrides only after a server-supplied resource pack is confirmed loaded.
# For client-installed packs, players use /mb settings resourcepack on; off forces built-in icons; auto restores detection.
# config.yml gui-customization.require-automatic-detection: true locks auto and hides/disables that player setting.
# This policy requires a SERVER-SENT pack; manually installed client packs cannot be detected.
# MailboxGUI never sends or requires a pack. Other player settings remain available.
# Include ALL configured models in your server pack; any loaded server pack can trigger these overrides.
# Match pack assets/format to the client and these material/model fields to the backend API.
# An accepted incompatible pack or missing assets can display incorrectly; automatic detection cannot validate them.
# Unknown/pending/declined/failed status in automatic mode uses the untouched built-in icon, including its material.
# Client-local packs and individual missing assets cannot be detected; unrelated loaded packs are not validated.
# Status changes apply on the next normal GUI render/open. Real package items remain untouched.
# Example item-model: "mailboxgui:paper_letter"; that exact key must exist in the pack.
# Older APIs need custom-model-data fallback for item-model assignments, otherwise the built-in icon is used.
# Controls merge original appearance -> defaults.control -> controls.<purpose>.
# The same purpose uses ONE setting everywhere, regardless of menu, slot or state.
# Null fields retain original materials and state-dependent appearances; they never reset metadata.
# Decorative fillers use ONLY defaults.filler, outside all control/recipient layers.
# Recipient entries use defaults.control -> defaults.recipient -> online/offline state.
# Mail message/expiration variants are independent of controls; see their sections below.
# Real package items are never appearance-customized. Synthetic XP uses controls.experience.
# Physical notifications have their own enable gates and do not inherit GUI defaults.
# No menu, slot, compose-specific or material-state appearance mappings are supported.
# gui-config-version is the schema marker; leave it unchanged.
gui-config-version: 1

# Global semantic appearances; never inventory layout or permission settings.
icons:
  # PHYSICAL FLOATING NEW-MAIL ITEMS: independent from GUI control defaults.
  # Apply only when gui-customization.enabled AND the personal/public block.enabled are true.
  # config.yml notification enable toggles remain authoritative; never bypassed here.
  # Base material: mailbox.new-mail-notification.item (personal),
  # public-mailbox.mailboxes.new-mail-notification.item (public); null retains earlier values.
  # ItemStack metadata selects models that must exist in the player's resource pack.
  # item-model requires newer supported APIs; the pack needs a correct ground display model/transform.
  # itemsadder-item may select an ItemsAdder appearance; no arbitrary NBT edits or new mail templates are needed.
  # Physical floating item appearance, not an inventory icon or a notification feature toggle.
  # Privacy, pickup/despawn protection, unread/expiry handling and read lifecycle remain unchanged.
  # Position and refresh are internal plugin behavior, not options in gui.yml or configurable config.yml settings.
  # Resource-pack ground transforms may change visual size, but do not change the plugin spawn anchor.
  # Use the personal/public role below; GUI defaults, fillers, recipients and shared control roles do not apply here.
  new-mail-notification:
    # Personal physical mailbox floating item.
    # Personal/private mailbox role: replaces only the floating personal new-mail ItemStack appearance.
    # Requires config.yml gui-customization.enabled AND this personal.enabled to be true.
    # config.yml mailbox.new-mail-notification.enabled remains authoritative; this cannot enable notifications.
    # A valid non-null material replaces only mailbox.new-mail-notification.item; null keeps that config.yml base.
    # custom-model-data and item-model add ItemStack metadata, not global config keys; the pack must supply the model and ground appearance.
    # No tooltip-style is used for this world item; placement, refresh and notification lifecycle stay internal and unchanged.
    personal:
      # Opt in to personal appearance only when config.yml gui-customization.enabled is also true.
      # False retains the config.yml mailbox.new-mail-notification.item base; never overrides notification enable gates.
      enabled: false
      # Valid non-air ITEM Material replaces only config.yml mailbox.new-mail-notification.item when both appearance gates pass.
      # Null or an invalid material retains the config.yml base (plugin fallback if that base is invalid).
      material: null
      # Optional integer ItemStack model metadata for the personal floating item; not a new global config.yml key.
      # Null leaves base metadata unchanged; the player's pack must define a model with suitable ground appearance.
      custom-model-data: null
      # Optional namespaced ItemStack model metadata for the personal floating item; ignored on unsupported server APIs.
      # Null leaves base metadata unchanged; requires the matching resource-pack model and correct ground transforms, not tooltip-style.
      item-model: null
      itemsadder-item: null
    # Public Access Mailbox floating item.
    # Public Access Mailbox role: replaces only the floating public new-mail ItemStack appearance.
    # Requires config.yml gui-customization.enabled AND this public.enabled to be true.
    # config.yml public-mailbox.mailboxes.new-mail-notification.enabled remains authoritative; never overridden here.
    # Parent config.yml public-mailbox.enabled AND public-mailbox.mailboxes.enabled must also remain true.
    # A valid non-null material replaces only public-mailbox.mailboxes.new-mail-notification.item; null keeps that config.yml base.
    # custom-model-data and item-model add ItemStack metadata, not global config keys; the pack must supply the model and ground appearance.
    # No tooltip-style is used for this world item; placement, refresh and notification lifecycle stay internal and unchanged.
    public:
      # Opt in to public appearance only when config.yml gui-customization.enabled is also true.
      # False retains the config.yml public-mailbox.mailboxes.new-mail-notification.item base; never overrides notification enable gates.
      enabled: false
      # Valid non-air ITEM Material replaces only config.yml public-mailbox.mailboxes.new-mail-notification.item when both appearance gates pass.
      # Null or an invalid material retains the config.yml base (plugin fallback if that base is invalid).
      material: null
      # Optional integer ItemStack model metadata for the public floating item; not a new global config.yml key.
      # Null leaves base metadata unchanged; the player's pack must define a model with suitable ground appearance.
      custom-model-data: null
      # Optional namespaced ItemStack model metadata for the public floating item; ignored on unsupported server APIs.
      # Null leaves base metadata unchanged; requires the matching resource-pack model and correct ground transforms, not tooltip-style.
      item-model: null
      itemsadder-item: null

  # Global control base. Only non-null properties override the existing role icon.
  # Shared appearance layers for eligible GUI controls; purpose-specific controls refine each non-null property.
  defaults:
    # Global base for eligible GUI controls, including synthetic displays; null retains the original role appearance.
    control: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Sole decorative filler appearance for all menus; no menu/slot/state inheritance and never fills empty slots.
    filler: {material: GRAY_STAINED_GLASS_PANE, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Semantic player-recipient role, not filler/navigation; null retains the actual built-in entry.
    # Shared by ALL player/admin letter/package/money/check-inbox and registered-mailbox recipient lists.
    # Exception to global info: Mailbox Details player information also uses this role and its online/offline state.
    recipient:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Online/offline selected from real player status in every recipient list and Mailbox Details, never from an overridden material.
      states:
        # Online recipient appearance; null inherits the recipient base and does not change status or eligibility.
        online: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Offline recipient appearance; null inherits the recipient base and does not change status or eligibility.
        offline: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}

  # INBOX MAIL DISPLAY COPIES: player, read-only check, inspected player, shared admin.
  # No stored mail, handed-out mail, book pages, money amount, or package contents change.
  # Letters inherently contain messages: only base + category expiration variants apply; body/pages remain unchanged.
  # Package/money priority: category base -> message variant -> category expiration
  # -> combined message.expiration variant. Null fields preserve earlier appearance.
  # Expiration is selected from original mail metadata, never lore, config, or the clock.
  # Overdue mail remains with-expiration until cleanup; letters have no separate message variants.
  # Inbox display-copy appearances by mail category; refine message/expiration variants below without changing stored or claimed mail.
  mail:
    # Built-in PAPER: paper letter body in lore. Null material retains it.
    # Base inbox display for paper letter; null preserves its built-in material and mail data, with variants layered below.
    paper-letter:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox paper letter: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox paper letter: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Built-in WRITTEN_BOOK: book letter with its original pages. Null material retains it.
    # Base inbox display for book letter; null preserves its built-in material and mail data, with variants layered below.
    book-letter:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox book letter: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox book letter: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Built-in SHULKER_BOX: ordinary package, no COD payment required. Null material retains it.
    # Base inbox display for ordinary non-COD package; null preserves its built-in material and mail data, with variants layered below.
    standard-package:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox ordinary non-COD package: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox ordinary non-COD package: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Ordinary non-COD package with a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      with-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox ordinary non-COD package with a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox ordinary non-COD package with a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Ordinary non-COD package without a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      without-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox ordinary non-COD package without a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox ordinary non-COD package without a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Built-in RED_SHULKER_BOX: COD package awaiting payment. Null material retains it.
    # Base inbox display for COD package awaiting payment; null preserves its built-in material and mail data, with variants layered below.
    pending-cod-package:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox COD package awaiting payment: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox COD package awaiting payment: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # COD package awaiting payment with a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      with-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox COD package awaiting payment with a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox COD package awaiting payment with a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # COD package awaiting payment without a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      without-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox COD package awaiting payment without a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox COD package awaiting payment without a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Built-in BLUE_SHULKER_BOX: COD package whose payment was already accepted. Null material retains it.
    # Base inbox display for COD package with accepted payment; null preserves its built-in material and mail data, with variants layered below.
    accepted-cod-package:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox COD package with accepted payment: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox COD package with accepted payment: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # COD package with accepted payment with a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      with-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox COD package with accepted payment with a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox COD package with accepted payment with a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # COD package with accepted payment without a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      without-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox COD package with accepted payment without a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox COD package with accepted payment without a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Built-in YELLOW_SHULKER_BOX: declined or expired COD package returned to sender. Null material retains it.
    # Base inbox display for declined/expired COD package returned to sender; null preserves its built-in material and mail data, with variants layered below.
    returned-cod-package:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox declined/expired COD package returned to sender: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox declined/expired COD package returned to sender: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Declined/expired COD package returned to sender with a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      with-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox declined/expired COD package returned to sender with a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox declined/expired COD package returned to sender with a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Declined/expired COD package returned to sender without a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      without-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox declined/expired COD package returned to sender without a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox declined/expired COD package returned to sender without a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Built-in PURPLE_SHULKER_BOX: item-currency COD payout, not the original package. Null material retains it.
    # Base inbox display for COD item-currency payout; null preserves its built-in material and mail data, with variants layered below.
    cod-item-currency-payment:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox COD item-currency payout: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox COD item-currency payout: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # COD item-currency payout with a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      with-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox COD item-currency payout with a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox COD item-currency payout with a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # COD item-currency payout without a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      without-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox COD item-currency payout without a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox COD item-currency payout without a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Built-in GOLD_NUGGET: ordinary money mail. Null material retains it.
    # Base inbox display for ordinary money mail; null preserves its built-in material and mail data, with variants layered below.
    money-mail:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox ordinary money mail: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox ordinary money mail: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Ordinary money mail with a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      with-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox ordinary money mail with a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox ordinary money mail with a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Ordinary money mail without a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      without-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox ordinary money mail without a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox ordinary money mail without a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Built-in GOLD_NUGGET: money-currency COD payout, not ordinary money mail. Null material retains it.
    # Base inbox display for COD money-currency payout; null preserves its built-in material and mail data, with variants layered below.
    cod-money-payment:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Inbox COD money-currency payout: expiration metadata present (overdue still matches until cleanup).
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Inbox COD money-currency payout: no expiration metadata.
      # Category expiration layer; non-null fields refine earlier appearance without setting or removing a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # COD money-currency payout with a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      with-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox COD money-currency payout with a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox COD money-currency payout with a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # COD money-currency payout without a nonblank attached message in inbox views; refines the category base, not its text.
      # Category expiration appearance applies next; the combined message/expiration variant below is applied last.
      without-message:
        material: null
        custom-model-data: null
        item-model: null
        itemsadder-item: null
        tooltip-style: null
        # Inbox COD money-currency payout without a nonblank attached message: expiration metadata present (overdue still matches until cleanup).
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
        # Inbox COD money-currency payout without a nonblank attached message: no expiration metadata.
        # Final combined appearance layer; non-null fields win without changing messages, deadlines or cleanup.
        without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}

  # PREMIUM PROTECTED PLACEHOLDERS: built-in BARRIER retained with material:null.
  # Visual changes never remove restriction metadata or make unsupported mail claimable.
  # Premium compatibility-protection displays in inbox/package views; appearance cannot bypass backend or claim restrictions.
  network:
    # Original metadata selects expiration lore; the base restricted appearance takes precedence over variants.
    # Protected whole-package placeholder in Premium inbox displays; null retains BARRIER and all restriction metadata.
    restricted-package:
      material: null
      custom-model-data: null
      item-model: null
      itemsadder-item: null
      tooltip-style: null
      # Optional expiration styling; configured base restricted appearance wins. The deadline remains in lore.
      with-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
      # Restricted package without expiration metadata; null inherits the protected base and does not add a deadline.
      without-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Protected unsupported-content placeholder in Premium package content positions; not a real item or a claim permission.
    unsupported-content: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Protected whole shulker whose nested contents cannot safely be decoded/claimed on this backend.
    # Shared by player and admin package views; default BARRIER, distinct from an unsupported ordinary item.
    # Customizing this icon never removes nested item data or grants an admin compatibility bypass.
    unsupported-shulker-content: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}

  # One setting per control purpose, shared by every player/admin screen using it.
  # All fields are neutral: null retains each built-in Minecraft icon and its state.
  # These settings do not enable features, change actions or change menu positions.
  controls:

    # 1. SHARED NAVIGATION
    # Return to the parent menu, including recipient Back and package Close/Cancel. Separate from Exit and compose cancellation; default BARRIER.
    # Location: AdminExpirationModeGUI, AdminInboxPackageActionGUI, AdminInboxTargetGUI, AdminInboxViewGUI, AdminLetterTypeSelectionGUI, AdminMailAudienceGUI, AdminNetworkTargetGUI, AdminNetworkToolsGUI, AdminNpcToolsGUI, AdminPostOfficeGUI, AdminPostOfficeMailboxGUI, AdminPostOfficeMailboxListGUI, AdminRegisteredMailboxDetailGUI, AdminRegisteredMailboxTargetGUI, AdminSendMailGUI, InboxFilterGUI, LetterTargetGUI, LetterTypeSelectionGUI, MoneyMessageModeGUI, MoneyTargetGUI, PackagePreviewGUI, PackageReceiveGUI, PackageTargetGUI, PlayerMailboxManageGUI, SendMailMenuGUI, SharedAdminInboxFilterGUI, SharedAdminInboxGUI. Names/lore remain in language files.
    back: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Cancel an unfinished compose/confirmation operation. Does not customize Back or Exit.
    # Location: AdminInboxClearConfirmGUI, AdminPackageComposeGUI, AdminRegisteredMailboxRemoveConfirmGUI, PackageComposeGUI, ReturnedCodCleanupConfirmGUI, SharedAdminInboxClearConfirmGUI. Names/lore remain in language files.
    cancel: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Leave the player inbox/check or unregister menu. Shared exit appearance, never inherited from Back.
    # Location: AdminToolsGUI, InboxGUI, PlayerUnregisterMenuGUI. Names/lore remain in language files.
    exit: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Navigate to an available next page in every player/admin/network list. Delivery Search results use this; individual details are not paginated.
    # Location: AdminInboxTargetGUI, AdminInboxViewGUI, AdminNetworkToolsGUI, AdminPostOfficeMailboxListGUI, AdminRegisteredMailboxDetailGUI, AdminRegisteredMailboxTargetGUI, InboxGUI, LetterTargetGUI, MoneyTargetGUI, NetworkMenuPagination, PackageTargetGUI, PlayerMailboxManageGUI, SharedAdminInboxGUI. Names/lore remain in language files.
    next-page: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Disabled next-page indicator in base menus. Network lists omit the indicator instead of showing a disabled arrow.
    # Location: AdminInboxTargetGUI, AdminInboxViewGUI, AdminPostOfficeMailboxListGUI, AdminRegisteredMailboxDetailGUI, AdminRegisteredMailboxTargetGUI, InboxGUI, LetterTargetGUI, MoneyTargetGUI, PackageTargetGUI, PlayerMailboxManageGUI, SharedAdminInboxGUI. Names/lore remain in language files.
    no-next-page: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Disabled previous-page indicator in base menus. Network lists omit the indicator instead of showing a disabled arrow.
    # Location: AdminInboxTargetGUI, AdminInboxViewGUI, AdminPostOfficeMailboxListGUI, AdminRegisteredMailboxDetailGUI, AdminRegisteredMailboxTargetGUI, InboxGUI, LetterTargetGUI, MoneyTargetGUI, PackageTargetGUI, PlayerMailboxManageGUI, SharedAdminInboxGUI. Names/lore remain in language files.
    no-previous-page: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Navigate to an available previous page in every player/admin/network list. Does not customize a disabled page indicator.
    # Location: AdminInboxTargetGUI, AdminInboxViewGUI, AdminNetworkToolsGUI, AdminPostOfficeMailboxListGUI, AdminRegisteredMailboxDetailGUI, AdminRegisteredMailboxTargetGUI, InboxGUI, LetterTargetGUI, MoneyTargetGUI, NetworkMenuPagination, PackageTargetGUI, PlayerMailboxManageGUI, SharedAdminInboxGUI. Names/lore remain in language files.
    previous-page: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Shared Refresh control in all network screens; default SUNFLOWER. Does not start duplicate sessions.
    # Location: AdminNetworkToolsGUI. Names/lore remain in language files.
    refresh: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}

    # 2. SHARED INFORMATION AND CONFIRMATION
    # confirm appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminInboxClearConfirmGUI, AdminRegisteredMailboxRemoveConfirmGUI, ReturnedCodCleanupConfirmGUI, SharedAdminInboxClearConfirmGUI. Names/lore remain in language files.
    confirm: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Loading/empty/result-limit/general status information; default PAPER where used by Network Tools.
    # Location: AdminInboxTargetGUI, AdminNetworkToolsGUI, AdminRegisteredMailboxTargetGUI, NetworkToolsDiagnosticsAdapter. Names/lore remain in language files.
    empty: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # ALL information/header/package-information controls share this appearance. Mailbox Details player information is the recipient exception.
    # Location: AdminInboxPackageActionGUI, AdminInboxTargetGUI, AdminInboxViewGUI, AdminLetterTypeSelectionGUI, AdminPostOfficeMailboxListGUI, AdminRegisteredMailboxTargetGUI, InboxGUI, LetterTargetGUI, LetterTypeSelectionGUI, MainMailboxGUI, MoneyTargetGUI, PackageReceiveGUI, PackageTargetGUI, PlayerMailboxManageGUI, SendMailMenuGUI, SharedAdminInboxGUI. Names/lore remain in language files.
    info: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}

    # 3. RECIPIENT LIST CONTROLS
    # All Players recipient-list filter shared across all letter/package/money/admin recipient selection menus.
    # Location: AdminInboxTargetGUI, LetterTargetGUI, MoneyTargetGUI, PackageTargetGUI. Names/lore remain in language files.
    recipient-filter-all: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Offline Players recipient-list filter shared across all recipient selection menus.
    # Location: AdminInboxTargetGUI, LetterTargetGUI, MoneyTargetGUI, PackageTargetGUI. Names/lore remain in language files.
    recipient-filter-offline: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Online Players recipient-list filter shared across all recipient selection menus.
    # Location: AdminInboxTargetGUI, LetterTargetGUI, MoneyTargetGUI, PackageTargetGUI. Names/lore remain in language files.
    recipient-filter-online: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Registered Mailboxes audience filter in admin registration management.
    # Location: AdminRegisteredMailboxTargetGUI. Names/lore remain in language files.
    register-filter-registered: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Stored Players audience filter in admin registration management.
    # Location: AdminRegisteredMailboxTargetGUI. Names/lore remain in language files.
    register-filter-stored: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # type recipient name appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminInboxTargetGUI, LetterTargetGUI, MoneyTargetGUI, PackageTargetGUI. Names/lore remain in language files.
    type-recipient-name: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}

    # 4. INBOX CONTROLS
    # clear cod returns appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: SharedAdminInboxGUI. Names/lore remain in language files.
    clear-cod-returns: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # clear inbox appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminInboxViewGUI, SharedAdminInboxGUI. Names/lore remain in language files.
    clear-inbox: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # collect money appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: SharedAdminInboxGUI. Names/lore remain in language files.
    collect-money: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Open inbox filtering; the current filter name stays localized in lore. Filter choices have separate purposes below.
    # Location: InboxGUI, SharedAdminInboxGUI. Names/lore remain in language files.
    filter: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Admin Mail choice in the player inbox filter menu.
    # Location: InboxFilterGUI. Names/lore remain in language files.
    filter-admin-mail: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # By Date choice, shared by player and Shared Admin Inbox filter menus.
    # Location: InboxFilterGUI, SharedAdminInboxFilterGUI. Names/lore remain in language files.
    filter-by-date: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # By Expiration choice in the player inbox filter menu.
    # Location: InboxFilterGUI. Names/lore remain in language files.
    filter-by-expiration: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # By Type choice, shared by player and Shared Admin Inbox filter menus.
    # Location: InboxFilterGUI, SharedAdminInboxFilterGUI. Names/lore remain in language files.
    filter-by-type: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # inbox appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminToolsGUI, MainMailboxGUI. Names/lore remain in language files.
    inbox: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # send mail appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminToolsGUI, InboxGUI, MainMailboxGUI. Names/lore remain in language files.
    send-mail: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}

    # 5. MAIL COMPOSITION AND PACKAGE CONTROLS
    # Accept a received COD/returned package in preview. Appearance never bypasses price, capacity or compatibility validation.
    # Location: PackagePreviewGUI. Names/lore remain in language files.
    accept-package: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # All Players audience shared across server paper/book/package/money sending menus.
    # Location: AdminMailAudienceGUI. Names/lore remain in language files.
    audience-all: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Offline Players audience shared across server paper/book/package/money sending menus.
    # Location: AdminMailAudienceGUI. Names/lore remain in language files.
    audience-offline: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Online Players audience shared across server paper/book/package/money sending menus.
    # Location: AdminMailAudienceGUI. Names/lore remain in language files.
    audience-online: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Select Recipient(s) audience shared across server paper/book/package/money sending menus.
    # Location: AdminMailAudienceGUI. Names/lore remain in language files.
    audience-select: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # book letter appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminLetterTypeSelectionGUI, LetterTypeSelectionGUI. Names/lore remain in language files.
    book-letter: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Package-compose Cash-On-Demand setting. The preview price has its own cod-price appearance.
    # Location: AdminPackageComposeGUI, PackageComposeGUI. Names/lore remain in language files.
    cod: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Read-only price display in COD Package Preview; does not change Vault/item-currency amounts.
    # Location: PackagePreviewGUI. Names/lore remain in language files.
    cod-price: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Confirm the player/admin composed package; distinct from accepting a received COD package.
    # Location: AdminPackageComposeGUI, PackageComposeGUI. Names/lore remain in language files.
    confirm-package: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # decline appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: PackagePreviewGUI. Names/lore remain in language files.
    decline: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Shared Add Experience control and synthetic claimable XP item in ALL player/admin package compose, preview and contents views. Never changes awarded XP.
    # Location: AdminInboxPackageActionGUI, AdminPackageComposeGUI, PackageComposeGUI, PackagePreviewGUI, PackageReceiveGUI. Names/lore remain in language files.
    experience: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # With Expiration selection in the admin sending flow; not an inbox mail expiration variant.
    # Location: AdminExpirationModeGUI. Names/lore remain in language files.
    expiration-with: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Without Expiration selection in the admin sending flow; not an inbox mail expiration variant.
    # Location: AdminExpirationModeGUI. Names/lore remain in language files.
    expiration-without: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # letter appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: SendMailMenuGUI. Names/lore remain in language files.
    letter: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # money appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: SendMailMenuGUI. Names/lore remain in language files.
    money: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Add Message choice shared by player/admin Money Mail Message menus.
    # Location: MoneyMessageModeGUI. Names/lore remain in language files.
    money-message-with: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Without Message choice shared by player/admin Money Mail Message menus.
    # Location: MoneyMessageModeGUI. Names/lore remain in language files.
    money-message-without: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # package appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: SendMailMenuGUI. Names/lore remain in language files.
    package: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Add/edit attached package message in player and admin compose. This does not style money message choices or sender-written text.
    # Location: AdminPackageComposeGUI, PackageComposeGUI. Names/lore remain in language files.
    package-message: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # paper letter appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminLetterTypeSelectionGUI, LetterTypeSelectionGUI. Names/lore remain in language files.
    paper-letter: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # return to admin appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminPackageComposeGUI. Names/lore remain in language files.
    return-to-admin: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Admin View Package Take Contents control; default CHEST. Partial claims and backend safety are unchanged.
    # Location: AdminInboxPackageActionGUI. Names/lore remain in language files.
    take-contents: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}

    # 6. MAILBOX REGISTRATION AND ADMIN TOOLS
    # check inbox appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminToolsGUI. Names/lore remain in language files.
    check-inbox: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Open My Mailboxes from the player unregister selection menu.
    # Location: PlayerUnregisterMenuGUI. Names/lore remain in language files.
    manage-personal-mailboxes: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Open Manage Registered Mailboxes from Admin Tools.
    # Location: AdminToolsGUI. Names/lore remain in language files.
    manage-registered-mailboxes: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Registered personal mailbox entries shared by My Mailboxes and admin Mailbox Details, irrespective of body style.
    # Location: AdminRegisteredMailboxDetailGUI, PlayerMailboxManageGUI. Names/lore remain in language files.
    personal-mailbox: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # public access appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminToolsGUI. Names/lore remain in language files.
    public-access: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Named Public Access Mailbox list entry; same appearance for every public registration.
    # Location: AdminPostOfficeMailboxListGUI. Names/lore remain in language files.
    public-mailbox: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Open the registered Public Access Mailboxes list.
    # Location: AdminPostOfficeMailboxGUI. Names/lore remain in language files.
    public-mailbox-list: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Set Public Access Mailbox action; independent from setting an NPC or a personal mailbox.
    # Location: AdminPostOfficeMailboxGUI. Names/lore remain in language files.
    public-mailbox-register: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Remove Public Access Mailbox action; list entries still require their documented Shift-Right-Click.
    # Location: AdminPostOfficeMailboxGUI. Names/lore remain in language files.
    public-mailbox-remove: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Public Access Mailbox Set/Remove branch in Public Mail Access Registration.
    # Location: AdminPostOfficeGUI. Names/lore remain in language files.
    public-mailbox-tools: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Set Public Access NPC action in the NPC registration menu.
    # Location: AdminNpcToolsGUI. Names/lore remain in language files.
    public-npc-register: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Remove Public Access NPC action in the NPC registration menu.
    # Location: AdminNpcToolsGUI. Names/lore remain in language files.
    public-npc-remove: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Public Access NPC Set/Remove branch in Public Mail Access Registration.
    # Location: AdminPostOfficeGUI. Names/lore remain in language files.
    public-npc-tools: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Register a personal mailbox for the selected player from Mailbox Details.
    # Location: AdminRegisteredMailboxDetailGUI. Names/lore remain in language files.
    register-mailbox: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # selection mode appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: PlayerUnregisterMenuGUI. Names/lore remain in language files.
    selection-mode: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}

    # 7. PREMIUM NETWORK CONTROLS
    # Probes are asynchronous, timestamped observations, not a promise of future delivery.
    # Consistency diagnoses differences; it does not rewrite other backends' configs.
    # Support Export writes bounded sanitized local reports, never uploads automatically.
    # Reports omit credentials and mail bodies; keep backend/recipient identifiers private.
    # Backend group entries share one appearance across groups/list/details and mail targeting.
    # Location: AdminNetworkTargetGUI, AdminNetworkToolsGUI. Names/lore remain in language files.
    backend-group: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Local backend entry in Backend Status, Backend Details and mail targeting; default EMERALD_BLOCK.
    # Location: AdminNetworkTargetGUI, AdminNetworkToolsGUI. Names/lore remain in language files.
    backend-local: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Remote backend entry in Backend Status, Backend Details and mail targeting; default ENDER_EYE.
    # Location: AdminNetworkTargetGUI, AdminNetworkToolsGUI. Names/lore remain in language files.
    backend-remote: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # backend status appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminNetworkToolsGUI. Names/lore remain in language files.
    backend-status: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Shared Redis/MySQL diagnostic result and its Details entry; default COMPARATOR. Separate from Connections menu buttons.
    # Location: AdminNetworkToolsGUI, NetworkToolsDiagnosticsAdapter. Names/lore remain in language files.
    connection-diagnostics: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Open Delayed Mail Routing from Mail Delivery. Individual rows use separate processable/not-processable appearances.
    # Location: AdminNetworkToolsGUI. Names/lore remain in language files.
    delayed-mail: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Queued delivery that this backend cannot process; default BARRIER. Restrictions remain enforced.
    # Location: AdminNetworkToolsGUI. Names/lore remain in language files.
    delayed-mail-not-processable: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Queued delivery that this backend can process; default HOPPER. Appearance is not a routing permission.
    # Location: AdminNetworkToolsGUI. Names/lore remain in language files.
    delayed-mail-processable: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Unavailable diagnostic result with reason; default BARRIER. Separate from ordinary empty/loading messages.
    # Location: AdminNetworkToolsGUI, NetworkToolsDiagnosticsAdapter. Names/lore remain in language files.
    diagnostics-unavailable: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # MySQL menu button in Connections; default ENDER_CHEST. Diagnostic results use connection-diagnostics instead.
    # Location: AdminNetworkToolsGUI. Names/lore remain in language files.
    mysql-status: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Open the Backends branch from Network Tools; distinct from backend status entries.
    # Location: AdminNetworkToolsGUI. Names/lore remain in language files.
    network-backends: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Open Connections from Network Tools; Redis and MySQL menu choices are separate below.
    # Location: AdminNetworkToolsGUI. Names/lore remain in language files.
    network-connections: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Consistency menu and backend consistency list/Details; shared appearance.
    # Location: AdminNetworkToolsGUI, NetworkToolsDiagnosticsAdapter. Names/lore remain in language files.
    network-consistency: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Matching delivery result and individual Details icon; default HOPPER. Information is in its lore.
    # Location: AdminNetworkToolsGUI, NetworkToolsDiagnosticsAdapter. Names/lore remain in language files.
    network-delivery-details: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Delivery Search menu/cancelled-search prompt; default SPYGLASS. Not the matching delivery row.
    # Location: AdminNetworkToolsGUI. Names/lore remain in language files.
    network-delivery-search: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Open Mail Delivery from Network Tools; routing/search/scheduled controls remain independent.
    # Location: AdminNetworkToolsGUI. Names/lore remain in language files.
    network-mail-delivery: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Runtime health summary in Network Tools overview, with observed availability and counts in lore.
    # Location: AdminNetworkToolsGUI, NetworkToolsDiagnosticsAdapter. Names/lore remain in language files.
    network-runtime: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Shared Scheduled Status menu, configured task, saved state, history occurrence and Details icon; default CLOCK.
    # Location: AdminNetworkToolsGUI, NetworkToolsDiagnosticsAdapter. Names/lore remain in language files.
    network-scheduled-status: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Support Export menu, export action and report result share one appearance.
    # Location: AdminNetworkToolsGUI. Names/lore remain in language files.
    network-support-report: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # network tools appearance. This semantic purpose is shared only by the listed controls, not every item with the same Minecraft material.
    # Location: AdminNetworkToolsGUI. Names/lore remain in language files.
    network-tools: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Whole Network target choice in Premium admin send targeting; no change to eligibility or groups.
    # Location: AdminNetworkTargetGUI. Names/lore remain in language files.
    network-whole-network: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
    # Redis menu button in Connections; default REDSTONE. Diagnostic results use connection-diagnostics instead.
    # Location: AdminNetworkToolsGUI. Names/lore remain in language files.
    redis-status: {material: null, custom-model-data: null, item-model: null, itemsadder-item: null, tooltip-style: null}
sounds.yml — complete shared sound default
Download clean reference text
# ============================================================
# MailboxGUI Sounds Configuration
# ============================================================
# This file controls the plugin's configured GUI and mail sound roles.
#
# If a sound entry is blank or invalid, that sound will not play.
#
# Accepted sound name formats:
# - Bukkit enum style: UI_BUTTON_CLICK
# - Full namespaced key style: minecraft:block.chest.open
# - Short key style: block.chest.open
#
# Internally, namespaced/short key styles are converted to Bukkit enum names.
# Example: minecraft:block.chest.open -> BLOCK_CHEST_OPEN
# Namespaced strings are aliases for supported Bukkit sounds, not arbitrary
# resource-pack sound events. Available sounds depend on the server version.
# /mba reload reloads this file. Volume and pitch apply only when that role plays;
# entries do not enable mail alerts or bypass the player's notification preferences.
# The legacy postoffice-* role keys below remain stable for saved configurations;
# they now describe Public Access Mailbox actions.
#
# Version Notes:
# - sounds-config-version is used by MailboxGUI to refresh this file
#   when new bundled sound paths are added.
# - Synchronization adds missing defaults while preserving existing sound choices,
#   volumes, pitches and owner comments. Keep this file when upgrading.
# ============================================================

sounds-config-version: 3

sounds:
  # Master switch for all plugin sounds.
  enabled: true

  # ============================================================
  # GUI Navigation
  # ============================================================

  main-menu-open:
    # Sound used when the main mailbox menu opens.
    sound: UI_BUTTON_CLICK
    volume: 1.0
    pitch: 1.0

  inbox-open:
    # Sound used when a player or admin opens an inbox-style view.
    sound: BLOCK_CHEST_OPEN
    volume: 1.0
    pitch: 1.0

  selector-open:
    # Sound used when opening selector/list style GUIs.
    sound: UI_BUTTON_CLICK
    volume: 1.0
    pitch: 1.1

  compose-open:
    # Sound used when opening compose-style menus and previews.
    sound: UI_BUTTON_CLICK
    volume: 1.0
    pitch: 0.9

  button-click:
    # General button click fallback for future GUI actions.
    sound: UI_BUTTON_CLICK
    volume: 1.0
    pitch: 1.0

  cancel:
    # Sound used when a compose/selector action is cancelled.
    sound: UI_BUTTON_CLICK
    volume: 0.8
    pitch: 0.7

  error:
    # Sound used for denied/invalid actions.
    sound: BLOCK_NOTE_BLOCK_BASS
    volume: 0.8
    pitch: 0.7

  # ============================================================
  # Player Mailboxes
  # ============================================================

  mailbox-register:
    # Sound used when a normal player mailbox is registered.
    sound: BLOCK_NOTE_BLOCK_PLING
    volume: 1.0
    pitch: 1.2

  mailbox-unregister:
    # Sound used when a normal player mailbox is unregistered.
    sound: BLOCK_NOTE_BLOCK_PLING
    volume: 1.0
    pitch: 0.8

  # ============================================================
  # Public Access Mailboxes
  # ============================================================

  postoffice-mailbox-open:
    # Sound used when a player opens MailboxGUI through a Public Access Mailbox.
    sound: BLOCK_CHEST_OPEN
    volume: 1.0
    pitch: 1.1

  postoffice-mailbox-register:
    # Sound used when an admin registers a Public Access Mailbox.
    sound: BLOCK_NOTE_BLOCK_PLING
    volume: 1.0
    pitch: 1.25

  postoffice-mailbox-unregister:
    # Sound used when an admin unregisters a Public Access Mailbox.
    sound: BLOCK_NOTE_BLOCK_PLING
    volume: 1.0
    pitch: 0.75

  # ============================================================
  # Letters
  # ============================================================

  letter-send:
    # Sound used when a letter is sent.
    sound: ENTITY_ITEM_PICKUP
    volume: 1.0
    pitch: 1.1

  # ============================================================
  # Packages
  # ============================================================

  package-send:
    # Sound used when a package is successfully sent.
    sound: ENTITY_ITEM_PICKUP
    volume: 1.0
    pitch: 1.1

  package-claim:
    # Sound used when a package is successfully claimed or opened.
    sound: ENTITY_ITEM_PICKUP
    volume: 1.0
    pitch: 1.0

  package-cod-accept:
    # Sound used when a COD package is accepted.
    sound: ENTITY_EXPERIENCE_ORB_PICKUP
    volume: 1.0
    pitch: 1.0

  package-experience-set:
    # Sound used when experience is added or updated in a package compose GUI.
    sound: ENTITY_EXPERIENCE_ORB_PICKUP
    volume: 1.0
    pitch: 1.2

  package-experience-redeem:
    # Sound used when a receiver redeems package experience.
    sound: ENTITY_PLAYER_LEVELUP
    volume: 0.8
    pitch: 1.4

  # ============================================================
  # Mail Notifications
  # ============================================================

  online-mail-alert:
    # Sound used when a player receives mail while online and has sound alerts enabled.
    sound: BLOCK_NOTE_BLOCK_PLING
    volume: 1.0
    pitch: 1.4

  # ============================================================
  # Money Mail
  # ============================================================

  money-send:
    # Sound used when money mail is sent.
    sound: ENTITY_ITEM_PICKUP
    volume: 1.0
    pitch: 1.1

  money-claim:
    # Sound used when a money mail item is successfully claimed.
    sound: ENTITY_EXPERIENCE_ORB_PICKUP
    volume: 1.0
    pitch: 1.0

  # ============================================================
  # Dynmap / System
  # ============================================================

  dynmap-refresh:
    # Optional sound path reserved for future Dynmap marker refresh actions.
    sound: UI_BUTTON_CLICK
    volume: 0.8
    pitch: 1.2
language/messages_en.yml — Free (English)
Download clean reference text
# Paper/book sending uses separate type settings; each player command requires its type and command flags. Admin gates are independent; existing letters remain manageable.
# gui.yml changes display appearance and notification item metadata, not physical placement, unchecked-mail lifecycle or mandatory inbox protection.
# In-game text supports legacy & colors, HEX (&#RRGGBB or <#RRGGBB>) and restricted visual MiniMessage formatting. Interactive click/hover/command tags are not supported.
# ============================================================
# MailboxGUI | General
# ============================================================
# Edit displayed text only; preserve keys, placeholders and color codes.
# Version fields and legacy language snapshots are migration references. Keep owner translations during upgrades; do not delete files or reset settings.
# Paper letters and package/money messages allow 256 visible characters, 28 per line and 17 total body lines. Wrapping, /n, actual line breaks and blank lines share this limit. //n displays literal /n; color codes do not count.

# ------------------------------------------------------------
# Command syntax
# ------------------------------------------------------------
# Command syntax has independent language settings; it does not follow message-language settings automatically.
# locale.command-syntax.default: At startup, registers ONLY this language's command roots plus English roots, which are always available.
# Changing the registered roots requires a server restart; reload does not register new roots.
# locale.command-syntax.auto-detect-player-locale: true uses the supported Minecraft client language ONLY for subcommands, help arguments, flags and tab completion, never for roots.
# With false, syntax follows the root used: /mb uses English, /bz uses Spanish, etc. (if that root was registered at startup).
# Console and unsupported client locales fall back to the invoking root's language: /mba remains English even with command-syntax.default: es.
# Message, GUI and date locales remain independent of command syntax.

file-version: 16

messages:
  help-command-send: "<white> send</white>"
  help-desc-send: "<gray>Send mail using an enabled mail type."
  discord-installed-incompatible: "<dark_red>✖</dark_red> <red>Installed DiscBridge %installed% (integration protocol %protocol%) is incompatible. MailboxGUI requires DiscBridge %minimum% or newer with protocol %minimum_protocol%-%maximum_protocol%. DiscBridge has been disabled; update the companion to restore Discord integration. MailboxGUI remains enabled."
  admin-update-discbridge-requirement: "<yellow>MailboxGUI %version% requires DiscBridge %minimum% or newer for Discord integration (protocol %protocol%)."
  admin-update-discbridge-satisfied: "<dark_green>✔</dark_green> <green>Installed DiscBridge %installed% satisfies this update's Discord integration requirements."
  admin-update-discbridge-update-required: "<dark_red>✖</dark_red> <red>Installed DiscBridge %installed% does not satisfy this update's Discord integration requirements. Update DiscBridge before using Discord integration with this MailboxGUI release."
  admin-update-discbridge-optional: "<gray>DiscBridge is not installed. This requirement is optional and applies only if you use Discord integration; you do not need to install DiscBridge."
  admin-update-discbridge-unverified: "<yellow>Installed DiscBridge %installed% compatibility could not be verified. Verify its version and integration protocol before updating."
  admin-update-discbridge-metadata-unavailable: "<yellow>Discord integration requirements for MailboxGUI %version% are not published. Verify DiscBridge compatibility before updating."
  admin-update-discbridge-staged-preview: "<gray>Staged MailboxGUI %version%: Discord integration compatibility preview."
  admin-update-discbridge-not-published: "not published"
  admin-update-discbridge-version-unknown: "unknown version"

  discord-integration-unavailable: "<red>DiscBridge integration is unavailable."
  discord-integration-failed: "<dark_red>✖</dark_red> <red>Discord command failed. Please try again."
  discord-player-commands-disabled: "<red>Discord player commands are disabled by the server administrator."
  help-desc-discord: "<gray>Shows Discord mail notification settings."
  help-desc-admin-discord: "<gray>Manages DiscBridge integration and Discord notifications."
  settings-discord-usage: "<white>Use /mb settings discord help.</white>"

  # Client-installed resource pack
  settings-resourcepack-status: "<yellow>Resource Pack: <white>%mode%"
  settings-resourcepack-mode-on: "On"
  settings-resourcepack-mode-off: "Off"
  settings-resourcepack-mode-auto: "Auto"
  settings-resourcepack-usage: "<white>Use /mb settings resourcepack <red>{on|off|auto}</red>. on = client-installed pack; off = built-in icons; auto = server-pack detection.</white>"
  settings-resourcepack-updated-on: "<dark_green>✔</dark_green> <green>Client-pack icons enabled. Install and enable the matching pack in Minecraft; reopen your menu to see changes."
  settings-resourcepack-updated-off: "<dark_green>✔</dark_green> <green>Built-in icons enabled, even when a server pack is loaded."
  settings-resourcepack-updated-auto: "<dark_green>✔</dark_green> <green>Automatic server-pack detection enabled. Client-installed packs need the on setting."
  settings-resourcepack-disabled: "<red>GUI customization is disabled by this server."
  settings-resourcepack-save-failed: "<dark_red>✖</dark_red> <red>Could not save your resource-pack preference. Please try again."
  settings-resourcepack-locked: "<red>This server uses automatic server-pack detection. Resource-pack preferences cannot be changed."
  help-command-resourcepack: "<white> settings resourcepack <red>{on|off|auto}</red></white>"
  help-desc-resourcepack: "<gray>Choose custom icons for your client pack or use automatic server-pack detection."

  # ------------------------------------------------------------
  # General
  # ------------------------------------------------------------
  attached-sign-required: "<red>That mailbox body must have the correct matching regular wall sign."
  citizens-unavailable: "<red>Citizens is not installed or not enabled."
  error: "<dark_red>✖</dark_red> <red>Something went wrong. Please check the console for details."
  guide-basics-line-1: "<gray>Mailboxes and Public Access Mailbox access points open your MailboxGUI inbox."
  guide-basics-line-2: "<gray>Mail stays in MailboxGUI storage, not inside the vanilla block inventory."
  guide-basics-line-3: "<gray>Use physical mailboxes, Public Access Mailboxes, or Public Access NPCs when available."
  guide-design-classic-barrel-description: "<gray>Uses a barrel as the mailbox body."
  guide-design-classic-bookshelf-description: "<gray>Uses a chiseled bookshelf when this server version supports it."
  guide-design-classic-chest-description: "<gray>Uses a chest or trapped chest as the mailbox body."
  guide-design-classic-copper-description: "<gray>Uses supported copper chest stages when this server version supports them."
  guide-design-classic-crafter-description: "<gray>Uses a crafter when this server version supports it."
  guide-design-classic-shulker-description: "<gray>Uses a shulker box color supported by this server version."
  guide-design-classic-structure: "<gray>Place the body, attach a regular wall sign to the front, and use a fence below for personal mailboxes."
  guide-design-classic-utility-description: "<gray>Uses supported utility blocks such as droppers, dispensers, or ender chests."
  guide-design-materials: "<gray>Supported bodies: <white>%materials%"
  guide-design-personal-fence-not-required: "<gray>No fence post is used for this design."
  guide-design-personal-fence-required: "<gray>Personal mailbox: <white>Fence below required. <gray>Public Access Mailbox: <white>Fence not required."
  guide-design-shelf-description: "<gray>Uses a shelf with a regular wall sign directly below it."
  guide-design-shelf-structure: "<gray>Mount the shelf on a wall and place the wall sign directly below, aligned to the same wall."
  guide-footer: "<gray>After registration, open your mailbox to send and receive mail."
  guide-line-top: "<dark_gray><strikethrough>------------------------------------------------</strikethrough>"
  guide-navigation-next: "<yellow>Next ▶"
  guide-navigation-previous: "<yellow>◀ Prev"
  guide-navigation-separator: " <dark_gray>| "
  guide-no-public-access: "<gray>This server does not currently have public Public Access Mailbox access points available."
  guide-page: "<gray>Page <white>%page%<gray>/<white>%pages%"
  guide-personal-step-1: "<gray>1. Place a fence post."
  guide-personal-step-2: "<gray>2. Choose your mailbox style."
  guide-personal-step-3: "<gray>3. View the next guide pages to see styles you can build."
  guide-personal-step-4: "<gray>4. Run <white>/mailbox register<gray>."
  guide-personal-step-5: "<gray>5. Click the mailbox sign or body when prompted."
  guide-public-access-intro: "<gray>You can access your mail at public Public Access Mailbox access points on this server."
  guide-public-npc-line-1: "<gray>Right-click a Public Access NPC to open your mailbox menu."
  guide-public-pobox-line-1: "<gray>Public Access Mailboxes are shared mail access points that any player can open."
  guide-public-pobox-line-2: "<gray>They are not registered to one specific player."
  guide-public-pobox-line-3: "<gray>Opening one shows your own personal mailbox menu."
  invalid-mailbox-block: "<red>Right-click a supported mailbox body with its matching sign, or right-click the matching sign."
  itemtemplate-delete-failed: "<dark_red>✖</dark_red> <red>Failed to delete item template: %id%"
  itemtemplate-delete-success: "<dark_green>✔</dark_green> <green>Deleted item template: <yellow>%id%"
  itemtemplate-give-received: "<dark_green>✔</dark_green> <green>You received item template: <yellow>%id%"
  itemtemplate-give-success: "<dark_green>✔</dark_green> <green>Gave item template <yellow>%id% <green>to <yellow>%target%<green>."
  itemtemplate-give-target-online: "<red>Target player must be online."
  itemtemplate-invalid-id: "<red>Invalid item template ID."
  itemtemplate-list-empty: "<yellow>No item templates have been saved yet."
  itemtemplate-list-entry: "<gray>- <yellow>%id% <gray>-> <aqua>%item%"
  itemtemplate-list-entry-missing: "<gray>- <yellow>%id% <gray>-> <red>missing item"
  itemtemplate-list-header: "<gold>MailboxGUI Item Templates <gray>(Page <yellow>%page%<gray>/<yellow>%total%<gray>)"
  itemtemplate-list-page-hint: "<white>Page %page%/%total% - %command% <red>{page}</red></white>"
  itemtemplate-no-permission-delete: "<red>You do not have permission to delete item templates."
  itemtemplate-no-permission-give: "<red>You do not have permission to give item templates."
  itemtemplate-no-permission-list: "<red>You do not have permission to list item templates."
  itemtemplate-no-permission-save: "<red>You do not have permission to save item templates."
  itemtemplate-save-failed: "<dark_red>✖</dark_red> <red>Failed to save item template: %id%"
  itemtemplate-save-hold-item: "<red>Hold the item you want to save as a template in your main hand."
  itemtemplate-save-player-only: "<red>Only players can save item templates because an item must be held in hand."
  itemtemplate-save-success: "<dark_green>✔</dark_green> <green>Saved item template: <yellow>%id%"
  itemtemplate-save-use-as: "<gray>Use it in packages as: <aqua>template:%id%:1"
  itemtemplate-unknown: "<red>Unknown item template: %id%"
  mail-message-invalid: "<red>Use up to 256 visible characters and 17 body lines total. Automatic wrapping and /n share this limit."
  mail-sending-options-unavailable: "<red>No mail sending options are currently available."
  material-acacia-fence: "Acacia Fence"
  material-acacia-shelf: "Acacia Shelf"
  material-acacia-sign: "Acacia Sign"
  material-bamboo-fence: "Bamboo Fence"
  material-bamboo-shelf: "Bamboo Shelf"
  material-bamboo-sign: "Bamboo Sign"
  material-barrel: "Barrel"
  material-birch-shelf: "Birch Shelf"
  material-black-shulker-box: "Black Shulker Box"
  material-blue-shulker-box: "Blue Shulker Box"
  material-brown-shulker-box: "Brown Shulker Box"
  material-cherry-fence: "Cherry Fence"
  material-cherry-shelf: "Cherry Shelf"
  material-cherry-sign: "Cherry Sign"
  material-chest: "Chest"
  material-chiseled-bookshelf: "Chiseled Bookshelf"
  material-copper-chest: "Copper Chest"
  material-crafter: "Crafter"
  material-crimson-shelf: "Crimson Shelf"
  material-cyan-shulker-box: "Cyan Shulker Box"
  material-dark-oak-fence: "Dark Oak Fence"
  material-dark-oak-shelf: "Dark Oak Shelf"
  material-dark-oak-sign: "Dark Oak Sign"
  material-dispenser: "Dispenser"
  material-dropper: "Dropper"
  material-ender-chest: "Ender Chest"
  material-exposed-copper-chest: "Exposed Copper Chest"
  material-gray-shulker-box: "Gray Shulker Box"
  material-green-shulker-box: "Green Shulker Box"
  material-jungle-shelf: "Jungle Shelf"
  material-light-blue-shulker-box: "Light Blue Shulker Box"
  material-light-gray-shulker-box: "Light Gray Shulker Box"
  material-lime-shulker-box: "Lime Shulker Box"
  material-magenta-shulker-box: "Magenta Shulker Box"
  material-mangrove-shelf: "Mangrove Shelf"
  material-mangrove-sign: "Mangrove Sign"
  material-oak-fence: "Oak Fence"
  material-oak-shelf: "Oak Shelf"
  material-oak-sign: "Oak Sign"
  material-orange-shulker-box: "Orange Shulker Box"
  material-oxidized-copper-chest: "Oxidized Copper Chest"
  material-pale-oak-fence: "Pale Oak Fence"
  material-pale-oak-shelf: "Pale Oak Shelf"
  material-pale-oak-sign: "Pale Oak Sign"
  material-pink-shulker-box: "Pink Shulker Box"
  material-purple-shulker-box: "Purple Shulker Box"
  material-red-shulker-box: "Red Shulker Box"
  material-shulker-box: "Shulker Box"
  material-spruce-fence: "Spruce Fence"
  material-spruce-shelf: "Spruce Shelf"
  material-spruce-sign: "Spruce Sign"
  material-trapped-chest: "Trapped Chest"
  material-warped-fence: "Warped Fence"
  material-warped-shelf: "Warped Shelf"
  material-warped-sign: "Warped Sign"
  material-waxed-copper-chest: "Waxed Copper Chest"
  material-waxed-exposed-copper-chest: "Waxed Exposed Copper Chest"
  material-waxed-oxidized-copper-chest: "Waxed Oxidized Copper Chest"
  material-waxed-weathered-copper-chest: "Waxed Weathered Copper Chest"
  material-weathered-copper-chest: "Weathered Copper Chest"
  material-white-shulker-box: "White Shulker Box"
  material-yellow-shulker-box: "Yellow Shulker Box"
  no-mailbox: "<red>You do not have a registered mailbox."
  no-permission: "<red>You do not have permission."
  not-your-mailbox: "<red>This mailbox does not belong to you."
  paper-letter-sending-unavailable: "<red>Paper Letter sending is currently unavailable."
  prefix: "<gradient:#FF8758:#ECE9E1:#FF8758>[MailboxGUI]</gradient> <reset>"
  registration-cancelled: "<yellow>Mailbox registration cancelled."
  registration-prompt: "<yellow>Right-click the mailbox chest/barrel or its front sign to register it. Left-click anywhere to cancel. Mailboxes: %current%/%max%."
  settings-kit-alert-invalid: "<red>Invalid mailbox kit reminder setting. Use on or off."
  settings-kit-alert-status: "<yellow>Mailbox Kit Reminder: <white>%status% <gray>(Uses left: <white>%remaining%<gray>)"
  settings-kit-alert-updated: "<dark_green>✔</dark_green> <green>Mailbox kit reminders set to <yellow>%status%<green>."
  settings-line-top: "<dark_gray><strikethrough>------------------------------------------------</strikethrough>"
  settings-mode-advanced: "Advanced"
  settings-mode-off: "Off"
  settings-mode-simple: "Simple"
  settings-offline-invalid: "<red>Invalid offline notification mode. Use simple, advanced, or off."
  settings-offline-status: "<yellow>Offline Notifications: <white>%mode%"
  settings-offline-updated: "<dark_green>✔</dark_green> <green>Offline mail notifications set to <yellow>%mode%<green>."
  settings-online-invalid: "<red>Invalid online notification setting. Use on or off."
  settings-online-status: "<yellow>Online Notifications: <white>%status%"
  settings-online-updated: "<dark_green>✔</dark_green> <green>Online mail notifications set to <yellow>%status%<green>."
  settings-sound-alert-invalid: "<red>Invalid sound alert setting. Use on or off."
  settings-sound-alert-status: "<yellow>Online Sound Alert: <white>%status%"
  settings-sound-alert-updated: "<dark_green>✔</dark_green> <green>Online mail sound alert set to <yellow>%status%<green>."
  settings-status-off: "Off"
  settings-status-on: "On"
  target-inbox-full: "<red>That player's inbox is full."
  target-no-mailbox: "<red>That player does not have a registered mailbox."
  track-entry: "<yellow>%type% <gray>arrives on <white>%date%"
  track-line-top: "<dark_gray><strikethrough>------------------------------------------------</strikethrough>"
  track-none: "<gray>You do not have any delayed mail waiting to arrive."
  typed-recipient-admin-multi-prompt: "<yellow>Type one or more player names separated by commas, or type <red>cancel <yellow>to return. <gray>Example: <white>{name1}, {name2}, {name3}<gray>. All players must exist in MailboxGUI data or server playerdata."
  typed-recipient-admin-not-found: "<red>These players have never logged into this server before: <white>%targets%<red>. No mail was sent."
  typed-recipient-cancelled: "<yellow>Player name selection cancelled."
  typed-recipient-invalid: "<red>Please type a valid player name, or type <yellow>cancel <red>to return."
  typed-recipient-not-found: "<red>Player <white>%target% <red>has never logged into this server before."
  typed-recipient-player-prompt: "<yellow>Type the player name in chat, or type <red>cancel <yellow>to return. <gray>This searches MailboxGUI data and imports server-known players."
  typed-recipient-prompt: "<yellow>Type the player name in chat, or type <red>cancel <yellow>to return. <gray>This searches MailboxGUI data and imports server-known players."
  typed-recipient-suggestions: "<gray>Did you mean: <white>%suggestions%<gray>?"
  typed-recipient-suggestions-separator: "<gray>, <white>"
  unregister-cancelled: "<yellow>Mailbox unregister cancelled."
  unregister-prompt: "<yellow>Right-click your mailbox chest/barrel or sign to unregister it. Left-click anything to cancel."
  world-list-none: "None configured"

  # ------------------------------------------------------------
  # Command syntax
  # ------------------------------------------------------------
  itemtemplate-usage-delete: "<white>Usage: /mba itemtemplate delete <red>{id}</red></white>"
  itemtemplate-usage-full: "<white>Full command form also works: /mba itemtemplate <red>{save|delete|list|give}</red></white>"
  itemtemplate-usage-give: "<white>Usage: /mba itemtemplate give <red>{id}</red> <light_purple>[player]</light_purple></white>"
  itemtemplate-usage-header: "<yellow>Item template commands:"
  itemtemplate-usage-itdelete: "<white>/mba itdelete <red>{id}</red></white>"
  itemtemplate-usage-itgive: "<white>/mba itgive <red>{id}</red> <light_purple>[player]</light_purple></white>"
  itemtemplate-usage-itlist: "<white>/mba itlist <light_purple>[page]</light_purple></white>"
  itemtemplate-usage-itsave: "<white>/mba itsave <red>{id}</red></white>"
  itemtemplate-usage-save: "<white>Usage: /mba itemtemplate save <red>{id}</red></white>"

  # ------------------------------------------------------------
  # Help menus
  # ------------------------------------------------------------
  help-command-admin: "<white> admin</white>"
  help-command-admin-admininbox: "<white> admininbox</white>"
  help-command-admin-base: "<white>/mailbox admin</white>"
  help-command-admin-base-alias: "<white> or /mba</white>"
  help-command-admin-clean: "<white> clean</white>"
  help-command-admin-convert: "<white> convert <red>{YAML|SQLITE|MYSQL}</red></white>"
  help-command-admin-convert-current: "<white> convert current</white>"
  help-command-admin-import-playerdata: "<white> import player <red>{name1}</red><light_purple>[,{name2}]</light_purple></white>"
  help-command-admin-inboxnotification: "<white> inboxnotification <light_purple>[on|off]</light_purple></white>"
  help-command-admin-itemtemplate-delete: "<white> itdelete <red>{id}</red></white>"
  help-command-admin-itemtemplate-give: "<white> itgive <red>{id}</red> <light_purple>[player]</light_purple></white>"
  help-command-admin-itemtemplate-list: "<white> itlist <light_purple>[page]</light_purple></white>"
  help-command-admin-itemtemplate-save: "<white> itsave <red>{id}</red></white>"
  help-command-admin-purge: "<white> purge <red>{player|all}</red> CONFIRM</white>"
  help-command-admin-register: "<white> register <red>{playername}</red></white>"
  help-command-admin-reload: "<white> reload</white>"
  help-command-admin-scheduledmail: "<white> scheduledmail <red>{reload|list|info|run|enable|disable}</red></white>"
  help-command-admin-send-book-letter: "<white> sla <red>{recipients}</red> '<red>{message}</red>' --title <red>{title}</red> --from <red>{sender}</red> --delay <red>{seconds}</red></white>"
  help-command-admin-send-cod: "<white> scod <red>{recipients}</red> p:<red>{price}</red> r:<red>{player}</red>/admin <light_purple>[item:amount,t:id:amount,xp:amount]</light_purple> --from <red>{sender}</red> --delay <red>{seconds}</red> --expire <red>{time}</red></white>"
  help-command-admin-send-cod-admin: "<white>Use r:admin to return successful payments and declined/expired Packages to the Shared Admin Inbox.</white>"
  help-command-admin-send-letter: "<white> sl <red>{recipients}</red> '<red>{message}</red>' --from <red>{sender}</red> --delay <red>{seconds}</red></white>"
  help-command-admin-send-money: "<white> sm <red>{recipients}</red> <red>{amount}</red> --from <red>{sender}</red> --delay <red>{seconds}</red></white>"
  help-command-admin-send-package: "<white> sp <red>{recipients}</red> <light_purple>[item:amount,t:id:amount,xp:amount]</light_purple> --from <red>{sender}</red> --delay <red>{seconds}</red></white>"
  help-command-admin-testaimoney: "<white> testaimoney <red>{amount}</red></white>"
  help-command-admin-testaipackage: "<white> testaipackage <red>{codr|codi}</red> <red>{amount}</red></white>"
  help-command-admin-testletter: "<white> testletter <red>{paper|book}</red> <red>{player}</red> <red>{amount}</red></white>"
  help-command-admin-testmoney: "<white> testmoney <red>{standard|cod}</red> <red>{player}</red></white>"
  help-command-admin-testpackage: "<white> testpackage <red>{type}</red> <red>{amount}</red> <red>{player}</red></white>"
  help-command-admin-tools: "<white> tools</white>"
  help-command-admin-unregister: "<white> unregister</white>"
  help-command-admin-update: "<white> update</white>"
  help-command-admin-updatecheck: "<white> updatecheck</white>"
  help-command-base: "<white>/mailbox</white>"
  help-command-base-alias: "<white> or /mb</white>"
  help-command-check: "<white> check</white>"
  help-command-guide: "<white> guide</white>"
  help-command-kit: "<white> kit</white>"
  help-command-letter: "<white> letter</white>"
  help-command-money: "<white> money</white>"
  help-command-open: "<white> open</white>"
  help-command-package: "<white> package</white>"
  help-command-register: "<white> register</white>"
  help-command-settings: "<white> settings</white>"
  help-command-track: "<white> track</white>"
  help-command-unregister: "<white> unregister</white>"
  help-desc-admin-admininbox: "<gray>Open the Shared Admin Inbox."
  help-desc-admin-base: "<gray>Base admin command and opens admin help menu."
  help-desc-admin-clean: "<gray>Cleans MailboxGUI backup files from old upgrades, syncs, and conversions. Confirm mail data is working before use."
  help-desc-admin-convert: "<gray>Converts MailboxGUI storage to the selected mode. The target cannot be the current storage mode."
  help-desc-admin-convert-current: "<gray>Shows the current active MailboxGUI storage mode."
  help-desc-admin-import-playerdata: "<gray>Creates MailboxGUI data for named players who have logged in before."
  help-desc-admin-inboxnotification: "<gray>Toggle online Shared Admin Inbox alerts. Leave off on busy servers unless you want frequent admin notices."
  help-desc-admin-itemtemplate-delete: "<gray>Deletes a saved package item template."
  help-desc-admin-itemtemplate-give: "<gray>Gives a saved package item template."
  help-desc-admin-itemtemplate-list: "<gray>Lists saved package item templates."
  help-desc-admin-itemtemplate-save: "<gray>Saves the held item as a package template."
  help-desc-admin-purge: "<gray>Clears inbox contents without deleting player records, mailboxes, settings, or plugin data."
  help-desc-admin-register: "<gray>Registers a mailbox to a specific player."
  help-desc-admin-reload: "<gray>Reloads configs and language files."
  help-desc-admin-scheduledmail: "<gray>Manage Scheduled Mail tasks from scheduled-mail/scheduled-mail.yml."
  help-desc-admin-send-book-letter: "<gray>Sends an admin book letter by command or console."
  help-desc-admin-send-cod: "<gray>Sends a COD package using Vault currency, item currency, XP, or t:{id} templates."
  help-desc-admin-send-letter: "<gray>Sends an admin classic paper letter by command or console."
  help-desc-admin-send-money: "<gray>Sends admin-origin money mail by command or console."
  help-desc-admin-send-package: "<gray>Sends materials, XP, or t:{id} item templates as a package."
  help-desc-admin-testaimoney: "<gray>Creates Shared Admin Inbox COD money payment test mail items. Amount controls how many are created."
  help-desc-admin-testaipackage: "<gray>Creates Shared Admin Inbox package test mail for returned COD and item-currency payment flows."
  help-desc-admin-testletter: "<gray>Creates multiple paper or book test Letter mail items with complete inbox lore."
  help-desc-admin-testmoney: "<gray>Creates player inbox money or COD payment test mail."
  help-desc-admin-testpackage: "<gray>Creates player inbox package test mail for standard, COD, payment, returned, and accepted package flows."
  help-desc-admin-tools: "<gray>Opens the admin tools menu."
  help-desc-admin-unregister: "<gray>Unregister a player's registered mailbox."
  help-desc-admin-update: "<gray>Stages the latest website release update after confirmation."
  help-desc-admin-updatecheck: "<gray>Checks the website release system for the latest MailboxGUI version."
  help-desc-base: "<gray>Base command and opens help menu."
  help-desc-check: "<gray>Shows a summary of your unchecked mail."
  help-desc-guide: "<gray>Shows how to access mail and choose a mailbox style to build."
  help-desc-kit: "<gray>Gives starter blocks for building a mailbox."
  help-desc-letter: "<gray>Compose and send a Letter without opening a mailbox."
  help-desc-money: "<gray>Send Money Mail by command after choosing a recipient and entering the amount in chat."
  help-desc-open: "<gray>Opens your mailbox menu by command when enabled."
  help-desc-package: "<gray>Compose a Package by command, choose a recipient, add items or XP, and send without using a mailbox access point."
  help-desc-register: "<gray>Register a mailbox."
  help-desc-settings: "<gray>Shows and changes your mailbox settings: notifications, resource pack, and Discord when available."
  help-desc-settings-notification: "<gray>Manage mail notifications, sounds, and mailbox kit reminders."
  help-desc-settings-resourcepack: "<gray>Choose resource-pack icons or built-in icons."
  help-desc-settings-discord: "<gray>Manage Discord mail notifications when available."
  help-desc-settings-notification-status: "<gray>Shows your current notification settings."
  help-desc-settings-notification-offline: "<gray>Choose simple, advanced, or no mail notifications when you join."
  help-desc-settings-notification-online: "<gray>Turn new-mail notifications while online on or off."
  help-desc-settings-notification-soundalert: "<gray>Turn mail notification sounds on or off."
  help-desc-settings-notification-kit: "<gray>Turn mailbox kit reminders on or off."
  help-desc-settings-resourcepack-auto: "<gray>Automatically detect the server resource pack; client-installed packs need on."
  help-desc-settings-resourcepack-on: "<gray>Use custom icons from the matching pack installed and enabled in your Minecraft client."
  help-desc-settings-resourcepack-off: "<gray>Use built-in icons even when a server resource pack is loaded."
  settings-kit-uses-unlimited: "Unlimited"
  help-desc-track: "<gray>Shows delayed mail waiting to be delivered to you."
  help-desc-unregister: "<gray>Unregister a mailbox."
  help-line-top: "<dark_gray><strikethrough>------------------------------------------------</strikethrough>"
  help-page-footer: "<white>Page %page%/%pages% - %command% <red>{page}</red></white>"
  help-section-admin: "<red>Admin Commands"
  help-section-player: "<yellow>Player Commands"
  help-title-main: "<gold><bold>MailboxGUI v%version%</bold>"
  help-title-sub: "<yellow><bold>Mailbox Commands</bold>"

  # ------------------------------------------------------------
  # Player mail and mailboxes
  # ------------------------------------------------------------
  book-letter-draft-opened: "<yellow>A temporary Book and Quill was placed in your hand. Right-click it to write your Book Letter, then click <white>Sign and Close <yellow>to send."
  book-letter-empty: "<red>Book Letter cannot be empty. Reopen the Book and Quill and write at least one page before signing."
  book-letter-progress-saved: "<yellow>Book Letter progress saved. Right-click the Book and Quill again to keep writing, or type <red>cancel <yellow>to cancel."
  book-letter-prompt-message: "<yellow>Use the Book and Quill in your hand to write this Book Letter. Type <red>cancel <yellow>in chat to cancel."
  book-letter-reply-prompt-message: "<yellow>Use the Book and Quill in your hand to write this reply. Type <red>cancel <yellow>in chat to cancel."
  book-letter-sending-unavailable: "<red>Book Letter sending is currently unavailable."
  book-letter-session-locked: "<red>You cannot do anything else until this Book Letter is sent or canceled. Type <yellow>cancel <red>to cancel."
  book-letter-use-book: "<yellow>Use the Book and Quill in your hand to finish this Book Letter, or type <red>cancel <yellow>to cancel. You cannot do anything else until this Book Letter is sent or canceled."
  chat-input-command-blocked: "<red>You are entering mailbox information right now. Type a valid response in chat, or type <yellow>cancel <red>to go back."
  check-cod-packages: "<yellow>COD Packages: <white>%count%"
  check-cod-return-packages: "<yellow>COD Return Packages: <white>%count%"
  check-letters: "<yellow>Letters: <white>%count%"
  check-line-top: "<dark_gray><strikethrough>------------------------------------------------</strikethrough>"
  check-money-mail: "<yellow>Money Mail: <white>%count%"
  check-none: "<gray>You do not have any unchecked mail."
  check-package-contents-hidden: "<gray>Package contents can only be viewed from your mailbox inbox."
  check-packages: "<yellow>Packages: <white>%count%"
  check-paper-letter-hidden-body: "<dark_red><bold>To Read this Letter you must check your inbox. Not viewable from mailbox check command.</bold>"
  check-read-only: "<gray>This view only checks what mail is waiting in your mailbox. To manage or read mail, open your inbox from a Mailbox, Public Access Mailbox, or Public Access NPC."
  check-summary: "<gray>You have <yellow>%total% <gray>unchecked mail items."
  letter-cancelled: "<yellow>Letter creation cancelled."
  letter-command-book-only-paper-mailbox: "<gray>To send a Paper Letter, build a mailbox. Use <yellow>/mb guide<gray> for setup."
  letter-command-book-only-paper-postoffice: "<gray>To send a Paper Letter, use a Public Access Mailbox or build a mailbox. Use <yellow>/mb guide<gray> for mailbox setup."
  letter-command-paper-only-book-mailbox: "<gray>To send a Book Letter, build a mailbox. Use <yellow>/mb guide<gray> for setup."
  letter-command-paper-only-book-postoffice: "<gray>To send a Book Letter, use a Public Access Mailbox or build a mailbox. Use <yellow>/mb guide<gray> for mailbox setup."
  letter-delayed-queue-failed: "<dark_red>✖</dark_red> <red>Letter could not be queued for delayed delivery."
  letter-disabled: "<red>Letters are disabled on this server."
  letter-prompt-message: "<yellow>Type your paper letter message in chat. Use up to %max_length% visible characters, 28 per line, and 17 body lines total. Automatic wrapping and /n share this limit. Colors are supported; //n displays literal /n. Type <red>cancel <yellow> to go back."
  letter-prompt-target: "<yellow>Type the player name to send the letter to. Type <red>cancel <yellow>to cancel."
  letter-reply-prompt-message: "<yellow>Type your reply to <white>%target%<yellow>. Use up to %max_length% visible characters, 28 per line, and 17 body lines total. Automatic wrapping and /n share this limit. Colors are supported; //n displays literal /n. Type <red>cancel <yellow> to return to your inbox."
  letter-reply-unavailable: "<red>This letter cannot be replied to."
  letter-scheduled: "<yellow>Letter to %target% will be delivered in %seconds% seconds."
  letter-sending-unavailable: "<red>Letter sending is currently unavailable."
  letter-sent: "<dark_green>✔</dark_green> <green>Letter sent to %target%."
  letter-sent-money-mailbox: "<dark_green>✔</dark_green> <green>Letter sent to %target%. <gray>To send money mail, build a mailbox. Use <yellow>/mb guide<gray> for setup."
  letter-sent-money-postoffice: "<dark_green>✔</dark_green> <green>Letter sent to %target%. <gray>To send money mail, use a Public Access Mailbox or build a mailbox. Use <yellow>/mb guide<gray> for mailbox setup."
  letter-sent-other-mail-mailbox: "<dark_green>✔</dark_green> <green>Letter sent to %target%. <gray>To send %types%, build a mailbox. Use <yellow>/mb guide<gray> for setup."
  letter-sent-other-mail-postoffice: "<dark_green>✔</dark_green> <green>Letter sent to %target%. <gray>To send %types%, use a Public Access Mailbox or build a mailbox. Use <yellow>/mb guide<gray> for mailbox setup."
  letter-sent-package-mailbox: "<dark_green>✔</dark_green> <green>Letter sent to %target%. <gray>To send a package, build a mailbox. Use <yellow>/mb guide<gray> for setup."
  letter-sent-package-money-mailbox: "<dark_green>✔</dark_green> <green>Letter sent to %target%. <gray>To send packages or money mail, build a mailbox. Use <yellow>/mb guide<gray> for setup."
  letter-sent-package-money-postoffice: "<dark_green>✔</dark_green> <green>Letter sent to %target%. <gray>To send packages or money mail, use a Public Access Mailbox or build a mailbox. Use <yellow>/mb guide<gray> for mailbox setup."
  letter-sent-package-postoffice: "<dark_green>✔</dark_green> <green>Letter sent to %target%. <gray>To send a package, use a Public Access Mailbox or build a mailbox. Use <yellow>/mb guide<gray> for mailbox setup."
  letter-session-expired: "<red>That letter draft expired. Please start again."
  letter-too-long: "<red>Use up to %max_length% visible characters, 28 per line, and 17 body lines total. Automatic wrapping and /n share this limit. Colors are supported; //n displays literal /n. Type <yellow>cancel <red> to go back."
  mailbox-already-registered: "<red>Mailbox already registered. Use /mailbox unregister first."
  mailbox-claimed: "<red>That mailbox is already registered."
  mailbox-command-open-disabled: "<red>Opening your mailbox by command is disabled on this server."
  mailbox-command-open-world-disabled: "<red>This command is not enabled in this world. <gray>Allowed worlds: <white>%worlds%"
  mailbox-command-opened: "<dark_green>✔</dark_green> <green>Opened your mailbox menu."
  mailbox-fence-required: "<red>Personal classic mailboxes require a fence post directly below the mailbox body."
  mailbox-kit-disabled: "<red>Mailbox kits are disabled on this server."
  mailbox-kit-given: "<green>Mailbox kit received: <yellow>%kit%<green>! <gray>Use <yellow>/mb guide <gray>to learn how to set up your mailbox. Uses left: <white>%remaining%<gray>."
  mailbox-kit-list-entry: "<yellow>%kit%"
  mailbox-kit-list-header: "<gold><bold>Mailbox Kits </bold><dark_gray>- <gray>Page <white>%page%<gray>/<white>%pages%"
  mailbox-kit-list-item: "<gray>  - <white>%amount%x <gray>%material%"
  mailbox-kit-list-navigation: "<gray>%previous% <dark_gray>| <gray>%next%"
  mailbox-kit-list-use: "<gray>  Use: <yellow>/mb kit %kit%"
  mailbox-kit-no-uses: "<red>You do not have any mailbox kit uses remaining."
  mailbox-kit-reminder: "<yellow>You can use <gold>/mb kit <yellow>to get mailbox setup blocks. <gray>Use <yellow>/mb guide <gray>for setup help. Uses left: <white>%remaining%<gray>. Disable this reminder with <yellow>/mb settings notification kit off<gray>."
  mailbox-kit-reminder-multiple: "<yellow>You can use <gold>/mb kit <yellow>to view available mailbox kits, then <gold>/mb kit {kitname} <yellow>to choose one. <gray>Uses left: <white>%remaining%<gray>. Disable this reminder with <yellow>/mb settings notification kit off<gray>."
  mailbox-kit-unavailable: "<red>No mailbox kits are available on this server version."
  mailbox-limit-reached: "<red>You have reached the mailbox limit of %max%."
  mailbox-protected: "<red>You cannot break a registered mailbox. Use /mailbox unregister first."
  mailbox-registered: "<dark_green>✔</dark_green> <green>Mailbox registered successfully. You now have %count% mailbox(es)."
  mailbox-sign-claimed: "<red>That sign is already used by another mailbox."
  mailbox-status-loaded: "<green>Loaded"
  mailbox-status-remote-server: "<yellow>Remote Server"
  mailbox-status-unloaded: "<red>Unloaded"
  mailbox-unregister-invalid: "<red>That mailbox could not be unregistered. It may have already been removed."
  mailbox-unregistered: "<yellow>Mailbox unregistered. You now have %count% mailbox(es)."
  money-claim-failed: "<dark_red>✖</dark_red> <red>That money could not be claimed."
  money-delayed-queue-failed: "<dark_red>✖</dark_red> <red>Money mail could not be queued for delayed delivery. Your payment was refunded."
  money-economy-unavailable: "<red>Money mail is unavailable because Vault economy is not hooked."
  money-insufficient-funds: "<red>You do not have enough money for that."
  money-invalid-amount: "<red>That is not a valid amount. Type an amount greater than 0, or type <yellow>cancel <red>to go back."
  money-invalid-item: "<red>That money item is invalid."
  money-message-prompt: "<yellow>Type the message to attach to this money mail. Use up to 256 visible characters, 28 per line, and 17 body lines total. Automatic wrapping and /n share this limit. Colors are supported; //n displays literal /n. Type <white>off <yellow> to remove the message or continue without one, or <white>cancel <yellow> to return."
  money-network-busy: "<red>That money mail is already being processed. Please try again in a moment."
  money-prompt-amount: "<yellow>Type the amount to send to <white>%target%<yellow>. Type <red>cancel <yellow>to go back."
  money-received: "<dark_green>✔</dark_green> <green>You received %amount%."
  money-scheduled: "<yellow>Money Mail of %amount% to %target% will be delivered in %seconds% seconds."
  money-send-cancelled: "<yellow>Money send cancelled."
  money-send-failed: "<dark_red>✖</dark_red> <red>The money could not be sent."
  money-sending-unavailable: "<red>Money Mail is currently unavailable. Check Vault and economy setup."
  money-sent: "<dark_green>✔</dark_green> <green>Sent %amount% to %target%."
  package-cancel-lore: ""
  package-cancel-lore-1: "<gray>Click to cancel and return items."
  package-cancel-name: "<red>Cancel"
  package-cancelled: "<yellow>Package creation cancelled."
  package-check-close-lore-1: "<gray>Return to mailbox check."
  package-check-close-name: "<red>Close"
  package-check-info-lore-1: "<gray>View the contents of this package."
  package-check-info-lore-2: "<dark_gray>Read-only view from /mb check."
  package-check-info-name: "<gold><bold>Package Information</bold>"
  package-cod-accepted: "<green>Package accepted for %price%."
  package-cod-cancelled: "<yellow>COD setup cancelled."
  package-cod-cleared: "<yellow>COD removed from this package."
  package-cod-declined: "<yellow>COD package declined and returned to sender."
  package-cod-disabled-lore-1: "<dark_gray>Vault/economy is unavailable."
  package-cod-disabled-name: "<gray>COD Disabled"
  package-cod-enabled-lore-1: "<gray>Price: <white>%price%"
  package-cod-enabled-lore-2: "<dark_gray>Click to change or remove."
  package-cod-enabled-name: "<red>Cash-On-Demand Enabled"
  package-cod-insufficient: "<red>You need %price% to accept this package."
  package-cod-invalid: "<red>That is not a valid COD price. Type a positive amount, type <yellow>off <red>to disable COD, or type <yellow>cancel <red>to go back."
  package-cod-invalid-item-currency: "<red>That is not a valid item-currency COD price. Example: <yellow>diamond:4,gold_nugget:2,xp:100<red>."
  package-cod-item-currency-disabled: "<red>Item-currency COD is disabled."
  package-cod-item-currency-too-large: "<red>Item-currency COD supports up to %packagesize% item slots for this package size."
  package-cod-item-prompt: "<yellow>Type the Item COD price. Example <white>diamond:4,gold_nugget:2,xp:100<yellow>. Supports up to <white>%packagesize% <yellow>item slots. Type <red>off <yellow>to disable COD, or type <red>cancel <yellow>to go back."
  package-cod-off-lore-1: "<gray>Click to set a Cash-On-Demand price."
  package-cod-off-lore-2: "<dark_gray>Recipient must pay before claiming."
  package-cod-off-name: "<gold>Cash-On-Demand: Off"
  package-cod-open-from-inbox: "<yellow>This COD package must be opened from your mailbox inbox."
  package-cod-payment-failed: "<dark_red>✖</dark_red> <red>Failed to process the COD payment."
  package-cod-payment-type-unavailable: "<red>This COD payment type is currently unavailable."
  package-cod-prompt: "<yellow>Type the COD price. Type <red>off <yellow>to disable COD, or type <red>cancel <yellow>to go back."
  package-cod-prompt-combined: "<yellow>Type the COD price by <white>%currency% <yellow>or item currency. Examples: <white>100 <yellow>or <white>diamond:4,gold_nugget:2,xp:100 <yellow>or <white>100,diamond:3,t:rare-sword:1<yellow>. Vault currency must always be first. Type <red>off <yellow>to disable COD, or type <red>cancel <yellow>to go back."
  package-cod-set: "<green>COD set to <white>%price%<green>."
  package-cod-template-not-found: "<red>That item template could not be found."
  package-cod-unavailable: "<red>COD is unavailable because all COD payment options are disabled."
  package-compose-opened: "<yellow>Place up to %count% items in the package, select if you want cash on demand, and then click confirm."
  package-compose-opened-no-cod: "<yellow>Place up to %count% items in the package, then click confirm."
  package-confirm-lore: ""
  package-confirm-lore-1: "<gray>Click to send this package."
  package-confirm-name: "<green>Confirm Package"
  package-delayed-queue-failed: "<dark_red>✖</dark_red> <red>Package could not be queued for delayed delivery."
  package-disabled: "<red>Packages are disabled on this server."
  package-empty: "<red>You must place at least one item in the package."
  package-experience-cancelled: "<yellow>Experience setup cancelled."
  package-experience-cleared: "<yellow>Package experience removed."
  package-experience-compose-item-lore-1: "<gray>Stored Experience: <white>%experience%"
  package-experience-compose-item-lore-2: "<dark_gray>Right-click to remove experience."
  package-experience-disabled: "<red>Package experience is disabled on this server."
  package-experience-disabled-lore-1: "<dark_gray>Package experience is disabled."
  package-experience-disabled-name: "<gray>Experience Disabled"
  package-experience-invalid-amount: "<red>That is not a valid experience amount. Type an amount greater than 0, type <yellow>off <red>to remove experience, or type <yellow>cancel <red>to go back."
  package-experience-limit-reached: "<red>That is above the package experience limit of %max%."
  package-experience-lore-1: "<gray>Stored Experience: <white>%experience%"
  package-experience-lore-2: "<gray>Your Experience: <white>%player_experience%"
  package-experience-lore-3: "<dark_gray>Click to set package experience."
  package-experience-name: "<green><bold>Add Experience</bold>"
  package-experience-no-empty-slot: "<red>There is no empty package slot available for experience."
  package-experience-not-enough: "<red>You do not have enough experience. You currently have %experience%."
  package-experience-prompt: "<yellow>Type the amount of experience to add. You currently have <white>%experience% <yellow>experience. Type <red>cancel <yellow>to go back."
  package-experience-redeem-failed: "<dark_red>✖</dark_red> <red>That experience could not be redeemed."
  package-experience-redeem-invalid: "<red>That experience package item is invalid."
  package-experience-redeemed: "<dark_green>✔</dark_green> <green>You received <white>%experience% <green>experience."
  package-experience-set: "<green>Package experience set to <white>%experience%<green>."
  package-invalid: "<red>That package is invalid."
  package-message-cancelled: "<yellow>Message editing cancelled."
  package-message-cleared: "<yellow>The package message was removed."
  package-message-disabled-lore-1: "<gray>Attach a message to this package."
  package-message-disabled-name: "<yellow><bold>Add Package Message</bold>"
  package-message-enabled-lore-1: "<gray>A message is attached to this package."
  package-message-enabled-name: "<green><bold>Package Message: Enabled</bold>"
  package-message-lore-2: "<yellow>Click to edit the message."
  package-message-prompt: "<yellow>Type the message to attach to this package. Use up to 256 visible characters, 28 per line, and 17 body lines total. Automatic wrapping and /n share this limit. Colors are supported; //n displays literal /n. Type <white>off <yellow> to remove the message or continue without one, or <white>cancel <yellow> to return."
  package-message-set: "<green>The package message was attached."
  package-nesting-blocked: "<red>You cannot place a MailboxGUI package inside another MailboxGUI package."
  package-network-busy: "<red>That mail item is already being processed. Please try again in a moment."
  package-preview-accept-lore-1: "<gray>Check the top-middle price icon, then click to accept."
  package-preview-accept-name: "<green>Accept Package"
  package-preview-cancel-lore-1: "<gray>Leave this package in your inbox."
  package-preview-cancel-name: "<red>Cancel"
  package-preview-close-lore-1: "<gray>Return to your inbox."
  package-preview-close-name: "<green>Close"
  package-preview-decline-lore-1: "<gray>Return this COD package to the sender."
  package-preview-decline-name: "<yellow>Decline Package"
  package-preview-price-lore-1: "<gray>Price: <white>%price%"
  package-preview-price-lore-2: "<dark_gray>Shown at the top-middle of this preview."
  package-preview-price-name: "<gold><bold>COD Price</bold>"
  package-prompt-target: "<yellow>Type the player name to send the package to. Type <red>cancel <yellow>to go back."
  package-receive-close-lore-1: "<gray>Save remaining contents and return to inbox."
  package-receive-close-name: "<red>Close"
  package-receive-info-lore-1: "<gray>Withdraw items from this package."
  package-receive-info-lore-2: "<dark_gray>The package updates until it is empty."
  package-receive-info-name: "<gold><bold>Package Contents</bold>"
  package-received-opened: "<dark_green>✔</dark_green> <green>Package opened."
  package-return-failed: "<dark_red>✖</dark_red> <red>That package could not be returned to the sender."
  package-scheduled: "<yellow>Package to %target% will be delivered in %seconds% seconds."
  package-sending-unavailable: "<red>Package sending is currently unavailable."
  package-sent: "<dark_green>✔</dark_green> <green>Package sent to %target%."
  package-shulker-not-empty: "<red>You cannot place a shulker box with items inside it into a package."
  package-target-not-found: "<red>That player does not have a registered mailbox."
  player-command-send-world-disabled: "<red>Sending mail by command is not enabled in this world. <gray>Allowed worlds: <white>%worlds%"
  player-only: "<red>This command can only be used by a player."
  postoffice-disabled: "<red>The Public Access Mailbox system is disabled."
  postoffice-invalid-mailbox-block: "<red>You must select a supported mailbox body with its matching sign, or the matching sign itself."
  postoffice-mailbox-already-registered: "<red>That Public Access Mailbox is already registered."
  postoffice-mailbox-not-found: "<red>That Public Access Mailbox was not found."
  postoffice-mailbox-protected: "<red>You cannot break a registered Public Access Mailbox. Unregister it first."
  postoffice-mailbox-registered: "<dark_green>✔</dark_green> <green>Public Access Mailbox registered for <white>%postofficename%<green> as Public Access Mailbox #%number%."
  postoffice-mailbox-unregistered: "<yellow>Public Access Mailbox unregistered."
  postoffice-mailboxes-disabled: "<red>Public Access Mailboxes are disabled."
  postoffice-name-cancelled: "<yellow>Public Access Mailbox setup cancelled."
  postoffice-name-invalid: "<red>That is not a valid Public Access Mailbox name. Use letters, numbers, spaces, apostrophes, underscores, or hyphens, or type <yellow>cancel <red>to go back."
  postoffice-name-prompt: "<yellow>Type the Public Access Mailbox name for this mailbox. Type <red>cancel <yellow>to go back."
  postoffice-no-registered-mailboxes: "<gray>No Public Access Mailboxes are registered."
  postoffice-selector-cancelled: "<yellow>Public Access Mailbox selector cancelled."
  postoffice-selector-remove-prompt: "<yellow>Right-click a registered Public Access Mailbox chest/barrel/sign to remove it. Left-click anywhere to cancel."
  postoffice-selector-set-prompt: "<yellow>Right-click a valid Public Access Mailbox chest/barrel/sign to register it. Left-click anywhere to cancel."

  # ------------------------------------------------------------
  # Administration
  # ------------------------------------------------------------
  admin-audience-all-mailboxes: "All Players"
  admin-audience-offline-mailboxes: "Offline Players"
  admin-audience-online-mailboxes: "Online Players"
  admin-audience-selected-mailbox: "Selected Recipient"
  admin-clean-active-untouched: "<gray>Active mail data and active configuration files were not touched."
  admin-clean-cancelled: "<yellow>MailboxGUI backup cleanup cancelled."
  admin-clean-command-confirm-help: "<yellow>Run <white>/mailbox admin clean<yellow>, then type <white>CLEAN<yellow> or <white>cancel<yellow>."
  admin-clean-command-confirm-not-allowed: "<red>In-game cleanup confirmation must be typed in chat, not as a command."
  admin-clean-commands-blocked: "<red>Commands are blocked until you confirm or cancel."
  admin-clean-complete: "<dark_green>✔</dark_green> <green>MailboxGUI backup cleanup complete. Deleted %files% file(s) and %folders% folder(s)."
  admin-clean-console-confirm: "<gray>To confirm from console, run: <white>/mailbox admin clean confirm"
  admin-clean-console-confirm-alt: "<gray>Or: <white>/mba clean confirm"
  admin-clean-failed: "<dark_red>✖</dark_red> <red>MailboxGUI backup cleanup finished with %failures% failure(s). Check console for details."
  admin-clean-none: "<yellow>No MailboxGUI generated backup files were found to clean."
  admin-clean-pending: "<red>Cleanup confirmation is still pending."
  admin-clean-pending-command: "<red>Cleanup confirmation is pending."
  admin-clean-pending-no-other: "<red>No other chat text or commands can be used until you respond."
  admin-clean-pending-response: "<yellow>Type <white>CLEAN<yellow> to confirm, or <white>cancel<yellow> to cancel."
  admin-clean-player-cancel: "<gray>Type <white>cancel<gray> to cancel."
  admin-clean-player-confirm: "<red>Type <white>CLEAN<red> in chat to confirm."
  admin-clean-player-lock: "<red>You cannot type any other chat text or commands until you type CLEAN or cancel."
  admin-clean-preserved-markers: "<gray>Preserved %markers% internal upgrade marker(s) so old upgrade backups are not recreated."
  admin-clean-starting: "<yellow>Cleaning MailboxGUI generated backup files..."
  admin-clean-warning-check-data: "<gold>⚠</gold> <yellow>Only use this after confirming your current mail data, storage, config, and language files are working correctly."
  admin-clean-warning-header: "<gold>⚠</gold> <yellow>WARNING: This command deletes MailboxGUI generated backup files."
  admin-clean-warning-updated-or-converted: "<gold>⚠</gold> <yellow>If you recently updated MailboxGUI or performed a storage conversion, verify everything works before cleaning backups."
  admin-convert-already-current: "<yellow>MailboxGUI is already using %storage% storage. No conversion was performed."
  admin-convert-backup-created: "<gray>Backup created at: %path%"
  admin-convert-complete: "<dark_green>✔</dark_green> <green>Storage conversion completed: %players% player data record(s), Public Access Mailbox data, %from% -> %to%."
  admin-convert-config-updated: "<dark_green>✔</dark_green> <green>Config updated: storage.type = %storage%"
  admin-convert-current-active: "<gray>Active storage provider: %storage%"
  admin-convert-current-configured: "<gray>Configured storage mode: %storage%"
  admin-convert-current-mismatch: "<yellow>Note: The active storage provider does not match the configured storage mode."
  admin-convert-current-status: "<yellow>Current MailboxGUI storage mode: <green>%storage%"
  admin-convert-current-undetermined: "<red>MailboxGUI could not determine the current storage mode."
  admin-convert-failed: "<dark_red>✖</dark_red> <red>Storage conversion failed. Config was not changed."
  admin-convert-invalid-type: "<red>Invalid storage type. Use YAML, SQLITE, or MYSQL."
  admin-convert-progress-mysql-connecting: "<yellow>Connecting to MySQL database..."
  admin-convert-progress-mysql-creating-tables: "<yellow>Creating MySQL tables if needed..."
  admin-convert-progress-mysql-logging-in: "<yellow>Logging in to MySQL database..."
  admin-convert-progress-mysql-login-success: "<yellow>MySQL login successful."
  admin-convert-progress-mysql-tables-ready: "<yellow>MySQL tables are ready."
  admin-convert-reloaded-active: "<dark_green>✔</dark_green> <green>MailboxGUI reloaded with active storage mode: %storage%"
  admin-convert-remains: "<red>MailboxGUI remains on %storage% storage."
  admin-convert-starting: "<yellow>Starting MailboxGUI storage conversion from %from% to %to%..."
  admin-convert-usage-current: "<white>Usage: /mailbox admin convert current</white>"
  admin-convert-usage-target: "<white>Usage: /mailbox admin convert <red>{YAML|SQLITE|MYSQL}</red></white>"
  admin-import-playerdata-complete: "<dark_green>✔</dark_green> <green>Imported <white>%count% <green>player(s) into MailboxGUI. <gray>Already existing skipped: <white>%existing%<gray>. Not found: <white>%skipped%<gray>. Requested: <white>%source%<gray>."
  admin-import-playerdata-folder-missing: "<red>Could not find the main world playerdata folder."
  admin-import-playerdata-invalid-months: "<red>Please type one or more exact player names. Example: <white>/mailbox admin import player Rismr1,Horndogy"
  admin-import-playerdata-no-pending: "<red>Player import no longer uses confirmation. Use <white>/mailbox admin import player {name1}[,{name2}]<red>."
  admin-import-playerdata-preview-all: "<red>Player import no longer supports importing all players. Use <white>/mailbox admin import player {name1}[,{name2}]<red>."
  admin-import-playerdata-preview-months: "<red>Player import no longer supports month filtering. Use <white>/mailbox admin import player {name1}[,{name2}]<red>."
  admin-import-playerdata-usage: "<white>Usage: /mailbox admin import player <red>{name1}</red><light_purple>[,{name2}]</light_purple></white>"
  admin-inbox-claim-busy: "<yellow>That mail is being claimed by another administrator. Try again in a moment."
  admin-inbox-claim-deposit-failed: "<dark_red>✖</dark_red> <red>The economy deposit failed, so the money mail was kept in the Shared Admin Inbox."
  admin-inbox-claim-economy-unavailable: "<red>Vault economy is unavailable, so the money mail was kept in the Shared Admin Inbox."
  admin-inbox-claim-expired: "<yellow>That Shared Admin Inbox mail expired and was removed."
  admin-inbox-claim-failed: "<dark_red>✖</dark_red> <red>That Shared Admin Inbox mail could not be claimed."
  admin-inbox-claim-items-success: "<dark_green>✔</dark_green> <green>Claimed %items% item stack(s) from the Shared Admin Inbox."
  admin-inbox-claim-money-success: "<dark_green>✔</dark_green> <green>Money Mail claimed from the Shared Admin Inbox."
  admin-inbox-claim-not-found: "<red>That Shared Admin Inbox mail is no longer available."
  admin-inbox-claim-package-success: "<dark_green>✔</dark_green> <green>Returned COD Package claimed from the Shared Admin Inbox."
  admin-inbox-claim-unsupported: "<red>That Shared Admin Inbox mail type cannot be claimed yet."
  admin-inbox-cleanup-busy: "<yellow>Returned COD cleanup is busy. Try again in a moment."
  admin-inbox-cleanup-failed: "<dark_red>✖</dark_red> <red>Returned COD cleanup failed."
  admin-inbox-cleanup-none: "<yellow>There are no returned COD Packages to clear."
  admin-inbox-cleanup-success: "<dark_green>✔</dark_green> <green>Removed %count% returned COD Package(s) from the Shared Admin Inbox."
  admin-inbox-clear-all-failed: "<dark_red>✖</dark_red> <red>Could not clear the Shared Admin Inbox."
  admin-inbox-clear-all-none: "<yellow>The Shared Admin Inbox is already empty."
  admin-inbox-clear-all-success: "<red>Cleared <yellow>%count%<red> mail item(s) from the Shared Admin Inbox."
  admin-inbox-collect-money-failed: "<dark_red>✖</dark_red> <red>Could not collect Shared Admin Inbox money payouts."
  admin-inbox-collect-money-none: "<yellow>There are no money payouts to collect."
  admin-inbox-collect-money-success: "<dark_green>✔</dark_green> <green>Collected <yellow>%count%<green> money payout(s) from the Shared Admin Inbox."
  admin-inbox-disabled: "<red>The Shared Admin Inbox is currently disabled."
  admin-inbox-empty: "<gray>The Shared Admin Inbox is empty."
  admin-inbox-player-only: "<red>Only players can open the Shared Admin Inbox."
  admin-inboxcheck-empty: "<gray>Inbox is empty."
  admin-inboxcheck-entry: "<white>Slot %slot%: <yellow>%item% x%amount%"
  admin-inboxcheck-header: "<yellow>Inbox check for %player%:"
  admin-inboxcheck-money-taken: "<green>Money Mail claimed from the checked player inbox."
  admin-inboxcheck-usage: "<white>Usage: /mailbox admin inboxcheck <red>{player}</red></white>"
  admin-letter-sending-unavailable: "<red>Admin Letter sending is currently unavailable."
  admin-mailbox-registered: "<yellow>Admin registered a mailbox for <white>%player%<yellow>. They now have %count%/%max% mailbox(es)."
  admin-mailbox-unregistered: "<yellow>Admin unregistered a mailbox for <white>%player%<yellow>. They now have %count% mailbox(es)."
  admin-money-sending-unavailable: "<red>Admin Money Mail is currently unavailable. Check Vault and economy setup."
  admin-no-permission: "<red>You do not have admin permission."
  admin-npc-action-failed: "<dark_red>✖</dark_red> <red>Could not update that Citizens NPC. Please check the console for details."
  admin-npc-add-prompt: "<yellow>NPC add mode enabled. <gray>Right-click a Citizens NPC to mark it as a Public Access Mailbox. Left-click anywhere to cancel."
  admin-npc-added: "<green>Public Access Mailbox trait added to NPC <gold>%npc%<green>."
  admin-npc-already-postoffice: "<yellow>That NPC already has the Public Access Mailbox trait."
  admin-npc-not-postoffice: "<red>That NPC does not have the Public Access Mailbox trait."
  admin-npc-remove-prompt: "<yellow>NPC remove mode enabled. <gray>Right-click a Public Access NPC to remove the Public Access Mailbox trait. Left-click anywhere to cancel."
  admin-npc-removed: "<green>Public Access Mailbox trait removed from NPC <gold>%npc%<green>."
  admin-npc-selector-cancelled: "<yellow>NPC selector cancelled."
  admin-package-cod-declined-return-disabled: "<yellow>Admin Inbox declined/expired return disabled."
  admin-package-cod-declined-return-enabled: "<green>Admin Inbox declined/expired return enabled."
  admin-package-cod-payment-return-disabled: "<yellow>Admin Inbox payment return disabled."
  admin-package-cod-payment-return-enabled: "<green>Admin Inbox payment return enabled."
  admin-package-experience-prompt: "<yellow>Type the amount of experience to add to this admin package. Type <red>cancel <yellow>to go back."
  admin-package-sending-unavailable: "<red>Admin Package sending is currently unavailable."
  admin-package-view-claim-failed: "<dark_red>✖</dark_red> <red>Package action failed. Please reopen the mailbox and try again."
  admin-package-view-contents-taken: "<green>Package contents taken."
  admin-package-view-deleted: "<green>Package deleted."
  admin-package-view-expired: "<red>That package has expired."
  admin-package-view-no-longer-available: "<red>That package is no longer available."
  admin-player-not-found: "<red>That player mailbox was not found."
  admin-purge-all-confirm: "<gray>To confirm, run: <white>/mailbox admin purge all CONFIRM"
  admin-purge-all-none: "<yellow>No player inbox or Shared Admin Inbox items were found to purge using %provider% storage."
  admin-purge-all-success: "<dark_green>✔</dark_green> <green>Purge all complete using %provider% storage: %mail% player inbox item(s), %shared% Shared Admin Inbox item(s), %players% player record(s) processed."
  admin-purge-all-warning-body: "<gold>⚠</gold> <yellow>Player records, UUIDs, registered mailboxes, Public Access Mailbox data, NPCs, settings, languages, delayed mail, templates, network index, config, and backups are preserved."
  admin-purge-all-warning-header: "<gold>⚠</gold> <yellow>WARNING: This clears every player inbox and the Shared Admin Inbox."
  admin-purge-busy: "<yellow>A purge or storage maintenance lock is already active. Try again in a moment."
  admin-purge-invalid-confirmation: "<red>Purge confirmation must be the final argument and exactly: <white>CONFIRM"
  admin-purge-partial: "<red>Purge finished with partial failure using %provider% storage: %mail% player inbox item(s), %shared% Shared Admin Inbox item(s), %players% player record(s) processed, %failed% failed."
  admin-purge-player-confirm: "<gray>To confirm, run: <white>/mailbox admin purge %player% CONFIRM"
  admin-purge-player-none: "<yellow>No inbox items were found for %player% using %provider% storage."
  admin-purge-player-not-found: "<red>No MailboxGUI player record was found for %player%."
  admin-purge-player-success: "<dark_green>✔</dark_green> <green>Purged %count% inbox item(s) from %player% using %provider% storage."
  admin-purge-player-warning-count: "<gold>⚠</gold> <yellow>Current purge preview: %count% inbox item(s). Player records, mailbox registrations, settings, delayed mail, and backups are preserved."
  admin-purge-player-warning-header: "<gold>⚠</gold> <yellow>WARNING: This will clear only %player%'s inbox contents."
  admin-purge-provider-error: "<dark_red>✖</dark_red> <red>Purge failed because the active storage provider reported an error: %error%"
  admin-purge-usage: "<white>Usage: /mailbox admin purge <red>{player|all}</red> CONFIRM</white>"
  admin-purge-validation-failed: "<dark_red>✖</dark_red> <red>Purge validation failed. No purge status could be confirmed."
  admin-register-cancelled: "<yellow>Admin mailbox registration cancelled."
  admin-register-prompt: "<yellow>Right-click the mailbox chest/barrel or its front sign to register a mailbox for <white>%player%<yellow>. Left-click anything to cancel."
  admin-registered-mailbox-removed: "<yellow>Registered Mailbox #%index% from %player% removed from the database."
  admin-reload-complete: "<dark_green>✔</dark_green> <green>MailboxGUI configuration and language files reloaded."
  admin-sendmail-book-letter-draft-opened: "<yellow>A temporary Book and Quill was placed in your hand. Right-click it to write the admin Book Letter, then click <white>Sign and Close <yellow>to send."
  admin-sendmail-book-letter-empty: "<red>Admin Book Letter cannot be empty. Reopen the Book and Quill and write at least one page before signing."
  admin-sendmail-book-letter-message-edit-prompt: "<yellow>Use the Book and Quill in your hand to edit this admin Book Letter. Sign and close the book to send it."
  admin-sendmail-book-letter-message-prompt: "<yellow>Use the Book and Quill in your hand to write this admin Book Letter. Type <red>cancel <yellow>in chat to cancel."
  admin-sendmail-book-letter-progress-saved: "<yellow>Admin Book Letter progress saved. Right-click the Book and Quill again to keep writing, or type <red>cancel <yellow>to cancel."
  admin-sendmail-book-letter-session-expired: "<red>That admin Book Letter draft expired. Please start again."
  admin-sendmail-book-letter-session-locked: "<red>You cannot do anything else until this admin Book Letter is sent or canceled. Type <yellow>cancel <red>to cancel."
  admin-sendmail-book-letter-use-book: "<yellow>Use the Book and Quill in your hand to finish this admin Book Letter, or type <red>cancel <yellow>to cancel. You cannot do anything else until this Book Letter is sent or canceled."
  admin-sendmail-cancelled: "<yellow>Admin mail send cancelled."
  admin-sendmail-expiration-invalid: "<red>Expiration must be a positive whole-number duration ending in s, m, h, hr, or d."
  admin-sendmail-expiration-prompt: "<yellow>Type an expiration duration such as <white>10m<yellow>, <white>1hr<yellow>, or <white>2d<yellow>. Type <red>cancel <yellow>to go back."
  admin-sendmail-letter-cancelled: "<yellow>Admin letter send cancelled."
  admin-sendmail-letter-prompt: "<yellow>Type the admin paper letter message for <white>%audience%<yellow>. Use up to 256 visible characters, 28 per line, and 17 body lines total. Automatic wrapping and /n share this limit. Colors are supported; //n displays literal /n. Type <red>cancel <yellow> to go back."
  admin-sendmail-letter-selected-prompt: "<yellow>Type the admin paper letter message for <white>%target%<yellow>. Use up to 256 visible characters, 28 per line, and 17 body lines total. Automatic wrapping and /n share this limit. Colors are supported; //n displays literal /n. Type <red>cancel <yellow> to go back."
  admin-sendmail-letter-sent: "<dark_green>✔</dark_green> <green>Admin letter sent to %count% player(s) for %audience%."
  admin-sendmail-letter-sent-selected: "<dark_green>✔</dark_green> <green>Admin letter sent to <white>%target%<green>."
  admin-sendmail-money-prompt: "<yellow>Type the admin money amount for <white>%audience%<yellow>. Type <red>cancel <yellow>to go back."
  admin-sendmail-money-selected-prompt: "<yellow>Type the admin money amount for <white>%target%<yellow>. Type <red>cancel <yellow>to go back."
  admin-sendmail-money-sent: "<dark_green>✔</dark_green> <green>Admin money delivery of %amount% sent to %count% player(s) for %audience%."
  admin-sendmail-money-sent-selected: "<dark_green>✔</dark_green> <green>Admin money delivery of %amount% sent to <white>%target%<green>."
  admin-sendmail-no-targets: "<red>No players matched that admin audience."
  admin-sendmail-package-empty: "<red>You must place at least one item in the admin package."
  admin-sendmail-package-opened: "<yellow>Create the admin package for <white>%audience%<yellow>. Place up to %count% items in the package, select if you want cash on demand, and then click confirm."
  admin-sendmail-package-opened-no-cod: "<yellow>Create the admin package for <white>%audience%<yellow>. Place up to %count% items in the package, then click confirm."
  admin-sendmail-package-selected-opened: "<green>Admin package compose opened for <white>%target%<green>. Place up to %count% items in the package, select if you want cash on demand, and then click confirm."
  admin-sendmail-package-selected-opened-no-cod: "<green>Admin package compose opened for <white>%target%<green>. Place up to %count% items in the package, then click confirm."
  admin-sendmail-package-sent: "<dark_green>✔</dark_green> <green>Admin package sent to %count% player(s) for %audience%."
  admin-sendmail-package-sent-selected: "<dark_green>✔</dark_green> <green>Admin package sent to <white>%target%<green>."
  admin-testaimoney-sent: "<green>Created <yellow>%count%<green> Shared Admin Inbox test money mail item(s)."
  admin-testaimoney-usage: "<white>Usage: /mba testaimoney <red>{amount}</red></white>"
  admin-testaipackage-sent: "<green>Created <yellow>%count%<green> Shared Admin Inbox test package(s)."
  admin-testaipackage-usage: "<white>Usage: /mba testaipackage <red>{codr|codi}</red> <red>{amount}</red></white>"
  admin-testletter-invalid-amount: "<red>Amount must be a positive number."
  admin-testletter-sent: "<green>Created <yellow>%count%<green> test letter(s) for <white>%target%<green>."
  admin-testletter-usage: "<white>Usage: /mba testletter <red>{paper|book}</red> <red>{player}</red> <red>{amount}</red></white>"
  admin-testmoney-sent: "<green>Created test money mail for <white>%target%<green>."
  admin-testmoney-usage: "<white>Usage: /mba testmoney <red>{standard|cod}</red> <red>{player}</red></white>"
  admin-testpackage-sent: "<green>Created <yellow>%count%<green> test package(s) for <white>%target%<green>."
  admin-testpackage-usage: "<white>Usage: /mba testpackage <red>{standard|codv|codi|codvi|codip|codr|coda}</red> <red>{amount}</red> <red>{player}</red></white>"
  admin-unregister-cancelled: "<yellow>Admin mailbox unregister cancelled."
  admin-unregister-prompt: "<yellow>Right-click any mailbox chest/barrel or sign to unregister it. Left-click anything to cancel."
  adminsend-book-letter-no-permission: "<red>You do not have permission to send admin book letters by command."
  adminsend-book-message-blank: "<red>Book letter message cannot be blank."
  adminsend-cod-command-unavailable-1: "<red>Admin COD packages are unavailable. /mba scod requires cash-on-demand to be enabled with at least one payment option."
  adminsend-cod-command-unavailable-2: "<red>Enable package.cash-on-demand.vault-economy-currency with Vault/economy or package.cash-on-demand.item-currency."
  adminsend-cod-price-invalid: "Invalid COD price."
  adminsend-cod-return-blank: "<red>COD return recipient cannot be blank. Use r:{player}."
  adminsend-cod-return-bulk-not-allowed: "<red>COD return recipient must be one player only. Bulk recipient tags cannot be used with r:{player}."
  adminsend-cod-return-must-have-joined: "<red>Mail was not sent. The return recipient must have joined the server before."
  adminsend-cod-return-one-player: "<red>COD return recipient must be one player only."
  adminsend-cod-return-only-one: "<red>Only one COD return recipient tag is allowed."
  adminsend-cod-return-playerdata-not-found: "<red>Could not find server playerdata for COD return recipient: %player%"
  adminsend-delay-invalid: "<red>--delay must be zero or greater."
  adminsend-delay-requires-value: "<red>--delay requires a value in seconds."
  adminsend-expire-duplicate: "<red>--expire can only be used once."
  adminsend-expire-invalid: "<red>--expire must be a positive whole-number duration ending in s, m, h, hr, or d."
  adminsend-expire-requires-value: "<red>--expire requires a duration such as 10m, 1hr, or 2d."
  adminsend-flag-requires-value: "<red>%flag% requires a value."
  adminsend-from-empty: "<red>--from sender name cannot be empty."
  adminsend-from-quote-unclosed: "<red>--from has an opening quote without a matching closing quote."
  adminsend-from-requires-value: "<red>--from requires a sender name."
  adminsend-letter-message-blank: "<red>Letter message cannot be blank."
  adminsend-letter-no-permission: "<red>You do not have permission to send admin letters by command."
  adminsend-letter-unavailable: "<red>Admin Letter command sending is disabled or unavailable."
  adminsend-message-empty: "<red>--message cannot be empty."
  adminsend-message-quote-unclosed: "<red>--message has an opening quote without a matching closing quote."
  adminsend-message-requires-value: "<red>--message requires a message."
  adminsend-message-too-long: "<red>--message: Use up to 256 visible characters and 17 body lines total. Automatic wrapping and /n share this limit."
  adminsend-money-command-unavailable-1: "<red>Admin money mail is unavailable. /mba sm requires money mail to be enabled and an active Vault economy provider."
  adminsend-money-command-unavailable-2: "<red>Install Vault and a compatible economy plugin, then make sure money.enabled is true."
  adminsend-money-greater-than-zero: "<red>Money amount must be greater than zero."
  adminsend-money-invalid-number: "<red>Money amount must be a valid number."
  adminsend-money-no-permission: "<red>You do not have permission to send admin money by command."
  adminsend-money-unavailable: "<red>Admin Money Mail command sending is disabled or unavailable."
  adminsend-none: "none"
  adminsend-package-contents-empty: "<red>Package contents cannot be empty."
  adminsend-package-invalid-item-amount: "<red>Invalid amount for item: %token%"
  adminsend-package-invalid-item-format: "<red>Invalid item format: %token%. Use item:amount or xp:amount."
  adminsend-package-limit-exceeded: "<red>Package exceeds the configured package limit. Requested %requested% content slot(s), but this server only allows %limit%."
  adminsend-package-no-permission: "<red>You do not have permission to send admin packages by command."
  adminsend-package-unavailable: "<red>Admin Package command sending is disabled or unavailable."
  adminsend-package-unknown-material: "<red>Unknown material: %material%"
  adminsend-package-unknown-template: "<red>Unknown item template: %id%"
  adminsend-player-must-have-joined: "<red>Mail was not sent. The player must have joined the server before."
  adminsend-playerdata-not-found: "<red>Could not find server playerdata for: %players%"
  adminsend-recipient-required: "<red>At least one recipient is required."
  adminsend-result-failure-line: "<dark_red>✖</dark_red> <red>- %recipient%: %status% - %message%"
  adminsend-result-more-failures: "<red>...and %count% more failure(s)."
  adminsend-result-null: "<red>MailboxGUI send failed: no result was returned."
  adminsend-result-request: "Request"
  adminsend-result-summary-success: "<dark_green>✔</dark_green> <green>MailboxGUI send complete: %delivered% delivered, %queued% queued, %failed% failed."
  adminsend-result-summary-warning: "<gold>⚠</gold> <yellow>MailboxGUI send complete: %delivered% delivered, %queued% queued, %failed% failed."
  adminsend-usage-book-letter: "<white>Usage: /mba sla <red>{recipient[,recipient2]|allplayers|onlineplayers|offlineplayers}</red> '<red>{message}</red>' --title <red>{booktitle}</red> <light_purple>[--from {sender}]</light_purple> <light_purple>[--delay {seconds}]</light_purple> <light_purple>[--expire {duration}]</light_purple>%target_options%</white>"
  adminsend-usage-cod-package: "<white>Usage: /mba scod <red>{recipient[,recipient2]|allplayers|onlineplayers|offlineplayers}</red> p:<red>{price|price,item:amount,t:{id}:amount}</red> r:<red>{player|admin}</red> <light_purple>[item:amount,t:{id}:amount,xp:amount]</light_purple> --from <red>{sender}</red> <light_purple>[--message \"{message}\"]</light_purple> --delay <red>{seconds}</red> --expire <red>{duration}</red>%target_options%</white>"
  adminsend-usage-letter: "<white>Usage: /mba sl <red>{recipient[,recipient2]|allplayers|onlineplayers|offlineplayers}</red> <light_purple>[from]</light_purple> '<red>{message}</red>' or /mba sl <red>{recipients}</red> --from <red>{sender}</red> --delay <red>{seconds}</red> --expire <red>{duration}</red>%target_options% '<red>{message}</red>'</white>"
  adminsend-usage-money: "<white>Usage: /mba sm <red>{recipient[,recipient2]|allplayers|onlineplayers|offlineplayers}</red> <light_purple>[from]</light_purple> <red>{amount}</red> or /mba sm <red>{recipients}</red> --from <red>{sender}</red> <light_purple>[--message \"{message}\"]</light_purple> --delay <red>{seconds}</red> --expire <red>{duration}</red>%target_options% <red>{amount}</red></white>"
  adminsend-usage-package: "<white>Usage: /mba sp <red>{recipient[,recipient2]|allplayers|onlineplayers|offlineplayers}</red> <light_purple>[from]</light_purple> <red>{item:amount|t:{id}:amount|xp:amount...}</red> <light_purple>[--from {sender}]</light_purple> <light_purple>[--message \"{message}\"]</light_purple> <light_purple>[--delay {seconds}]</light_purple> <light_purple>[--expire {duration}]</light_purple>%target_options%</white>"

  # ------------------------------------------------------------
  # Mail items and contents
  # ------------------------------------------------------------
  book-letter-page-admin-back: "<blue><underlined>[Back to Player Inbox]</underlined>"
  book-letter-page-back: "<blue><underlined>[Back to Inbox]</underlined>"
  book-letter-page-date: "<gray>Date: %date%"
  book-letter-page-from: "<gray>From: %sender%"
  book-letter-page-next: "<dark_green>Go to the next page to read this Book Letter."
  book-letter-page-reply: "<blue><underlined>[Reply]</underlined>"
  item-admin-inbox-letter-delete-lore: "<red>Right-Click to <bold>Delete</bold>"
  item-admin-inbox-lore-remove: "<red>Right-Click to <bold>Delete</bold>"
  item-admin-inbox-money-delete-lore: "<red>Right-Click to <bold>Delete</bold>"
  item-admin-inbox-money-lore-warning: "<dark_red><bold>WARNING THE MONEY WILL BE LOST!</bold>"
  item-admin-inbox-money-take-lore: "<red>Shift-Right-Click to <bold>Take</bold>"
  item-book-letter-lore-read: "<red>Left-Click to <bold>Read</bold>"
  item-book-letter-lore-reply: "<red>Shift-Right-Click to <bold>Respond</bold>"
  item-common-blank-line: ""
  item-letter-lore-delete: "<red>Right-Click to <bold>Delete</bold>"
  item-letter-lore-from: "<gray>From: <white><bold>%sender%</bold>"
  item-letter-lore-from-admin: "<gray>From: %sender%"
  item-letter-lore-reply: "<red>Left-Click to <bold>Respond</bold>"
  item-letter-lore-take: "<red>Shift-Left-Click to <bold>Take</bold>"
  item-letter-name: "<gold><bold>Letter</bold>"
  item-mail-lore-expires-on: "<dark_gray>Expires on: <white>%date%"
  item-mail-lore-message-heading: "<gray>Message:"
  item-mail-lore-returned-at: "<gray>Returned: %datetime%"
  item-mail-lore-sent-at: "<gray>Sent: %datetime%"
  item-mail-lore-separator: "<dark_gray><strikethrough>----------------------------</strikethrough>"
  item-money-cod-payment-name: "<gold><bold>Cash on Demand Payment</bold>"
  item-money-lore-amount: "<gray>Amount: <gold><bold>%amount%</bold>"
  item-money-lore-claim: "<yellow><bold>Any click to claim</bold>"
  item-money-lore-from: "<gray>From: <white><bold>%sender%</bold>"
  item-money-lore-from-admin: "<gray>From: %sender%"
  item-money-name: "<gold><bold>Money Delivery</bold>"
  item-package-accepted-cod-name: "<gold><bold>Accepted Cash-On-Demand Package</bold>"
  item-package-cod-item-payment-name: "<gold><bold>Cash-On-Demand Item Currency Payment</bold>"
  item-package-cod-name: "<gold><bold>Cash-On-Demand Package</bold>"
  item-package-name: "<gold><bold>Package</bold>"
  item-package-return-reason-declined: "Declined"
  item-package-return-reason-expired: "Expired"
  item-package-returned-cod-name: "<gold><bold>Returned Cash-On-Demand Package</bold>"
  mail-type-book-letter: "Book Letter"
  mail-type-cod-item-currency-payment: "COD Item Currency Payment"
  mail-type-cod-package: "COD Package"
  mail-type-cod-packages: "COD Packages"
  mail-type-letter: "Letter"
  mail-type-letters: "Letters"
  mail-type-mail: "Mail"
  mail-type-money: "Money"
  mail-type-money-mail: "Money Mail"
  mail-type-package: "Package"
  mail-type-packages: "Packages"
  mail-type-returned-cod-package: "Returned COD Package"
  package-experience-display-claim: "<yellow><bold>Any click to claim</bold>"
  package-experience-display-cod-preview: "<red>Accept COD Package before you can claim this XP"
  package-experience-display-name: "<green>Experience Package"
  package-experience-display-stored: "<gray>Stored Experience: <green>%experience%"
  package-item-accepted-cod-lore: "<gold><bold>Accepted Cash-On-Demand Package</bold>"
  package-item-cod-lore: "<red>Price: <white>%price%"
  package-item-experience-lore: "<green>Experience Included: <white>%experience%"
  package-item-from-lore: "<gray>From: <white><bold>%sender%</bold>"
  package-item-open-lore: "<red>Right-Click to <bold>Open</bold>"
  package-item-preview-lore: "<red>Right-Click to <bold>Preview</bold>"
  package-item-price-continued-lore: "<white>%price%"
  package-item-price-lore: "<red>Price: <white>%price%"
  package-item-returned-lore: "<gold><bold>Returned Cash-On-Demand Package</bold>"
  package-item-size-lore: "<gray>Contents Size: <white>%count%"

  # ------------------------------------------------------------
  # GUI titles and controls
  # ------------------------------------------------------------
  admin-inbox-notification-title: "<gold><bold>Shared Admin Inbox Notifications</bold>"
  admin-sendmail-book-letter-selected-title-prompt: "<yellow>Use the Book and Quill in your hand to write this admin Book Letter. Sign and close the book to send it."
  admin-sendmail-book-letter-title-edit-prompt: "<yellow>Use the Book and Quill in your hand to edit this admin Book Letter. Sign and close the book to send it."
  admin-sendmail-book-letter-title-invalid: "<red>Admin Book Letter title cannot be blank. Reopen the Book and Quill, click Sign, enter a title, then click Sign and Close."
  admin-sendmail-book-letter-title-prompt: "<yellow>Use the Book and Quill in your hand to write this admin Book Letter. Sign and close the book to send it."
  admin-update-check-title: "<yellow>Update Check"
  admin-update-release-title: "<gray>Title: <white>%title%"
  admin-update-title: "<yellow>Update"
  adminsend-book-title-blank: "<red>Book letter title cannot be blank. Use --title {booktitle}."
  adminsend-title-requires-value: "<red>--title requires a book title."
  api-result-detail-book-title-blank: "Book letter title cannot be blank."
  book-letter-page-title: "<gold>MailboxGUI Book Letter"
  book-letter-prompt-title: "<yellow>Use the Book and Quill in your hand to write this Book Letter. Right-click it, write your pages, then click <white>Sign<yellow> and <white>Sign and Close<yellow> to send."
  book-letter-reply-prompt-title: "<yellow>Use the Book and Quill in your hand to write this reply. Sign and close the book to send it back to the original sender."
  book-letter-title-invalid: "<red>Book Letter title cannot be blank. Reopen the Book and Quill, click Sign, enter a title, then click Sign and Close."
  check-title: "<gold><bold>Mailbox Status</bold>"
  gui-admin-audience-all-lore-1: "<gray>Targets every player with MailboxGUI data."
  gui-admin-audience-all-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>All Players</bold></gradient>"
  gui-admin-audience-offline-lore-1: "<gray>Targets mailbox players who are offline."
  gui-admin-audience-offline-name: "<gradient:#3D454E:#67727D:#3D454E><bold>Offline Players</bold></gradient>"
  gui-admin-audience-online-lore-1: "<gray>Targets every online player."
  gui-admin-audience-online-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Online Players</bold></gradient>"
  gui-admin-audience-selected-lore-1: "<gray>Open the recipient selector."
  gui-admin-audience-selected-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Select Recipient(s)</bold></gradient>"
  gui-admin-close-lore-1: "<gray>Close this menu."
  gui-admin-close-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Close</gradient>"
  gui-admin-expiration-title: "<gradient:#2E3440:#465263:#2E3440>Mail Expiration</gradient>"
  gui-admin-expiration-with-lore-1: "<gray>Set a duration before composing mail."
  gui-admin-expiration-with-name: "<gradient:#A83E4A:#FF7B86:#A83E4A><bold>With Expiration</bold></gradient>"
  gui-admin-expiration-without-lore-1: "<gray>Send mail that does not expire."
  gui-admin-expiration-without-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Without Expiration</bold></gradient>"
  gui-admin-inbox-cleanup-cancel-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Cancel</gradient>"
  gui-admin-inbox-cleanup-confirm-title: "<gradient:#48272B:#6A383E:#48272B>Clear Returned COD Packages?</gradient>"
  gui-admin-inbox-cleanup-continue-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A>Continue</gradient>"
  gui-admin-inbox-cleanup-lore-1: "<gray>Clear returned COD Package mail only."
  gui-admin-inbox-cleanup-lore-2: "<dark_gray>Payment mail and other mail remain."
  gui-admin-inbox-cleanup-name: "<gold>⚠</gold> <gradient:#A83E4A:#FF7B86:#A83E4A><bold>Clear Inbox of COD Return Packages</bold></gradient>"
  gui-admin-inbox-cleanup-warning-1: "<red>This permanently removes every returned COD Package."
  gui-admin-inbox-cleanup-warning-2: "<red>Package items and experience will be lost."
  gui-admin-inbox-cleanup-warning-3: "<dark_gray>COD payment mail and all other mail remain."
  gui-admin-inbox-clear-button-lore-1: "<red>Clear entire Mailbox Data"
  gui-admin-inbox-clear-button-lore-2: "<gray>Removes all mailbox data for this player, including inbox items and queued mail"
  gui-admin-inbox-clear-button-name: "<gold>⚠</gold> <gradient:#A83E4A:#FF7B86:#A83E4A><bold>Clear entire Mailbox Data</bold></gradient>"
  gui-admin-inbox-clear-confirm-lore-1: "<red>This will clear all mail data for this player."
  gui-admin-inbox-clear-confirm-lore-2: "<red>Inbox items and queued mail will be deleted."
  gui-admin-inbox-clear-confirm-lore-3: "<dark_red><bold>This cannot be recovered.</bold>"
  gui-admin-inbox-clear-confirm-lore-4: "<dark_gray>Only continue if you are absolutely sure."
  gui-admin-inbox-clear-confirm-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Accept</bold></gradient>"
  gui-admin-inbox-clear-decline-lore-1: "<gray>Return to the inbox view."
  gui-admin-inbox-clear-decline-name: "<gradient:#A83E4A:#FF7B86:#A83E4A><bold>Decline</bold></gradient>"
  gui-admin-inbox-clear-title: "<gradient:#48272B:#6A383E:#48272B>Confirm Mailbox Data Clear</gradient>"
  gui-admin-inbox-package-delete-lore: "<red>Shift-Right-Click to <bold>Delete Package</bold>"
  gui-admin-inbox-package-edit-lore: "<red>Right-Click to <bold>View Package</bold>"
  gui-admin-inbox-package-view-lore: "<red>Right-Click to <bold>View Package</bold>"
  gui-admin-inbox-target-empty-lore-1: "<gray>There are no mailbox targets to inspect."
  gui-admin-inbox-target-empty-lore-2: "<dark_gray>Players can still receive data when they use a Public Access Mailbox inbox."
  gui-admin-inbox-target-empty-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>No Mailboxes Listed</bold></gradient>"
  gui-admin-inbox-target-info-lore-2: "<gray>Registered Mailboxes: <white>%count%"
  gui-admin-inbox-target-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>Mailbox List</gradient>"
  gui-admin-inbox-target-player-lore-1: "<gray>Admin Inbox Check"
  gui-admin-inbox-target-title: "<gradient:#2E3440:#465263:#2E3440>Admin Inbox Check</gradient>"
  gui-admin-inbox-view-back-lore-1: "<gray>Return to the previous menu."
  gui-admin-inbox-view-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Back</gradient>"
  gui-admin-inbox-view-info-lore-1: "<gray>Mailbox Owner: <white>%target%"
  gui-admin-inbox-view-info-lore-3: "<gray>Stored Mail Items: <white>%count%"
  gui-admin-inbox-view-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>Inbox View</gradient>"
  gui-admin-inbox-view-title: "<gradient:#2E3440:#465263:#2E3440>Viewing Inbox</gradient>"
  gui-admin-letter-all-lore-1: "<gray>Send an admin letter."
  gui-admin-letter-all-lore-2: "<dark_gray>Targets every player with MailboxGUI data."
  gui-admin-letter-all-name: "<gradient:#64798B:#C5D3DF:#64798B><bold>Letter -> All Players</bold></gradient>"
  gui-admin-letter-menu-title: "<gradient:#4A3821:#6A512E:#4A3821>Server Letter Menu</gradient>"
  gui-admin-letter-online-lore-1: "<gray>Send an admin letter."
  gui-admin-letter-online-lore-2: "<dark_gray>Targets every online player."
  gui-admin-letter-online-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Letter -> Online Players</bold></gradient>"
  gui-admin-letter-selected-lore-1: "<gray>Open the recipient selector."
  gui-admin-letter-selected-lore-2: "<dark_gray>Send admin letter to one player."
  gui-admin-letter-selected-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Letter -> Selected Recipient</bold></gradient>"
  gui-admin-letter-type-book-lore-1: "<gray>Send an admin written book letter."
  gui-admin-letter-type-book-lore-2: "<dark_gray>Includes a title and readable book pages."
  gui-admin-letter-type-book-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Book Letter</bold></gradient>"
  gui-admin-letter-type-classic-lore-1: "<gray>Send an admin paper letter."
  gui-admin-letter-type-classic-lore-2: "<dark_gray>Uses the existing admin letter flow."
  gui-admin-letter-type-classic-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Paper Letter</bold></gradient>"
  gui-admin-letter-type-header-lore-1: "<gray>Choose the admin letter format."
  gui-admin-letter-type-header-lore-2: "<dark_gray>Classic uses paper. Book letters use books."
  gui-admin-letter-type-header-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Select Admin Letter Type</bold></gradient>"
  gui-admin-letter-type-title: "<gradient:#4A3821:#6A512E:#4A3821>Select Admin Letter Type</gradient>"
  gui-admin-money-all-lore-1: "<gray>Send an admin money delivery."
  gui-admin-money-all-lore-2: "<dark_gray>Targets every player with MailboxGUI data."
  gui-admin-money-all-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Money -> All Players</bold></gradient>"
  gui-admin-money-menu-title: "<gradient:#203F31:#315C46:#203F31>Server Money Menu</gradient>"
  gui-admin-money-online-lore-1: "<gray>Send an admin money delivery."
  gui-admin-money-online-lore-2: "<dark_gray>Targets every online player."
  gui-admin-money-online-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Money -> Online Players</bold></gradient>"
  gui-admin-money-selected-lore-1: "<gray>Open the recipient selector."
  gui-admin-money-selected-lore-2: "<dark_gray>Send admin money to one player."
  gui-admin-money-selected-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Money -> Selected Recipient</bold></gradient>"
  gui-admin-npc-remove-lore-1: "<gray>Select a Citizens NPC to remove Public Access Mailbox."
  gui-admin-npc-remove-lore-2: "<dark_gray>Right-click an NPC to remove access. Left-click to cancel."
  gui-admin-npc-remove-name: "<gradient:#A83E4A:#FF7B86:#A83E4A><bold>Remove Public Access NPC</bold></gradient>"
  gui-admin-npc-set-lore-1: "<gray>Select a Citizens NPC to provide Public Access Mailbox."
  gui-admin-npc-set-lore-2: "<dark_gray>Right-click an NPC to apply access. Left-click to cancel."
  gui-admin-npc-set-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Set Public Access NPC</bold></gradient>"
  gui-admin-npc-title: "<gradient:#2E3440:#465263:#2E3440>Public Access NPC Set / Remove</gradient>"
  gui-admin-package-action-cancel-lore-1: "<gray>Return to the previous menu."
  gui-admin-package-action-cancel-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Back</gradient>"
  gui-admin-package-action-delete-lore-1: "<gray>Delete this package from the player's inbox."
  gui-admin-package-action-delete-lore-2: "<dark_gray>No money is paid and no return package is created."
  gui-admin-package-action-delete-name: "<gold>⚠</gold> <gradient:#A83E4A:#FF7B86:#A83E4A><bold>Delete Package</bold></gradient>"
  gui-admin-package-action-take-lore-1: "<gray>Take all contents from this package."
  gui-admin-package-action-take-lore-2: "<dark_gray>Removes the package from the player's inbox."
  gui-admin-package-action-take-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Take Contents</bold></gradient>"
  gui-admin-package-action-title: "<gradient:#352746:#55406B:#352746>View Package</gradient>"
  gui-admin-package-all-lore-1: "<gray>Send an admin package."
  gui-admin-package-all-lore-2: "<dark_gray>Targets every player with MailboxGUI data."
  gui-admin-package-all-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Package -> All Players</bold></gradient>"
  gui-admin-package-cancel-lore-1: "<gray>Cancel and return package contents."
  gui-admin-package-cancel-name: "<gradient:#A83E4A:#FF7B86:#A83E4A><bold>Cancel</bold></gradient>"
  gui-admin-package-cod-declined-return-declined-only-disabled-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Return Declined COD Packages: Disabled</gradient>"
  gui-admin-package-cod-declined-return-declined-only-enabled-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A>Return Declined COD Packages: Enabled</gradient>"
  gui-admin-package-cod-declined-return-declined-only-lore-1: "<gray>Returns declined COD Package contents to the Admin Inbox."
  gui-admin-package-cod-declined-return-disabled-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Return Declined/Expired COD Packages: Disabled</gradient>"
  gui-admin-package-cod-declined-return-enabled-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A>Return Declined/Expired COD Packages: Enabled</gradient>"
  gui-admin-package-cod-declined-return-lore-1: "<gray>Returns declined or expired COD Package contents to the Admin Inbox."
  gui-admin-package-cod-declined-return-lore-2: "<dark_gray>COD must be set for this to work."
  gui-admin-package-cod-declined-return-lore-3: "<yellow>Click to toggle."
  gui-admin-package-cod-payment-return-disabled-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>COD Payment Return to Admin Inbox: Disabled</gradient>"
  gui-admin-package-cod-payment-return-enabled-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A>COD Payment Return to Admin Inbox: Enabled</gradient>"
  gui-admin-package-cod-payment-return-lore-1: "<gray>Returns successful COD payments to the Shared Admin Inbox."
  gui-admin-package-cod-payment-return-lore-2: "<dark_gray>COD must be enabled for this to work."
  gui-admin-package-cod-payment-return-lore-3: "<yellow>Click to toggle."
  gui-admin-package-compose-title: "<gradient:#352746:#55406B:#352746>Create Admin Package</gradient>"
  gui-admin-package-experience-lore-1: "<gray>Stored Experience: <white>%experience%"
  gui-admin-package-experience-lore-2: "<gray>Admin package XP does not use your personal XP."
  gui-admin-package-experience-lore-3: "<dark_gray>Click to set admin package experience."
  gui-admin-package-experience-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Add Experience</bold></gradient>"
  gui-admin-package-menu-title: "<gradient:#352746:#55406B:#352746>Server Package Menu</gradient>"
  gui-admin-package-online-lore-1: "<gray>Send an admin package."
  gui-admin-package-online-lore-2: "<dark_gray>Targets every online player."
  gui-admin-package-online-name: "<gradient:#225E65:#3F8E96:#225E65><bold>Package -> Online Players</bold></gradient>"
  gui-admin-package-selected-lore-1: "<gray>Open the recipient selector."
  gui-admin-package-selected-lore-2: "<dark_gray>Send admin package to one player."
  gui-admin-package-selected-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Package -> Selected Recipient</bold></gradient>"
  gui-admin-package-send-lore-1: "<gray>Send this admin package."
  gui-admin-package-send-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Send Package</bold></gradient>"
  gui-admin-package-view-cancel-lore-1: "<gray>Return to the previous menu."
  gui-admin-package-view-cancel-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Back</gradient>"
  gui-admin-package-view-delete-lore-1: "<gray>Permanently delete this package without rewards."
  gui-admin-package-view-delete-name: "<gold>⚠</gold> <gradient:#A83E4A:#FF7B86:#A83E4A><bold>Delete Package</bold></gradient>"
  gui-admin-package-view-info-cod-combined: "<gray>COD Mode: <white>Vault + Item Currency"
  gui-admin-package-view-info-cod-items: "<gray>Item-Currency COD: <white>%count% item slot(s)"
  gui-admin-package-view-info-cod-vault: "<gray>Vault COD: <white>%amount%"
  gui-admin-package-view-info-experience: "<gray>Package Experience: <green>%experience%"
  gui-admin-package-view-info-expiration: "<gray>Expires: <white>%date% <dark_gray>(%remaining%)"
  gui-admin-package-view-info-expired: "<red>Expired"
  gui-admin-package-view-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB><bold>Package Information</bold></gradient>"
  gui-admin-package-view-info-return: "<gray>Return Reason: <white>%reason%"
  gui-admin-package-view-info-sender: "<gray>Sender: <white>%sender%"
  gui-admin-package-view-info-sent: "<gray>Sent: <white>%date%"
  gui-admin-package-view-info-target: "<gray>Mailbox Owner: <white>%target%"
  gui-admin-package-view-info-type: "<gray>Package Type: <white>%type%"
  gui-admin-package-view-take-lore-1: "<gray>Take package items and XP without charging COD."
  gui-admin-package-view-take-lore-2: "<gray>Or take items one by one."
  gui-admin-package-view-take-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Take Contents</bold></gradient>"
  gui-admin-package-view-title: "<gradient:#352746:#55406B:#352746>View Package</gradient>"
  gui-admin-postoffice-mailbox-entry-lore-1: "<gray>Public Access Mailbox Name: <white>%postofficename%"
  gui-admin-postoffice-mailbox-entry-lore-2: "<gray>World: <white>%world%"
  gui-admin-postoffice-mailbox-entry-lore-3: "<gray>Status: %status%"
  gui-admin-postoffice-mailbox-entry-lore-remove: "<red>Shift-Right-Click to <bold>unregister</bold><reset> <red>this <bold>Public Access Mailbox</bold>"
  gui-admin-postoffice-mailbox-entry-lore-server: "<gray>Server: <white>%server%"
  gui-admin-postoffice-mailbox-entry-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>%postofficename% Public Access Mailbox</bold></gradient>"
  gui-admin-postoffice-mailbox-list-lore-1: "<gray>View all registered Public Access Mailboxes."
  gui-admin-postoffice-mailbox-list-lore-2: "<dark_gray>Shift-Right-Click a Public Access Mailbox to unregister it."
  gui-admin-postoffice-mailbox-list-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Public Access Mailboxes</bold></gradient>"
  gui-admin-postoffice-mailbox-list-title: "<gradient:#2E3440:#465263:#2E3440>Public Access Mailboxes</gradient>"
  gui-admin-postoffice-mailbox-remove-lore-1: "<gray>Select a registered Public Access Mailbox"
  gui-admin-postoffice-mailbox-remove-lore-2: "<gray>to remove its public access registration."
  gui-admin-postoffice-mailbox-remove-name: "<gold>⚠</gold> <gradient:#A83E4A:#FF7B86:#A83E4A><bold>Remove Public Access Mailbox</bold></gradient>"
  gui-admin-postoffice-mailbox-set-lore-1: "<gray>Type a Public Access Mailbox name,"
  gui-admin-postoffice-mailbox-set-lore-2: "<gray>then select a supported mailbox access point."
  gui-admin-postoffice-mailbox-set-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Set Public Access Mailbox</bold></gradient>"
  gui-admin-postoffice-mailbox-title: "<gradient:#2E3440:#465263:#2E3440>Public Access Mailbox Registration</gradient>"
  gui-admin-postoffice-mailboxes-lore-1: "<gray>Register, remove, and view Public Access Mailboxes."
  gui-admin-postoffice-mailboxes-lore-2: "<dark_gray>Public access points that open the player's mailbox."
  gui-admin-postoffice-mailboxes-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Public Access Mailbox Set / Remove</bold></gradient>"
  gui-admin-postoffice-npc-citizens-missing-lore: "<red>Citizens not detected"
  gui-admin-postoffice-npc-lore-1: "<gray>Configure NPCs that provide Public Access Mailbox."
  gui-admin-postoffice-npc-lore-2: "<dark_gray>Uses the Citizens NPC selection flow."
  gui-admin-postoffice-npc-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Public Access NPC Set / Remove</bold></gradient>"
  gui-admin-postoffice-title: "<gradient:#2E3440:#465263:#2E3440>Public Mail Access Registration</gradient>"
  gui-admin-registered-detail-info-lore-1: "<gray>Owner: <white>%target%"
  gui-admin-registered-detail-info-lore-3: "<gray>Mailbox Entries: <white>%count%"
  gui-admin-registered-detail-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>Mailbox Details</gradient>"
  gui-admin-registered-detail-mailbox-loaded: "<green>Loaded"
  gui-admin-registered-detail-mailbox-lore-1: "<gray>Container: <white>%location%"
  gui-admin-registered-detail-mailbox-lore-2: "<gray>Sign: <white>%location%"
  gui-admin-registered-detail-mailbox-lore-3: "<gray>Status: %status%"
  gui-admin-registered-detail-mailbox-lore-remove: "<red>Right-Click to <bold>remove </bold><reset><red>registered mailbox from <bold>Database</bold>"
  gui-admin-registered-detail-mailbox-lore-server: "<gray>Server: <white>%server%"
  gui-admin-registered-detail-mailbox-lore-world: "<gray>World: <white>%world%"
  gui-admin-registered-detail-mailbox-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Mailbox #%index%</bold></gradient>"
  gui-admin-registered-detail-mailbox-unloaded: "<red>Unloaded"
  gui-admin-registered-detail-register-lore-1: "<gray>Register a new mailbox for this player."
  gui-admin-registered-detail-register-lore-2: "<dark_gray>Select a valid mailbox chest/barrel or its front sign."
  gui-admin-registered-detail-register-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Register Mailbox</bold></gradient>"
  gui-admin-registered-detail-title: "<gradient:#2E3440:#465263:#2E3440>Mailbox Details</gradient>"
  gui-admin-registered-remove-cancel-lore-1: "<gray>Return to the mailbox details menu."
  gui-admin-registered-remove-cancel-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Cancel</bold></gradient>"
  gui-admin-registered-remove-confirm-lore-1: "<gray>Remove this registered mailbox entry"
  gui-admin-registered-remove-confirm-lore-2: "<dark_gray>from the player's mailbox database."
  gui-admin-registered-remove-confirm-name: "<gold>⚠</gold> <gradient:#A83E4A:#FF7B86:#A83E4A><bold>Confirm Remove Mailbox</bold></gradient>"
  gui-admin-registered-remove-title: "<gradient:#48272B:#6A383E:#48272B>Confirm Mailbox Removal</gradient>"
  gui-admin-registered-target-empty-lore-1: "<gray>No players are listed in this view."
  gui-admin-registered-target-empty-lore-2: "<gray>Use the filter below to show stored players."
  gui-admin-registered-target-empty-lore-3: "<dark_gray>Stored players can be selected to register a mailbox."
  gui-admin-registered-target-empty-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>No Mailboxes Listed</bold></gradient>"
  gui-admin-registered-target-filter-all-lore-1: "<gray>Currently showing all players"
  gui-admin-registered-target-filter-all-lore-2: "<gray>with stored MailboxGUI player data."
  gui-admin-registered-target-filter-all-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Filter: Stored Players</bold></gradient>"
  gui-admin-registered-target-filter-mailboxes-lore-1: "<gray>Currently showing only players"
  gui-admin-registered-target-filter-mailboxes-lore-2: "<gray>with active registered mailboxes."
  gui-admin-registered-target-filter-mailboxes-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Filter: Registered Mailboxes</bold></gradient>"
  gui-admin-registered-target-info-lore-2: "<gray>Owners Listed: <white>%count%"
  gui-admin-registered-target-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>Registered Mailboxes</gradient>"
  gui-admin-registered-target-player-lore-1: "<gray>Registered mailbox owner"
  gui-admin-registered-target-player-lore-2: "<gray>Mailbox Count: <white>%count%"
  gui-admin-registered-target-title: "<gradient:#2E3440:#465263:#2E3440>Registered Mailboxes</gradient>"
  gui-admin-sendmail-letter-lore-1: "<gray>Open server letter tools."
  gui-admin-sendmail-letter-lore-2: "<dark_gray>All, online, or selected recipient."
  gui-admin-sendmail-letter-name: "<light_purple>✉</light_purple> <gradient:#64798B:#C5D3DF:#64798B><bold>Letter</bold></gradient>"
  gui-admin-sendmail-money-lore-1: "<gray>Open server money tools."
  gui-admin-sendmail-money-lore-2: "<dark_gray>All, online, or selected recipient."
  gui-admin-sendmail-money-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Money</bold></gradient>"
  gui-admin-sendmail-package-lore-1: "<gray>Open package sending tools."
  gui-admin-sendmail-package-lore-2: "<dark_gray>Selected recipient now uses the new package system."
  gui-admin-sendmail-package-name: "<gradient:#51345F:#7B4F8D:#51345F><bold>Package</bold></gradient>"
  gui-admin-sendmail-title: "<gradient:#2E3440:#465263:#2E3440>Send Server Mail</gradient>"
  gui-admin-tools-admin-inbox-lore-1: "<gray>View the Shared Admin Inbox."
  gui-admin-tools-admin-inbox-lore-2: "<dark_gray>All authorized administrators see the same mail."
  gui-admin-tools-admin-inbox-lore-3: "<dark_gray>Claims are given to the administrator who claims them."
  gui-admin-tools-admin-inbox-name: "<gradient:#7A4D8C:#C58AD8:#7A4D8C><bold>Admin Inbox</bold></gradient>"
  gui-admin-tools-inboxcheck-lore-1: "<gray>Inspect a player's inbox."
  gui-admin-tools-inboxcheck-lore-2: "<dark_gray>Uses the inbox check selector."
  gui-admin-tools-inboxcheck-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Check Player Inbox</bold></gradient>"
  gui-admin-tools-mailboxes-lore-1: "<gray>Browse stored mailbox owners."
  gui-admin-tools-mailboxes-lore-2: "<dark_gray>View mailbox details and manage registrations."
  gui-admin-tools-mailboxes-name: "<gradient:#7A4D8C:#C58AD8:#7A4D8C><bold>Manage Registered Mailboxes</bold></gradient>"
  gui-admin-tools-npc-citizens-missing-lore: "<red>Citizens not detected"
  gui-admin-tools-npc-lore-1: "<gray>Configure NPCs that provide Public Access Mailbox."
  gui-admin-tools-npc-lore-2: "<dark_gray>Set or remove public access from a Citizens NPC."
  gui-admin-tools-npc-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Public Access NPC Set / Remove</bold></gradient>"
  gui-admin-tools-postoffice-lore-1: "<gray>Manage Public Access Mailbox points."
  gui-admin-tools-postoffice-lore-2: "<dark_gray>Configure Public Access Mailboxes and access NPCs."
  gui-admin-tools-postoffice-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Public Mail Access Registration</bold></gradient>"
  gui-admin-tools-sendmail-disabled-lore-1: "<red>No admin mail sending options are currently available."
  gui-admin-tools-sendmail-lore-1: "<gray>Open server mail tools."
  gui-admin-tools-sendmail-lore-2: "<dark_gray>Letters, packages, and money."
  gui-admin-tools-sendmail-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Send Server Mail</bold></gradient> <blue>⮞</blue>"
  gui-admin-tools-title: "<gradient:#303842:#46525F:#303842>Admin Tools</gradient>"
  gui-common-back-lore-1: "<gray>Return to the previous menu."
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Back</gradient>"
  gui-common-cancel-lore-1: "<gray>Return to the previous menu."
  gui-common-cancel-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Cancel</gradient>"
  gui-common-close-lore-1: "<gray>Click to close."
  gui-common-close-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Close</gradient>"
  gui-common-exit-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Exit</gradient>"
  gui-common-exit-lore-1: "<gray>Click to close."
  gui-common-local: "Local"
  gui-common-next-lore-1: "<gray>Go to the next page."
  gui-common-next-name: "<gradient:#A57A19:#F2D45C:#A57A19>Next Page</gradient> <blue>»</blue>"
  gui-common-no-next-lore-1: "<dark_gray>You are on the last page."
  gui-common-no-next-name: "<gradient:#56636F:#9CA8B3:#56636F>No Next Page</gradient>"
  gui-common-no-previous-lore-1: "<dark_gray>You are on the first page."
  gui-common-no-previous-name: "<gradient:#56636F:#9CA8B3:#56636F>No Previous Page</gradient>"
  gui-common-page-lore-1: "<gray>Page: <white>%current%<gray>/<white>%total%"
  gui-common-previous-lore-1: "<gray>Go to the previous page."
  gui-common-previous-name: "<blue>«</blue> <gradient:#A57A19:#F2D45C:#A57A19>Previous Page</gradient>"
  gui-common-status-offline: "<gray>Offline"
  gui-common-status-online: "<green>Online"
  gui-common-status-online-server: "<green>Online on <white>%server%"
  gui-common-status-world: "<gray>World: <white>%world%"
  gui-common-unknown: "Unknown"
  gui-common-unknown-player: "Unknown Player"
  gui-inbox-back-lore-1: "<gray>Exit the Mailbox Menu."
  gui-inbox-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Exit</gradient>"
  gui-inbox-compose-lore-1: "<gray>Open the Send Mail menu."
  gui-inbox-compose-lore-2: "<yellow>Click to compose mail."
  gui-inbox-compose-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A>Compose Mail</gradient> <blue>⮞</blue>"
  gui-inbox-current-filter: "<gray>Filter: <white>%filter%"
  gui-inbox-empty-filter: "<gray>No mail matches this filter."
  gui-inbox-filter-active-lore: "<green>Active filter"
  gui-inbox-filter-admin-mail: "<white>Admin Mail"
  gui-inbox-filter-back-lore: "<gray>Return to your inbox."
  gui-inbox-filter-back-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Back</gradient>"
  gui-inbox-filter-button-name: "<gradient:#4498DB:#81EAFF:#4498DB>Filters</gradient>"
  gui-inbox-filter-by-date: "<white>By Date"
  gui-inbox-filter-by-expiration: "<white>By Expiration"
  gui-inbox-filter-by-type: "<white>By Type"
  gui-inbox-filter-click-lore: "<yellow>Click to choose a filter."
  gui-inbox-filter-current-lore: "<gray>Current: <white>%filter%"
  gui-inbox-filter-name: "<gradient:#4498DB:#81EAFF:#4498DB>Filter</gradient>"
  gui-inbox-filter-select-lore: "<yellow>Click to select this filter."
  gui-inbox-filter-session-lore: "<gray>Applies only to this mailbox session."
  gui-inbox-filter-title: "<gradient:#1F3E59:#315D78:#1F3E59>Inbox Filters</gradient>"
  gui-inbox-filtered-count: "<gray>Matching mail: <white>%count%"
  gui-inbox-info-lore-1: "<gray>Page: <white>%current%<gray>/<white>%total%"
  gui-inbox-info-lore-2: "<gray>Stored Mail Items: <white>%count%"
  gui-inbox-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>Inbox</gradient>"
  gui-inbox-next-lore-1: "<gray>Go to the next page."
  gui-inbox-next-name: "<gradient:#A57A19:#F2D45C:#A57A19>Next Page</gradient> <blue>»</blue>"
  gui-inbox-no-next-lore-1: "<dark_gray>You are on the last page."
  gui-inbox-no-next-name: "<gradient:#56636F:#9CA8B3:#56636F>No Next Page</gradient>"
  gui-inbox-no-previous-lore-1: "<dark_gray>You are on the first page."
  gui-inbox-no-previous-name: "<gradient:#56636F:#9CA8B3:#56636F>No Previous Page</gradient>"
  gui-inbox-previous-lore-1: "<gray>Go to the previous page."
  gui-inbox-previous-name: "<blue>«</blue> <gradient:#A57A19:#F2D45C:#A57A19>Previous Page</gradient>"
  gui-inbox-queued-count: "<gray>Queued Mail: <white>%count%"
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>Mailbox Inbox</gradient>"
  gui-inbox-total-count: "<gray>Total inbox mail: <white>%count%"
  gui-letter-target-info-lore-2: "<gray>Registered Mailbox Owners: <white>%count%"
  gui-letter-target-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>Recipient List</gradient>"
  gui-letter-target-player-lore-1: "<gray>Letter Recipient"
  gui-letter-target-title: "<gradient:#4A3821:#6A512E:#4A3821>Select Letter Recipient</gradient>"
  gui-letter-type-book-lore-1: "<gray>Send a written book letter."
  gui-letter-type-book-lore-2: "<dark_gray>Includes a title and readable book pages."
  gui-letter-type-book-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Book Letter</bold></gradient>"
  gui-letter-type-classic-lore-1: "<gray>Send a paper letter."
  gui-letter-type-classic-lore-2: "<dark_gray>Uses the existing quick letter flow."
  gui-letter-type-classic-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Paper Letter</bold></gradient>"
  gui-letter-type-header-lore-1: "<gray>Choose how this letter should be written."
  gui-letter-type-header-lore-2: "<dark_gray>Classic letters use paper. Book letters use books."
  gui-letter-type-header-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Select Letter Type</bold></gradient>"
  gui-letter-type-title: "<gradient:#4A3821:#6A512E:#4A3821>Select Letter Type</gradient>"
  gui-mailbox-check-back-lore-1: "<gray>Exit the Mailbox Check."
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>Mailbox Check</gradient>"
  gui-main-header-lore-1: "<gray>Check your inbox and send mail."
  gui-main-header-lore-2: "<dark_gray>Open the next menu to choose how to send."
  gui-main-header-name: "<yellow>◆</yellow> <gradient:#A57A19:#F2D45C:#A57A19><bold>Mailbox Menu</bold></gradient>"
  gui-main-inbox-lore-1: "<gray>Open your shared mailbox inbox."
  gui-main-inbox-lore-2: "<dark_gray>View delivered letters, packages, and money."
  gui-main-inbox-name: "<light_purple>✉</light_purple> <gradient:#A57A19:#F2D45C:#A57A19><bold>Inbox</bold></gradient>"
  gui-main-sendmail-disabled-lore-1: "<red>No mail sending options are currently available."
  gui-main-sendmail-lore-1: "<gray>Open sending options."
  gui-main-sendmail-lore-2: "<dark_gray>Letters, packages, and money."
  gui-main-sendmail-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Send Mail</bold></gradient> <blue>⮞</blue>"
  gui-main-title: "<gradient:#1F3E59:#315D78:#1F3E59>MailboxGUI</gradient>"
  gui-money-message-cancel-lore-1: "<gray>Return to recipient selection."
  gui-money-message-mode-title: "<gradient:#203F31:#315C46:#203F31>Money Mail Message</gradient>"
  gui-money-target-info-lore-2: "<gray>Registered Mailbox Owners: <white>%count%"
  gui-money-target-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>Recipient List</gradient>"
  gui-money-target-player-lore-1: "<gray>Money Recipient"
  gui-money-target-title: "<gradient:#203F31:#315C46:#203F31>Select Money Recipient</gradient>"
  gui-money-with-message-lore-1: "<gray>Attach a message before entering the amount."
  gui-money-with-message-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Add Message</bold></gradient>"
  gui-money-without-message-lore-1: "<gray>Continue directly to the money amount."
  gui-money-without-message-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Without Message</bold></gradient>"
  gui-package-compose-title: "<gradient:#352746:#55406B:#352746>Create Package</gradient>"
  gui-package-target-info-lore-2: "<gray>Registered Mailbox Owners: <white>%count%"
  gui-package-target-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>Mailbox List</gradient>"
  gui-package-target-player-lore-1: "<gray>Mailbox Target"
  gui-package-target-title: "<gradient:#352746:#55406B:#352746>Select Package Recipient</gradient>"
  gui-player-mailbox-manage-entry-container: "<gray>Container: <white>%location%"
  gui-player-mailbox-manage-entry-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Mailbox #%index%</bold></gradient>"
  gui-player-mailbox-manage-entry-remove: "<red>Right-click to unregister this mailbox."
  gui-player-mailbox-manage-entry-server: "<gray>Server: <white>%server%"
  gui-player-mailbox-manage-entry-sign: "<gray>Sign: <white>%location%"
  gui-player-mailbox-manage-entry-status: "<gray>Status: %status%"
  gui-player-mailbox-manage-entry-world: "<gray>World: <white>%world%"
  gui-player-mailbox-manage-info-lore-2: "<gray>Registered Mailboxes: <white>%count%"
  gui-player-mailbox-manage-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>My Mailboxes</gradient>"
  gui-player-mailbox-manage-title: "<gradient:#1F3E59:#315D78:#1F3E59>My Mailboxes</gradient>"
  gui-player-unregister-manage-lore-1: "<gray>View and unregister your own mailboxes"
  gui-player-unregister-manage-lore-2: "<gray>without walking to the mailbox."
  gui-player-unregister-manage-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Manage Personal Mailboxes</bold></gradient>"
  gui-player-unregister-selection-lore-1: "<gray>Right-click a mailbox chest/barrel or sign"
  gui-player-unregister-selection-lore-2: "<gray>to unregister it physically."
  gui-player-unregister-selection-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Selection Mode</bold></gradient>"
  gui-player-unregister-title: "<gradient:#1F3E59:#315D78:#1F3E59>Unregister Mailbox</gradient>"
  gui-sendmail-header-lore-1: "<gray>Choose the type of mail you want to send."
  gui-sendmail-header-lore-2: "<dark_gray>Each option keeps the same sending flow."
  gui-sendmail-header-name: "<yellow>◆</yellow> <gradient:#A57A19:#F2D45C:#A57A19><bold>Send Mail</bold></gradient>"
  gui-sendmail-letter-lore-1: "<gray>Write and send a letter."
  gui-sendmail-letter-lore-2: "<dark_gray>Choose a mailbox owner first."
  gui-sendmail-letter-name: "<light_purple>✉</light_purple> <gradient:#8F5B19:#D89B35:#8F5B19><bold>Send Letter</bold></gradient>"
  gui-sendmail-money-lore-1: "<gray>Send money through the mail."
  gui-sendmail-money-lore-2: "<dark_gray>Choose a mailbox owner first."
  gui-sendmail-money-name: "<yellow>◆</yellow> <gradient:#8F5B19:#D89B35:#8F5B19><bold>Send Money</bold></gradient>"
  gui-sendmail-package-lore-1: "<gray>Send items, COD packages, and experience."
  gui-sendmail-package-lore-2: "<gray>Experience is stored as a redeemable package item."
  gui-sendmail-package-lore-3: "<dark_gray>Choose a mailbox owner first."
  gui-sendmail-package-name: "<yellow>◆</yellow> <gradient:#8F5B19:#D89B35:#8F5B19><bold>Send Package</bold></gradient>"
  gui-sendmail-title: "<gradient:#1F3E59:#315D78:#1F3E59>Send Mail</gradient>"
  gui-shared-admin-inbox-clear-all-lore-1: "<gray>Open a confirmation to delete"
  gui-shared-admin-inbox-clear-all-lore-2: "<gray>all Shared Admin Inbox mail."
  gui-shared-admin-inbox-clear-all-name: "<gold>⚠</gold> <gradient:#A83E4A:#FF7B86:#A83E4A>Clear entire Inbox</gradient>"
  gui-shared-admin-inbox-clear-cancel-lore-1: "<gray>Return without deleting mail."
  gui-shared-admin-inbox-clear-cancel-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A>Cancel</gradient>"
  gui-shared-admin-inbox-clear-confirm-lore-1: "<red>This deletes every mail item in the Shared Admin Inbox."
  gui-shared-admin-inbox-clear-confirm-lore-2: "<red>This cannot be recovered after confirmation."
  gui-shared-admin-inbox-clear-confirm-lore-3: "<yellow>Only continue if you intentionally want a full wipe."
  gui-shared-admin-inbox-clear-confirm-name: "<gold>⚠</gold> <gradient:#A83E4A:#FF7B86:#A83E4A><bold>Permanently Clear Inbox</bold></gradient>"
  gui-shared-admin-inbox-clear-confirm-title: "<gradient:#48272B:#6A383E:#48272B>Confirm Shared Inbox Clear</gradient>"
  gui-shared-admin-inbox-collect-money-lore-1: "<gray>Collect every Vault money payout"
  gui-shared-admin-inbox-collect-money-lore-2: "<gray>from the Shared Admin Inbox."
  gui-shared-admin-inbox-collect-money-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A>Collect all Money Payouts</gradient>"
  gui-shared-admin-inbox-info-claim: "<dark_gray>Claimed rewards go to the claiming administrator."
  gui-shared-admin-inbox-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB><bold>Admin Inbox Information</bold></gradient>"
  gui-shared-admin-inbox-info-page: "<gray>Page: <white>%page%<gray>/<white>%pages%"
  gui-shared-admin-inbox-info-shared: "<dark_gray>This inbox is shared by authorized administrators."
  gui-shared-admin-inbox-info-total: "<gray>Stored Mail: <white>%total%"
  gui-shared-admin-inbox-title: "<gradient:#2E3440:#465263:#2E3440>Shared Admin Inbox</gradient>"
  gui-target-filter-all-lore-1: "<gray>Showing every available mailbox player."
  gui-target-filter-all-lore-2: "<yellow>Click to show offline players only."
  gui-target-filter-all-name: "<gradient:#4498DB:#81EAFF:#4498DB>Filter: All Players</gradient>"
  gui-target-filter-offline-lore-1: "<gray>Showing only players currently offline."
  gui-target-filter-offline-lore-2: "<yellow>Click to show online players only."
  gui-target-filter-offline-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Filter: Offline Players</gradient>"
  gui-target-filter-online-lore-1: "<gray>Showing only players currently online."
  gui-target-filter-online-lore-2: "<yellow>Click to show all players."
  gui-target-filter-online-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A>Filter: Online Players</gradient>"
  gui-target-type-name-admin-lore-1: "<gray>Click to type one or multiple player names."
  gui-target-type-name-admin-lore-2: "<dark_gray>Use commas: name1, name2, name3"
  gui-target-type-name-admin-name: "<gradient:#8F5B19:#D89B35:#8F5B19>Type Player Name(s)</gradient>"
  gui-target-type-name-lore-1: "<gray>Click to type one player name in chat."
  gui-target-type-name-lore-2: "<dark_gray>Searches all stored MailboxGUI players."
  gui-target-type-name-name: "<gradient:#8F5B19:#D89B35:#8F5B19>Type Player Name</gradient>"
  guide-basics-title: "<yellow>MailboxGUI Basics:"
  guide-design-classic-barrel-title: "<yellow>Classic Barrel Mailbox"
  guide-design-classic-bookshelf-title: "<yellow>Classic Chiseled Bookshelf Mailbox"
  guide-design-classic-chest-title: "<yellow>Classic Chest Mailbox"
  guide-design-classic-copper-title: "<yellow>Classic Copper Chest Mailbox"
  guide-design-classic-crafter-title: "<yellow>Classic Crafter Mailbox"
  guide-design-classic-shulker-title: "<yellow>Classic Shulker Mailbox"
  guide-design-classic-utility-title: "<yellow>Classic Utility Block Mailbox"
  guide-design-shelf-title: "<yellow>Wall Shelf Mailbox"
  guide-personal-title: "<yellow>Create your own mailbox:"
  guide-public-npc-title: "<yellow>Public Access NPCs:"
  guide-public-pobox-title: "<yellow>Public Access Mailboxes:"
  guide-title: "<gold><bold>Mailbox Guide</bold>"
  item-book-letter-title-lore: "<gray>Title: <white>%title%"
  mail-alert-advanced-title: "<gold><bold>New Mail!</bold>"
  package-preview-title: "Package Preview"
  package-receive-title: "Package Contents"
  settings-title: "<gold><bold>Mailbox Settings</bold>"
  settings-notification-title: "<gold><bold>Notification Settings</bold>"
  settings-resourcepack-title: "<gold><bold>Resource Pack Settings</bold>"
  track-title: "<gold><bold>Incoming Mail Tracking</bold>"

  # ------------------------------------------------------------
  # Notifications
  # ------------------------------------------------------------
  admin-inbox-notification-invalid: "<red>Invalid Shared Admin Inbox notification setting. Use on or off."
  admin-inbox-notification-received: "<dark_purple>✉</dark_purple> <light_purple>Shared Admin Inbox received new mail."
  admin-inbox-notification-received-batch: "<dark_purple>✉</dark_purple> <light_purple>Shared Admin Inbox received <white>%count%<light_purple> new mail items."
  admin-inbox-notification-status: "<yellow>Shared Admin Inbox Notifications: <white>%status%"
  admin-inbox-notification-updated: "<green>Shared Admin Inbox notifications set to <yellow>%status%<green>."
  admin-inbox-notification-usage: "<white>Use /mba inboxnotification on or /mba inboxnotification off. On busy servers this can be spammy.</white>"
  mail-alert-advanced-count-line: "<yellow>%label%: <white>%count%"
  mail-alert-advanced-line: "<dark_gray><strikethrough>------------------------------------------------</strikethrough>"
  mail-alert-expiration-day-few: "%amount% Days"
  mail-alert-expiration-day-many: "%amount% Days"
  mail-alert-expiration-day-plural: "%amount% Days"
  mail-alert-expiration-day-singular: "%amount% Day"
  mail-alert-expiration-hour-few: "%amount% Hours"
  mail-alert-expiration-hour-many: "%amount% Hours"
  mail-alert-expiration-hour-plural: "%amount% Hours"
  mail-alert-expiration-hour-singular: "%amount% Hour"
  mail-alert-expiration-minute-few: "%amount% Minutes"
  mail-alert-expiration-minute-many: "%amount% Minutes"
  mail-alert-expiration-minute-plural: "%amount% Minutes"
  mail-alert-expiration-minute-singular: "%amount% Minute"
  mail-alert-expiration-second-few: "%amount% Seconds"
  mail-alert-expiration-second-many: "%amount% Seconds"
  mail-alert-expiration-second-plural: "%amount% Seconds"
  mail-alert-expiration-second-singular: "%amount% Second"
  mail-alert-expiration-suffix: " <yellow>Expires in <white>%time%<yellow>."
  mail-alert-login-simple: "<gold>[New Mail] <yellow>- <white>You have <yellow>%total% <white>new mail!"
  mail-alert-online-admin: "<gold>[New Mail] <yellow>- %sender% <yellow>sent %type% to your mailbox!%expiration%"
  mail-alert-online-player: "<gold>[New Mail] <yellow>- <white>%sender% <yellow>sent %type% to your mailbox!%expiration%"
  settings-notification-usage: "<white>Use /mb settings notification offline <red>{simple|advanced|off}</red>, /mb settings notification online <red>{on|off}</red>, or /mb settings notification soundalert <red>{on|off}</red>.</white>"
  settings-notification-usage-kit: "<white>Use /mb settings notification offline <red>{simple|advanced|off}</red>, /mb settings notification online <red>{on|off}</red>, /mb settings notification soundalert <red>{on|off}</red>, or /mb settings notification kit <red>{on|off}</red>.</white>"

  # ------------------------------------------------------------
  # Scheduled mail
  # ------------------------------------------------------------
  scheduledmail-info-completed: "<gray>Completed: <white>%value%"
  scheduledmail-info-enabled: "<gray>Enabled: <white>%value%"
  scheduledmail-info-expires-in: "<gray>Expires in: <white>%value%"
  scheduledmail-info-from: "<gray>From: <white>\"%value%<white>\""
  scheduledmail-info-header: "<gold>Scheduled Mail: <yellow>%id%"
  scheduledmail-info-last-attempt: "<gray>Last Attempt: <white>%value%"
  scheduledmail-info-last-count: "<gray>Last Count: <white>%value%"
  scheduledmail-info-last-delivered: "<gray>Last Delivered: <white>%value%"
  scheduledmail-info-last-failed: "<gray>Last Failed: <white>%value%"
  scheduledmail-info-last-failure: "<gray>Last Failure: <red>%value%"
  scheduledmail-info-last-queued: "<gray>Last Queued: <white>%value%"
  scheduledmail-info-last-run: "<gray>Last Run: <white>%value%"
  scheduledmail-info-next-due: "<gray>Next Due: <white>%value%"
  scheduledmail-info-notify: "<gray>Notify-Recipients: <white>%value%"
  scheduledmail-info-repeat: "<gray>Repeat: <white>%value%"
  scheduledmail-info-send-date: "<gray>Send Date: <white>%value%"
  scheduledmail-info-send-time: "<gray>Send Time: <white>%value%"
  scheduledmail-info-type: "<gray>Type: <white>%value%"
  scheduledmail-invalid-schedule: "Invalid schedule"
  scheduledmail-list-empty: "<yellow>No scheduled mail tasks are configured."
  scheduledmail-list-header: "<gold>Scheduled Mail Tasks:"
  scheduledmail-never: "Never"
  scheduledmail-no-permission-manage: "<red>You do not have permission to manage scheduled mail tasks."
  scheduledmail-no-permission-reload: "<red>You do not have permission to reload scheduled mail."
  scheduledmail-no-permission-run: "<red>You do not have permission to run scheduled mail tasks."
  scheduledmail-no-permission-use: "<red>You do not have permission to use scheduled mail commands."
  scheduledmail-reloaded: "<dark_green>✔</dark_green> <green>Reloaded scheduled mail. Loaded <yellow>%count%<green> task(s)."
  scheduledmail-repeat-daily: "Daily"
  scheduledmail-repeat-every: "Every %time%"
  scheduledmail-repeat-monthly: "Monthly"
  scheduledmail-repeat-none: "None"
  scheduledmail-repeat-weekly: "Weekly"
  scheduledmail-result-already-committed: "Occurrence already committed."
  scheduledmail-result-backend-not-owner: "This backend does not own this scheduled task."
  scheduledmail-result-coordinator-unavailable: "Scheduled mail coordinator is unavailable."
  scheduledmail-result-first-failure: "%message% First failure: %failure%"
  scheduledmail-result-missed-skipped: "Missed occurrence skipped."
  scheduledmail-result-network-uncommitted: "Scheduled network occurrence could not accept every recipient; no deliveries committed. %failure%"
  scheduledmail-result-no-recipients: "No matching recipients."
  scheduledmail-result-none-accepted: "API accepted no recipients."
  scheduledmail-result-not-due: "Occurrence is no longer due."
  scheduledmail-result-sent: "Sent scheduled mail to %count% recipient(s)."
  scheduledmail-result-task-disabled: "Scheduled mail task is disabled."
  scheduledmail-result-task-unknown: "Unknown scheduled mail task."
  scheduledmail-result-unsupported-type: "Unsupported type: %type%"
  scheduledmail-run-failure: "<dark_red>✖</dark_red> <red>Scheduled mail %id%: %message%"
  scheduledmail-run-success: "<dark_green>✔</dark_green> <green>Scheduled mail %id%: %message%"
  scheduledmail-save-failed: "<dark_red>✖</dark_red> <red>Failed to save scheduled-mail.yml: %error%"
  scheduledmail-task-disabled: "<yellow>Disabled <white>%id%"
  scheduledmail-task-enabled: "<green>Enabled <white>%id%"
  scheduledmail-task-unknown: "<red>Unknown scheduled mail task: %id%"
  scheduledmail-usage-disable: "<white>/mba scheduledmail disable <red>{id}</red></white>"
  scheduledmail-usage-enable: "<white>/mba scheduledmail enable <red>{id}</red></white>"
  scheduledmail-usage-header: "<gold>Scheduled Mail Commands:"
  scheduledmail-usage-info: "<white>Usage: /mba scheduledmail info <red>{id}</red></white>"
  scheduledmail-usage-list: "<white>/mba scheduledmail list</white>"
  scheduledmail-usage-manage: "<white>Usage: /mba scheduledmail %action% <red>{id}</red></white>"
  scheduledmail-usage-reload: "<white>/mba scheduledmail reload</white>"
  scheduledmail-usage-run: "<white>Usage: /mba scheduledmail run <red>{id}</red></white>"
  scheduledmail-value-false: "False"
  scheduledmail-value-true: "True"

  # ------------------------------------------------------------
  # Integrations
  # ------------------------------------------------------------
  dynmap-hook-disabled: "<yellow>Dynmap hook disabled."
  dynmap-hook-enabled: "<green>Dynmap hook enabled."
  dynmap-hook-unavailable: "<yellow>Dynmap is not installed or not available. Map markers will not be used."
  dynmap-markers-refreshed: "<green>Dynmap mailbox markers refreshed."

  # ------------------------------------------------------------
  # Updates
  # ------------------------------------------------------------
  admin-update-already-staged: "<green>MailboxGUI %version% is already staged for the next restart."
  admin-update-channel-check-partial: "<yellow>Could not check %count% release channel(s). Check the website and try /mba updatecheck again."
  admin-update-channel-required: "<yellow>This update is on the <white>%channel% <yellow>channel. Set <white>%setting%: %channel% <yellow>in config.yml and run <white>/mba reload <yellow>before using <white>/mba update<yellow>."
  admin-update-checker-unavailable: "<red>MailboxGUI update checker is not available."
  admin-update-checking: "<yellow>Checking website release system for MailboxGUI updates..."
  admin-update-console-available: "Update available: %latest% (current: %current%)."
  admin-update-console-download: "Download: %url%"
  admin-update-console-summary: "Summary: %summary%"
  admin-update-console-type-status: "Type: %type% | Status: %status%"
  admin-update-current: "<gray>Current: <white>%version%"
  admin-update-current-jar-unchanged: "<gray>Your current jar was not changed."
  admin-update-disabled: "<red>Update checker is disabled in config.yml."
  admin-update-download: "<gray>Download: <white>%url%"
  admin-update-download-failed: "<dark_red>✖</dark_red> <red>Update download failed: %reason%"
  admin-update-download-page: "<gray>Download page: <white>%url%"
  admin-update-downloading: "<yellow>Downloading MailboxGUI %version% for next restart..."
  admin-update-join-available: "<yellow>Update available: <white>%version%"
  admin-update-join-current-status: "<gray>Current: <white>%current% <dark_gray>| <gray>Status: <white>%status%"
  admin-update-join-run-updatecheck: "<gray>Run <white>/mba updatecheck <gray>for details."
  admin-update-latest: "<gray>Latest: <white>%version%"
  admin-update-no-direct-download: "<red>The website release did not provide a direct jar download URL."
  admin-update-no-pending: "<red>No pending update is ready to install."
  admin-update-preparing: "<yellow>Checking latest website release before staging update..."
  admin-update-restart: "<yellow>Restart the server to complete the update."
  admin-update-run-confirm: "<yellow>Run <white>/mba update confirm <yellow>to download and stage the update for next restart."
  admin-update-run-prepare: "<yellow>Run <white>/mba update <yellow>to prepare this update."
  admin-update-run-update-first: "<gray>Run <white>/mba update <gray>first."
  admin-update-source: "<gray>Source: <white>Website Release System (%edition%)"
  admin-update-staged-file: "<gray>Staged file: <white>%path%"
  admin-update-staged-success: "<dark_green>✔</dark_green> <green>Update staged successfully."
  admin-update-status: "<gray>Status: <white>%status%"
  admin-update-status-development: "Running newer/development build"
  admin-update-status-error: "<gray>Status: <red>%status%"
  admin-update-status-feature: "Feature update available"
  admin-update-status-maintenance: "Maintenance update available"
  admin-update-status-major: "Major update available"
  admin-update-status-not-checked: "Not checked"
  admin-update-status-up-to-date: "Up to date"
  admin-update-summary: "<gray>Summary: <white>%summary%"
  admin-update-target-version: "<gray>Target version: <white>%version%"
  admin-update-technical-error: "The update service could not be reached or returned an invalid response. See the console for technical details."
  admin-update-type: "<gray>Type: <white>%type%"
  admin-update-up-to-date: "<green>MailboxGUI is already up to date."

  # ------------------------------------------------------------
  # API results
  # ------------------------------------------------------------
  api-result-detail-admin-inbox-disabled: "Shared Admin Inbox return handling is disabled."
  api-result-detail-book-cancelled: "Book letter send was cancelled by an API event listener."
  api-result-detail-book-create-failed: "Book letter item could not be created."
  api-result-detail-book-message-blank: "Book letter message cannot be blank."
  api-result-detail-book-request-null: "Book letter request cannot be null."
  api-result-detail-cod-economy-required: "Vault/economy Cash on Demand packages require Vault economy support."
  api-result-detail-cod-item-currency-disabled: "Item-currency Cash on Demand packages are disabled."
  api-result-detail-cod-loaded-shulker: "Non-empty shulker boxes cannot be used as COD item currency."
  api-result-detail-cod-nested-package: "Nested MailboxGUI packages cannot be used as COD item currency."
  api-result-detail-cod-return-requires-cod: "Admin Inbox COD return settings require a COD package."
  api-result-detail-cod-sender-required: "COD sender return requires a sender UUID."
  api-result-detail-cod-slot-limit: "COD item-currency price exceeds the configured package limit. Requested %requested% item-currency slots; this server allows %limit%."
  api-result-detail-delayed-queue-failed: "Delayed mail could not be queued for persistent delivery."
  api-result-detail-expiration-invalid: "Expiration duration is invalid."
  api-result-detail-inbox-save-failed: "Mailbox data could not be saved."
  api-result-detail-letter-cancelled: "Letter send was cancelled by an API event listener."
  api-result-detail-letter-message-blank: "Letter message cannot be blank."
  api-result-detail-letter-request-null: "Letter request cannot be null."
  api-result-detail-letters-disabled: "Letters are disabled."
  api-result-detail-mail-create-failed: "Mail item could not be created."
  api-result-detail-money-amount-invalid: "Money amount must be greater than zero."
  api-result-detail-money-cancelled: "Money send was cancelled by an API event listener."
  api-result-detail-money-disabled: "Money mail is disabled."
  api-result-detail-money-economy-required: "Money mail requires Vault economy support."
  api-result-detail-money-request-null: "Money request cannot be null."
  api-result-detail-package-cancelled: "Package send was cancelled by an API event listener."
  api-result-detail-package-create-failed: "Package item could not be created."
  api-result-detail-package-empty: "Package contents cannot be empty."
  api-result-detail-package-loaded-shulker: "Non-empty shulker boxes are not allowed."
  api-result-detail-package-nested: "Nested MailboxGUI packages are not allowed."
  api-result-detail-package-request-null: "Package request cannot be null."
  api-result-detail-package-slot-limit: "Package exceeds the configured package limit. Requested %requested% content slots; this server allows %limit%."
  api-result-detail-package-xp-create-failed: "Package experience item could not be created."
  api-result-detail-package-xp-disabled: "Package experience items are disabled."
  api-result-detail-packages-disabled: "Packages are disabled."
  api-result-detail-queued-delay: "Queued for persistent delivery in %seconds% seconds."
  api-result-detail-recipient-not-found: "Recipient was not found in MailboxGUI data."
  api-result-detail-recipient-npc: "Citizens NPCs cannot receive player mail."
  api-result-detail-recipient-null: "Recipient cannot be null."
  api-result-detail-recipient-required: "At least one recipient is required."
  api-result-detail-recipient-unregistered: "Recipient does not have a registered mailbox."
  api-result-detail-single-server-only: "This edition supports single-server delivery only."
  api-result-reason-admin-inbox-disabled: "Shared Admin Inbox return handling is disabled."
  api-result-reason-cancelled-by-event: "Another plugin cancelled this mail through an API event."
  api-result-reason-delivered: "Mail was delivered."
  api-result-reason-disabled-by-config: "This mail feature is disabled in the configuration."
  api-result-reason-economy-unavailable: "Vault and a working economy provider are required."
  api-result-reason-empty-package: "A package must contain items or experience."
  api-result-reason-inbox-write-failed: "Mail could not be saved. Check the server log before retrying."
  api-result-reason-invalid-cod-return-configuration: "Admin Inbox COD return settings require a COD package."
  api-result-reason-invalid-cod-return-destination: "A COD sender return requires a valid sender UUID."
  api-result-reason-invalid-expiration: "The expiration duration is invalid."
  api-result-reason-invalid-request: "Check the recipient, message, amount, and package settings."
  api-result-reason-mailbox-data-missing: "The recipient's mailbox data is unavailable."
  api-result-reason-nested-package-blocked: "MailboxGUI packages cannot be included in another package or used as item currency."
  api-result-reason-no-registered-mailbox: "The recipient must register a mailbox first."
  api-result-reason-non-empty-shulker-blocked: "Loaded shulker boxes are not allowed by the current package settings."
  api-result-reason-queued: "Mail is waiting for delivery."
  api-result-reason-recipient-not-found: "The recipient is not a real player with known mailbox data."
  api-result-reason-serialization-failed: "The mail item could not be created or serialized safely."
  api-result-reason-too-many-contents: "The package or item-currency payment exceeds the supported capacity."
  api-result-status-admin-inbox-disabled: "Admin inbox disabled"
  api-result-status-cancelled-by-event: "Cancelled"
  api-result-status-delivered: "Delivered"
  api-result-status-disabled-by-config: "Disabled"
  api-result-status-economy-unavailable: "Economy unavailable"
  api-result-status-empty-package: "Empty package"
  api-result-status-inbox-write-failed: "Storage failure"
  api-result-status-invalid-cod-return-configuration: "Invalid COD return settings"
  api-result-status-invalid-cod-return-destination: "Invalid return destination"
  api-result-status-invalid-expiration: "Invalid expiration"
  api-result-status-invalid-request: "Invalid request"
  api-result-status-mailbox-data-missing: "Mailbox data missing"
  api-result-status-nested-package-blocked: "Nested package blocked"
  api-result-status-no-registered-mailbox: "No registered mailbox"
  api-result-status-non-empty-shulker-blocked: "Loaded shulker blocked"
  api-result-status-queued: "Queued"
  api-result-status-recipient-not-found: "Recipient not found"
  api-result-status-serialization-failed: "Item serialization failed"
  api-result-status-too-many-contents: "Too many contents"

  # First book page: edit this ordered list to customize dividers, labels, reading instructions and reply/back positions. Preserve placeholders; an empty expiration omits its whole line.
  # %sender% %date% %title% %expiration% %reply% %back%
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>MailboxGUI Book Letter"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>From: %sender%"
    - "<gray>Date: %date%"
    - "<gray>Title: %title%"
    - "<gray>Expires: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>Go to the next page to read this Book Letter."
    - "%reply%"
    - "%back%"
  # Empty uses automatic country/locale date and time formatting. Optional Java date/time pattern; do not translate pattern letters.
  book-letter-date-time-pattern: ""
language/messages_en.yml — Premium (English)
Download clean reference text
# Paper/book sending uses separate type settings; each player command requires its type and command flags. Admin gates are independent; existing letters remain manageable.
# gui.yml changes display appearance and notification item metadata, not physical placement, unchecked-mail lifecycle or mandatory inbox protection.
# In-game text supports legacy & colors, HEX (&#RRGGBB or <#RRGGBB>) and restricted visual MiniMessage formatting. Interactive click/hover/command tags are not supported.
# ============================================================
# MailboxGUI | General
# ============================================================
# Edit displayed text only; preserve keys, placeholders and color codes.
# Version fields and legacy language snapshots are migration references. Keep owner translations during upgrades; do not delete files or reset settings.
# Paper letters and package/money messages allow 256 visible characters, 28 per line and 17 total body lines. Wrapping, /n, actual line breaks and blank lines share this limit. //n displays literal /n; color codes do not count.

# ------------------------------------------------------------
# Command syntax
# ------------------------------------------------------------
# Command syntax has independent language settings; it does not follow message-language settings automatically.
# locale.command-syntax.default: At startup, registers ONLY this language's command roots plus English roots, which are always available.
# Changing the registered roots requires a server restart; reload does not register new roots.
# locale.command-syntax.auto-detect-player-locale: true uses the supported Minecraft client language ONLY for subcommands, help arguments, flags and tab completion, never for roots.
# With false, syntax follows the root used: /mb uses English, /bz uses Spanish, etc. (if that root was registered at startup).
# Console and unsupported client locales fall back to the invoking root's language: /mba remains English even with command-syntax.default: es.
# Message, GUI and date locales remain independent of command syntax.

file-version: 16

messages:
  help-command-send: "<white> send</white>"
  help-desc-send: "<gray>Send mail using an enabled mail type."
  discord-installed-incompatible: "<dark_red>✖</dark_red> <red>Installed DiscBridge %installed% (integration protocol %protocol%) is incompatible. MailboxGUI requires DiscBridge %minimum% or newer with protocol %minimum_protocol%-%maximum_protocol%. DiscBridge has been disabled; update the companion to restore Discord integration. MailboxGUI remains enabled."
  network-discord-incompatible-host: "<gold>⚠</gold> <yellow>[Network] DiscBridge on %server% is incompatible: installed version %installed_version%, integration protocol %installed_protocol%; required version %required_version% or newer, protocol %minimum_protocol%-%maximum_protocol%. Discord routing and command completion are disabled for this host."
  admin-update-discbridge-requirement: "<yellow>MailboxGUI %version% requires DiscBridge %minimum% or newer for Discord integration (protocol %protocol%)."
  admin-update-discbridge-satisfied: "<dark_green>✔</dark_green> <green>Installed DiscBridge %installed% satisfies this update's Discord integration requirements."
  admin-update-discbridge-update-required: "<dark_red>✖</dark_red> <red>Installed DiscBridge %installed% does not satisfy this update's Discord integration requirements. Update DiscBridge before using Discord integration with this MailboxGUI release."
  admin-update-discbridge-optional: "<gray>DiscBridge is not installed. This requirement is optional and applies only if you use Discord integration; you do not need to install DiscBridge."
  admin-update-discbridge-unverified: "<yellow>Installed DiscBridge %installed% compatibility could not be verified. Verify its version and integration protocol before updating."
  admin-update-discbridge-metadata-unavailable: "<yellow>Discord integration requirements for MailboxGUI %version% are not published. Verify DiscBridge compatibility before updating."
  admin-update-discbridge-staged-preview: "<gray>Staged MailboxGUI %version%: Discord integration compatibility preview."
  admin-update-discbridge-not-published: "not published"
  admin-update-discbridge-version-unknown: "unknown version"

  discord-integration-unavailable: "<red>DiscBridge integration is unavailable."
  discord-integration-failed: "<dark_red>✖</dark_red> <red>Discord command failed. Please try again."
  discord-player-commands-disabled: "<red>Discord player commands are disabled by the server administrator."
  help-desc-discord: "<gray>Shows Discord mail notification settings."
  help-desc-admin-discord: "<gray>Manages DiscBridge integration and Discord notifications."
  settings-discord-usage: "<white>Use /mb settings discord help.</white>"
  restricted-package-detail-header: "<gold>Package restriction details"
  restricted-package-detail-target: "<gray>Target: <white>%target%"
  restricted-package-detail-versions: "<gray>Origin Minecraft (data version) / MailboxGUI: <white>%source%<gray>; local Minecraft (data version): <white>%local%"
  restricted-package-detail-supported: "Readable and supported on this backend"
  restricted-package-detail-tree-codec: "This item tree is blocked by an unavailable nested material or an incompatible item codec; individual codec failures are not identified."
  restricted-package-detail-empty-group: "no configured members"
  restricted-package-detail-requirement-unknown: "Required version unknown (material, payload or codec)."
  restricted-package-detail-requirement-known: "Stable Minecraft Java Edition release introduction: %version% (experimental availability may be earlier); required payload/codec version unknown."
  restricted-package-detail-item: "<gray>#%index% <white>%material% x%amount%<gray>: %reason% %requirement%"
  restricted-package-detail-no-manifest: "<yellow>No readable manifest item list is available."
  restricted-package-detail-unavailable: "<yellow>This older or invalid placeholder has no diagnostic snapshot. Reopen the inbox to refresh it."

  # ------------------------------------------------------------
  # General
  # ------------------------------------------------------------
  attached-sign-required: "<red>That mailbox body must have the correct matching regular wall sign."
  citizens-unavailable: "<red>Citizens is not installed or not enabled."
  error: "<dark_red>✖</dark_red> <red>Something went wrong. Please check the console for details."
  guide-basics-line-1: "<gray>Mailboxes and Public Access Mailbox access points open your MailboxGUI inbox."
  guide-basics-line-2: "<gray>Mail stays in MailboxGUI storage, not inside the vanilla block inventory."
  guide-basics-line-3: "<gray>Use physical mailboxes, Public Access Mailboxes, or Public Access NPCs when available."
  guide-design-classic-barrel-description: "<gray>Uses a barrel as the mailbox body."
  guide-design-classic-bookshelf-description: "<gray>Uses a chiseled bookshelf when this server version supports it."
  guide-design-classic-chest-description: "<gray>Uses a chest or trapped chest as the mailbox body."
  guide-design-classic-copper-description: "<gray>Uses supported copper chest stages when this server version supports them."
  guide-design-classic-crafter-description: "<gray>Uses a crafter when this server version supports it."
  guide-design-classic-shulker-description: "<gray>Uses a shulker box color supported by this server version."
  guide-design-classic-structure: "<gray>Place the body, attach a regular wall sign to the front, and use a fence below for personal mailboxes."
  guide-design-classic-utility-description: "<gray>Uses supported utility blocks such as droppers, dispensers, or ender chests."
  guide-design-materials: "<gray>Supported bodies: <white>%materials%"
  guide-design-personal-fence-not-required: "<gray>No fence post is used for this design."
  guide-design-personal-fence-required: "<gray>Personal mailbox: <white>Fence below required. <gray>Public Access Mailbox: <white>Fence not required."
  guide-design-shelf-description: "<gray>Uses a shelf with a regular wall sign directly below it."
  guide-design-shelf-structure: "<gray>Mount the shelf on a wall and place the wall sign directly below, aligned to the same wall."
  guide-footer: "<gray>After registration, open your mailbox to send and receive mail."
  guide-line-top: "<dark_gray><strikethrough>------------------------------------------------</strikethrough>"
  guide-navigation-next: "<yellow>Next ▶"
  guide-navigation-previous: "<yellow>◀ Prev"
  guide-navigation-separator: " <dark_gray>| "
  guide-no-public-access: "<gray>This server does not currently have public Public Access Mailbox access points available."
  guide-page: "<gray>Page <white>%page%<gray>/<white>%pages%"
  guide-personal-step-1: "<gray>1. Place a fence post."
  guide-personal-step-2: "<gray>2. Choose your mailbox style."
  guide-personal-step-3: "<gray>3. View the next guide pages to see styles you can build."
  guide-personal-step-4: "<gray>4. Run <white>/mailbox register<gray>."
  guide-personal-step-5: "<gray>5. Click the mailbox sign or body when prompted."
  guide-public-access-intro: "<gray>You can access your mail at public Public Access Mailbox access points on this server."
  guide-public-npc-line-1: "<gray>Right-click a Public Access NPC to open your mailbox menu."
  guide-public-pobox-line-1: "<gray>Public Access Mailboxes are shared mail access points that any player can open."
  guide-public-pobox-line-2: "<gray>They are not registered to one specific player."
  guide-public-pobox-line-3: "<gray>Opening one shows your own personal mailbox menu."
  invalid-mailbox-block: "<red>Right-click a supported mailbox body with its matching sign, or right-click the matching sign."
  itemtemplate-delete-failed: "<dark_red>✖</dark_red> <red>Failed to delete item template: %id%"
  itemtemplate-delete-success: "<dark_green>✔</dark_green> <green>Deleted item template: <yellow>%id%"
  itemtemplate-give-received: "<dark_green>✔</dark_green> <green>You received item template: <yellow>%id%"
  itemtemplate-give-success: "<dark_green>✔</dark_green> <green>Gave item template <yellow>%id% <green>to <yellow>%target%<green>."
  itemtemplate-give-target-online: "<red>Target player must be online."
  itemtemplate-invalid-id: "<red>Invalid item template ID."
  itemtemplate-list-empty: "<yellow>No item templates have been saved yet."
  itemtemplate-list-entry: "<gray>- <yellow>%id% <gray>-> <aqua>%item%"
  itemtemplate-list-entry-missing: "<gray>- <yellow>%id% <gray>-> <red>missing item"
  itemtemplate-list-header: "<gold>MailboxGUI Item Templates <gray>(Page <yellow>%page%<gray>/<yellow>%total%<gray>)"
  itemtemplate-list-page-hint: "<white>Page %page%/%total% - %command% <red>{page}</red></white>"
  itemtemplate-no-permission-delete: "<red>You do not have permission to delete item templates."
  itemtemplate-no-permission-give: "<red>You do not have permission to give item templates."
  itemtemplate-no-permission-list: "<red>You do not have permission to list item templates."
  itemtemplate-no-permission-save: "<red>You do not have permission to save item templates."
  itemtemplate-save-failed: "<dark_red>✖</dark_red> <red>Failed to save item template: %id%"
  itemtemplate-save-hold-item: "<red>Hold the item you want to save as a template in your main hand."
  itemtemplate-save-player-only: "<red>Only players can save item templates because an item must be held in hand."
  itemtemplate-save-success: "<dark_green>✔</dark_green> <green>Saved item template: <yellow>%id%"
  itemtemplate-save-use-as: "<gray>Use it in packages as: <aqua>template:%id%:1"
  itemtemplate-unknown: "<red>Unknown item template: %id%"
  mail-message-invalid: "<red>Use up to 256 visible characters and 17 body lines total. Automatic wrapping and /n share this limit."
  mail-sending-options-unavailable: "<red>No mail sending options are currently available."
  material-acacia-fence: "Acacia Fence"
  material-acacia-shelf: "Acacia Shelf"
  material-acacia-sign: "Acacia Sign"
  material-bamboo-fence: "Bamboo Fence"
  material-bamboo-shelf: "Bamboo Shelf"
  material-bamboo-sign: "Bamboo Sign"
  material-barrel: "Barrel"
  material-birch-shelf: "Birch Shelf"
  material-black-shulker-box: "Black Shulker Box"
  material-blue-shulker-box: "Blue Shulker Box"
  material-brown-shulker-box: "Brown Shulker Box"
  material-cherry-fence: "Cherry Fence"
  material-cherry-shelf: "Cherry Shelf"
  material-cherry-sign: "Cherry Sign"
  material-chest: "Chest"
  material-chiseled-bookshelf: "Chiseled Bookshelf"
  material-copper-chest: "Copper Chest"
  material-crafter: "Crafter"
  material-crimson-shelf: "Crimson Shelf"
  material-cyan-shulker-box: "Cyan Shulker Box"
  material-dark-oak-fence: "Dark Oak Fence"
  material-dark-oak-shelf: "Dark Oak Shelf"
  material-dark-oak-sign: "Dark Oak Sign"
  material-dispenser: "Dispenser"
  material-dropper: "Dropper"
  material-ender-chest: "Ender Chest"
  material-exposed-copper-chest: "Exposed Copper Chest"
  material-gray-shulker-box: "Gray Shulker Box"
  material-green-shulker-box: "Green Shulker Box"
  material-jungle-shelf: "Jungle Shelf"
  material-light-blue-shulker-box: "Light Blue Shulker Box"
  material-light-gray-shulker-box: "Light Gray Shulker Box"
  material-lime-shulker-box: "Lime Shulker Box"
  material-magenta-shulker-box: "Magenta Shulker Box"
  material-mangrove-shelf: "Mangrove Shelf"
  material-mangrove-sign: "Mangrove Sign"
  material-oak-fence: "Oak Fence"
  material-oak-shelf: "Oak Shelf"
  material-oak-sign: "Oak Sign"
  material-orange-shulker-box: "Orange Shulker Box"
  material-oxidized-copper-chest: "Oxidized Copper Chest"
  material-pale-oak-fence: "Pale Oak Fence"
  material-pale-oak-shelf: "Pale Oak Shelf"
  material-pale-oak-sign: "Pale Oak Sign"
  material-pink-shulker-box: "Pink Shulker Box"
  material-purple-shulker-box: "Purple Shulker Box"
  material-red-shulker-box: "Red Shulker Box"
  material-shulker-box: "Shulker Box"
  material-spruce-fence: "Spruce Fence"
  material-spruce-shelf: "Spruce Shelf"
  material-spruce-sign: "Spruce Sign"
  material-trapped-chest: "Trapped Chest"
  material-warped-fence: "Warped Fence"
  material-warped-shelf: "Warped Shelf"
  material-warped-sign: "Warped Sign"
  material-waxed-copper-chest: "Waxed Copper Chest"
  material-waxed-exposed-copper-chest: "Waxed Exposed Copper Chest"
  material-waxed-oxidized-copper-chest: "Waxed Oxidized Copper Chest"
  material-waxed-weathered-copper-chest: "Waxed Weathered Copper Chest"
  material-weathered-copper-chest: "Weathered Copper Chest"
  material-white-shulker-box: "White Shulker Box"
  material-yellow-shulker-box: "Yellow Shulker Box"
  no-mailbox: "<red>You do not have a registered mailbox."
  no-permission: "<red>You do not have permission."
  not-your-mailbox: "<red>This mailbox does not belong to you."
  paper-letter-sending-unavailable: "<red>Paper Letter sending is currently unavailable."
  prefix: "<gradient:#FF8758:#ECE9E1:#FF8758>[MailboxGUI]</gradient> <reset>"
  registration-cancelled: "<yellow>Mailbox registration cancelled."
  registration-prompt: "<yellow>Right-click the mailbox chest/barrel or its front sign to register it. Left-click anywhere to cancel. Mailboxes: %current%/%max%."
  restricted-package-codec-unsupported: "A custom item codec reported that %material% is unsupported on this backend."
  restricted-package-default-reason: "Package compatibility could not be verified."
  restricted-package-message: "<red>This package cannot be claimed on this backend. <gray>%reason%"
  restricted-package-placeholder-click: "<yellow>Click to view restriction details."
  restricted-package-placeholder-contents: "<gray>Contents: <white>%count%"
  restricted-package-placeholder-created-with: "<gray>Created With: <white>%version%"
  restricted-package-placeholder-lore-1: "<gray>This package exists, but it cannot"
  restricted-package-placeholder-lore-2: "<gray>be claimed on this backend."
  restricted-package-placeholder-name: "<red><bold>Restricted Package</bold>"
  restricted-package-placeholder-origin: "<gray>Origin Backend: <white>%backend%"
  restricted-package-placeholder-reason: "<red>Reason: <white>%reason%"
  restricted-package-placeholder-separator: "<dark_gray>--------------------"
  restricted-package-reason-cod-unreadable: "COD payment data cannot be read safely."
  restricted-package-reason-legacy-unverified: "Legacy package compatibility could not be verified."
  restricted-package-reason-missing-manifest: "Package is missing a compatibility manifest."
  restricted-package-reason-newer-data-version: "Package was created on a newer Minecraft data version."
  restricted-package-reason-not-package: "Item is not a MailboxGUI package."
  restricted-package-reason-other-backend: "Package is not claimable on this backend."
  restricted-package-reason-unsupported-material: "Package contains unsupported material: %material%"
  settings-kit-alert-invalid: "<red>Invalid mailbox kit reminder setting. Use on or off."
  settings-kit-alert-status: "<yellow>Mailbox Kit Reminder: <white>%status% <gray>(Uses left: <white>%remaining%<gray>)"
  settings-kit-alert-updated: "<dark_green>✔</dark_green> <green>Mailbox kit reminders set to <yellow>%status%<green>."
  settings-line-top: "<dark_gray><strikethrough>------------------------------------------------</strikethrough>"
  settings-mode-advanced: "Advanced"
  settings-mode-off: "Off"
  settings-mode-simple: "Simple"
  settings-offline-invalid: "<red>Invalid offline notification mode. Use simple, advanced, or off."
  settings-offline-status: "<yellow>Offline Notifications: <white>%mode%"
  settings-offline-updated: "<dark_green>✔</dark_green> <green>Offline mail notifications set to <yellow>%mode%<green>."
  settings-online-invalid: "<red>Invalid online notification setting. Use on or off."
  settings-online-status: "<yellow>Online Notifications: <white>%status%"
  settings-online-updated: "<dark_green>✔</dark_green> <green>Online mail notifications set to <yellow>%status%<green>."
  settings-sound-alert-invalid: "<red>Invalid sound alert setting. Use on or off."
  settings-sound-alert-status: "<yellow>Online Sound Alert: <white>%status%"
  settings-sound-alert-updated: "<dark_green>✔</dark_green> <green>Online mail sound alert set to <yellow>%status%<green>."
  settings-status-off: "Off"
  settings-status-on: "On"
  target-inbox-full: "<red>That player's inbox is full."
  target-no-mailbox: "<red>That player does not have a registered mailbox."
  track-entry: "<yellow>%type% <gray>arrives on <white>%date%"
  track-line-top: "<dark_gray><strikethrough>------------------------------------------------</strikethrough>"
  track-none: "<gray>You do not have any delayed mail waiting to arrive."
  typed-recipient-admin-multi-prompt: "<yellow>Type one or more player names separated by commas, or type <red>cancel <yellow>to return. <gray>Example: <white>{name1}, {name2}, {name3}<gray>. All players must exist in MailboxGUI data or server playerdata."
  typed-recipient-admin-not-found: "<red>These players have never logged into this server before: <white>%targets%<red>. No mail was sent."
  typed-recipient-cancelled: "<yellow>Player name selection cancelled."
  typed-recipient-invalid: "<red>Please type a valid player name, or type <yellow>cancel <red>to return."
  typed-recipient-not-found: "<red>Player <white>%target% <red>has never logged into this server before."
  typed-recipient-player-prompt: "<yellow>Type the player name in chat, or type <red>cancel <yellow>to return. <gray>This searches MailboxGUI data and imports server-known players."
  typed-recipient-prompt: "<yellow>Type the player name in chat, or type <red>cancel <yellow>to return. <gray>This searches MailboxGUI data and imports server-known players."
  typed-recipient-suggestions: "<gray>Did you mean: <white>%suggestions%<gray>?"
  typed-recipient-suggestions-separator: "<gray>, <white>"
  unregister-cancelled: "<yellow>Mailbox unregister cancelled."
  unregister-prompt: "<yellow>Right-click your mailbox chest/barrel or sign to unregister it. Left-click anything to cancel."
  world-list-none: "None configured"

  # ------------------------------------------------------------
  # Command syntax
  # ------------------------------------------------------------
  itemtemplate-usage-delete: "<white>Usage: /mba itemtemplate delete <red>{id}</red></white>"
  itemtemplate-usage-full: "<white>Full command form also works: /mba itemtemplate <red>{save|delete|list|give}</red></white>"
  itemtemplate-usage-give: "<white>Usage: /mba itemtemplate give <red>{id}</red> <light_purple>[player]</light_purple></white>"
  itemtemplate-usage-header: "<yellow>Item template commands:"
  itemtemplate-usage-itdelete: "<white>/mba itdelete <red>{id}</red></white>"
  itemtemplate-usage-itgive: "<white>/mba itgive <red>{id}</red> <light_purple>[player]</light_purple></white>"
  itemtemplate-usage-itlist: "<white>/mba itlist <light_purple>[page]</light_purple></white>"
  itemtemplate-usage-itsave: "<white>/mba itsave <red>{id}</red></white>"
  itemtemplate-usage-save: "<white>Usage: /mba itemtemplate save <red>{id}</red></white>"

  # ------------------------------------------------------------
  # Help menus
  # ------------------------------------------------------------
  help-command-admin: "<white> admin</white>"
  help-command-admin-admininbox: "<white> admininbox</white>"
  help-command-admin-base: "<white>/mailbox admin</white>"
  help-command-admin-base-alias: "<white> or /mba</white>"
  help-command-admin-clean: "<white> clean</white>"
  help-command-admin-convert: "<white> convert <red>{YAML|SQLITE|MYSQL}</red></white>"
  help-command-admin-convert-current: "<white> convert current</white>"
  help-command-admin-import-playerdata: "<white> import player <red>{name1}</red><light_purple>[,{name2}]</light_purple></white>"
  help-command-admin-inboxnotification: "<white> inboxnotification <light_purple>[on|off]</light_purple></white>"
  help-command-admin-itemtemplate-delete: "<white> itdelete <red>{id}</red></white>"
  help-command-admin-itemtemplate-give: "<white> itgive <red>{id}</red> <light_purple>[player]</light_purple></white>"
  help-command-admin-itemtemplate-list: "<white> itlist <light_purple>[page]</light_purple></white>"
  help-command-admin-itemtemplate-save: "<white> itsave <red>{id}</red></white>"
  help-command-admin-networkindex: "<white> networkindex</white>"
  help-command-admin-purge: "<white> purge <red>{player|all}</red> CONFIRM</white>"
  help-command-admin-redis: "<white> redis status</white>"
  help-command-admin-register: "<white> register <red>{playername}</red></white>"
  help-command-admin-reload: "<white> reload</white>"
  help-command-admin-scheduledmail: "<white> scheduledmail <red>{reload|list|info|run|enable|disable}</red></white>"
  help-command-admin-send-book-letter: "<white> sla <red>{recipients}</red> '<red>{message}</red>' --title <red>{title}</red> --from <red>{sender}</red> --delay <red>{seconds}</red></white>"
  help-command-admin-send-cod: "<white> scod <red>{recipients}</red> p:<red>{price}</red> r:<red>{player}</red>/admin <light_purple>[item:amount,t:id:amount,xp:amount]</light_purple> --from <red>{sender}</red> --delay <red>{seconds}</red> --expire <red>{time}</red></white>"
  help-command-admin-send-cod-admin: "<white>Use r:admin to return successful payments and declined/expired Packages to the Shared Admin Inbox.</white>"
  help-command-admin-send-letter: "<white> sl <red>{recipients}</red> '<red>{message}</red>' --from <red>{sender}</red> --delay <red>{seconds}</red></white>"
  help-command-admin-send-money: "<white> sm <red>{recipients}</red> <red>{amount}</red> --from <red>{sender}</red> --delay <red>{seconds}</red></white>"
  help-command-admin-send-package: "<white> sp <red>{recipients}</red> <light_purple>[item:amount,t:id:amount,xp:amount]</light_purple> --from <red>{sender}</red> --delay <red>{seconds}</red></white>"
  help-command-admin-spigotlink: "<white> spigotlink <red>{code}</red></white>"
  help-command-admin-testaimoney: "<white> testaimoney <red>{amount}</red></white>"
  help-command-admin-testaipackage: "<white> testaipackage <red>{codr|codi}</red> <red>{amount}</red></white>"
  help-command-admin-testletter: "<white> testletter <red>{paper|book}</red> <red>{player}</red> <red>{amount}</red></white>"
  help-command-admin-testmoney: "<white> testmoney <red>{standard|cod}</red> <red>{player}</red></white>"
  help-command-admin-testpackage: "<white> testpackage <red>{type}</red> <red>{amount}</red> <red>{player}</red></white>"
  help-command-admin-tools: "<white> tools</white>"
  help-command-admin-unregister: "<white> unregister</white>"
  help-command-admin-update: "<white> update</white>"
  help-command-admin-updatecheck: "<white> updatecheck</white>"
  help-command-admin-updatelogin: "<white> updatelogin <red>{status|set|clear}</red></white>"
  help-command-base: "<white>/mailbox</white>"
  help-command-base-alias: "<white> or /mb</white>"
  help-command-check: "<white> check</white>"
  help-command-guide: "<white> guide</white>"
  help-command-kit: "<white> kit</white>"
  help-command-letter: "<white> letter</white>"
  help-command-money: "<white> money</white>"
  help-command-open: "<white> open</white>"
  help-command-package: "<white> package</white>"
  help-command-register: "<white> register</white>"
  help-command-settings: "<white> settings</white>"
  help-command-track: "<white> track</white>"
  help-command-unregister: "<white> unregister</white>"
  help-desc-admin-admininbox: "<gray>Open the Shared Admin Inbox."
  help-desc-admin-base: "<gray>Base admin command and opens admin help menu."
  help-desc-admin-clean: "<gray>Cleans MailboxGUI backup files from old upgrades, syncs, and conversions. Confirm mail data is working before use."
  help-desc-admin-convert: "<gray>Converts MailboxGUI storage to the selected mode. The target cannot be the current storage mode."
  help-desc-admin-convert-current: "<gray>Shows the current active MailboxGUI storage mode."
  help-desc-admin-import-playerdata: "<gray>Creates MailboxGUI data for named players who have logged in before."
  help-desc-admin-inboxnotification: "<gray>Toggle online Shared Admin Inbox alerts. Leave off on busy servers unless you want frequent admin notices."
  help-desc-admin-itemtemplate-delete: "<gray>Deletes a saved package item template."
  help-desc-admin-itemtemplate-give: "<gray>Gives a saved package item template."
  help-desc-admin-itemtemplate-list: "<gray>Lists saved package item templates."
  help-desc-admin-itemtemplate-save: "<gray>Saves the held item as a package template."
  help-desc-admin-networkindex: "<gray>Indexes this backend's known players for network-wide recipient lookup."
  help-desc-admin-purge: "<gray>Clears inbox contents without deleting player records, mailboxes, settings, or plugin data."
  help-desc-admin-redis: "<gray>Checks Redis, channels, and known backend health."
  help-desc-admin-register: "<gray>Registers a mailbox to a specific player."
  help-desc-admin-reload: "<gray>Reloads configs and language files."
  help-desc-admin-scheduledmail: "<gray>Manage Scheduled Mail tasks from scheduled-mail/scheduled-mail.yml."
  help-desc-admin-send-book-letter: "<gray>Sends an admin book letter by command or console."
  help-desc-admin-send-cod: "<gray>Sends a COD package using Vault currency, item currency, XP, or t:{id} templates."
  help-desc-admin-send-letter: "<gray>Sends an admin classic paper letter by command or console."
  help-desc-admin-send-money: "<gray>Sends admin-origin money mail by command or console."
  help-desc-admin-send-package: "<gray>Sends materials, XP, or t:{id} item templates as a package."
  help-desc-admin-spigotlink: "<gray>Prepared placeholder for linking future SpigotMC Premium buyers."
  help-desc-admin-testaimoney: "<gray>Creates Shared Admin Inbox COD money payment test mail items. Amount controls how many are created."
  help-desc-admin-testaipackage: "<gray>Creates Shared Admin Inbox package test mail for returned COD and item-currency payment flows."
  help-desc-admin-testletter: "<gray>Creates multiple paper or book test Letter mail items with complete inbox lore."
  help-desc-admin-testmoney: "<gray>Creates player inbox money or COD payment test mail."
  help-desc-admin-testpackage: "<gray>Creates player inbox package test mail for standard, COD, payment, returned, and accepted package flows."
  help-desc-admin-tools: "<gray>Opens the admin tools menu."
  help-desc-admin-unregister: "<gray>Unregister a player's registered mailbox."
  help-desc-admin-update: "<gray>Stages the latest website release update after confirmation."
  help-desc-admin-updatecheck: "<gray>Checks the website release system for the latest MailboxGUI version."
  help-desc-admin-updatelogin: "<gray>Set or check Premium website login credentials for protected Premium updates."
  help-desc-base: "<gray>Base command and opens help menu."
  help-desc-check: "<gray>Shows a summary of your unchecked mail."
  help-desc-guide: "<gray>Shows how to access mail and choose a mailbox style to build."
  help-desc-kit: "<gray>Gives starter blocks for building a mailbox."
  help-desc-letter: "<gray>Compose and send a Letter without opening a mailbox."
  help-desc-money: "<gray>Send Money Mail by command after choosing a recipient and entering the amount in chat."
  help-desc-open: "<gray>Opens your mailbox menu by command when enabled."
  help-desc-package: "<gray>Compose a Package by command, choose a recipient, add items or XP, and send without using a mailbox access point."
  help-desc-register: "<gray>Register a mailbox."
  help-desc-settings: "<gray>Shows and changes your mailbox settings: notifications, resource pack, and Discord when available."
  help-desc-settings-notification: "<gray>Manage mail notifications, sounds, and mailbox kit reminders."
  help-desc-settings-resourcepack: "<gray>Choose resource-pack icons or built-in icons."
  help-desc-settings-discord: "<gray>Manage Discord mail notifications when available."
  help-desc-settings-notification-status: "<gray>Shows your current notification settings."
  help-desc-settings-notification-offline: "<gray>Choose simple, advanced, or no mail notifications when you join."
  help-desc-settings-notification-online: "<gray>Turn new-mail notifications while online on or off."
  help-desc-settings-notification-soundalert: "<gray>Turn mail notification sounds on or off."
  help-desc-settings-notification-kit: "<gray>Turn mailbox kit reminders on or off."
  help-desc-settings-resourcepack-auto: "<gray>Automatically detect the server resource pack; client-installed packs need on."
  help-desc-settings-resourcepack-on: "<gray>Use custom icons from the matching pack installed and enabled in your Minecraft client."
  help-desc-settings-resourcepack-off: "<gray>Use built-in icons even when a server resource pack is loaded."
  settings-kit-uses-unlimited: "Unlimited"
  help-desc-track: "<gray>Shows delayed mail waiting to be delivered to you."
  help-desc-unregister: "<gray>Unregister a mailbox."
  help-line-top: "<dark_gray><strikethrough>------------------------------------------------</strikethrough>"
  help-page-footer: "<white>Page %page%/%pages% - %command% <red>{page}</red></white>"
  help-section-admin: "<red>Admin Commands"
  help-section-player: "<yellow>Player Commands"
  help-title-main: "<gold><bold>MailboxGUI v%version%</bold>"
  help-title-sub: "<yellow><bold>Mailbox Commands</bold>"

  # ------------------------------------------------------------
  # Player mail and mailboxes
  # ------------------------------------------------------------
  book-letter-draft-opened: "<yellow>A temporary Book and Quill was placed in your hand. Right-click it to write your Book Letter, then click <white>Sign and Close <yellow>to send."
  book-letter-empty: "<red>Book Letter cannot be empty. Reopen the Book and Quill and write at least one page before signing."
  book-letter-progress-saved: "<yellow>Book Letter progress saved. Right-click the Book and Quill again to keep writing, or type <red>cancel <yellow>to cancel."
  book-letter-prompt-message: "<yellow>Use the Book and Quill in your hand to write this Book Letter. Type <red>cancel <yellow>in chat to cancel."
  book-letter-reply-prompt-message: "<yellow>Use the Book and Quill in your hand to write this reply. Type <red>cancel <yellow>in chat to cancel."
  book-letter-sending-unavailable: "<red>Book Letter sending is currently unavailable."
  book-letter-session-locked: "<red>You cannot do anything else until this Book Letter is sent or canceled. Type <yellow>cancel <red>to cancel."
  book-letter-use-book: "<yellow>Use the Book and Quill in your hand to finish this Book Letter, or type <red>cancel <yellow>to cancel. You cannot do anything else until this Book Letter is sent or canceled."
  chat-input-command-blocked: "<red>You are entering mailbox information right now. Type a valid response in chat, or type <yellow>cancel <red>to go back."
  check-cod-packages: "<yellow>COD Packages: <white>%count%"
  check-cod-return-packages: "<yellow>COD Return Packages: <white>%count%"
  check-letters: "<yellow>Letters: <white>%count%"
  check-line-top: "<dark_gray><strikethrough>------------------------------------------------</strikethrough>"
  check-money-mail: "<yellow>Money Mail: <white>%count%"
  check-none: "<gray>You do not have any unchecked mail."
  check-package-contents-hidden: "<gray>Package contents can only be viewed from your mailbox inbox."
  check-packages: "<yellow>Packages: <white>%count%"
  check-paper-letter-hidden-body: "<dark_red><bold>To Read this Letter you must check your inbox. Not viewable from mailbox check command.</bold>"
  check-read-only: "<gray>This view only checks what mail is waiting in your mailbox. To manage or read mail, open your inbox from a Mailbox, Public Access Mailbox, or Public Access NPC."
  check-summary: "<gray>You have <yellow>%total% <gray>unchecked mail items."
  letter-cancelled: "<yellow>Letter creation cancelled."
  letter-command-book-only-paper-mailbox: "<gray>To send a Paper Letter, build a mailbox. Use <yellow>/mb guide<gray> for setup."
  letter-command-book-only-paper-postoffice: "<gray>To send a Paper Letter, use a Public Access Mailbox or build a mailbox. Use <yellow>/mb guide<gray> for mailbox setup."
  letter-command-paper-only-book-mailbox: "<gray>To send a Book Letter, build a mailbox. Use <yellow>/mb guide<gray> for setup."
  letter-command-paper-only-book-postoffice: "<gray>To send a Book Letter, use a Public Access Mailbox or build a mailbox. Use <yellow>/mb guide<gray> for mailbox setup."
  letter-delayed-queue-failed: "<dark_red>✖</dark_red> <red>Letter could not be queued for delayed delivery."
  letter-disabled: "<red>Letters are disabled on this server."
  letter-prompt-message: "<yellow>Type your paper letter message in chat. Use up to %max_length% visible characters, 28 per line, and 17 body lines total. Automatic wrapping and /n share this limit. Colors are supported; //n displays literal /n. Type <red>cancel <yellow> to go back."
  letter-prompt-target: "<yellow>Type the player name to send the letter to. Type <red>cancel <yellow>to cancel."
  letter-reply-prompt-message: "<yellow>Type your reply to <white>%target%<yellow>. Use up to %max_length% visible characters, 28 per line, and 17 body lines total. Automatic wrapping and /n share this limit. Colors are supported; //n displays literal /n. Type <red>cancel <yellow> to return to your inbox."
  letter-reply-unavailable: "<red>This letter cannot be replied to."
  letter-scheduled: "<yellow>Letter to %target% will be delivered in %seconds% seconds."
  letter-sending-unavailable: "<red>Letter sending is currently unavailable."
  letter-sent: "<dark_green>✔</dark_green> <green>Letter sent to %target%."
  letter-sent-money-mailbox: "<dark_green>✔</dark_green> <green>Letter sent to %target%. <gray>To send money mail, build a mailbox. Use <yellow>/mb guide<gray> for setup."
  letter-sent-money-postoffice: "<dark_green>✔</dark_green> <green>Letter sent to %target%. <gray>To send money mail, use a Public Access Mailbox or build a mailbox. Use <yellow>/mb guide<gray> for mailbox setup."
  letter-sent-other-mail-mailbox: "<dark_green>✔</dark_green> <green>Letter sent to %target%. <gray>To send %types%, build a mailbox. Use <yellow>/mb guide<gray> for setup."
  letter-sent-other-mail-postoffice: "<dark_green>✔</dark_green> <green>Letter sent to %target%. <gray>To send %types%, use a Public Access Mailbox or build a mailbox. Use <yellow>/mb guide<gray> for mailbox setup."
  letter-sent-package-mailbox: "<dark_green>✔</dark_green> <green>Letter sent to %target%. <gray>To send a package, build a mailbox. Use <yellow>/mb guide<gray> for setup."
  letter-sent-package-money-mailbox: "<dark_green>✔</dark_green> <green>Letter sent to %target%. <gray>To send packages or money mail, build a mailbox. Use <yellow>/mb guide<gray> for setup."
  letter-sent-package-money-postoffice: "<dark_green>✔</dark_green> <green>Letter sent to %target%. <gray>To send packages or money mail, use a Public Access Mailbox or build a mailbox. Use <yellow>/mb guide<gray> for mailbox setup."
  letter-sent-package-postoffice: "<dark_green>✔</dark_green> <green>Letter sent to %target%. <gray>To send a package, use a Public Access Mailbox or build a mailbox. Use <yellow>/mb guide<gray> for mailbox setup."
  letter-session-expired: "<red>That letter draft expired. Please start again."
  letter-too-long: "<red>Use up to %max_length% visible characters, 28 per line, and 17 body lines total. Automatic wrapping and /n share this limit. Colors are supported; //n displays literal /n. Type <yellow>cancel <red> to go back."
  mailbox-already-registered: "<red>Mailbox already registered. Use /mailbox unregister first."
  mailbox-claimed: "<red>That mailbox is already registered."
  mailbox-command-open-disabled: "<red>Opening your mailbox by command is disabled on this server."
  mailbox-command-open-world-disabled: "<red>This command is not enabled in this world. <gray>Allowed worlds: <white>%worlds%"
  mailbox-command-opened: "<dark_green>✔</dark_green> <green>Opened your mailbox menu."
  mailbox-fence-required: "<red>Personal classic mailboxes require a fence post directly below the mailbox body."
  mailbox-kit-disabled: "<red>Mailbox kits are disabled on this server."
  mailbox-kit-given: "<green>Mailbox kit received: <yellow>%kit%<green>! <gray>Use <yellow>/mb guide <gray>to learn how to set up your mailbox. Uses left: <white>%remaining%<gray>."
  mailbox-kit-list-entry: "<yellow>%kit%"
  mailbox-kit-list-header: "<gold><bold>Mailbox Kits </bold><dark_gray>- <gray>Page <white>%page%<gray>/<white>%pages%"
  mailbox-kit-list-item: "<gray>  - <white>%amount%x <gray>%material%"
  mailbox-kit-list-navigation: "<gray>%previous% <dark_gray>| <gray>%next%"
  mailbox-kit-list-use: "<gray>  Use: <yellow>/mb kit %kit%"
  mailbox-kit-no-uses: "<red>You do not have any mailbox kit uses remaining."
  mailbox-kit-reminder: "<yellow>You can use <gold>/mb kit <yellow>to get mailbox setup blocks. <gray>Use <yellow>/mb guide <gray>for setup help. Uses left: <white>%remaining%<gray>. Disable this reminder with <yellow>/mb settings notification kit off<gray>."
  mailbox-kit-reminder-multiple: "<yellow>You can use <gold>/mb kit <yellow>to view available mailbox kits, then <gold>/mb kit {kitname} <yellow>to choose one. <gray>Uses left: <white>%remaining%<gray>. Disable this reminder with <yellow>/mb settings notification kit off<gray>."
  mailbox-kit-unavailable: "<red>No mailbox kits are available on this server version."
  mailbox-limit-reached: "<red>You have reached the mailbox limit of %max%."
  mailbox-protected: "<red>You cannot break a registered mailbox. Use /mailbox unregister first."
  mailbox-registered: "<dark_green>✔</dark_green> <green>Mailbox registered successfully. You now have %count% mailbox(es)."
  mailbox-sign-claimed: "<red>That sign is already used by another mailbox."
  mailbox-status-loaded: "<green>Loaded"
  mailbox-status-remote-server: "<yellow>Remote Server"
  mailbox-status-unloaded: "<red>Unloaded"
  mailbox-unregister-invalid: "<red>That mailbox could not be unregistered. It may have already been removed."
  mailbox-unregistered: "<yellow>Mailbox unregistered. You now have %count% mailbox(es)."
  money-claim-failed: "<dark_red>✖</dark_red> <red>That money could not be claimed."
  money-delayed-queue-failed: "<dark_red>✖</dark_red> <red>Money mail could not be queued for delayed delivery. Your payment was refunded."
  money-economy-unavailable: "<red>Money mail is unavailable because Vault economy is not hooked."
  money-insufficient-funds: "<red>You do not have enough money for that."
  money-invalid-amount: "<red>That is not a valid amount. Type an amount greater than 0, or type <yellow>cancel <red>to go back."
  money-invalid-item: "<red>That money item is invalid."
  money-message-prompt: "<yellow>Type the message to attach to this money mail. Use up to 256 visible characters, 28 per line, and 17 body lines total. Automatic wrapping and /n share this limit. Colors are supported; //n displays literal /n. Type <white>off <yellow> to remove the message or continue without one, or <white>cancel <yellow> to return."
  money-network-busy: "<red>That money mail is already being processed. Please try again in a moment."
  money-prompt-amount: "<yellow>Type the amount to send to <white>%target%<yellow>. Type <red>cancel <yellow>to go back."
  money-received: "<dark_green>✔</dark_green> <green>You received %amount%."
  money-scheduled: "<yellow>Money Mail of %amount% to %target% will be delivered in %seconds% seconds."
  money-send-cancelled: "<yellow>Money send cancelled."
  money-send-failed: "<dark_red>✖</dark_red> <red>The money could not be sent."
  money-sending-unavailable: "<red>Money Mail is currently unavailable. Check Vault and economy setup."
  money-sent: "<dark_green>✔</dark_green> <green>Sent %amount% to %target%."
  package-cancel-lore: ""
  package-cancel-lore-1: "<gray>Click to cancel and return items."
  package-cancel-name: "<red>Cancel"
  package-cancelled: "<yellow>Package creation cancelled."
  package-check-close-lore-1: "<gray>Return to mailbox check."
  package-check-close-name: "<red>Close"
  package-check-info-lore-1: "<gray>View the contents of this package."
  package-check-info-lore-2: "<dark_gray>Read-only view from /mb check."
  package-check-info-name: "<gold><bold>Package Information</bold>"
  package-cod-accepted: "<green>Package accepted for %price%."
  package-cod-cancelled: "<yellow>COD setup cancelled."
  package-cod-cleared: "<yellow>COD removed from this package."
  package-cod-declined: "<yellow>COD package declined and returned to sender."
  package-cod-disabled-lore-1: "<dark_gray>Vault/economy is unavailable."
  package-cod-disabled-name: "<gray>COD Disabled"
  package-cod-enabled-lore-1: "<gray>Price: <white>%price%"
  package-cod-enabled-lore-2: "<dark_gray>Click to change or remove."
  package-cod-enabled-name: "<red>Cash-On-Demand Enabled"
  package-cod-insufficient: "<red>You need %price% to accept this package."
  package-cod-invalid: "<red>That is not a valid COD price. Type a positive amount, type <yellow>off <red>to disable COD, or type <yellow>cancel <red>to go back."
  package-cod-invalid-item-currency: "<red>That is not a valid item-currency COD price. Example: <yellow>diamond:4,gold_nugget:2,xp:100<red>."
  package-cod-item-currency-disabled: "<red>Item-currency COD is disabled."
  package-cod-item-currency-too-large: "<red>Item-currency COD supports up to %packagesize% item slots for this package size."
  package-cod-item-prompt: "<yellow>Type the Item COD price. Example <white>diamond:4,gold_nugget:2,xp:100<yellow>. Supports up to <white>%packagesize% <yellow>item slots. Type <red>off <yellow>to disable COD, or type <red>cancel <yellow>to go back."
  package-cod-off-lore-1: "<gray>Click to set a Cash-On-Demand price."
  package-cod-off-lore-2: "<dark_gray>Recipient must pay before claiming."
  package-cod-off-name: "<gold>Cash-On-Demand: Off"
  package-cod-open-from-inbox: "<yellow>This COD package must be opened from your mailbox inbox."
  package-cod-payment-failed: "<dark_red>✖</dark_red> <red>Failed to process the COD payment."
  package-cod-payment-type-unavailable: "<red>This COD payment type is currently unavailable."
  package-cod-prompt: "<yellow>Type the COD price. Type <red>off <yellow>to disable COD, or type <red>cancel <yellow>to go back."
  package-cod-prompt-combined: "<yellow>Type the COD price by <white>%currency% <yellow>or item currency. Examples: <white>100 <yellow>or <white>diamond:4,gold_nugget:2,xp:100 <yellow>or <white>100,diamond:3,t:rare-sword:1<yellow>. Vault currency must always be first. Type <red>off <yellow>to disable COD, or type <red>cancel <yellow>to go back."
  package-cod-set: "<green>COD set to <white>%price%<green>."
  package-cod-template-not-found: "<red>That item template could not be found."
  package-cod-unavailable: "<red>COD is unavailable because all COD payment options are disabled."
  package-compose-opened: "<yellow>Place up to %count% items in the package, select if you want cash on demand, and then click confirm."
  package-compose-opened-no-cod: "<yellow>Place up to %count% items in the package, then click confirm."
  package-confirm-lore: ""
  package-confirm-lore-1: "<gray>Click to send this package."
  package-confirm-name: "<green>Confirm Package"
  package-delayed-queue-failed: "<dark_red>✖</dark_red> <red>Package could not be queued for delayed delivery."
  package-disabled: "<red>Packages are disabled on this server."
  package-empty: "<red>You must place at least one item in the package."
  package-experience-cancelled: "<yellow>Experience setup cancelled."
  package-experience-cleared: "<yellow>Package experience removed."
  package-experience-compose-item-lore-1: "<gray>Stored Experience: <white>%experience%"
  package-experience-compose-item-lore-2: "<dark_gray>Right-click to remove experience."
  package-experience-disabled: "<red>Package experience is disabled on this server."
  package-experience-disabled-lore-1: "<dark_gray>Package experience is disabled."
  package-experience-disabled-name: "<gray>Experience Disabled"
  package-experience-invalid-amount: "<red>That is not a valid experience amount. Type an amount greater than 0, type <yellow>off <red>to remove experience, or type <yellow>cancel <red>to go back."
  package-experience-limit-reached: "<red>That is above the package experience limit of %max%."
  package-experience-lore-1: "<gray>Stored Experience: <white>%experience%"
  package-experience-lore-2: "<gray>Your Experience: <white>%player_experience%"
  package-experience-lore-3: "<dark_gray>Click to set package experience."
  package-experience-name: "<green><bold>Add Experience</bold>"
  package-experience-no-empty-slot: "<red>There is no empty package slot available for experience."
  package-experience-not-enough: "<red>You do not have enough experience. You currently have %experience%."
  package-experience-prompt: "<yellow>Type the amount of experience to add. You currently have <white>%experience% <yellow>experience. Type <red>cancel <yellow>to go back."
  package-experience-redeem-failed: "<dark_red>✖</dark_red> <red>That experience could not be redeemed."
  package-experience-redeem-invalid: "<red>That experience package item is invalid."
  package-experience-redeemed: "<dark_green>✔</dark_green> <green>You received <white>%experience% <green>experience."
  package-experience-set: "<green>Package experience set to <white>%experience%<green>."
  package-invalid: "<red>That package is invalid."
  package-message-cancelled: "<yellow>Message editing cancelled."
  package-message-cleared: "<yellow>The package message was removed."
  package-message-disabled-lore-1: "<gray>Attach a message to this package."
  package-message-disabled-name: "<yellow><bold>Add Package Message</bold>"
  package-message-enabled-lore-1: "<gray>A message is attached to this package."
  package-message-enabled-name: "<green><bold>Package Message: Enabled</bold>"
  package-message-lore-2: "<yellow>Click to edit the message."
  package-message-prompt: "<yellow>Type the message to attach to this package. Use up to 256 visible characters, 28 per line, and 17 body lines total. Automatic wrapping and /n share this limit. Colors are supported; //n displays literal /n. Type <white>off <yellow> to remove the message or continue without one, or <white>cancel <yellow> to return."
  package-message-set: "<green>The package message was attached."
  package-nesting-blocked: "<red>You cannot place a MailboxGUI package inside another MailboxGUI package."
  package-network-busy: "<red>That mail item is already being processed. Please try again in a moment."
  package-preview-accept-lore-1: "<gray>Check the top-middle price icon, then click to accept."
  package-preview-accept-name: "<green>Accept Package"
  package-preview-cancel-lore-1: "<gray>Leave this package in your inbox."
  package-preview-cancel-name: "<red>Cancel"
  package-preview-close-lore-1: "<gray>Return to your inbox."
  package-preview-close-name: "<green>Close"
  package-preview-decline-lore-1: "<gray>Return this COD package to the sender."
  package-preview-decline-name: "<yellow>Decline Package"
  package-preview-price-lore-1: "<gray>Price: <white>%price%"
  package-preview-price-lore-2: "<dark_gray>Shown at the top-middle of this preview."
  package-preview-price-name: "<gold><bold>COD Price</bold>"
  package-prompt-target: "<yellow>Type the player name to send the package to. Type <red>cancel <yellow>to go back."
  package-receive-close-lore-1: "<gray>Save remaining contents and return to inbox."
  package-receive-close-name: "<red>Close"
  package-receive-info-lore-1: "<gray>Withdraw items from this package."
  package-receive-info-lore-2: "<dark_gray>The package updates until it is empty."
  package-receive-info-name: "<gold><bold>Package Contents</bold>"
  package-received-opened: "<dark_green>✔</dark_green> <green>Package opened."
  package-return-failed: "<dark_red>✖</dark_red> <red>That package could not be returned to the sender."
  package-scheduled: "<yellow>Package to %target% will be delivered in %seconds% seconds."
  package-sending-unavailable: "<red>Package sending is currently unavailable."
  package-sent: "<dark_green>✔</dark_green> <green>Package sent to %target%."
  package-shulker-not-empty: "<red>You cannot place a shulker box with items inside it into a package."
  package-target-not-found: "<red>That player does not have a registered mailbox."
  player-command-send-world-disabled: "<red>Sending mail by command is not enabled in this world. <gray>Allowed worlds: <white>%worlds%"
  player-only: "<red>This command can only be used by a player."
  postoffice-disabled: "<red>The Public Access Mailbox system is disabled."
  postoffice-invalid-mailbox-block: "<red>You must select a supported mailbox body with its matching sign, or the matching sign itself."
  postoffice-mailbox-already-registered: "<red>That Public Access Mailbox is already registered."
  postoffice-mailbox-not-found: "<red>That Public Access Mailbox was not found."
  postoffice-mailbox-protected: "<red>You cannot break a registered Public Access Mailbox. Unregister it first."
  postoffice-mailbox-registered: "<dark_green>✔</dark_green> <green>Public Access Mailbox registered for <white>%postofficename%<green> as Public Access Mailbox #%number%."
  postoffice-mailbox-unregistered: "<yellow>Public Access Mailbox unregistered."
  postoffice-mailboxes-disabled: "<red>Public Access Mailboxes are disabled."
  postoffice-name-cancelled: "<yellow>Public Access Mailbox setup cancelled."
  postoffice-name-invalid: "<red>That is not a valid Public Access Mailbox name. Use letters, numbers, spaces, apostrophes, underscores, or hyphens, or type <yellow>cancel <red>to go back."
  postoffice-name-prompt: "<yellow>Type the Public Access Mailbox name for this mailbox. Type <red>cancel <yellow>to go back."
  postoffice-no-registered-mailboxes: "<gray>No Public Access Mailboxes are registered."
  postoffice-selector-cancelled: "<yellow>Public Access Mailbox selector cancelled."
  postoffice-selector-remove-prompt: "<yellow>Right-click a registered Public Access Mailbox chest/barrel/sign to remove it. Left-click anywhere to cancel."
  postoffice-selector-set-prompt: "<yellow>Right-click a valid Public Access Mailbox chest/barrel/sign to register it. Left-click anywhere to cancel."

  # ------------------------------------------------------------
  # Administration
  # ------------------------------------------------------------
  admin-audience-all-mailboxes: "All Players"
  admin-audience-offline-mailboxes: "Offline Players"
  admin-audience-online-mailboxes: "Online Players"
  admin-audience-selected-mailbox: "Selected Recipient"
  admin-clean-active-untouched: "<gray>Active mail data and active configuration files were not touched."
  admin-clean-cancelled: "<yellow>MailboxGUI backup cleanup cancelled."
  admin-clean-command-confirm-help: "<yellow>Run <white>/mailbox admin clean<yellow>, then type <white>CLEAN<yellow> or <white>cancel<yellow>."
  admin-clean-command-confirm-not-allowed: "<red>In-game cleanup confirmation must be typed in chat, not as a command."
  admin-clean-commands-blocked: "<red>Commands are blocked until you confirm or cancel."
  admin-clean-complete: "<dark_green>✔</dark_green> <green>MailboxGUI backup cleanup complete. Deleted %files% file(s) and %folders% folder(s)."
  admin-clean-console-confirm: "<gray>To confirm from console, run: <white>/mailbox admin clean confirm"
  admin-clean-console-confirm-alt: "<gray>Or: <white>/mba clean confirm"
  admin-clean-failed: "<dark_red>✖</dark_red> <red>MailboxGUI backup cleanup finished with %failures% failure(s). Check console for details."
  admin-clean-none: "<yellow>No MailboxGUI generated backup files were found to clean."
  admin-clean-pending: "<red>Cleanup confirmation is still pending."
  admin-clean-pending-command: "<red>Cleanup confirmation is pending."
  admin-clean-pending-no-other: "<red>No other chat text or commands can be used until you respond."
  admin-clean-pending-response: "<yellow>Type <white>CLEAN<yellow> to confirm, or <white>cancel<yellow> to cancel."
  admin-clean-player-cancel: "<gray>Type <white>cancel<gray> to cancel."
  admin-clean-player-confirm: "<red>Type <white>CLEAN<red> in chat to confirm."
  admin-clean-player-lock: "<red>You cannot type any other chat text or commands until you type CLEAN or cancel."
  admin-clean-preserved-markers: "<gray>Preserved %markers% internal upgrade marker(s) so old upgrade backups are not recreated."
  admin-clean-starting: "<yellow>Cleaning MailboxGUI generated backup files..."
  admin-clean-warning-check-data: "<gold>⚠</gold> <yellow>Only use this after confirming your current mail data, storage, config, and language files are working correctly."
  admin-clean-warning-header: "<gold>⚠</gold> <yellow>WARNING: This command deletes MailboxGUI generated backup files."
  admin-clean-warning-updated-or-converted: "<gold>⚠</gold> <yellow>If you recently updated MailboxGUI or performed a storage conversion, verify everything works before cleaning backups."
  admin-convert-already-current: "<yellow>MailboxGUI is already using %storage% storage. No conversion was performed."
  admin-convert-backup-created: "<gray>Backup created at: %path%"
  admin-convert-complete: "<dark_green>✔</dark_green> <green>Storage conversion completed: %players% player data record(s), Public Access Mailbox data, %from% -> %to%."
  admin-convert-config-updated: "<dark_green>✔</dark_green> <green>Config updated: storage.type = %storage%"
  admin-convert-current-active: "<gray>Active storage provider: %storage%"
  admin-convert-current-configured: "<gray>Configured storage mode: %storage%"
  admin-convert-current-mismatch: "<yellow>Note: The active storage provider does not match the configured storage mode."
  admin-convert-current-status: "<yellow>Current MailboxGUI storage mode: <green>%storage%"
  admin-convert-current-undetermined: "<red>MailboxGUI could not determine the current storage mode."
  admin-convert-failed: "<dark_red>✖</dark_red> <red>Storage conversion failed. Config was not changed."
  admin-convert-invalid-type: "<red>Invalid storage type. Use YAML, SQLITE, or MYSQL."
  admin-convert-network-disabled: "<red>Storage conversion is disabled while network mode is active. Disable network mode and stop other backends before converting storage."
  admin-convert-progress-mysql-connecting: "<yellow>Connecting to MySQL database..."
  admin-convert-progress-mysql-creating-tables: "<yellow>Creating MySQL tables if needed..."
  admin-convert-progress-mysql-logging-in: "<yellow>Logging in to MySQL database..."
  admin-convert-progress-mysql-login-success: "<yellow>MySQL login successful."
  admin-convert-progress-mysql-tables-ready: "<yellow>MySQL tables are ready."
  admin-convert-reloaded-active: "<dark_green>✔</dark_green> <green>MailboxGUI reloaded with active storage mode: %storage%"
  admin-convert-remains: "<red>MailboxGUI remains on %storage% storage."
  admin-convert-starting: "<yellow>Starting MailboxGUI storage conversion from %from% to %to%..."
  admin-convert-usage-current: "<white>Usage: /mailbox admin convert current</white>"
  admin-convert-usage-target: "<white>Usage: /mailbox admin convert <red>{YAML|SQLITE|MYSQL}</red></white>"
  admin-import-playerdata-complete: "<dark_green>✔</dark_green> <green>Imported <white>%count% <green>player(s) into MailboxGUI. <gray>Already existing skipped: <white>%existing%<gray>. Not found: <white>%skipped%<gray>. Requested: <white>%source%<gray>."
  admin-import-playerdata-folder-missing: "<red>Could not find the main world playerdata folder."
  admin-import-playerdata-invalid-months: "<red>Please type one or more exact player names. Example: <white>/mailbox admin import player Rismr1,Horndogy"
  admin-import-playerdata-no-pending: "<red>Player import no longer uses confirmation. Use <white>/mailbox admin import player {name1}[,{name2}]<red>."
  admin-import-playerdata-preview-all: "<red>Player import no longer supports importing all players. Use <white>/mailbox admin import player {name1}[,{name2}]<red>."
  admin-import-playerdata-preview-months: "<red>Player import no longer supports month filtering. Use <white>/mailbox admin import player {name1}[,{name2}]<red>."
  admin-import-playerdata-usage: "<white>Usage: /mailbox admin import player <red>{name1}</red><light_purple>[,{name2}]</light_purple></white>"
  admin-inbox-claim-busy: "<yellow>That mail is being claimed by another administrator. Try again in a moment."
  admin-inbox-claim-deposit-failed: "<dark_red>✖</dark_red> <red>The economy deposit failed, so the money mail was kept in the Shared Admin Inbox."
  admin-inbox-claim-economy-unavailable: "<red>Vault economy is unavailable, so the money mail was kept in the Shared Admin Inbox."
  admin-inbox-claim-expired: "<yellow>That Shared Admin Inbox mail expired and was removed."
  admin-inbox-claim-failed: "<dark_red>✖</dark_red> <red>That Shared Admin Inbox mail could not be claimed."
  admin-inbox-claim-items-success: "<dark_green>✔</dark_green> <green>Claimed %items% item stack(s) from the Shared Admin Inbox."
  admin-inbox-claim-money-success: "<dark_green>✔</dark_green> <green>Money Mail claimed from the Shared Admin Inbox."
  admin-inbox-claim-not-found: "<red>That Shared Admin Inbox mail is no longer available."
  admin-inbox-claim-package-success: "<dark_green>✔</dark_green> <green>Returned COD Package claimed from the Shared Admin Inbox."
  admin-inbox-claim-unsupported: "<red>That Shared Admin Inbox mail type cannot be claimed yet."
  admin-inbox-cleanup-busy: "<yellow>Returned COD cleanup is busy. Try again in a moment."
  admin-inbox-cleanup-failed: "<dark_red>✖</dark_red> <red>Returned COD cleanup failed."
  admin-inbox-cleanup-none: "<yellow>There are no returned COD Packages to clear."
  admin-inbox-cleanup-success: "<dark_green>✔</dark_green> <green>Removed %count% returned COD Package(s) from the Shared Admin Inbox."
  admin-inbox-clear-all-failed: "<dark_red>✖</dark_red> <red>Could not clear the Shared Admin Inbox."
  admin-inbox-clear-all-none: "<yellow>The Shared Admin Inbox is already empty."
  admin-inbox-clear-all-success: "<red>Cleared <yellow>%count%<red> mail item(s) from the Shared Admin Inbox."
  admin-inbox-collect-money-failed: "<dark_red>✖</dark_red> <red>Could not collect Shared Admin Inbox money payouts."
  admin-inbox-collect-money-none: "<yellow>There are no money payouts to collect."
  admin-inbox-collect-money-success: "<dark_green>✔</dark_green> <green>Collected <yellow>%count%<green> money payout(s) from the Shared Admin Inbox."
  admin-inbox-disabled: "<red>The Shared Admin Inbox is currently disabled."
  admin-inbox-empty: "<gray>The Shared Admin Inbox is empty."
  admin-inbox-player-only: "<red>Only players can open the Shared Admin Inbox."
  admin-inboxcheck-empty: "<gray>Inbox is empty."
  admin-inboxcheck-entry: "<white>Slot %slot%: <yellow>%item% x%amount%"
  admin-inboxcheck-header: "<yellow>Inbox check for %player%:"
  admin-inboxcheck-money-taken: "<green>Money Mail claimed from the checked player inbox."
  admin-inboxcheck-usage: "<white>Usage: /mailbox admin inboxcheck <red>{player}</red></white>"
  admin-letter-sending-unavailable: "<red>Admin Letter sending is currently unavailable."
  admin-mailbox-registered: "<yellow>Admin registered a mailbox for <white>%player%<yellow>. They now have %count%/%max% mailbox(es)."
  admin-mailbox-unregistered: "<yellow>Admin unregistered a mailbox for <white>%player%<yellow>. They now have %count% mailbox(es)."
  admin-money-sending-unavailable: "<red>Admin Money Mail is currently unavailable. Check Vault and economy setup."
  admin-networkindex-complete: "<dark_green>✔</dark_green> <green>Network player index complete. <gray>Indexed: <white>%indexed%<gray>. Skipped: <white>%skipped%<gray>."
  admin-networkindex-network-disabled: "<red>Network index is only available while network mode is enabled."
  admin-networkindex-none-found: "<yellow>No local playerdata entries were found to index."
  admin-networkindex-playerdata-folder-missing: "<red>Could not find the main world playerdata folder."
  admin-networkindex-unavailable: "<red>Network player index is not available."
  admin-no-permission: "<red>You do not have admin permission."
  admin-npc-action-failed: "<dark_red>✖</dark_red> <red>Could not update that Citizens NPC. Please check the console for details."
  admin-npc-add-prompt: "<yellow>NPC add mode enabled. <gray>Right-click a Citizens NPC to mark it as a Public Access Mailbox. Left-click anywhere to cancel."
  admin-npc-added: "<green>Public Access Mailbox trait added to NPC <gold>%npc%<green>."
  admin-npc-already-postoffice: "<yellow>That NPC already has the Public Access Mailbox trait."
  admin-npc-not-postoffice: "<red>That NPC does not have the Public Access Mailbox trait."
  admin-npc-remove-prompt: "<yellow>NPC remove mode enabled. <gray>Right-click a Public Access NPC to remove the Public Access Mailbox trait. Left-click anywhere to cancel."
  admin-npc-removed: "<green>Public Access Mailbox trait removed from NPC <gold>%npc%<green>."
  admin-npc-selector-cancelled: "<yellow>NPC selector cancelled."
  admin-package-cod-declined-return-disabled: "<yellow>Admin Inbox declined/expired return disabled."
  admin-package-cod-declined-return-enabled: "<green>Admin Inbox declined/expired return enabled."
  admin-package-cod-payment-return-disabled: "<yellow>Admin Inbox payment return disabled."
  admin-package-cod-payment-return-enabled: "<green>Admin Inbox payment return enabled."
  admin-package-experience-prompt: "<yellow>Type the amount of experience to add to this admin package. Type <red>cancel <yellow>to go back."
  admin-package-sending-unavailable: "<red>Admin Package sending is currently unavailable."
  admin-package-view-claim-failed: "<dark_red>✖</dark_red> <red>Package action failed. Please reopen the mailbox and try again."
  admin-package-view-contents-taken: "<green>Package contents taken."
  admin-package-view-deleted: "<green>Package deleted."
  admin-package-view-expired: "<red>That package has expired."
  admin-package-view-no-longer-available: "<red>That package is no longer available."
  admin-player-not-found: "<red>That player mailbox was not found."
  admin-purge-all-confirm: "<gray>To confirm, run: <white>/mailbox admin purge all CONFIRM"
  admin-purge-all-none: "<yellow>No player inbox or Shared Admin Inbox items were found to purge using %provider% storage."
  admin-purge-all-success: "<dark_green>✔</dark_green> <green>Purge all complete using %provider% storage: %mail% player inbox item(s), %shared% Shared Admin Inbox item(s), %players% player record(s) processed."
  admin-purge-all-warning-body: "<gold>⚠</gold> <yellow>Player records, UUIDs, registered mailboxes, Public Access Mailbox data, NPCs, settings, languages, delayed mail, templates, network index, config, and backups are preserved."
  admin-purge-all-warning-header: "<gold>⚠</gold> <yellow>WARNING: This clears every player inbox and the Shared Admin Inbox."
  admin-purge-busy: "<yellow>A purge or storage maintenance lock is already active. Try again in a moment."
  admin-purge-invalid-confirmation: "<red>Purge confirmation must be the final argument and exactly: <white>CONFIRM"
  admin-purge-partial: "<red>Purge finished with partial failure using %provider% storage: %mail% player inbox item(s), %shared% Shared Admin Inbox item(s), %players% player record(s) processed, %failed% failed."
  admin-purge-player-confirm: "<gray>To confirm, run: <white>/mailbox admin purge %player% CONFIRM"
  admin-purge-player-none: "<yellow>No inbox items were found for %player% using %provider% storage."
  admin-purge-player-not-found: "<red>No MailboxGUI player record was found for %player%."
  admin-purge-player-success: "<dark_green>✔</dark_green> <green>Purged %count% inbox item(s) from %player% using %provider% storage."
  admin-purge-player-warning-count: "<gold>⚠</gold> <yellow>Current purge preview: %count% inbox item(s). Player records, mailbox registrations, settings, delayed mail, and backups are preserved."
  admin-purge-player-warning-header: "<gold>⚠</gold> <yellow>WARNING: This will clear only %player%'s inbox contents."
  admin-purge-provider-error: "<dark_red>✖</dark_red> <red>Purge failed because the active storage provider reported an error: %error%"
  admin-purge-usage: "<white>Usage: /mailbox admin purge <red>{player|all}</red> CONFIRM</white>"
  admin-purge-validation-failed: "<dark_red>✖</dark_red> <red>Purge validation failed. No purge status could be confirmed."
  admin-redis-usage: "<white>Usage: /mba redis status</white>"
  admin-redis-status-title: "<gold>[MailboxGUI] <yellow>Redis Network Status"
  admin-redis-status-runtime: "<gray>Runtime: <white>%status%"
  admin-redis-status-profiles: "<gray>Known backend profiles: <white>%count%"
  admin-redis-status-online: "<gray>Online network players: <white>%count%"
  admin-redis-status-stale-profiles: "<gray>Stale backend profiles: <white>%count%"
  admin-redis-status-snapshot-age: "<gray>Snapshot age (ms): <white>%age%"
  admin-redis-status-overall-ready: "<green>Overall: Ready"
  admin-redis-status-overall-unavailable: "<red>Overall: Unavailable"
  admin-register-cancelled: "<yellow>Admin mailbox registration cancelled."
  admin-register-prompt: "<yellow>Right-click the mailbox chest/barrel or its front sign to register a mailbox for <white>%player%<yellow>. Left-click anything to cancel."
  admin-registered-mailbox-removed: "<yellow>Registered Mailbox #%index% from %player% removed from the database."
  admin-reload-complete: "<dark_green>✔</dark_green> <green>MailboxGUI configuration and language files reloaded."
  admin-sendmail-book-letter-draft-opened: "<yellow>A temporary Book and Quill was placed in your hand. Right-click it to write the admin Book Letter, then click <white>Sign and Close <yellow>to send."
  admin-sendmail-book-letter-empty: "<red>Admin Book Letter cannot be empty. Reopen the Book and Quill and write at least one page before signing."
  admin-sendmail-book-letter-message-edit-prompt: "<yellow>Use the Book and Quill in your hand to edit this admin Book Letter. Sign and close the book to send it."
  admin-sendmail-book-letter-message-prompt: "<yellow>Use the Book and Quill in your hand to write this admin Book Letter. Type <red>cancel <yellow>in chat to cancel."
  admin-sendmail-book-letter-progress-saved: "<yellow>Admin Book Letter progress saved. Right-click the Book and Quill again to keep writing, or type <red>cancel <yellow>to cancel."
  admin-sendmail-book-letter-session-expired: "<red>That admin Book Letter draft expired. Please start again."
  admin-sendmail-book-letter-session-locked: "<red>You cannot do anything else until this admin Book Letter is sent or canceled. Type <yellow>cancel <red>to cancel."
  admin-sendmail-book-letter-use-book: "<yellow>Use the Book and Quill in your hand to finish this admin Book Letter, or type <red>cancel <yellow>to cancel. You cannot do anything else until this Book Letter is sent or canceled."
  admin-sendmail-cancelled: "<yellow>Admin mail send cancelled."
  admin-sendmail-expiration-invalid: "<red>Expiration must be a positive whole-number duration ending in s, m, h, hr, or d."
  admin-sendmail-expiration-prompt: "<yellow>Type an expiration duration such as <white>10m<yellow>, <white>1hr<yellow>, or <white>2d<yellow>. Type <red>cancel <yellow>to go back."
  admin-sendmail-letter-cancelled: "<yellow>Admin letter send cancelled."
  admin-sendmail-letter-prompt: "<yellow>Type the admin paper letter message for <white>%audience%<yellow>. Use up to 256 visible characters, 28 per line, and 17 body lines total. Automatic wrapping and /n share this limit. Colors are supported; //n displays literal /n. Type <red>cancel <yellow> to go back."
  admin-sendmail-letter-selected-prompt: "<yellow>Type the admin paper letter message for <white>%target%<yellow>. Use up to 256 visible characters, 28 per line, and 17 body lines total. Automatic wrapping and /n share this limit. Colors are supported; //n displays literal /n. Type <red>cancel <yellow> to go back."
  admin-sendmail-letter-sent: "<dark_green>✔</dark_green> <green>Admin letter sent to %count% player(s) for %audience%."
  admin-sendmail-letter-sent-selected: "<dark_green>✔</dark_green> <green>Admin letter sent to <white>%target%<green>."
  admin-sendmail-money-prompt: "<yellow>Type the admin money amount for <white>%audience%<yellow>. Type <red>cancel <yellow>to go back."
  admin-sendmail-money-selected-prompt: "<yellow>Type the admin money amount for <white>%target%<yellow>. Type <red>cancel <yellow>to go back."
  admin-sendmail-money-sent: "<dark_green>✔</dark_green> <green>Admin money delivery of %amount% sent to %count% player(s) for %audience%."
  admin-sendmail-money-sent-selected: "<dark_green>✔</dark_green> <green>Admin money delivery of %amount% sent to <white>%target%<green>."
  admin-sendmail-no-targets: "<red>No players matched that admin audience."
  admin-sendmail-package-empty: "<red>You must place at least one item in the admin package."
  admin-sendmail-package-opened: "<yellow>Create the admin package for <white>%audience%<yellow>. Place up to %count% items in the package, select if you want cash on demand, and then click confirm."
  admin-sendmail-package-opened-no-cod: "<yellow>Create the admin package for <white>%audience%<yellow>. Place up to %count% items in the package, then click confirm."
  admin-sendmail-package-selected-opened: "<green>Admin package compose opened for <white>%target%<green>. Place up to %count% items in the package, select if you want cash on demand, and then click confirm."
  admin-sendmail-package-selected-opened-no-cod: "<green>Admin package compose opened for <white>%target%<green>. Place up to %count% items in the package, then click confirm."
  admin-sendmail-package-sent: "<dark_green>✔</dark_green> <green>Admin package sent to %count% player(s) for %audience%."
  admin-sendmail-package-sent-selected: "<dark_green>✔</dark_green> <green>Admin package sent to <white>%target%<green>."
  admin-testaimoney-sent: "<green>Created <yellow>%count%<green> Shared Admin Inbox test money mail item(s)."
  admin-testaimoney-usage: "<white>Usage: /mba testaimoney <red>{amount}</red></white>"
  admin-testaipackage-sent: "<green>Created <yellow>%count%<green> Shared Admin Inbox test package(s)."
  admin-testaipackage-usage: "<white>Usage: /mba testaipackage <red>{codr|codi}</red> <red>{amount}</red></white>"
  admin-testletter-invalid-amount: "<red>Amount must be a positive number."
  admin-testletter-sent: "<green>Created <yellow>%count%<green> test letter(s) for <white>%target%<green>."
  admin-testletter-usage: "<white>Usage: /mba testletter <red>{paper|book}</red> <red>{player}</red> <red>{amount}</red></white>"
  admin-testmoney-sent: "<green>Created test money mail for <white>%target%<green>."
  admin-testmoney-usage: "<white>Usage: /mba testmoney <red>{standard|cod}</red> <red>{player}</red></white>"
  admin-testpackage-sent: "<green>Created <yellow>%count%<green> test package(s) for <white>%target%<green>."
  admin-testpackage-usage: "<white>Usage: /mba testpackage <red>{standard|codv|codi|codvi|codip|codr|coda}</red> <red>{amount}</red> <red>{player}</red></white>"
  admin-unregister-cancelled: "<yellow>Admin mailbox unregister cancelled."
  admin-unregister-prompt: "<yellow>Right-click any mailbox chest/barrel or sign to unregister it. Left-click anything to cancel."
  adminsend-book-letter-no-permission: "<red>You do not have permission to send admin book letters by command."
  adminsend-book-message-blank: "<red>Book letter message cannot be blank."
  adminsend-cod-command-unavailable-1: "<red>Admin COD packages are unavailable. /mba scod requires cash-on-demand to be enabled with at least one payment option."
  adminsend-cod-command-unavailable-2: "<red>Enable package.cash-on-demand.vault-economy-currency with Vault/economy or package.cash-on-demand.item-currency."
  adminsend-cod-price-invalid: "Invalid COD price."
  adminsend-cod-return-blank: "<red>COD return recipient cannot be blank. Use r:{player}."
  adminsend-cod-return-bulk-not-allowed: "<red>COD return recipient must be one player only. Bulk recipient tags cannot be used with r:{player}."
  adminsend-cod-return-must-have-joined: "<red>Mail was not sent. The return recipient must have joined the server before."
  adminsend-cod-return-one-player: "<red>COD return recipient must be one player only."
  adminsend-cod-return-only-one: "<red>Only one COD return recipient tag is allowed."
  adminsend-cod-return-playerdata-not-found: "<red>Could not find server playerdata for COD return recipient: %player%"
  adminsend-delay-invalid: "<red>--delay must be zero or greater."
  adminsend-delay-requires-value: "<red>--delay requires a value in seconds."
  adminsend-expire-duplicate: "<red>--expire can only be used once."
  adminsend-expire-invalid: "<red>--expire must be a positive whole-number duration ending in s, m, h, hr, or d."
  adminsend-expire-requires-value: "<red>--expire requires a duration such as 10m, 1hr, or 2d."
  adminsend-flag-requires-value: "<red>%flag% requires a value."
  adminsend-from-empty: "<red>--from sender name cannot be empty."
  adminsend-from-quote-unclosed: "<red>--from has an opening quote without a matching closing quote."
  adminsend-from-requires-value: "<red>--from requires a sender name."
  adminsend-letter-message-blank: "<red>Letter message cannot be blank."
  adminsend-letter-no-permission: "<red>You do not have permission to send admin letters by command."
  adminsend-letter-unavailable: "<red>Admin Letter command sending is disabled or unavailable."
  adminsend-message-empty: "<red>--message cannot be empty."
  adminsend-message-quote-unclosed: "<red>--message has an opening quote without a matching closing quote."
  adminsend-message-requires-value: "<red>--message requires a message."
  adminsend-message-too-long: "<red>--message: Use up to 256 visible characters and 17 body lines total. Automatic wrapping and /n share this limit."
  adminsend-money-command-unavailable-1: "<red>Admin money mail is unavailable. /mba sm requires money mail to be enabled and an active Vault economy provider."
  adminsend-money-command-unavailable-2: "<red>Install Vault and a compatible economy plugin, then make sure money.enabled is true."
  adminsend-money-greater-than-zero: "<red>Money amount must be greater than zero."
  adminsend-money-invalid-number: "<red>Money amount must be a valid number."
  adminsend-money-no-permission: "<red>You do not have permission to send admin money by command."
  adminsend-money-unavailable: "<red>Admin Money Mail command sending is disabled or unavailable."
  adminsend-network-backends-known: "<gray>Known backend(s): %backends%"
  adminsend-network-backends-unknown: "<red>Unknown backend server-id(s): %backends%"
  adminsend-network-exclude-required: "<red>--exclude-servers requires one or more comma-separated backend server IDs."
  adminsend-network-group-required: "<red>--server-group requires a backend group name."
  adminsend-network-group-unknown: "<red>Unknown backend group '%group%'. Check network/config.yml backend-groups."
  adminsend-network-only-one-target: "<red>Only one backend targeting flag can be used per mail command."
  adminsend-network-server-single: "<red>--server requires exactly one backend server-id."
  adminsend-network-servers-required: "<red>--servers requires one or more comma-separated backend server IDs."
  adminsend-none: "none"
  adminsend-package-contents-empty: "<red>Package contents cannot be empty."
  adminsend-package-invalid-item-amount: "<red>Invalid amount for item: %token%"
  adminsend-package-invalid-item-format: "<red>Invalid item format: %token%. Use item:amount or xp:amount."
  adminsend-package-limit-exceeded: "<red>Package exceeds the configured package limit. Requested %requested% content slot(s), but this server only allows %limit%."
  adminsend-package-no-permission: "<red>You do not have permission to send admin packages by command."
  adminsend-package-unavailable: "<red>Admin Package command sending is disabled or unavailable."
  adminsend-package-unknown-material: "<red>Unknown material: %material%"
  adminsend-package-unknown-template: "<red>Unknown item template: %id%"
  adminsend-player-must-have-joined: "<red>Mail was not sent. The player must have joined the server before."
  adminsend-playerdata-not-found: "<red>Could not find server playerdata for: %players%"
  adminsend-recipient-required: "<red>At least one recipient is required."
  adminsend-result-failure-line: "<dark_red>✖</dark_red> <red>- %recipient%: %status% - %message%"
  adminsend-result-more-failures: "<red>...and %count% more failure(s)."
  adminsend-result-null: "<red>MailboxGUI send failed: no result was returned."
  adminsend-result-request: "Request"
  adminsend-result-summary-success: "<dark_green>✔</dark_green> <green>MailboxGUI send complete: %delivered% delivered, %queued% queued, %failed% failed."
  adminsend-result-summary-warning: "<gold>⚠</gold> <yellow>MailboxGUI send complete: %delivered% delivered, %queued% queued, %failed% failed."
  adminsend-usage-book-letter: "<white>Usage: /mba sla <red>{recipient[,recipient2]|allplayers|onlineplayers|offlineplayers}</red> '<red>{message}</red>' --title <red>{booktitle}</red> <light_purple>[--from {sender}]</light_purple> <light_purple>[--delay {seconds}]</light_purple> <light_purple>[--expire {duration}]</light_purple>%target_options%</white>"
  adminsend-usage-cod-package: "<white>Usage: /mba scod <red>{recipient[,recipient2]|allplayers|onlineplayers|offlineplayers}</red> p:<red>{price|price,item:amount,t:{id}:amount}</red> r:<red>{player|admin}</red> <light_purple>[item:amount,t:{id}:amount,xp:amount]</light_purple> --from <red>{sender}</red> <light_purple>[--message \"{message}\"]</light_purple> --delay <red>{seconds}</red> --expire <red>{duration}</red>%target_options%</white>"
  adminsend-usage-letter: "<white>Usage: /mba sl <red>{recipient[,recipient2]|allplayers|onlineplayers|offlineplayers}</red> <light_purple>[from]</light_purple> '<red>{message}</red>' or /mba sl <red>{recipients}</red> --from <red>{sender}</red> --delay <red>{seconds}</red> --expire <red>{duration}</red>%target_options% '<red>{message}</red>'</white>"
  adminsend-usage-money: "<white>Usage: /mba sm <red>{recipient[,recipient2]|allplayers|onlineplayers|offlineplayers}</red> <light_purple>[from]</light_purple> <red>{amount}</red> or /mba sm <red>{recipients}</red> --from <red>{sender}</red> <light_purple>[--message \"{message}\"]</light_purple> --delay <red>{seconds}</red> --expire <red>{duration}</red>%target_options% <red>{amount}</red></white>"
  adminsend-usage-package: "<white>Usage: /mba sp <red>{recipient[,recipient2]|allplayers|onlineplayers|offlineplayers}</red> <light_purple>[from]</light_purple> <red>{item:amount|t:{id}:amount|xp:amount...}</red> <light_purple>[--from {sender}]</light_purple> <light_purple>[--message \"{message}\"]</light_purple> <light_purple>[--delay {seconds}]</light_purple> <light_purple>[--expire {duration}]</light_purple>%target_options%</white>"

  # ------------------------------------------------------------
  # Mail items and contents
  # ------------------------------------------------------------
  book-letter-page-admin-back: "<blue><underlined>[Back to Player Inbox]</underlined>"
  book-letter-page-back: "<blue><underlined>[Back to Inbox]</underlined>"
  book-letter-page-date: "<gray>Date: %date%"
  book-letter-page-from: "<gray>From: %sender%"
  book-letter-page-next: "<dark_green>Go to the next page to read this Book Letter."
  book-letter-page-reply: "<blue><underlined>[Reply]</underlined>"
  item-admin-inbox-letter-delete-lore: "<red>Right-Click to <bold>Delete</bold>"
  item-admin-inbox-lore-remove: "<red>Right-Click to <bold>Delete</bold>"
  item-admin-inbox-money-delete-lore: "<red>Right-Click to <bold>Delete</bold>"
  item-admin-inbox-money-lore-warning: "<dark_red><bold>WARNING THE MONEY WILL BE LOST!</bold>"
  item-admin-inbox-money-take-lore: "<red>Shift-Right-Click to <bold>Take</bold>"
  item-book-letter-lore-read: "<red>Left-Click to <bold>Read</bold>"
  item-book-letter-lore-reply: "<red>Shift-Right-Click to <bold>Respond</bold>"
  item-common-blank-line: ""
  item-letter-lore-delete: "<red>Right-Click to <bold>Delete</bold>"
  item-letter-lore-from: "<gray>From: <white><bold>%sender%</bold>"
  item-letter-lore-from-admin: "<gray>From: %sender%"
  item-letter-lore-reply: "<red>Left-Click to <bold>Respond</bold>"
  item-letter-lore-take: "<red>Shift-Left-Click to <bold>Take</bold>"
  item-letter-name: "<gold><bold>Letter</bold>"
  item-mail-lore-expires-on: "<dark_gray>Expires on: <white>%date%"
  item-mail-lore-message-heading: "<gray>Message:"
  item-mail-lore-returned-at: "<gray>Returned: %datetime%"
  item-mail-lore-sent-at: "<gray>Sent: %datetime%"
  item-mail-lore-separator: "<dark_gray><strikethrough>----------------------------</strikethrough>"
  item-money-cod-payment-name: "<gold><bold>Cash on Demand Payment</bold>"
  item-money-lore-amount: "<gray>Amount: <gold><bold>%amount%</bold>"
  item-money-lore-claim: "<yellow><bold>Any click to claim</bold>"
  item-money-lore-from: "<gray>From: <white><bold>%sender%</bold>"
  item-money-lore-from-admin: "<gray>From: %sender%"
  item-money-name: "<gold><bold>Money Delivery</bold>"
  item-package-accepted-cod-name: "<gold><bold>Accepted Cash-On-Demand Package</bold>"
  item-package-cod-item-payment-name: "<gold><bold>Cash-On-Demand Item Currency Payment</bold>"
  item-package-cod-name: "<gold><bold>Cash-On-Demand Package</bold>"
  item-package-name: "<gold><bold>Package</bold>"
  item-package-return-reason-declined: "Declined"
  item-package-return-reason-expired: "Expired"
  item-package-returned-cod-name: "<gold><bold>Returned Cash-On-Demand Package</bold>"
  mail-type-book-letter: "Book Letter"
  mail-type-cod-item-currency-payment: "COD Item Currency Payment"
  mail-type-cod-package: "COD Package"
  mail-type-cod-packages: "COD Packages"
  mail-type-letter: "Letter"
  mail-type-letters: "Letters"
  mail-type-mail: "Mail"
  mail-type-money: "Money"
  mail-type-money-mail: "Money Mail"
  mail-type-package: "Package"
  mail-type-packages: "Packages"
  mail-type-returned-cod-package: "Returned COD Package"
  package-experience-display-claim: "<yellow><bold>Any click to claim</bold>"
  package-experience-display-cod-preview: "<red>Accept COD Package before you can claim this XP"
  package-experience-display-name: "<green>Experience Package"
  package-experience-display-stored: "<gray>Stored Experience: <green>%experience%"
  package-item-accepted-cod-lore: "<gold><bold>Accepted Cash-On-Demand Package</bold>"
  package-item-cod-lore: "<red>Price: <white>%price%"
  package-item-experience-lore: "<green>Experience Included: <white>%experience%"
  package-item-from-lore: "<gray>From: <white><bold>%sender%</bold>"
  package-item-open-lore: "<red>Right-Click to <bold>Open</bold>"
  package-item-preview-lore: "<red>Right-Click to <bold>Preview</bold>"
  package-item-price-continued-lore: "<white>%price%"
  package-item-price-lore: "<red>Price: <white>%price%"
  package-item-returned-lore: "<gold><bold>Returned Cash-On-Demand Package</bold>"
  package-item-size-lore: "<gray>Contents Size: <white>%count%"

  # ------------------------------------------------------------
  # GUI titles and controls
  # ------------------------------------------------------------
  admin-inbox-notification-title: "<gold><bold>Shared Admin Inbox Notifications</bold>"
  admin-sendmail-book-letter-selected-title-prompt: "<yellow>Use the Book and Quill in your hand to write this admin Book Letter. Sign and close the book to send it."
  admin-sendmail-book-letter-title-edit-prompt: "<yellow>Use the Book and Quill in your hand to edit this admin Book Letter. Sign and close the book to send it."
  admin-sendmail-book-letter-title-invalid: "<red>Admin Book Letter title cannot be blank. Reopen the Book and Quill, click Sign, enter a title, then click Sign and Close."
  admin-sendmail-book-letter-title-prompt: "<yellow>Use the Book and Quill in your hand to write this admin Book Letter. Sign and close the book to send it."
  admin-update-check-title: "<yellow>Update Check"
  admin-update-release-title: "<gray>Title: <white>%title%"
  admin-update-title: "<yellow>Update"
  adminsend-book-title-blank: "<red>Book letter title cannot be blank. Use --title {booktitle}."
  adminsend-title-requires-value: "<red>--title requires a book title."
  api-result-detail-book-title-blank: "Book letter title cannot be blank."
  book-letter-page-title: "<gold>MailboxGUI Book Letter"
  book-letter-prompt-title: "<yellow>Use the Book and Quill in your hand to write this Book Letter. Right-click it, write your pages, then click <white>Sign<yellow> and <white>Sign and Close<yellow> to send."
  book-letter-reply-prompt-title: "<yellow>Use the Book and Quill in your hand to write this reply. Sign and close the book to send it back to the original sender."
  book-letter-title-invalid: "<red>Book Letter title cannot be blank. Reopen the Book and Quill, click Sign, enter a title, then click Sign and Close."
  check-title: "<gold><bold>Mailbox Status</bold>"
  gui-admin-audience-all-lore-1: "<gray>Targets every player with MailboxGUI data."
  gui-admin-audience-all-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>All Players</bold></gradient>"
  gui-admin-audience-offline-lore-1: "<gray>Targets mailbox players who are offline."
  gui-admin-audience-offline-name: "<gradient:#3D454E:#67727D:#3D454E><bold>Offline Players</bold></gradient>"
  gui-admin-audience-online-lore-1: "<gray>Targets every online player."
  gui-admin-audience-online-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Online Players</bold></gradient>"
  gui-admin-audience-selected-lore-1: "<gray>Open the recipient selector."
  gui-admin-audience-selected-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Select Recipient(s)</bold></gradient>"
  gui-admin-close-lore-1: "<gray>Close this menu."
  gui-admin-close-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Close</gradient>"
  gui-admin-expiration-title: "<gradient:#2E3440:#465263:#2E3440>Mail Expiration</gradient>"
  gui-admin-expiration-with-lore-1: "<gray>Set a duration before composing mail."
  gui-admin-expiration-with-name: "<gradient:#A83E4A:#FF7B86:#A83E4A><bold>With Expiration</bold></gradient>"
  gui-admin-expiration-without-lore-1: "<gray>Send mail that does not expire."
  gui-admin-expiration-without-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Without Expiration</bold></gradient>"
  gui-admin-inbox-cleanup-cancel-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Cancel</gradient>"
  gui-admin-inbox-cleanup-confirm-title: "<gradient:#48272B:#6A383E:#48272B>Clear Returned COD Packages?</gradient>"
  gui-admin-inbox-cleanup-continue-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A>Continue</gradient>"
  gui-admin-inbox-cleanup-lore-1: "<gray>Clear returned COD Package mail only."
  gui-admin-inbox-cleanup-lore-2: "<dark_gray>Payment mail and other mail remain."
  gui-admin-inbox-cleanup-name: "<gold>⚠</gold> <gradient:#A83E4A:#FF7B86:#A83E4A><bold>Clear Inbox of COD Return Packages</bold></gradient>"
  gui-admin-inbox-cleanup-warning-1: "<red>This permanently removes every returned COD Package."
  gui-admin-inbox-cleanup-warning-2: "<red>Package items and experience will be lost."
  gui-admin-inbox-cleanup-warning-3: "<dark_gray>COD payment mail and all other mail remain."
  gui-admin-inbox-clear-button-lore-1: "<red>Clear entire Mailbox Data"
  gui-admin-inbox-clear-button-lore-2: "<gray>Removes all mailbox data for this player, including inbox items and queued mail"
  gui-admin-inbox-clear-button-name: "<gold>⚠</gold> <gradient:#A83E4A:#FF7B86:#A83E4A><bold>Clear entire Mailbox Data</bold></gradient>"
  gui-admin-inbox-clear-confirm-lore-1: "<red>This will clear all mail data for this player."
  gui-admin-inbox-clear-confirm-lore-2: "<red>Inbox items and queued mail will be deleted."
  gui-admin-inbox-clear-confirm-lore-3: "<dark_red><bold>This cannot be recovered.</bold>"
  gui-admin-inbox-clear-confirm-lore-4: "<dark_gray>Only continue if you are absolutely sure."
  gui-admin-inbox-clear-confirm-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Accept</bold></gradient>"
  gui-admin-inbox-clear-decline-lore-1: "<gray>Return to the inbox view."
  gui-admin-inbox-clear-decline-name: "<gradient:#A83E4A:#FF7B86:#A83E4A><bold>Decline</bold></gradient>"
  gui-admin-inbox-clear-title: "<gradient:#48272B:#6A383E:#48272B>Confirm Mailbox Data Clear</gradient>"
  gui-admin-inbox-package-delete-lore: "<red>Shift-Right-Click to <bold>Delete Package</bold>"
  gui-admin-inbox-package-edit-lore: "<red>Right-Click to <bold>View Package</bold>"
  gui-admin-inbox-package-view-lore: "<red>Right-Click to <bold>View Package</bold>"
  gui-admin-inbox-target-empty-lore-1: "<gray>There are no mailbox targets to inspect."
  gui-admin-inbox-target-empty-lore-2: "<dark_gray>Players can still receive data when they use a Public Access Mailbox inbox."
  gui-admin-inbox-target-empty-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>No Mailboxes Listed</bold></gradient>"
  gui-admin-inbox-target-info-lore-2: "<gray>Registered Mailboxes: <white>%count%"
  gui-admin-inbox-target-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>Mailbox List</gradient>"
  gui-admin-inbox-target-player-lore-1: "<gray>Admin Inbox Check"
  gui-admin-inbox-target-title: "<gradient:#2E3440:#465263:#2E3440>Admin Inbox Check</gradient>"
  gui-admin-inbox-view-back-lore-1: "<gray>Return to the previous menu."
  gui-admin-inbox-view-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Back</gradient>"
  gui-admin-inbox-view-info-lore-1: "<gray>Mailbox Owner: <white>%target%"
  gui-admin-inbox-view-info-lore-3: "<gray>Stored Mail Items: <white>%count%"
  gui-admin-inbox-view-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>Inbox View</gradient>"
  gui-admin-inbox-view-title: "<gradient:#2E3440:#465263:#2E3440>Viewing Inbox</gradient>"
  gui-admin-letter-all-lore-1: "<gray>Send an admin letter."
  gui-admin-letter-all-lore-2: "<dark_gray>Targets every player with MailboxGUI data."
  gui-admin-letter-all-name: "<gradient:#64798B:#C5D3DF:#64798B><bold>Letter -> All Players</bold></gradient>"
  gui-admin-letter-menu-title: "<gradient:#4A3821:#6A512E:#4A3821>Server Letter Menu</gradient>"
  gui-admin-letter-online-lore-1: "<gray>Send an admin letter."
  gui-admin-letter-online-lore-2: "<dark_gray>Targets every online player."
  gui-admin-letter-online-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Letter -> Online Players</bold></gradient>"
  gui-admin-letter-selected-lore-1: "<gray>Open the recipient selector."
  gui-admin-letter-selected-lore-2: "<dark_gray>Send admin letter to one player."
  gui-admin-letter-selected-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Letter -> Selected Recipient</bold></gradient>"
  gui-admin-letter-type-book-lore-1: "<gray>Send an admin written book letter."
  gui-admin-letter-type-book-lore-2: "<dark_gray>Includes a title and readable book pages."
  gui-admin-letter-type-book-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Book Letter</bold></gradient>"
  gui-admin-letter-type-classic-lore-1: "<gray>Send an admin paper letter."
  gui-admin-letter-type-classic-lore-2: "<dark_gray>Uses the existing admin letter flow."
  gui-admin-letter-type-classic-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Paper Letter</bold></gradient>"
  gui-admin-letter-type-header-lore-1: "<gray>Choose the admin letter format."
  gui-admin-letter-type-header-lore-2: "<dark_gray>Classic uses paper. Book letters use books."
  gui-admin-letter-type-header-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Select Admin Letter Type</bold></gradient>"
  gui-admin-letter-type-title: "<gradient:#4A3821:#6A512E:#4A3821>Select Admin Letter Type</gradient>"
  gui-admin-money-all-lore-1: "<gray>Send an admin money delivery."
  gui-admin-money-all-lore-2: "<dark_gray>Targets every player with MailboxGUI data."
  gui-admin-money-all-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Money -> All Players</bold></gradient>"
  gui-admin-money-menu-title: "<gradient:#203F31:#315C46:#203F31>Server Money Menu</gradient>"
  gui-admin-money-online-lore-1: "<gray>Send an admin money delivery."
  gui-admin-money-online-lore-2: "<dark_gray>Targets every online player."
  gui-admin-money-online-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Money -> Online Players</bold></gradient>"
  gui-admin-money-selected-lore-1: "<gray>Open the recipient selector."
  gui-admin-money-selected-lore-2: "<dark_gray>Send admin money to one player."
  gui-admin-money-selected-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Money -> Selected Recipient</bold></gradient>"
  gui-admin-npc-remove-lore-1: "<gray>Select a Citizens NPC to remove Public Access Mailbox."
  gui-admin-npc-remove-lore-2: "<dark_gray>Right-click an NPC to remove access. Left-click to cancel."
  gui-admin-npc-remove-name: "<gradient:#A83E4A:#FF7B86:#A83E4A><bold>Remove Public Access NPC</bold></gradient>"
  gui-admin-npc-set-lore-1: "<gray>Select a Citizens NPC to provide Public Access Mailbox."
  gui-admin-npc-set-lore-2: "<dark_gray>Right-click an NPC to apply access. Left-click to cancel."
  gui-admin-npc-set-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Set Public Access NPC</bold></gradient>"
  gui-admin-npc-title: "<gradient:#2E3440:#465263:#2E3440>Public Access NPC Set / Remove</gradient>"
  gui-admin-package-action-cancel-lore-1: "<gray>Return to the previous menu."
  gui-admin-package-action-cancel-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Back</gradient>"
  gui-admin-package-action-delete-lore-1: "<gray>Delete this package from the player's inbox."
  gui-admin-package-action-delete-lore-2: "<dark_gray>No money is paid and no return package is created."
  gui-admin-package-action-delete-name: "<gold>⚠</gold> <gradient:#A83E4A:#FF7B86:#A83E4A><bold>Delete Package</bold></gradient>"
  gui-admin-package-action-take-lore-1: "<gray>Take all contents from this package."
  gui-admin-package-action-take-lore-2: "<dark_gray>Removes the package from the player's inbox."
  gui-admin-package-action-take-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Take Contents</bold></gradient>"
  gui-admin-package-action-title: "<gradient:#352746:#55406B:#352746>View Package</gradient>"
  gui-admin-package-all-lore-1: "<gray>Send an admin package."
  gui-admin-package-all-lore-2: "<dark_gray>Targets every player with MailboxGUI data."
  gui-admin-package-all-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Package -> All Players</bold></gradient>"
  gui-admin-package-cancel-lore-1: "<gray>Cancel and return package contents."
  gui-admin-package-cancel-name: "<gradient:#A83E4A:#FF7B86:#A83E4A><bold>Cancel</bold></gradient>"
  gui-admin-package-cod-declined-return-declined-only-disabled-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Return Declined COD Packages: Disabled</gradient>"
  gui-admin-package-cod-declined-return-declined-only-enabled-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A>Return Declined COD Packages: Enabled</gradient>"
  gui-admin-package-cod-declined-return-declined-only-lore-1: "<gray>Returns declined COD Package contents to the Admin Inbox."
  gui-admin-package-cod-declined-return-disabled-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Return Declined/Expired COD Packages: Disabled</gradient>"
  gui-admin-package-cod-declined-return-enabled-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A>Return Declined/Expired COD Packages: Enabled</gradient>"
  gui-admin-package-cod-declined-return-lore-1: "<gray>Returns declined or expired COD Package contents to the Admin Inbox."
  gui-admin-package-cod-declined-return-lore-2: "<dark_gray>COD must be set for this to work."
  gui-admin-package-cod-declined-return-lore-3: "<yellow>Click to toggle."
  gui-admin-package-cod-payment-return-disabled-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>COD Payment Return to Admin Inbox: Disabled</gradient>"
  gui-admin-package-cod-payment-return-enabled-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A>COD Payment Return to Admin Inbox: Enabled</gradient>"
  gui-admin-package-cod-payment-return-lore-1: "<gray>Returns successful COD payments to the Shared Admin Inbox."
  gui-admin-package-cod-payment-return-lore-2: "<dark_gray>COD must be enabled for this to work."
  gui-admin-package-cod-payment-return-lore-3: "<yellow>Click to toggle."
  gui-admin-package-compose-title: "<gradient:#352746:#55406B:#352746>Create Admin Package</gradient>"
  gui-admin-package-experience-lore-1: "<gray>Stored Experience: <white>%experience%"
  gui-admin-package-experience-lore-2: "<gray>Admin package XP does not use your personal XP."
  gui-admin-package-experience-lore-3: "<dark_gray>Click to set admin package experience."
  gui-admin-package-experience-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Add Experience</bold></gradient>"
  gui-admin-package-menu-title: "<gradient:#352746:#55406B:#352746>Server Package Menu</gradient>"
  gui-admin-package-online-lore-1: "<gray>Send an admin package."
  gui-admin-package-online-lore-2: "<dark_gray>Targets every online player."
  gui-admin-package-online-name: "<gradient:#225E65:#3F8E96:#225E65><bold>Package -> Online Players</bold></gradient>"
  gui-admin-package-selected-lore-1: "<gray>Open the recipient selector."
  gui-admin-package-selected-lore-2: "<dark_gray>Send admin package to one player."
  gui-admin-package-selected-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Package -> Selected Recipient</bold></gradient>"
  gui-admin-package-send-lore-1: "<gray>Send this admin package."
  gui-admin-package-send-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Send Package</bold></gradient>"
  gui-admin-package-view-cancel-lore-1: "<gray>Return to the previous menu."
  gui-admin-package-view-cancel-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Back</gradient>"
  gui-admin-package-view-delete-lore-1: "<gray>Permanently delete this package without rewards."
  gui-admin-package-view-delete-name: "<gold>⚠</gold> <gradient:#A83E4A:#FF7B86:#A83E4A><bold>Delete Package</bold></gradient>"
  gui-admin-package-view-info-cod-combined: "<gray>COD Mode: <white>Vault + Item Currency"
  gui-admin-package-view-info-cod-items: "<gray>Item-Currency COD: <white>%count% item slot(s)"
  gui-admin-package-view-info-cod-vault: "<gray>Vault COD: <white>%amount%"
  gui-admin-package-view-info-experience: "<gray>Package Experience: <green>%experience%"
  gui-admin-package-view-info-expiration: "<gray>Expires: <white>%date% <dark_gray>(%remaining%)"
  gui-admin-package-view-info-expired: "<red>Expired"
  gui-admin-package-view-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB><bold>Package Information</bold></gradient>"
  gui-admin-package-view-info-return: "<gray>Return Reason: <white>%reason%"
  gui-admin-package-view-info-sender: "<gray>Sender: <white>%sender%"
  gui-admin-package-view-info-sent: "<gray>Sent: <white>%date%"
  gui-admin-package-view-info-target: "<gray>Mailbox Owner: <white>%target%"
  gui-admin-package-view-info-type: "<gray>Package Type: <white>%type%"
  gui-admin-package-view-take-lore-1: "<gray>Take package items and XP without charging COD."
  gui-admin-package-view-take-lore-2: "<gray>Or take items one by one."
  gui-admin-package-view-take-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Take Contents</bold></gradient>"
  gui-admin-package-view-title: "<gradient:#352746:#55406B:#352746>View Package</gradient>"
  gui-admin-postoffice-mailbox-entry-lore-1: "<gray>Public Access Mailbox Name: <white>%postofficename%"
  gui-admin-postoffice-mailbox-entry-lore-2: "<gray>World: <white>%world%"
  gui-admin-postoffice-mailbox-entry-lore-3: "<gray>Status: %status%"
  gui-admin-postoffice-mailbox-entry-lore-remove: "<red>Shift-Right-Click to <bold>unregister</bold><reset> <red>this <bold>Public Access Mailbox</bold>"
  gui-admin-postoffice-mailbox-entry-lore-server: "<gray>Server: <white>%server%"
  gui-admin-postoffice-mailbox-entry-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>%postofficename% Public Access Mailbox</bold></gradient>"
  gui-admin-postoffice-mailbox-list-lore-1: "<gray>View all registered Public Access Mailboxes."
  gui-admin-postoffice-mailbox-list-lore-2: "<dark_gray>Shift-Right-Click a Public Access Mailbox to unregister it."
  gui-admin-postoffice-mailbox-list-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Public Access Mailboxes</bold></gradient>"
  gui-admin-postoffice-mailbox-list-title: "<gradient:#2E3440:#465263:#2E3440>Public Access Mailboxes</gradient>"
  gui-admin-postoffice-mailbox-remove-lore-1: "<gray>Select a registered Public Access Mailbox"
  gui-admin-postoffice-mailbox-remove-lore-2: "<gray>to remove its public access registration."
  gui-admin-postoffice-mailbox-remove-name: "<gold>⚠</gold> <gradient:#A83E4A:#FF7B86:#A83E4A><bold>Remove Public Access Mailbox</bold></gradient>"
  gui-admin-postoffice-mailbox-set-lore-1: "<gray>Type a Public Access Mailbox name,"
  gui-admin-postoffice-mailbox-set-lore-2: "<gray>then select a supported mailbox access point."
  gui-admin-postoffice-mailbox-set-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Set Public Access Mailbox</bold></gradient>"
  gui-admin-postoffice-mailbox-title: "<gradient:#2E3440:#465263:#2E3440>Public Access Mailbox Registration</gradient>"
  gui-admin-postoffice-mailboxes-lore-1: "<gray>Register, remove, and view Public Access Mailboxes."
  gui-admin-postoffice-mailboxes-lore-2: "<dark_gray>Public access points that open the player's mailbox."
  gui-admin-postoffice-mailboxes-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Public Access Mailbox Set / Remove</bold></gradient>"
  gui-admin-postoffice-npc-citizens-missing-lore: "<red>Citizens not detected"
  gui-admin-postoffice-npc-lore-1: "<gray>Configure NPCs that provide Public Access Mailbox."
  gui-admin-postoffice-npc-lore-2: "<dark_gray>Uses the Citizens NPC selection flow."
  gui-admin-postoffice-npc-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Public Access NPC Set / Remove</bold></gradient>"
  gui-admin-postoffice-title: "<gradient:#2E3440:#465263:#2E3440>Public Mail Access Registration</gradient>"
  gui-admin-registered-detail-info-lore-1: "<gray>Owner: <white>%target%"
  gui-admin-registered-detail-info-lore-3: "<gray>Mailbox Entries: <white>%count%"
  gui-admin-registered-detail-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>Mailbox Details</gradient>"
  gui-admin-registered-detail-mailbox-loaded: "<green>Loaded"
  gui-admin-registered-detail-mailbox-lore-1: "<gray>Container: <white>%location%"
  gui-admin-registered-detail-mailbox-lore-2: "<gray>Sign: <white>%location%"
  gui-admin-registered-detail-mailbox-lore-3: "<gray>Status: %status%"
  gui-admin-registered-detail-mailbox-lore-remove: "<red>Right-Click to <bold>remove </bold><reset><red>registered mailbox from <bold>Database</bold>"
  gui-admin-registered-detail-mailbox-lore-server: "<gray>Server: <white>%server%"
  gui-admin-registered-detail-mailbox-lore-world: "<gray>World: <white>%world%"
  gui-admin-registered-detail-mailbox-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Mailbox #%index%</bold></gradient>"
  gui-admin-registered-detail-mailbox-unloaded: "<red>Unloaded"
  gui-admin-registered-detail-register-lore-1: "<gray>Register a new mailbox for this player."
  gui-admin-registered-detail-register-lore-2: "<dark_gray>Select a valid mailbox chest/barrel or its front sign."
  gui-admin-registered-detail-register-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Register Mailbox</bold></gradient>"
  gui-admin-registered-detail-title: "<gradient:#2E3440:#465263:#2E3440>Mailbox Details</gradient>"
  gui-admin-registered-remove-cancel-lore-1: "<gray>Return to the mailbox details menu."
  gui-admin-registered-remove-cancel-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Cancel</bold></gradient>"
  gui-admin-registered-remove-confirm-lore-1: "<gray>Remove this registered mailbox entry"
  gui-admin-registered-remove-confirm-lore-2: "<dark_gray>from the player's mailbox database."
  gui-admin-registered-remove-confirm-name: "<gold>⚠</gold> <gradient:#A83E4A:#FF7B86:#A83E4A><bold>Confirm Remove Mailbox</bold></gradient>"
  gui-admin-registered-remove-title: "<gradient:#48272B:#6A383E:#48272B>Confirm Mailbox Removal</gradient>"
  gui-admin-registered-target-empty-lore-1: "<gray>No players are listed in this view."
  gui-admin-registered-target-empty-lore-2: "<gray>Use the filter below to show stored players."
  gui-admin-registered-target-empty-lore-3: "<dark_gray>Stored players can be selected to register a mailbox."
  gui-admin-registered-target-empty-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>No Mailboxes Listed</bold></gradient>"
  gui-admin-registered-target-filter-all-lore-1: "<gray>Currently showing all players"
  gui-admin-registered-target-filter-all-lore-2: "<gray>with stored MailboxGUI player data."
  gui-admin-registered-target-filter-all-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Filter: Stored Players</bold></gradient>"
  gui-admin-registered-target-filter-mailboxes-lore-1: "<gray>Currently showing only players"
  gui-admin-registered-target-filter-mailboxes-lore-2: "<gray>with active registered mailboxes."
  gui-admin-registered-target-filter-mailboxes-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Filter: Registered Mailboxes</bold></gradient>"
  gui-admin-registered-target-info-lore-2: "<gray>Owners Listed: <white>%count%"
  gui-admin-registered-target-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>Registered Mailboxes</gradient>"
  gui-admin-registered-target-player-lore-1: "<gray>Registered mailbox owner"
  gui-admin-registered-target-player-lore-2: "<gray>Mailbox Count: <white>%count%"
  gui-admin-registered-target-title: "<gradient:#2E3440:#465263:#2E3440>Registered Mailboxes</gradient>"
  gui-admin-sendmail-letter-lore-1: "<gray>Open server letter tools."
  gui-admin-sendmail-letter-lore-2: "<dark_gray>All, online, or selected recipient."
  gui-admin-sendmail-letter-name: "<light_purple>✉</light_purple> <gradient:#64798B:#C5D3DF:#64798B><bold>Letter</bold></gradient>"
  gui-admin-sendmail-money-lore-1: "<gray>Open server money tools."
  gui-admin-sendmail-money-lore-2: "<dark_gray>All, online, or selected recipient."
  gui-admin-sendmail-money-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Money</bold></gradient>"
  gui-admin-sendmail-package-lore-1: "<gray>Open package sending tools."
  gui-admin-sendmail-package-lore-2: "<dark_gray>Selected recipient now uses the new package system."
  gui-admin-sendmail-package-name: "<gradient:#51345F:#7B4F8D:#51345F><bold>Package</bold></gradient>"
  gui-admin-sendmail-title: "<gradient:#2E3440:#465263:#2E3440>Send Server Mail</gradient>"
  gui-admin-tools-admin-inbox-lore-1: "<gray>View the Shared Admin Inbox."
  gui-admin-tools-admin-inbox-lore-2: "<dark_gray>All authorized administrators see the same mail."
  gui-admin-tools-admin-inbox-lore-3: "<dark_gray>Claims are given to the administrator who claims them."
  gui-admin-tools-admin-inbox-name: "<gradient:#7A4D8C:#C58AD8:#7A4D8C><bold>Admin Inbox</bold></gradient>"
  gui-admin-tools-inboxcheck-lore-1: "<gray>Inspect a player's inbox."
  gui-admin-tools-inboxcheck-lore-2: "<dark_gray>Uses the inbox check selector."
  gui-admin-tools-inboxcheck-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Check Player Inbox</bold></gradient>"
  gui-admin-tools-mailboxes-lore-1: "<gray>Browse stored mailbox owners."
  gui-admin-tools-mailboxes-lore-2: "<dark_gray>View mailbox details and manage registrations."
  gui-admin-tools-mailboxes-name: "<gradient:#7A4D8C:#C58AD8:#7A4D8C><bold>Manage Registered Mailboxes</bold></gradient>"
  gui-admin-tools-network-lore-1: "<gray>Open Premium network administration tools."
  gui-admin-tools-network-lore-2: "<dark_gray>Backend status, targeting, and diagnostics."
  gui-admin-tools-network-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Network Tools</bold></gradient>"
  gui-admin-tools-npc-citizens-missing-lore: "<red>Citizens not detected"
  gui-admin-tools-npc-lore-1: "<gray>Configure NPCs that provide Public Access Mailbox."
  gui-admin-tools-npc-lore-2: "<dark_gray>Set or remove public access from a Citizens NPC."
  gui-admin-tools-npc-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Public Access NPC Set / Remove</bold></gradient>"
  gui-admin-tools-postoffice-lore-1: "<gray>Manage Public Access Mailbox points."
  gui-admin-tools-postoffice-lore-2: "<dark_gray>Configure Public Access Mailboxes and access NPCs."
  gui-admin-tools-postoffice-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Public Mail Access Registration</bold></gradient>"
  gui-admin-tools-sendmail-disabled-lore-1: "<red>No admin mail sending options are currently available."
  gui-admin-tools-sendmail-lore-1: "<gray>Open server mail tools."
  gui-admin-tools-sendmail-lore-2: "<dark_gray>Letters, packages, and money."
  gui-admin-tools-sendmail-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Send Server Mail</bold></gradient> <blue>⮞</blue>"
  gui-admin-tools-title: "<gradient:#303842:#46525F:#303842>Admin Tools</gradient>"
  gui-common-back-lore-1: "<gray>Return to the previous menu."
  gui-common-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Back</gradient>"
  gui-common-cancel-lore-1: "<gray>Return to the previous menu."
  gui-common-cancel-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Cancel</gradient>"
  gui-common-close-lore-1: "<gray>Click to close."
  gui-common-close-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Close</gradient>"
  gui-common-exit-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Exit</gradient>"
  gui-common-exit-lore-1: "<gray>Click to close."
  gui-common-local: "Local"
  gui-common-next-lore-1: "<gray>Go to the next page."
  gui-common-next-name: "<gradient:#A57A19:#F2D45C:#A57A19>Next Page</gradient> <blue>»</blue>"
  gui-common-no-next-lore-1: "<dark_gray>You are on the last page."
  gui-common-no-next-name: "<gradient:#56636F:#9CA8B3:#56636F>No Next Page</gradient>"
  gui-common-no-previous-lore-1: "<dark_gray>You are on the first page."
  gui-common-no-previous-name: "<gradient:#56636F:#9CA8B3:#56636F>No Previous Page</gradient>"
  gui-common-page-lore-1: "<gray>Page: <white>%current%<gray>/<white>%total%"
  gui-common-previous-lore-1: "<gray>Go to the previous page."
  gui-common-previous-name: "<blue>«</blue> <gradient:#A57A19:#F2D45C:#A57A19>Previous Page</gradient>"
  gui-common-status-offline: "<gray>Offline"
  gui-common-status-online: "<green>Online"
  gui-common-status-online-server: "<green>Online on <white>%server%"
  gui-common-status-world: "<gray>World: <white>%world%"
  gui-common-unknown: "Unknown"
  gui-common-unknown-player: "Unknown Player"
  gui-inbox-back-lore-1: "<gray>Exit the Mailbox Menu."
  gui-inbox-back-name: "<blue>⮜</blue> <gradient:#A83E4A:#FF7B86:#A83E4A>Exit</gradient>"
  gui-inbox-compose-lore-1: "<gray>Open the Send Mail menu."
  gui-inbox-compose-lore-2: "<yellow>Click to compose mail."
  gui-inbox-compose-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A>Compose Mail</gradient> <blue>⮞</blue>"
  gui-inbox-current-filter: "<gray>Filter: <white>%filter%"
  gui-inbox-empty-filter: "<gray>No mail matches this filter."
  gui-inbox-filter-active-lore: "<green>Active filter"
  gui-inbox-filter-admin-mail: "<white>Admin Mail"
  gui-inbox-filter-back-lore: "<gray>Return to your inbox."
  gui-inbox-filter-back-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Back</gradient>"
  gui-inbox-filter-button-name: "<gradient:#4498DB:#81EAFF:#4498DB>Filters</gradient>"
  gui-inbox-filter-by-date: "<white>By Date"
  gui-inbox-filter-by-expiration: "<white>By Expiration"
  gui-inbox-filter-by-type: "<white>By Type"
  gui-inbox-filter-click-lore: "<yellow>Click to choose a filter."
  gui-inbox-filter-current-lore: "<gray>Current: <white>%filter%"
  gui-inbox-filter-name: "<gradient:#4498DB:#81EAFF:#4498DB>Filter</gradient>"
  gui-inbox-filter-select-lore: "<yellow>Click to select this filter."
  gui-inbox-filter-session-lore: "<gray>Applies only to this mailbox session."
  gui-inbox-filter-title: "<gradient:#1F3E59:#315D78:#1F3E59>Inbox Filters</gradient>"
  gui-inbox-filtered-count: "<gray>Matching mail: <white>%count%"
  gui-inbox-info-lore-1: "<gray>Page: <white>%current%<gray>/<white>%total%"
  gui-inbox-info-lore-2: "<gray>Stored Mail Items: <white>%count%"
  gui-inbox-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>Inbox</gradient>"
  gui-inbox-next-lore-1: "<gray>Go to the next page."
  gui-inbox-next-name: "<gradient:#A57A19:#F2D45C:#A57A19>Next Page</gradient> <blue>»</blue>"
  gui-inbox-no-next-lore-1: "<dark_gray>You are on the last page."
  gui-inbox-no-next-name: "<gradient:#56636F:#9CA8B3:#56636F>No Next Page</gradient>"
  gui-inbox-no-previous-lore-1: "<dark_gray>You are on the first page."
  gui-inbox-no-previous-name: "<gradient:#56636F:#9CA8B3:#56636F>No Previous Page</gradient>"
  gui-inbox-previous-lore-1: "<gray>Go to the previous page."
  gui-inbox-previous-name: "<blue>«</blue> <gradient:#A57A19:#F2D45C:#A57A19>Previous Page</gradient>"
  gui-inbox-queued-count: "<gray>Queued Mail: <white>%count%"
  gui-inbox-title: "<gradient:#1F3E59:#315D78:#1F3E59>Mailbox Inbox</gradient>"
  gui-inbox-total-count: "<gray>Total inbox mail: <white>%count%"
  gui-letter-target-info-lore-2: "<gray>Registered Mailbox Owners: <white>%count%"
  gui-letter-target-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>Recipient List</gradient>"
  gui-letter-target-player-lore-1: "<gray>Letter Recipient"
  gui-letter-target-title: "<gradient:#4A3821:#6A512E:#4A3821>Select Letter Recipient</gradient>"
  gui-letter-type-book-lore-1: "<gray>Send a written book letter."
  gui-letter-type-book-lore-2: "<dark_gray>Includes a title and readable book pages."
  gui-letter-type-book-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Book Letter</bold></gradient>"
  gui-letter-type-classic-lore-1: "<gray>Send a paper letter."
  gui-letter-type-classic-lore-2: "<dark_gray>Uses the existing quick letter flow."
  gui-letter-type-classic-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Paper Letter</bold></gradient>"
  gui-letter-type-header-lore-1: "<gray>Choose how this letter should be written."
  gui-letter-type-header-lore-2: "<dark_gray>Classic letters use paper. Book letters use books."
  gui-letter-type-header-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Select Letter Type</bold></gradient>"
  gui-letter-type-title: "<gradient:#4A3821:#6A512E:#4A3821>Select Letter Type</gradient>"
  gui-mailbox-check-back-lore-1: "<gray>Exit the Mailbox Check."
  gui-mailbox-check-title: "<gradient:#1F3E59:#315D78:#1F3E59>Mailbox Check</gradient>"
  gui-main-header-lore-1: "<gray>Check your inbox and send mail."
  gui-main-header-lore-2: "<dark_gray>Open the next menu to choose how to send."
  gui-main-header-name: "<yellow>◆</yellow> <gradient:#A57A19:#F2D45C:#A57A19><bold>Mailbox Menu</bold></gradient>"
  gui-main-inbox-lore-1: "<gray>Open your shared mailbox inbox."
  gui-main-inbox-lore-2: "<dark_gray>View delivered letters, packages, and money."
  gui-main-inbox-name: "<light_purple>✉</light_purple> <gradient:#A57A19:#F2D45C:#A57A19><bold>Inbox</bold></gradient>"
  gui-main-sendmail-disabled-lore-1: "<red>No mail sending options are currently available."
  gui-main-sendmail-lore-1: "<gray>Open sending options."
  gui-main-sendmail-lore-2: "<dark_gray>Letters, packages, and money."
  gui-main-sendmail-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Send Mail</bold></gradient> <blue>⮞</blue>"
  gui-main-title: "<gradient:#1F3E59:#315D78:#1F3E59>MailboxGUI</gradient>"
  gui-money-message-cancel-lore-1: "<gray>Return to recipient selection."
  gui-money-message-mode-title: "<gradient:#203F31:#315C46:#203F31>Money Mail Message</gradient>"
  gui-money-target-info-lore-2: "<gray>Registered Mailbox Owners: <white>%count%"
  gui-money-target-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>Recipient List</gradient>"
  gui-money-target-player-lore-1: "<gray>Money Recipient"
  gui-money-target-title: "<gradient:#203F31:#315C46:#203F31>Select Money Recipient</gradient>"
  gui-money-with-message-lore-1: "<gray>Attach a message before entering the amount."
  gui-money-with-message-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Add Message</bold></gradient>"
  gui-money-without-message-lore-1: "<gray>Continue directly to the money amount."
  gui-money-without-message-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Without Message</bold></gradient>"
  gui-package-compose-title: "<gradient:#352746:#55406B:#352746>Create Package</gradient>"
  gui-package-target-info-lore-2: "<gray>Registered Mailbox Owners: <white>%count%"
  gui-package-target-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>Mailbox List</gradient>"
  gui-package-target-player-lore-1: "<gray>Mailbox Target"
  gui-package-target-title: "<gradient:#352746:#55406B:#352746>Select Package Recipient</gradient>"
  gui-player-mailbox-manage-entry-container: "<gray>Container: <white>%location%"
  gui-player-mailbox-manage-entry-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Mailbox #%index%</bold></gradient>"
  gui-player-mailbox-manage-entry-remove: "<red>Right-click to unregister this mailbox."
  gui-player-mailbox-manage-entry-server: "<gray>Server: <white>%server%"
  gui-player-mailbox-manage-entry-sign: "<gray>Sign: <white>%location%"
  gui-player-mailbox-manage-entry-status: "<gray>Status: %status%"
  gui-player-mailbox-manage-entry-world: "<gray>World: <white>%world%"
  gui-player-mailbox-manage-info-lore-2: "<gray>Registered Mailboxes: <white>%count%"
  gui-player-mailbox-manage-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB>My Mailboxes</gradient>"
  gui-player-mailbox-manage-title: "<gradient:#1F3E59:#315D78:#1F3E59>My Mailboxes</gradient>"
  gui-player-unregister-manage-lore-1: "<gray>View and unregister your own mailboxes"
  gui-player-unregister-manage-lore-2: "<gray>without walking to the mailbox."
  gui-player-unregister-manage-name: "<gradient:#8F5B19:#D89B35:#8F5B19><bold>Manage Personal Mailboxes</bold></gradient>"
  gui-player-unregister-selection-lore-1: "<gray>Right-click a mailbox chest/barrel or sign"
  gui-player-unregister-selection-lore-2: "<gray>to unregister it physically."
  gui-player-unregister-selection-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Selection Mode</bold></gradient>"
  gui-player-unregister-title: "<gradient:#1F3E59:#315D78:#1F3E59>Unregister Mailbox</gradient>"
  gui-sendmail-header-lore-1: "<gray>Choose the type of mail you want to send."
  gui-sendmail-header-lore-2: "<dark_gray>Each option keeps the same sending flow."
  gui-sendmail-header-name: "<yellow>◆</yellow> <gradient:#A57A19:#F2D45C:#A57A19><bold>Send Mail</bold></gradient>"
  gui-sendmail-letter-lore-1: "<gray>Write and send a letter."
  gui-sendmail-letter-lore-2: "<dark_gray>Choose a mailbox owner first."
  gui-sendmail-letter-name: "<light_purple>✉</light_purple> <gradient:#8F5B19:#D89B35:#8F5B19><bold>Send Letter</bold></gradient>"
  gui-sendmail-money-lore-1: "<gray>Send money through the mail."
  gui-sendmail-money-lore-2: "<dark_gray>Choose a mailbox owner first."
  gui-sendmail-money-name: "<yellow>◆</yellow> <gradient:#8F5B19:#D89B35:#8F5B19><bold>Send Money</bold></gradient>"
  gui-sendmail-package-lore-1: "<gray>Send items, COD packages, and experience."
  gui-sendmail-package-lore-2: "<gray>Experience is stored as a redeemable package item."
  gui-sendmail-package-lore-3: "<dark_gray>Choose a mailbox owner first."
  gui-sendmail-package-name: "<yellow>◆</yellow> <gradient:#8F5B19:#D89B35:#8F5B19><bold>Send Package</bold></gradient>"
  gui-sendmail-title: "<gradient:#1F3E59:#315D78:#1F3E59>Send Mail</gradient>"
  gui-shared-admin-inbox-clear-all-lore-1: "<gray>Open a confirmation to delete"
  gui-shared-admin-inbox-clear-all-lore-2: "<gray>all Shared Admin Inbox mail."
  gui-shared-admin-inbox-clear-all-name: "<gold>⚠</gold> <gradient:#A83E4A:#FF7B86:#A83E4A>Clear entire Inbox</gradient>"
  gui-shared-admin-inbox-clear-cancel-lore-1: "<gray>Return without deleting mail."
  gui-shared-admin-inbox-clear-cancel-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A>Cancel</gradient>"
  gui-shared-admin-inbox-clear-confirm-lore-1: "<red>This deletes every mail item in the Shared Admin Inbox."
  gui-shared-admin-inbox-clear-confirm-lore-2: "<red>This cannot be recovered after confirmation."
  gui-shared-admin-inbox-clear-confirm-lore-3: "<yellow>Only continue if you intentionally want a full wipe."
  gui-shared-admin-inbox-clear-confirm-name: "<gold>⚠</gold> <gradient:#A83E4A:#FF7B86:#A83E4A><bold>Permanently Clear Inbox</bold></gradient>"
  gui-shared-admin-inbox-clear-confirm-title: "<gradient:#48272B:#6A383E:#48272B>Confirm Shared Inbox Clear</gradient>"
  gui-shared-admin-inbox-collect-money-lore-1: "<gray>Collect every Vault money payout"
  gui-shared-admin-inbox-collect-money-lore-2: "<gray>from the Shared Admin Inbox."
  gui-shared-admin-inbox-collect-money-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A>Collect all Money Payouts</gradient>"
  gui-shared-admin-inbox-info-claim: "<dark_gray>Claimed rewards go to the claiming administrator."
  gui-shared-admin-inbox-info-name: "<aqua>ⓘ</aqua> <gradient:#4498DB:#81EAFF:#4498DB><bold>Admin Inbox Information</bold></gradient>"
  gui-shared-admin-inbox-info-page: "<gray>Page: <white>%page%<gray>/<white>%pages%"
  gui-shared-admin-inbox-info-shared: "<dark_gray>This inbox is shared by authorized administrators."
  gui-shared-admin-inbox-info-total: "<gray>Stored Mail: <white>%total%"
  gui-shared-admin-inbox-title: "<gradient:#2E3440:#465263:#2E3440>Shared Admin Inbox</gradient>"
  gui-target-filter-all-lore-1: "<gray>Showing every available mailbox player."
  gui-target-filter-all-lore-2: "<yellow>Click to show offline players only."
  gui-target-filter-all-name: "<gradient:#4498DB:#81EAFF:#4498DB>Filter: All Players</gradient>"
  gui-target-filter-offline-lore-1: "<gray>Showing only players currently offline."
  gui-target-filter-offline-lore-2: "<yellow>Click to show online players only."
  gui-target-filter-offline-name: "<gradient:#A83E4A:#FF7B86:#A83E4A>Filter: Offline Players</gradient>"
  gui-target-filter-online-lore-1: "<gray>Showing only players currently online."
  gui-target-filter-online-lore-2: "<yellow>Click to show all players."
  gui-target-filter-online-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A>Filter: Online Players</gradient>"
  gui-target-type-name-admin-lore-1: "<gray>Click to type one or multiple player names."
  gui-target-type-name-admin-lore-2: "<dark_gray>Use commas: name1, name2, name3"
  gui-target-type-name-admin-name: "<gradient:#8F5B19:#D89B35:#8F5B19>Type Player Name(s)</gradient>"
  gui-target-type-name-lore-1: "<gray>Click to type one player name in chat."
  gui-target-type-name-lore-2: "<dark_gray>Searches all stored MailboxGUI players."
  gui-target-type-name-name: "<gradient:#8F5B19:#D89B35:#8F5B19>Type Player Name</gradient>"
  guide-basics-title: "<yellow>MailboxGUI Basics:"
  guide-design-classic-barrel-title: "<yellow>Classic Barrel Mailbox"
  guide-design-classic-bookshelf-title: "<yellow>Classic Chiseled Bookshelf Mailbox"
  guide-design-classic-chest-title: "<yellow>Classic Chest Mailbox"
  guide-design-classic-copper-title: "<yellow>Classic Copper Chest Mailbox"
  guide-design-classic-crafter-title: "<yellow>Classic Crafter Mailbox"
  guide-design-classic-shulker-title: "<yellow>Classic Shulker Mailbox"
  guide-design-classic-utility-title: "<yellow>Classic Utility Block Mailbox"
  guide-design-shelf-title: "<yellow>Wall Shelf Mailbox"
  guide-personal-title: "<yellow>Create your own mailbox:"
  guide-public-npc-title: "<yellow>Public Access NPCs:"
  guide-public-pobox-title: "<yellow>Public Access Mailboxes:"
  guide-title: "<gold><bold>Mailbox Guide</bold>"
  item-book-letter-title-lore: "<gray>Title: <white>%title%"
  mail-alert-advanced-title: "<gold><bold>New Mail!</bold>"
  package-preview-title: "Package Preview"
  package-receive-title: "Package Contents"
  settings-title: "<gold><bold>Mailbox Settings</bold>"
  settings-notification-title: "<gold><bold>Notification Settings</bold>"
  settings-resourcepack-title: "<gold><bold>Resource Pack Settings</bold>"

  # Resource-pack preferences: shown only when GUI customization is enabled and automatic detection is not locked.
  # These controls do not send a pack. On confirms a client-installed pack; Auto requires a successfully loaded server-sent pack.
  settings-resourcepack-status: "<yellow>Resource Pack: <white>%mode%"
  settings-resourcepack-mode-on: "On"
  settings-resourcepack-mode-off: "Off"
  settings-resourcepack-mode-auto: "Auto"
  settings-resourcepack-usage: "<white>Use /mb settings resourcepack <red>{on|off|auto}</red>. on = client-installed pack; off = built-in icons; auto = server-pack detection.</white>"
  settings-resourcepack-updated-on: "<dark_green>✔</dark_green> <green>Client-pack icons enabled. Install and enable the matching pack in Minecraft; reopen your menu to see changes."
  settings-resourcepack-updated-off: "<dark_green>✔</dark_green> <green>Built-in icons enabled, even when a server pack is loaded."
  settings-resourcepack-updated-auto: "<dark_green>✔</dark_green> <green>Automatic server-pack detection enabled. Client-installed packs need the on setting."
  settings-resourcepack-disabled: "<red>GUI customization is disabled by this server."
  settings-resourcepack-save-failed: "<dark_red>✖</dark_red> <red>Could not save your resource-pack preference. Please try again."
  settings-resourcepack-locked: "<red>This server uses automatic server-pack detection. Resource-pack preferences cannot be changed."
  help-command-resourcepack: "<white> settings resourcepack <red>{on|off|auto}</red></white>"
  help-desc-resourcepack: "<gray>Choose custom icons for your client pack or use automatic server-pack detection."
  track-title: "<gold><bold>Incoming Mail Tracking</bold>"

  # ------------------------------------------------------------
  # Notifications
  # ------------------------------------------------------------
  admin-inbox-notification-invalid: "<red>Invalid Shared Admin Inbox notification setting. Use on or off."
  admin-inbox-notification-received: "<dark_purple>✉</dark_purple> <light_purple>Shared Admin Inbox received new mail."
  admin-inbox-notification-received-batch: "<dark_purple>✉</dark_purple> <light_purple>Shared Admin Inbox received <white>%count%<light_purple> new mail items."
  admin-inbox-notification-status: "<yellow>Shared Admin Inbox Notifications: <white>%status%"
  admin-inbox-notification-updated: "<green>Shared Admin Inbox notifications set to <yellow>%status%<green>."
  admin-inbox-notification-usage: "<white>Use /mba inboxnotification on or /mba inboxnotification off. On busy servers this can be spammy.</white>"
  mail-alert-advanced-count-line: "<yellow>%label%: <white>%count%"
  mail-alert-advanced-line: "<dark_gray><strikethrough>------------------------------------------------</strikethrough>"
  mail-alert-expiration-day-few: "%amount% Days"
  mail-alert-expiration-day-many: "%amount% Days"
  mail-alert-expiration-day-plural: "%amount% Days"
  mail-alert-expiration-day-singular: "%amount% Day"
  mail-alert-expiration-hour-few: "%amount% Hours"
  mail-alert-expiration-hour-many: "%amount% Hours"
  mail-alert-expiration-hour-plural: "%amount% Hours"
  mail-alert-expiration-hour-singular: "%amount% Hour"
  mail-alert-expiration-minute-few: "%amount% Minutes"
  mail-alert-expiration-minute-many: "%amount% Minutes"
  mail-alert-expiration-minute-plural: "%amount% Minutes"
  mail-alert-expiration-minute-singular: "%amount% Minute"
  mail-alert-expiration-second-few: "%amount% Seconds"
  mail-alert-expiration-second-many: "%amount% Seconds"
  mail-alert-expiration-second-plural: "%amount% Seconds"
  mail-alert-expiration-second-singular: "%amount% Second"
  mail-alert-expiration-suffix: " <yellow>Expires in <white>%time%<yellow>."
  mail-alert-login-simple: "<gold>[New Mail] <yellow>- <white>You have <yellow>%total% <white>new mail!"
  mail-alert-online-admin: "<gold>[New Mail] <yellow>- %sender% <yellow>sent %type% to your mailbox!%expiration%"
  mail-alert-online-player: "<gold>[New Mail] <yellow>- <white>%sender% <yellow>sent %type% to your mailbox!%expiration%"
  settings-notification-usage: "<white>Use /mb settings notification offline <red>{simple|advanced|off}</red>, /mb settings notification online <red>{on|off}</red>, or /mb settings notification soundalert <red>{on|off}</red>.</white>"
  settings-notification-usage-kit: "<white>Use /mb settings notification offline <red>{simple|advanced|off}</red>, /mb settings notification online <red>{on|off}</red>, /mb settings notification soundalert <red>{on|off}</red>, or /mb settings notification kit <red>{on|off}</red>.</white>"

  # ------------------------------------------------------------
  # Scheduled mail
  # ------------------------------------------------------------
  scheduledmail-info-completed: "<gray>Completed: <white>%value%"
  scheduledmail-info-enabled: "<gray>Enabled: <white>%value%"
  scheduledmail-info-expires-in: "<gray>Expires in: <white>%value%"
  scheduledmail-info-from: "<gray>From: <white>\"%value%<white>\""
  scheduledmail-info-header: "<gold>Scheduled Mail: <yellow>%id%"
  scheduledmail-info-last-attempt: "<gray>Last Attempt: <white>%value%"
  scheduledmail-info-last-count: "<gray>Last Count: <white>%value%"
  scheduledmail-info-last-delivered: "<gray>Last Delivered: <white>%value%"
  scheduledmail-info-last-failed: "<gray>Last Failed: <white>%value%"
  scheduledmail-info-last-failure: "<gray>Last Failure: <red>%value%"
  scheduledmail-info-last-queued: "<gray>Last Queued: <white>%value%"
  scheduledmail-info-last-run: "<gray>Last Run: <white>%value%"
  scheduledmail-info-next-due: "<gray>Next Due: <white>%value%"
  scheduledmail-info-notify: "<gray>Notify-Recipients: <white>%value%"
  scheduledmail-info-repeat: "<gray>Repeat: <white>%value%"
  scheduledmail-info-send-date: "<gray>Send Date: <white>%value%"
  scheduledmail-info-send-time: "<gray>Send Time: <white>%value%"
  scheduledmail-info-type: "<gray>Type: <white>%value%"
  scheduledmail-invalid-schedule: "Invalid schedule"
  scheduledmail-list-empty: "<yellow>No scheduled mail tasks are configured."
  scheduledmail-list-header: "<gold>Scheduled Mail Tasks:"
  scheduledmail-never: "Never"
  scheduledmail-no-permission-manage: "<red>You do not have permission to manage scheduled mail tasks."
  scheduledmail-no-permission-reload: "<red>You do not have permission to reload scheduled mail."
  scheduledmail-no-permission-run: "<red>You do not have permission to run scheduled mail tasks."
  scheduledmail-no-permission-use: "<red>You do not have permission to use scheduled mail commands."
  scheduledmail-reloaded: "<dark_green>✔</dark_green> <green>Reloaded scheduled mail. Loaded <yellow>%count%<green> task(s)."
  scheduledmail-repeat-daily: "Daily"
  scheduledmail-repeat-every: "Every %time%"
  scheduledmail-repeat-monthly: "Monthly"
  scheduledmail-repeat-none: "None"
  scheduledmail-repeat-weekly: "Weekly"
  scheduledmail-result-already-committed: "Occurrence already committed."
  scheduledmail-result-backend-not-owner: "This backend does not own this scheduled task."
  scheduledmail-result-coordinator-unavailable: "Scheduled mail coordinator is unavailable."
  scheduledmail-result-first-failure: "%message% First failure: %failure%"
  scheduledmail-result-missed-skipped: "Missed occurrence skipped."
  scheduledmail-result-network-uncommitted: "Scheduled network occurrence could not accept every recipient; no deliveries committed. %failure%"
  scheduledmail-result-no-recipients: "No matching recipients."
  scheduledmail-result-none-accepted: "API accepted no recipients."
  scheduledmail-result-not-due: "Occurrence is no longer due."
  scheduledmail-result-sent: "Sent scheduled mail to %count% recipient(s)."
  scheduledmail-result-task-disabled: "Scheduled mail task is disabled."
  scheduledmail-result-task-unknown: "Unknown scheduled mail task."
  scheduledmail-result-unsupported-type: "Unsupported type: %type%"
  scheduledmail-run-failure: "<dark_red>✖</dark_red> <red>Scheduled mail %id%: %message%"
  scheduledmail-run-success: "<dark_green>✔</dark_green> <green>Scheduled mail %id%: %message%"
  scheduledmail-save-failed: "<dark_red>✖</dark_red> <red>Failed to save scheduled-mail.yml: %error%"
  scheduledmail-task-disabled: "<yellow>Disabled <white>%id%"
  scheduledmail-task-enabled: "<green>Enabled <white>%id%"
  scheduledmail-task-unknown: "<red>Unknown scheduled mail task: %id%"
  scheduledmail-usage-disable: "<white>/mba scheduledmail disable <red>{id}</red></white>"
  scheduledmail-usage-enable: "<white>/mba scheduledmail enable <red>{id}</red></white>"
  scheduledmail-usage-header: "<gold>Scheduled Mail Commands:"
  scheduledmail-usage-info: "<white>Usage: /mba scheduledmail info <red>{id}</red></white>"
  scheduledmail-usage-list: "<white>/mba scheduledmail list</white>"
  scheduledmail-usage-manage: "<white>Usage: /mba scheduledmail %action% <red>{id}</red></white>"
  scheduledmail-usage-reload: "<white>/mba scheduledmail reload</white>"
  scheduledmail-usage-run: "<white>Usage: /mba scheduledmail run <red>{id}</red></white>"
  scheduledmail-value-false: "False"
  scheduledmail-value-true: "True"

  # ------------------------------------------------------------
  # Integrations
  # ------------------------------------------------------------
  dynmap-hook-disabled: "<yellow>Dynmap hook disabled."
  dynmap-hook-enabled: "<green>Dynmap hook enabled."
  dynmap-hook-unavailable: "<yellow>Dynmap is not installed or not available. Map markers will not be used."
  dynmap-markers-refreshed: "<green>Dynmap mailbox markers refreshed."

  # ------------------------------------------------------------
  # Updates
  # ------------------------------------------------------------
  admin-update-already-staged: "<green>MailboxGUI %version% is already staged for the next restart."
  admin-update-channel-check-partial: "<yellow>Could not check %count% release channel(s). Check the website and try /mba updatecheck again."
  admin-update-channel-required: "<yellow>This update is on the <white>%channel% <yellow>channel. Set <white>%setting%: %channel% <yellow>in config.yml and run <white>/mba reload <yellow>before using <white>/mba update<yellow>."
  admin-update-checker-unavailable: "<red>MailboxGUI update checker is not available."
  admin-update-checking: "<yellow>Checking website release system for MailboxGUI updates..."
  admin-update-console-available: "Update available: %latest% (current: %current%)."
  admin-update-console-download: "Download: %url%"
  admin-update-console-summary: "Summary: %summary%"
  admin-update-console-type-status: "Type: %type% | Status: %status%"
  admin-update-current: "<gray>Current: <white>%version%"
  admin-update-current-jar-unchanged: "<gray>Your current jar was not changed."
  admin-update-disabled: "<red>Update checker is disabled in config.yml."
  admin-update-download: "<gray>Download: <white>%url%"
  admin-update-download-failed: "<dark_red>✖</dark_red> <red>Update download failed: %reason%"
  admin-update-download-page: "<gray>Download page: <white>%url%"
  admin-update-downloading: "<yellow>Downloading MailboxGUI %version% for next restart..."
  admin-update-join-available: "<yellow>Update available: <white>%version%"
  admin-update-join-current-status: "<gray>Current: <white>%current% <dark_gray>| <gray>Status: <white>%status%"
  admin-update-join-run-updatecheck: "<gray>Run <white>/mba updatecheck <gray>for details."
  admin-update-latest: "<gray>Latest: <white>%version%"
  admin-update-network-warning-each-backend: "<gold>⚠</gold> <yellow>Run the update command on each MailboxGUI backend, then restart each backend to complete the update."
  admin-update-network-warning-enabled: "<gold>⚠</gold> <yellow>[MailboxGUI] <yellow>Network mode is enabled."
  admin-update-network-warning-local-only: "<gold>⚠</gold> <yellow>This update command only stages the update on this backend server."
  admin-update-no-direct-download: "<red>The website release did not provide a direct jar download URL."
  admin-update-no-pending: "<red>No pending update is ready to install."
  admin-update-preparing: "<yellow>Checking latest website release before staging update..."
  admin-update-restart: "<yellow>Restart the server to complete the update."
  admin-update-run-confirm: "<yellow>Run <white>/mba update confirm <yellow>to download and stage the update for next restart."
  admin-update-run-prepare: "<yellow>Run <white>/mba update <yellow>to prepare this update."
  admin-update-run-update-first: "<gray>Run <white>/mba update <gray>first."
  admin-update-source: "<gray>Source: <white>Website Release System (%edition%)"
  admin-update-staged-file: "<gray>Staged file: <white>%path%"
  admin-update-staged-success: "<dark_green>✔</dark_green> <green>Update staged successfully."
  admin-update-status: "<gray>Status: <white>%status%"
  admin-update-status-development: "Running newer/development build"
  admin-update-status-error: "<gray>Status: <red>%status%"
  admin-update-status-feature: "Feature update available"
  admin-update-status-maintenance: "Maintenance update available"
  admin-update-status-major: "Major update available"
  admin-update-status-not-checked: "Not checked"
  admin-update-status-up-to-date: "Up to date"
  admin-update-summary: "<gray>Summary: <white>%summary%"
  admin-update-target-version: "<gray>Target version: <white>%version%"
  admin-update-technical-error: "The update service could not be reached or returned an invalid response. See the console for technical details."
  admin-update-type: "<gray>Type: <white>%type%"
  admin-update-up-to-date: "<green>MailboxGUI is already up to date."

  # ------------------------------------------------------------
  # API results
  # ------------------------------------------------------------
  api-result-detail-admin-inbox-disabled: "Shared Admin Inbox return handling is disabled."
  api-result-detail-backend-excludes-all: "Backend target excludes every known backend."
  api-result-detail-backend-group-blank: "Backend group cannot be blank."
  api-result-detail-backend-group-unknown: "Unknown backend group: %group%"
  api-result-detail-backend-id-missing: "Current backend ID is missing."
  api-result-detail-backend-list-required: "%flag% requires at least one backend server-id."
  api-result-detail-backend-unknown: "Unknown backend server IDs: %backends%"
  api-result-detail-book-cancelled: "Book letter send was cancelled by an API event listener."
  api-result-detail-book-create-failed: "Book letter item could not be created."
  api-result-detail-book-message-blank: "Book letter message cannot be blank."
  api-result-detail-book-request-null: "Book letter request cannot be null."
  api-result-detail-cod-economy-required: "Vault/economy Cash on Demand packages require Vault economy support."
  api-result-detail-cod-item-currency-disabled: "Item-currency Cash on Demand packages are disabled."
  api-result-detail-cod-loaded-shulker: "Non-empty shulker boxes cannot be used as COD item currency."
  api-result-detail-cod-nested-package: "Nested MailboxGUI packages cannot be used as COD item currency."
  api-result-detail-cod-return-requires-cod: "Admin Inbox COD return settings require a COD package."
  api-result-detail-cod-sender-required: "COD sender return requires a sender UUID."
  api-result-detail-cod-slot-limit: "COD item-currency price exceeds the configured package limit. Requested %requested% item-currency slots; this server allows %limit%."
  api-result-detail-delayed-queue-failed: "Delayed mail could not be queued for persistent delivery."
  api-result-detail-expiration-invalid: "Expiration duration is invalid."
  api-result-detail-inbox-save-failed: "Mailbox data could not be saved."
  api-result-detail-letter-cancelled: "Letter send was cancelled by an API event listener."
  api-result-detail-letter-message-blank: "Letter message cannot be blank."
  api-result-detail-letter-request-null: "Letter request cannot be null."
  api-result-detail-letters-disabled: "Letters are disabled."
  api-result-detail-mail-create-failed: "Mail item could not be created."
  api-result-detail-money-amount-invalid: "Money amount must be greater than zero."
  api-result-detail-money-cancelled: "Money send was cancelled by an API event listener."
  api-result-detail-money-disabled: "Money mail is disabled."
  api-result-detail-money-economy-required: "Money mail requires Vault economy support."
  api-result-detail-money-request-null: "Money request cannot be null."
  api-result-detail-package-cancelled: "Package send was cancelled by an API event listener."
  api-result-detail-package-create-failed: "Package item could not be created."
  api-result-detail-package-empty: "Package contents cannot be empty."
  api-result-detail-package-loaded-shulker: "Non-empty shulker boxes are not allowed."
  api-result-detail-package-nested: "Nested MailboxGUI packages are not allowed."
  api-result-detail-package-request-null: "Package request cannot be null."
  api-result-detail-package-slot-limit: "Package exceeds the configured package limit. Requested %requested% content slots; this server allows %limit%."
  api-result-detail-package-xp-create-failed: "Package experience item could not be created."
  api-result-detail-package-xp-disabled: "Package experience items are disabled."
  api-result-detail-packages-disabled: "Packages are disabled."
  api-result-detail-queued-delay: "Queued for persistent delivery in %seconds% seconds."
  api-result-detail-recipient-not-found: "Recipient was not found in MailboxGUI data."
  api-result-detail-recipient-npc: "Citizens NPCs cannot receive player mail."
  api-result-detail-recipient-null: "Recipient cannot be null."
  api-result-detail-recipient-required: "At least one recipient is required."
  api-result-detail-recipient-unregistered: "Recipient does not have a registered mailbox."
  api-result-detail-single-server-only: "This edition supports single-server delivery only."
  api-result-reason-admin-inbox-disabled: "Shared Admin Inbox return handling is disabled."
  api-result-reason-backend-target-blocked: "Delivery to the selected backend is blocked."
  api-result-reason-cancelled-by-event: "Another plugin cancelled this mail through an API event."
  api-result-reason-cod-payment-unsupported-on-target-backend: "The target backend cannot safely load the COD item-currency payment."
  api-result-reason-delivered: "Mail was delivered."
  api-result-reason-disabled-by-config: "This mail feature is disabled in the configuration."
  api-result-reason-economy-unavailable: "Vault and a working economy provider are required."
  api-result-reason-empty-package: "A package must contain items or experience."
  api-result-reason-inbox-write-failed: "Mail could not be saved. Check the server log before retrying."
  api-result-reason-invalid-cod-return-configuration: "Admin Inbox COD return settings require a COD package."
  api-result-reason-invalid-cod-return-destination: "A COD sender return requires a valid sender UUID."
  api-result-reason-invalid-expiration: "The expiration duration is invalid."
  api-result-reason-invalid-request: "Check the recipient, message, amount, and package settings."
  api-result-reason-item-unsupported-on-target-backend: "The target backend cannot safely load one or more package items."
  api-result-reason-mail-restricted-to-other-backend: "This mail can only be managed on its permitted backend."
  api-result-reason-mailbox-data-missing: "The recipient's mailbox data is unavailable."
  api-result-reason-nested-package-blocked: "MailboxGUI packages cannot be included in another package or used as item currency."
  api-result-reason-no-compatible-backend: "No available backend supports this mail."
  api-result-reason-no-registered-mailbox: "The recipient must register a mailbox first."
  api-result-reason-non-empty-shulker-blocked: "Loaded shulker boxes are not allowed by the current package settings."
  api-result-reason-queued: "Mail is waiting for delivery."
  api-result-reason-recipient-not-found: "The recipient is not a real player with known mailbox data."
  api-result-reason-serialization-failed: "The mail item could not be created or serialized safely."
  api-result-reason-too-many-contents: "The package or item-currency payment exceeds the supported capacity."
  api-result-reason-unknown-backend: "The selected backend is not registered."
  api-result-reason-unknown-backend-group: "The selected backend group is not configured."
  api-result-status-admin-inbox-disabled: "Admin inbox disabled"
  api-result-status-backend-target-blocked: "Backend target blocked"
  api-result-status-cancelled-by-event: "Cancelled"
  api-result-status-cod-payment-unsupported-on-target-backend: "Unsupported COD payment"
  api-result-status-delivered: "Delivered"
  api-result-status-disabled-by-config: "Disabled"
  api-result-status-economy-unavailable: "Economy unavailable"
  api-result-status-empty-package: "Empty package"
  api-result-status-inbox-write-failed: "Storage failure"
  api-result-status-invalid-cod-return-configuration: "Invalid COD return settings"
  api-result-status-invalid-cod-return-destination: "Invalid return destination"
  api-result-status-invalid-expiration: "Invalid expiration"
  api-result-status-invalid-request: "Invalid request"
  api-result-status-item-unsupported-on-target-backend: "Unsupported item"
  api-result-status-mail-restricted-to-other-backend: "Restricted mail"
  api-result-status-mailbox-data-missing: "Mailbox data missing"
  api-result-status-nested-package-blocked: "Nested package blocked"
  api-result-status-network-mode-required: "Network required"
  api-result-status-no-compatible-backend: "No compatible backend"
  api-result-status-no-registered-mailbox: "No registered mailbox"
  api-result-status-non-empty-shulker-blocked: "Loaded shulker blocked"
  api-result-status-queued: "Queued"
  api-result-status-recipient-not-found: "Recipient not found"
  api-result-status-serialization-failed: "Item serialization failed"
  api-result-status-too-many-contents: "Too many contents"
  api-result-status-unknown-backend: "Unknown backend"
  api-result-status-unknown-backend-group: "Unknown backend group"

  # ------------------------------------------------------------
  # Premium network
  # ------------------------------------------------------------
  api-result-detail-network-required: "Premium network mode is required for backend-targeted mail delivery."
  api-result-reason-network-mode-required: "Network mode must be enabled for this delivery target."
  network-api-status-backend-target-blocked: "<red>The API mail target is blocked for the selected backend."
  network-api-status-cod-payment-unsupported: "<red>The API COD payment is unsupported on the selected backend."
  network-api-status-item-unsupported: "<red>The API package contains item data unsupported on the selected backend."
  network-api-status-mail-restricted-other-backend: "<red>The API mail is restricted to another backend."
  network-api-status-network-mode-required: "<red>Network mode is required for this API mail target."
  network-api-status-no-compatible-backend: "<red>No compatible backend was available for the API mail target."
  network-api-status-unknown-backend: "<red>API mail target uses an unknown backend."
  network-api-status-unknown-backend-group: "<red>API mail target uses an unknown backend group."
  network-compatibility-error-cod-price-unreadable: "<red>COD price data cannot be safely decoded on this backend."
  network-compatibility-error-missing-package-manifest: "<red>Package compatibility manifest is missing."
  network-compatibility-error-unsafe-package-payload: "<red>Package contents cannot be safely read on this backend."
  network-compatibility-error-unsupported-item-data: "<red>Unsupported item data for this backend."
  network-delayed-routing-allowed: "<gray>Allowed Backends: <white>%backends%"
  network-delayed-routing-excluded: "<gray>Excluded Backends: <white>%backends%"
  network-delayed-routing-group: "<gray>Backend Group: <white>%group%"
  network-delayed-routing-target-type: "<gray>Target Type: <white>%type%"
  network-delayed-routing-title: "<dark_gray>Delayed Mail Routing"
  network-error-backend-target-blocked: "<red>This mail cannot be targeted to that backend."
  network-error-cod-payment-unsupported-target: "<red>This COD payment cannot be safely processed on the selected backend."
  network-error-item-unsupported-target: "<red>This package contains item data unsupported by the selected backend."
  network-error-mail-restricted-other-backend: "<red>This mail is restricted to another backend."
  network-error-mode-required: "<red>Premium network mode is required for backend-targeted mail delivery."
  network-error-no-compatible-backend: "<red>No compatible backend is available for this mail."
  network-error-target-permission: "<red>You do not have permission to use Premium backend-targeted mail delivery."
  network-error-unknown-backend: "<red>Unknown backend: <white>%backend%<red>."
  network-error-unknown-backend-group: "<red>Unknown backend group: <white>%group%<red>."
  network-locks-empty: "<gray>No active network locks are known."
  network-locks-force-clear-warning: "<gold>⚠</gold> <yellow>Force-clearing a network lock can allow duplicate actions if the lock is still valid."
  network-locks-title: "<dark_gray>Network Locks"
  network-mismatch-disabled-protect-data: "MailboxGUI has been disabled on this backend to protect shared network mail data."
  network-mismatch-enable-multiversion: "To use mixed backend versions later, enable compatibility.multiversion-backends.enabled after the advanced multiversion systems have been tested."
  network-mismatch-keep-same-profile: "For now, keep all Premium network backends on the same Minecraft/Paper/MailboxGUI compatibility profile."
  network-mismatch-local-profile: "Local backend '%server%' profile: %profile%"
  network-mismatch-multiversion-disabled: "Multiversion backend support is disabled."
  network-mismatch-remote-profile: "Remote backend '%server%' profile: %profile%"
  network-mismatch-title: "MailboxGUI Premium network compatibility mismatch detected."
  network-mismatch-unverified-profile: "<red>Multiversion cannot override unknown backend versions or incompatible mail schemas and item serializers. Update every backend to a matching MailboxGUI Premium build and compatible server platforms."
  network-package-claimable-backend: "<gray>Package only claimable on Backend(s): <white>%backends%"
  restricted-package-reason-newer-data-version-detail: "Item %material% uses newer Minecraft data (source: %source_version%; local: %local_version%)."
  restricted-package-reason-unsupported-material-detail: "Item %material% is unsupported locally (source: %source_version%; local: %local_version%)."
  restricted-package-codec-unsupported-detail: "Item %material% is incompatible according to %source% (source: %source_version%; local: %local_version%)."
  restricted-package-reason-unreadable-item-detail: "Item %material% could not be decoded safely (source: %source_version%; local: %local_version%)."
  restricted-package-codec-source-fallback: "custom item codec"
  network-package-partial-claim: "<yellow>Compatible contents can be claimed here."
  network-package-restriction: "<red>Restriction: <white>%reason%"
  network-package-unsupported-generic: "This package contains an item unsupported on this backend."
  network-package-unsupported-item: "Unsupported Item"
  network-package-unsupported-lore-1: "<gray>This item cannot be claimed on"
  network-package-unsupported-lore-2: "<gray>this backend version."
  network-package-unsupported-lore-3: "<yellow>Claim it from a compatible backend."
  network-package-unsupported-remain: "<gray>Unsupported contents stay in the package."
  network-package-view-only: "<yellow>View only on this backend."
  network-restricted-mail-delete-lore: "<red>Shift-Right-Click to <bold>Delete</bold></red>"
  network-restricted-mail-claimable-backends: "<gray>Claimable Backends: <white>%backends%"
  network-restricted-mail-current-backend: "<gray>Current Backend: <white>%backend%"
  network-restricted-mail-origin-backend: "<gray>Origin Backend: <white>%backend%"
  network-restricted-mail-reason: "<red>Reason: <white>%reason%"
  network-restricted-mail-title: "<red>Restricted Mail"
  network-startup-compat-multiversion: "Network compatibility mode: multiversion backends enabled. This advanced mode requires restricted mail and package compatibility testing before production use."
  network-startup-compat-multiversion-warning: "Use this only after restricted mail, package manifests, compatibility scanning, and backend targeting have been tested."
  network-startup-compat-same: "Network compatibility mode: same-version backends only. Multiversion backend support is disabled."
  network-startup-disabled-protect-data: "MailboxGUI has been disabled to protect shared network mail data."
  network-startup-error-mysql: "Network mode requires a valid MySQL/MariaDB connection. %error%"
  network-startup-error-profile-unverified: "<dark_red>✖</dark_red> <red>Cannot verify this backend's compatibility profile: %profile%. MailboxGUI was disabled to protect mail data."
  network-startup-error-redis-host: "Network mode requires redis.host in network/config.yml."
  network-startup-error-redis-port: "Network mode requires a valid redis.port in network/config.yml."
  network-startup-error-redis-validation: "Network mode requires Redis, but Redis validation failed: %error%"
  network-startup-error-locks-required: "<red>Network mode requires locks.enabled: true to protect mail claims."
  network-startup-error-heartbeat-stale: "<red>presence.stale-after-seconds must be greater than presence.heartbeat-seconds."
  network-subscriber-retries-exhausted: "<red>Redis subscription stopped after the initial attempt and all configured reconnect retries failed. Restore Redis connectivity, then use /mba reload or restart the server to reconnect."
  # Network recovery diagnostics; recovery retries do not redeliver persisted mail.
  network-recovery-failed: "<yellow>Network recovery failed; automatic retries refresh saved data without redelivering mail."
  network-recovery-gap: "<yellow>Recent event history is incomplete. Recovery will refresh saved mail data, but some notification events may not replay."
  network-recovery-outbox-full: "<yellow>The recovery event outbox is full; the event was not queued. Persisted mail remains safe."
  network-recovery-outbox-invalid: "<dark_red>✖</dark_red> <red>Cannot load the recovery outbox. The file was preserved; network recovery is paused."
  # Presence updates retry revision conflicts with fresh shared data; older sessions cannot clear a newer login.
  network-presence-conflict: "<yellow>Player presence update for %player% was skipped after %attempts% revision conflicts; newer shared data was preserved."
  # Network scheduling diagnostics; task execution and recipient scope do not set mail delivery targets.
  scheduled-network-not-ready: "<yellow>Scheduled task %task% is paused because the network is not ready: %reason%."
  scheduled-network-conflict: "<red>Scheduled task %task% is paused because its shared definitions conflict across backends."
  scheduled-network-definitions-pending: "<yellow>Scheduled task %task% is waiting for shared definition checks."
  scheduled-network-owner-unavailable: "<yellow>Scheduled task %task% is paused because owner backend %backend% is unavailable."
  scheduled-network-not-owner: "<yellow>Scheduled task %task% belongs to backend %backend%; this backend will not run it."
  scheduled-network-invalid: "<red>Scheduled task %task% has invalid network settings: %reason%."
  scheduled-network-recipient-unavailable: "<yellow>Scheduled task %task% is paused because recipients could not be evaluated on backend %backend%: %reason%."
  # Backend ownership and network lifecycle; status labels are plain text.
  network-backend-id-conflict: "<red>Backend ID %server% is already owned by another running instance. Set a unique network.server-id and reload."
  network-runtime-starting: "<yellow>Network runtime is starting; mail operations wait for backend ownership and Redis subscription."
  network-runtime-degraded: "<red>Network runtime is unavailable; mail operations are paused until connectivity and backend ownership recover."
  network-runtime-reload-invalid: "<red>Network reload was rejected because the configuration is invalid. Correct the files and run /mba reload."
  network-runtime-status-starting: "Starting"
  network-runtime-status-ready: "Ready"
  network-runtime-status-degraded: "Degraded"
  network-runtime-status-stopped: "Stopped"
  network-startup-error-shared-storage-required: "network.require-shared-storage must remain true when network mode is enabled."
  network-startup-error-storage-missing: "Network mode is enabled, but storage settings could not be loaded."
  network-startup-error-storage-type: "Network mode requires shared MySQL/MariaDB storage. Current storage type is %type%."
  network-startup-runtime-enabled: "Network runtime enabled for server '%server%'."
  network-startup-validated: "Network mode validated for server '%server%'."
  network-startup-validation-failed: "Network mode startup validation failed."
  network-status-compat-mode: "<gold>[MailboxGUI] <yellow>Premium network compatibility mode: %mode%"
  network-status-known-profiles: "<gray>Known backend profile(s): <white>%count%"
  network-status-local-profile: "<gray>Local profile: <white>%profile%"
  network-status-mode-multiversion: "<red>MULTIVERSION ENABLED"
  network-status-mode-same-version: "<green>SAME-VERSION ONLY"
  network-status-multiversion-warning: "<gold>⚠</gold> <yellow>Multiversion backend support is advanced and should stay off until restricted mail and package compatibility systems are tested."
  network-status-same-version-warning: "<gray>Mixed backend profiles will fail safely unless compatibility.multiversion-backends.enabled is true."
  network-target-configured: "configured backend(s)"
  network-target-excluded: "except %backends%"
  network-target-group: "backend group"
  network-target-group-name: "group: %group%"
  network-target-origin: "origin backend"
  network-target-whole: "whole network"

  # ------------------------------------------------------------
  # Premium GUI
  # ------------------------------------------------------------
  gui-admin-network-backend-bukkit: "<gray>Bukkit: <white>%value%"
  gui-admin-network-backend-data-version: "<gray>Data Version: <white>%value%"
  gui-admin-network-backend-groups-lore-1: "<gray>View configured Premium backend groups."
  gui-admin-network-backend-groups-lore-2: "<dark_gray>Used by GUI and command targeting."
  gui-admin-network-backend-groups-lore-3: "<gray>Keep backend-groups identical across every backend."
  gui-admin-network-backend-groups-lore-4: "<gray>Each server should share the same network/config.yml groups."
  gui-admin-network-backend-groups-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Backend Groups</bold></gradient>"
  gui-admin-network-backend-local: "<green>Local Backend"
  gui-admin-network-backend-mail-data: "<gray>Mail Data: <white>%value%"
  gui-admin-network-backend-mailboxgui: "<gray>MailboxGUI: <white>%value%"
  gui-admin-network-backend-manifest: "<gray>Package Manifest: <white>%value%"
  gui-admin-network-backend-minecraft: "<gray>Minecraft: <white>%value%"
  gui-admin-network-backend-protocol: "<gray>Network Protocol: <white>%value%"
  gui-admin-network-backend-serializer: "<gray>Serializer: <white>%value%"
  gui-admin-network-backend-server-id: "<gray>Server ID: <white>%value%"
  gui-admin-network-backend-status-lore-1: "<gray>View known Premium network backends."
  gui-admin-network-backend-status-lore-2: "<dark_gray>Shows compatibility and claim support."
  gui-admin-network-backend-status-lore-3: "<gray>Adding another backend? Install Premium there too."
  gui-admin-network-backend-status-lore-4: "<gray>Configure the same MySQL and Redis connection."
  gui-admin-network-backend-status-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Backend Status</bold></gradient>"
  gui-admin-network-backend-storage: "<gray>Storage: <white>%value%"
  gui-admin-network-coming-soon-lore-1: "<gray>Reserved for a later Premium network phase."
  gui-admin-network-coming-soon-lore-2: "<dark_gray>This button is intentionally inactive for now."
  gui-admin-network-compatibility-scan-name: "<gradient:#A57A19:#F2D45C:#A57A19><bold>Compatibility Scanner</bold></gradient>"
  gui-admin-network-delayed-created-at: "<gray>Created At: <white>%value%"
  gui-admin-network-delayed-deliver-at: "<gray>Deliver At: <white>%value%"
  gui-admin-network-delayed-delivery-type: "<gray>Delivery Type: <white>%value%"
  gui-admin-network-delayed-empty-lore-1: "<gray>No delayed mail is currently queued."
  gui-admin-network-delayed-empty-name: "<gradient:#A83E4A:#FF7B86:#A83E4A><bold>No Delayed Mail</bold></gradient>"
  gui-admin-network-delayed-entry-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Delayed Mail</bold></gradient>"
  gui-admin-network-delayed-expiration-after: "<gray>Expiration After Delivery: <white>%seconds%s"
  gui-admin-network-delayed-lore-1: "<gray>View queued delayed mail routing."
  gui-admin-network-delayed-lore-2: "<dark_gray>Shows target backend rules and delivery time."
  gui-admin-network-delayed-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>Delayed Mail Routing</bold></gradient>"
  gui-admin-network-delayed-not-processable: "<red>Not processable on this backend"
  gui-admin-network-delayed-origin-backend: "<gray>Origin Backend: <white>%backend%"
  gui-admin-network-delayed-processable: "<green>Processable on this backend"
  gui-admin-network-delayed-queue-id: "<gray>Queue ID: <white>%value%"
  gui-admin-network-delayed-recipient: "<gray>Recipient: <white>%value%"
  gui-admin-network-delayed-recipient-uuid: "<gray>Recipient UUID: <white>%value%"
  gui-admin-network-delayed-title: "<gradient:#253451:#3B4E72:#253451>Delayed Mail Routing</gradient>"
  gui-admin-network-feature-book-letters: "Book Letters"
  gui-admin-network-feature-cod: "COD"
  gui-admin-network-feature-money-mail: "Money Mail"
  gui-admin-network-feature-packages: "Packages"
  gui-admin-network-feature-supported: "Supported"
  gui-admin-network-feature-unavailable: "Unavailable"
  gui-admin-network-feature-vault: "Vault"
  gui-admin-network-group-command-hint: "<dark_gray>Use --server-group %group% in Premium admin send commands."
  gui-admin-network-group-members: "<gray>Members: <white>%count%"
  gui-admin-network-group-no-members: "<red>No backend server IDs are configured."
  gui-admin-network-groups-empty-lore-1: "<gray>No backend groups are configured."
  gui-admin-network-groups-empty-lore-2: "<dark_gray>Edit network/config.yml backend-groups.groups."
  gui-admin-network-groups-empty-name: "<gradient:#A83E4A:#FF7B86:#A83E4A><bold>No Backend Groups</bold></gradient>"
  gui-admin-network-groups-title: "<gradient:#253451:#3B4E72:#253451>Backend Groups</gradient>"
  gui-admin-network-locks-name: "<gold>⚠</gold> <gradient:#A57A19:#F2D45C:#A57A19><bold>Network Locks</bold></gradient>"
  gui-admin-network-mysql-database: "<gray>Database: <white>%value%"
  gui-admin-network-mysql-endpoint: "<gray>Endpoint: <white>%value%"
  gui-admin-network-mysql-failed: "<red>Connection failed: %error%"
  gui-admin-network-mysql-lore-1: "<gray>Shows shared storage status for Premium network mode."
  gui-admin-network-mysql-lore-2: "<dark_gray>Every backend must use the same MySQL/MariaDB database."
  gui-admin-network-mysql-name: "<gradient:#4498DB:#81EAFF:#4498DB><bold>MySQL Status</bold></gradient>"
  gui-admin-network-mysql-not-active: "<red>Active storage is not MYSQL."
  gui-admin-network-mysql-ok: "<green>Connection OK. Tables are ready."
  gui-admin-network-mysql-required: "<gray>Network mode requires shared MySQL/MariaDB storage."
  gui-admin-network-mysql-ssl: "<gray>SSL: <white>%value%"
  gui-admin-network-mysql-storage-type: "<gray>Storage Type: <white>%value%"
  gui-admin-network-mysql-username: "<gray>Username: <white>%value%"
  gui-admin-network-redis-empty: "<red>Redis status is unavailable."
  gui-admin-network-redis-lore-1: "<gray>Shows the same Redis health used by /mba redis status."
  gui-admin-network-redis-lore-2: "<dark_gray>Includes runtime, ping, channels, and known backends."
  gui-admin-network-redis-name: "<gradient:#A83E4A:#FF7B86:#A83E4A><bold>Redis Status</bold></gradient>"
  gui-admin-network-redis-unavailable: "<red>Redis status is only available in Premium network mode."
  gui-admin-network-restricted-name: "<gradient:#A83E4A:#FF7B86:#A83E4A><bold>Restricted Mail Viewer</bold></gradient>"
  gui-admin-network-retarget-name: "<gradient:#7A4D8C:#C58AD8:#7A4D8C><bold>Retarget Mail</bold></gradient>"
  gui-admin-network-status-empty-lore-1: "<gray>No Premium backend profiles are currently known."
  gui-admin-network-status-empty-name: "<gradient:#A83E4A:#FF7B86:#A83E4A><bold>No Backend Profiles</bold></gradient>"
  gui-admin-network-status-title: "<gradient:#253451:#3B4E72:#253451>Backend Status</gradient>"
  gui-admin-network-target-backend-click: "<yellow>Click to target this backend."
  gui-admin-network-target-group-click: "<yellow>Click to target this backend group."
  gui-admin-network-target-title: "<gradient:#253451:#3B4E72:#253451>Mail Target Backend</gradient>"
  gui-admin-network-target-whole-lore-1: "<gray>Mail can be opened or claimed on any backend."
  gui-admin-network-target-whole-lore-2: "<yellow>Click to continue."
  gui-admin-network-target-whole-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Whole Network</bold></gradient>"
  gui-admin-network-targeted-send-name: "<gradient:#2F8A5A:#78D99B:#2F8A5A><bold>Targeted Mail Sender</bold></gradient>"
  # Delivery search text input; cancel is literal command syntax, not translated prose.
  gui-admin-network-tools-search-prompt: "<yellow>Enter a mail ID or player UUID. Type cancel to return."
  gui-admin-network-tools-search-invalid: "<red>Enter a valid mail ID or player UUID (maximum 128 characters)."
  gui-admin-network-tools-search-busy: "<red>Finish your current text input before starting a delivery search."
  # Network Tools screens and read-only diagnostics; IDs, timestamps and sanitized status fields never include mail bodies or item payloads.
  # Overview and delayed-mail views use cached data. Connection probes require diagnostics permission; these screens do not send, claim or modify mail.
  gui-admin-network-n5-backends: "<aqua><bold>Backends</bold>"
  gui-admin-network-n5-connections: "<aqua><bold>Connections</bold>"
  gui-admin-network-n5-delivery: "<aqua><bold>Mail Delivery</bold>"
  gui-admin-network-n5-consistency: "<aqua><bold>Consistency</bold>"
  gui-admin-network-n5-export: "<aqua><bold>Support Export</bold>"
  gui-admin-network-n5-search: "<aqua><bold>Delivery Search</bold>"
  gui-admin-network-n5-scheduled: "<aqua><bold>Scheduled Status</bold>"
  gui-admin-network-n5-detail: "<aqua><bold>Details</bold>"
  gui-admin-network-n5-diagnostics: "<aqua><bold>Diagnostics</bold>"
  gui-admin-network-n5-refresh: "<yellow>Refresh"
  gui-admin-network-n5-field-id: "<gray>ID: <white>%value%"
  gui-admin-network-n5-field-recipient: "<gray>Recipient: <white>%value%"
  gui-admin-network-n5-field-type: "<gray>Mail Type: <white>%value%"
  gui-admin-network-n5-field-status: "<gray>Status: <white>%value%"
  gui-admin-network-n5-field-created: "<gray>Created: <white>%value%"
  gui-admin-network-n5-field-due: "<gray>Due: <white>%value%"
  gui-admin-network-n5-field-expiration: "<gray>Expiration (seconds): <white>%value%"
  gui-admin-network-n5-field-origin: "<gray>Origin Backend: <white>%value%"
  gui-admin-network-n5-field-target: "<gray>Target: <white>%value%"
  gui-admin-network-n5-field-allowed: "<gray>Allowed Backends: <white>%value%"
  gui-admin-network-n5-field-excluded: "<gray>Excluded Backends: <white>%value%"
  gui-admin-network-n5-field-group: "<gray>Group: <white>%value%"
  gui-admin-network-n5-field-scope: "<gray>Scope: <white>%value%"
  gui-admin-network-n5-field-completed: "<gray>Completed: <white>%value%"
  gui-admin-network-n5-field-last-run: "<gray>Last Run: <white>%value%"
  gui-admin-network-n5-field-last-attempt: "<gray>Last Attempt: <white>%value%"
  gui-admin-network-n5-field-delivered: "<gray>Delivered: <white>%value%"
  gui-admin-network-n5-field-queued: "<gray>Queued: <white>%value%"
  gui-admin-network-n5-field-failed: "<gray>Failed: <white>%value%"
  gui-admin-network-n5-field-occurrence: "<gray>Occurrence: <white>%value%"
  gui-admin-network-n5-field-executor: "<gray>Executor: <white>%value%"
  gui-admin-network-n5-field-executed: "<gray>Executed: <white>%value%"
  gui-admin-network-n5-field-reason: "<gray>Reason: <white>%value%"
  gui-admin-network-n5-field-backend: "<gray>Backend: <white>%value%"
  gui-admin-network-n5-field-checked: "<gray>Checked: <white>%value%"
  gui-admin-network-n5-field-differences: "<gray>Different Settings: <white>%value%"
  gui-admin-network-n5-field-latency: "<gray>Latency (ms): <white>%value%"
  gui-admin-network-n5-field-namespace: "<gray>Namespace: <white>%value%"
  gui-admin-network-n5-field-runtime: "<gray>Runtime: <white>%value%"
  gui-admin-network-n5-field-ready: "<gray>Ready: <white>%value%"
  gui-admin-network-n5-field-subscriber: "<gray>Subscriber Connected: <white>%value%"
  gui-admin-network-n5-field-backends: "<gray>Known Backends: <white>%value%"
  gui-admin-network-n5-status-healthy: "Healthy"
  gui-admin-network-n5-status-disabled: "Disabled"
  gui-admin-network-n5-status-failed: "Failed"
  gui-admin-network-n5-status-none: "None"
  gui-admin-network-n5-status-local: "Local"
  gui-admin-network-n5-status-pending: "Pending"
  gui-admin-network-n5-status-matching: "Matching"
  gui-admin-network-n5-status-different: "Different"
  gui-admin-network-n5-status-queued: "Queued"
  gui-admin-network-n5-status-committed: "Committed"
  gui-admin-network-n5-status-shared: "Shared"
  gui-admin-network-n5-status-backend-local: "Backend-local"
  gui-admin-network-n5-status-true: "Yes"
  gui-admin-network-n5-status-false: "No"
  gui-admin-network-n5-status-blocked: "Blocked"
  gui-admin-network-n5-status-skipped: "Skipped"
  gui-admin-network-n5-status-success: "Successful"
  gui-admin-network-n5-status-manual-failed: "Manual failure"
  gui-admin-network-n5-status-manual-success: "Manual success"
  gui-admin-network-n5-status-diagnostics-stale: "Outdated request"
  gui-admin-network-n5-status-diagnostics-invalid-query: "Invalid search"
  gui-admin-network-n5-status-diagnostics-report-limit: "Report size limit reached"
  gui-admin-network-n5-status-diagnostics-export-failed: "Export failed"
  gui-admin-network-n5-status-diagnostics-failed: "Diagnostics failed"
  gui-admin-network-n5-status-diagnostics-busy: "Diagnostics busy"
  gui-admin-network-n5-status-diagnostics-authentication-failed: "Authentication failed"
  gui-admin-network-n5-status-diagnostics-connection-failed: "Connection failed"
  gui-admin-network-n5-status-diagnostics-database-failed: "Database operation failed"
  gui-admin-network-n5-status-diagnostics-timeout: "Connection timed out"
  gui-admin-network-n5-status-diagnostics-metadata-unavailable: "Metadata unavailable"
  gui-admin-network-n5-status-network-scheduled-invalid-definition: "Invalid task definition"
  gui-admin-network-n5-status-network-scheduled-runtime-unavailable: "Network unavailable"
  gui-admin-network-n5-status-network-scheduled-snapshot-unavailable: "Definition checks pending"
  gui-admin-network-n5-status-network-scheduled-definition-conflict: "Conflicting task definitions"
  gui-admin-network-n5-status-network-scheduled-owner-unavailable: "Owner unavailable"
  gui-admin-network-n5-status-network-scheduled-owner-other: "Owned by another backend"
  gui-admin-network-n5-status-network-scheduled-recipient-authority-unavailable: "Recipient authority unavailable"
  gui-admin-network-n5-empty: "<gray>No matching entries."
  gui-admin-network-n5-unavailable: "<red>Diagnostics unavailable. Try again later."
  gui-admin-network-n5-loading: "<gray>Loading diagnostics..."
  gui-admin-network-n5-search-prompt: "<gray>Enter a mail ID or player UUID."
  gui-admin-network-n5-search-invalid: "<red>Invalid search. Return and try again."
  gui-admin-network-n5-export-complete: "<green>Support report saved."
  gui-admin-network-n5-export-path: "<gray>File: <white>%path%"
  gui-admin-network-n5-truncated: "<yellow>Result limit reached."
  gui-admin-network-n5-title-backend_list: "<gradient:#253451:#3B4E72:#253451>Backend Status</gradient>"
  gui-admin-network-n5-title-delayed: "<gradient:#253451:#3B4E72:#253451>Delayed Mail Routing</gradient>"
  gui-admin-network-n5-title-group_list: "<gradient:#253451:#3B4E72:#253451>Backend Groups</gradient>"
  gui-admin-network-n5-title-overview: "<gradient:#253451:#3B4E72:#253451>Network Tools</gradient>"
  gui-admin-network-n5-title-backends: "<gradient:#253451:#3B4E72:#253451>Backends</gradient>"
  gui-admin-network-n5-title-connections: "<gradient:#253451:#3B4E72:#253451>Connections</gradient>"
  gui-admin-network-n5-title-search: "<gradient:#253451:#3B4E72:#253451>Delivery Search</gradient>"
  gui-admin-network-n5-title-scheduled: "<gradient:#253451:#3B4E72:#253451>Scheduled Status</gradient>"
  gui-admin-network-n5-title-consistency: "<gradient:#253451:#3B4E72:#253451>Consistency</gradient>"
  gui-admin-network-n5-title-export: "<gradient:#253451:#3B4E72:#253451>Support Export</gradient>"
  gui-admin-network-n5-title-detail: "<gradient:#253451:#3B4E72:#253451>Details</gradient>"
  gui-admin-network-n5-title-mail_delivery: "<gradient:#253451:#3B4E72:#253451>Mail Delivery</gradient>"
  gui-admin-network-n5-title-redis: "<gradient:#253451:#3B4E72:#253451>Redis Diagnostics</gradient>"
  gui-admin-network-n5-title-mysql: "<gradient:#253451:#3B4E72:#253451>MySQL Diagnostics</gradient>"
  gui-admin-network-n5-field-redis: "<gray>Redis: <white>%value%"
  gui-admin-network-n5-field-mysql: "<gray>MySQL: <white>%value%"
  gui-admin-network-n5-field-enabled: "<gray>Enabled: <white>%value%"
  gui-admin-network-n5-field-next-due: "<gray>Next Due: <white>%value%"
  gui-admin-network-n5-status-starting: "Starting"
  gui-admin-network-n5-status-ready: "Ready"
  gui-admin-network-n5-status-degraded: "Degraded"
  gui-admin-network-n5-status-stopped: "Stopped"
  gui-admin-network-n5-status-unknown: "Unknown"
  gui-admin-network-n5-status-stale: "Outdated request"
  gui-admin-network-n5-status-halted: "Stopped"
  gui-admin-network-n5-status-network: "Whole Network"
  gui-admin-network-n5-status-whole-network: "Whole Network"
  gui-admin-network-n5-status-any: "Whole Network"
  gui-admin-network-n5-status-current-backend: "Backend-local"
  gui-admin-network-n5-status-current-backend-only: "Backend-local"
  gui-admin-network-n5-status-backends: "Allowed Backends"
  gui-admin-network-n5-status-only-backends: "Allowed Backends"
  gui-admin-network-n5-status-exclude-backends: "Excluded Backends"
  gui-admin-network-n5-status-group: "Group"
  gui-admin-network-n5-status-backend-group: "Group"
  gui-admin-network-n5-group-member: "<gray>%backend%: <white>%status%"
  gui-admin-network-n5-occurrence: "<aqua><bold>Occurrence</bold>"
  gui-admin-network-n5-health: "<aqua><bold>Runtime</bold>"
  gui-admin-network-n5-status-scheduled-network-not-ready: "Network unavailable"
  gui-admin-network-n5-status-scheduled-network-conflict: "Conflicting task definitions"
  gui-admin-network-n5-status-scheduled-network-definitions-pending: "Definition checks pending"
  gui-admin-network-n5-status-scheduled-network-owner-unavailable: "Owner unavailable"
  gui-admin-network-n5-status-scheduled-network-not-owner: "Owned by another backend"
  gui-admin-network-n5-status-scheduled-network-invalid: "Invalid task definition"
  gui-admin-network-n5-status-scheduled-network-recipient-unavailable: "Recipient authority unavailable"
  gui-admin-network-n5-capability-note: "<gray>General support does not override package, shulker or target restrictions."
  gui-admin-network-n5-group-guidance: "<gray>Keep backend-groups identical across all backends."
  gui-admin-network-n5-backend-guidance: "<gray>Install Premium and configure shared MySQL and Redis on each backend."
  gui-admin-network-n5-status-known: "Known"
  gui-admin-network-n5-lore-backends: "<gray>Inspect backend status, capabilities, and groups."
  gui-admin-network-n5-lore-connections: "<gray>Check Redis and shared database connectivity."
  gui-admin-network-n5-lore-mail_delivery: "<gray>Inspect queued mail, delivery records, and schedules."
  gui-admin-network-n5-lore-consistency: "<gray>Compare common settings across active backends."
  gui-admin-network-n5-lore-export: "<gray>Save a sanitized local support report."
  gui-admin-network-n5-lore-backend_list: "<gray>Inspect backend versions and supported mail types."
  gui-admin-network-n5-lore-group_list: "<gray>Inspect configured group members."
  gui-admin-network-n5-lore-redis: "<gray>Run a read-only Redis connectivity probe."
  gui-admin-network-n5-lore-mysql: "<gray>Run a read-only database connectivity probe."
  gui-admin-network-n5-lore-delayed: "<gray>Inspect queued delivery times and backend targets."
  gui-admin-network-n5-lore-search: "<gray>Find queued mail or committed receipts by player UUID or delivery ID."
  gui-admin-network-n5-lore-scheduled: "<gray>Inspect task status, executors, and occurrence history."
  gui-admin-network-tools-title: "<gradient:#253451:#3B4E72:#253451>Network Tools</gradient>"

  # ------------------------------------------------------------
  # Premium account and access
  # ------------------------------------------------------------
  admin-spigotlink-already-linked: "<green>This plugin purchase is already linked to that website account."
  admin-spigotlink-busy: "<yellow>A link request is already running. Wait before trying again."
  admin-spigotlink-coming-soon: "<yellow>SpigotMC buyer linking is prepared but not enabled yet. Website Premium purchases are supported first."
  admin-spigotlink-not-spigot-purchase: "<red>This plugin was not purchased on SpigotMC. Linking requires a SpigotMC buyer download with all purchase identifiers injected."
  admin-spigotlink-expired: "<red>This link code expired. Generate a new code for this plugin on the website."
  admin-spigotlink-failed: "<dark_red>✖</dark_red> <red>The website link request failed. Try again later; the plugin will continue working normally."
  admin-spigotlink-invalid-code: "<red>Invalid SpigotMC link code. Expected format: MGUI-XXXX-XXXX"
  admin-spigotlink-linked: "<green>This plugin purchase is linked to your website account."
  admin-spigotlink-not-verified: "<red>This purchase could not be verified. Check your purchase and contact website support."
  admin-spigotlink-other-account: "<red>This purchase is already linked to another website account. Contact website support."
  admin-spigotlink-pending: "<yellow>Purchase verification is pending. Check Purchases and Licenses on the website."
  admin-spigotlink-premium-only: "<red>SpigotMC buyer linking is only prepared for MailboxGUI Premium."
  admin-spigotlink-rate-limited: "<yellow>Too many link attempts. Wait before generating or using another code."
  admin-spigotlink-usage: "<white>Usage: /mba spigotlink <red>{account-link-code}</red></white>"
  admin-spigotlink-working: "<yellow>Checking this SpigotMC purchase with the website..."
  admin-spigotlink-wrong-resource: "<red>This code or SpigotMC download belongs to a different plugin. Generate a code for this plugin."
  admin-update-login-cleared: "<yellow>Premium website update credentials cleared."
  admin-update-login-premium-only: "<red>Website update login is only required for MailboxGUI Premium."
  admin-update-login-save-failed: "<dark_red>✖</dark_red> <red>The credentials could not be saved. Existing config.yml was preserved. Check the server console."
  admin-update-login-saved: "<dark_green>✔</dark_green> <green>Premium website update credentials saved."
  admin-update-login-status-linked: "<green>Premium website update credentials are saved."
  admin-update-login-status-missing: "<red>Premium website update credentials are not set."
  admin-update-login-usage: "<white>Usage: /mba updatelogin <red>{status|set {username} {password}|clear}</red></white>"
  admin-update-premium-login-command: "<gray>Use <white>/mba updatelogin set {username} {password} <gray>then run the update command again."
  admin-update-premium-login-required: "<red>Premium updates require website account credentials with a purchased Premium license."

  # First book page: edit this ordered list to customize dividers, labels, reading instructions and reply/back positions. Preserve placeholders; an empty expiration omits its whole line.
  # %sender% %date% %title% %expiration% %reply% %back%
  book-letter-information-page:
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gold>MailboxGUI Book Letter"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<gray>From: %sender%"
    - "<gray>Date: %date%"
    - "<gray>Title: %title%"
    - "<gray>Expires: %expiration%"
    - "<dark_gray><strikethrough>--------------------</strikethrough>"
    - "<dark_green>Go to the next page to read this Book Letter."
    - "%reply%"
    - "%back%"
  # Empty uses automatic country/locale date and time formatting. Optional Java date/time pattern; do not translate pattern letters.
  book-letter-date-time-pattern: ""
Back to top ↑

Administration

Scheduled mail: all types & Premium scopes

Tasks live in scheduled-mail/scheduled-mail.yml under scheduled-mail. The default map is empty; commented examples are disabled templates, not running jobs. Supported types are PAPER_LETTER, BOOK_LETTER, PACKAGE and MONEY. Pick recipient mode, payload, sender, due time, repeat, notification and expiration explicitly.

SettingMeaning
send-date / send-timeyyyy-MM-dd and HH:mm:ss. Missing date is only valid for daily; time-only defaults to daily.
timezoneserver uses the JVM timezone; use an IANA name such as America/Los_Angeles for explicit daylight-saving-aware scheduling.
repeatnone, daily, weekly, monthly or every:<duration>, such as every:6h.
catch-up-missedStartup can catch up once; false skips missed runs beyond the one-minute grace. Schedule reload does not trigger startup catch-up.
delivery-delay-secondsOverride normal mail-type delay; 0 is immediate dispatch. Inbox capacity may still cause overflow.
expire-afternone or a supported duration; deadline starts on delivery, not task creation.
recipients.modePLAYERS, ALL_WITH_MAILBOX_DATA, ALL_WITH_REGISTERED_MAILBOX, ONLINE_PLAYERS or PERMISSION.
PERMISSIONOnline-player authority only; supply permission and online-only: true. Offline permission guessing is not supported.
Payloadletter.message for paper; letter.title and letter.message for books; package.contents/message/cod; money.amount/message.
Safe disabled starter task — enable only after review
scheduled-mail:
  daily-welcome:
    enabled: false
    type: PAPER_LETTER
    from: "&6Server"
    send-time: "18:00:00"
    timezone: America/Los_Angeles
    repeat: daily
    catch-up-missed: false
    notify-recipients: true
    delivery-delay-seconds: 0
    expire-after: 7d
    recipients:
      mode: ONLINE_PLAYERS
    letter:
      message: "&aWelcome!/n&fCheck today’s events."

Use /mba scheduledmail reload, list, info <id>, run <id>, enable <id> and disable <id>. Manual runs are separate and do not advance automatic progression. Review dates before enabling a past example. Invalid staged reload keeps the active schedule; editing payload/reloading does not resend an already-completed automatic occurrence.

Book, money and COD payload examples

Each task below is deliberately disabled. Add it under the same scheduled-mail map rather than creating a second top-level map. Book schedules use letter.title and letter.message; there is no book.pages field. Monetary tasks require Vault and an economy provider. Item-template identifiers must exist before enabling the task.

Standalone schedule examples — supported in both editions
scheduled-mail:
  daily-book:
    enabled: false
    type: BOOK_LETTER
    send-time: "18:00:00"
    timezone: America/Los_Angeles
    repeat: daily
    catch-up-missed: false
    recipients:
      mode: ALL_WITH_REGISTERED_MAILBOX
    letter:
      title: "Town News"
      message: "&6Welcome!/n&fRead the latest town news."
  weekly-money:
    enabled: false
    type: MONEY
    send-date: "2026-12-01"
    send-time: "12:00:00"
    timezone: America/Los_Angeles
    repeat: weekly
    catch-up-missed: false
    recipients:
      mode: PERMISSION
      permission: mailboxgui.scheduled.vip
      online-only: true
    money:
      amount: 100.0
      message: "Your weekly reward"
  daily-cod:
    enabled: false
    type: PACKAGE
    send-time: "19:00:00"
    timezone: America/Los_Angeles
    repeat: daily
    catch-up-missed: false
    expire-after: 2d
    recipients:
      mode: PLAYERS
      players: [Alex]
    package:
      message: "Payment is required before claiming"
      contents: [DIAMOND:3, "xp:100"]
      cod:
        enabled: true
        vault: 250.0
        item-currency: [EMERALD:10]
        return-to-admin-inbox:
          payments: true
          declined-or-expired: true

Premium network scheduling: four independent decisions

Premium fieldChoices / purpose
network.scopeshared or backend-local: shared execution state versus independent per-backend tasks.
network.ownerdistributed or server:<backend-id>; absent explicit owner waits safely rather than silently failing over.
recipients.scopenetwork or backend-local: audience discovery, not task ownership.
delivery.targetnetwork, current-backend, backends, exclude-backends or group: claim eligibility, not recipients or owner.
Premium shared task with explicit owner and backend group
scheduled-mail:
  premium-event:
    enabled: false
    type: PACKAGE
    from: "&6Events"
    send-time: "19:00:00"
    timezone: America/Los_Angeles
    repeat: daily
    catch-up-missed: false
    notify-recipients: true
    expire-after: 3d
    network:
      scope: shared
      owner: server:survival
    recipients:
      mode: ONLINE_PLAYERS
      scope: network
    delivery:
      target: group
      group: gameplay
    package:
      message: "Your event reward"
      contents: [DIAMOND:2, "xp:100"]

Shared definitions on participating backends must agree on effective timezone, payload, audience, notification, expiration, owner, targets and group membership. A backend without the task is not automatically a conflict; missing/stale authority is not agreement. A distributed shared job cannot use an ambiguous current-backend target. Permission/online recipients require current hosting-backend evidence. Network tools show scoped status and latest 100 history entries; definitions are compared, not automatically copied.

scheduled-mail.yml — standalone defaults and examples
Download clean reference text
# ============================================================
# MailboxGUI Scheduled Mail
# ============================================================
# File location after the plugin starts:
# plugins/MailboxGUI/scheduled-mail/scheduled-mail.yml
#
# This file lets server owners schedule MailboxGUI mail to send
# at a specific server date/time. Mail is sent through the same
# MailboxGUI systems as admin/API mail, so normal recipient checks,
# notifications, expiration, package limits, COD validation, item
# templates, and Shared Admin Inbox COD return behavior still apply.
# The task's due time starts sending. Mail then uses its normal config.yml
# delivery delay, measured from enqueue time using the server's wall clock.
# Optional per-task delivery-delay-seconds overrides that delay; 0 is immediate.
# Full inboxes can still queue mail. Scheduling is not a guarantee of immediate claiming.
#
# Paper letters and optional package/COD/money messages use the
# shared message rules: at most 256 visible characters, wrapped
# at 28 visible characters per line, at most 17 body lines TOTAL.
# Automatic wrapping, /n, and blank lines share this limit; a two-line
# paragraph leaves 15 further lines, not 16 extra /n tags.
# Legacy '&' color/format codes are preserved
# and do not count toward visible length. /n inserts a manual break;
# //n displays literal /n. Actual LF line breaks are also supported
# (use a YAML block scalar with |- to avoid an extra trailing break).
# Book Letter pages use their own book limits, not these body limits.
# Sender names and text support legacy &, HEX (&#4498DB or <#4498DB>)
# and supported restricted visual MiniMessage colors/styles; no separate formatting toggle is needed.
# Interactive click/hover/command tags and custom font tags are not supported.
# Quote formatted strings; # outside quotes starts a YAML comment.
# Example sender: "&#4498DB&lServer"
# Example paper/package/money message: "<#4498DB>Welcome!</#4498DB>/n<bold>Enjoy your rewards.</bold>"
# These are display styles only; never apply formatting to keys, item IDs or recipient IDs.
# Book first-page layout and locale date formatting are customized in language/messages_*.yml
# with book-letter-information-page and book-letter-date-time-pattern, not this schedule file.
# Keep YAML keys, type names, item syntax and commands in English.
# Example dates below are illustrative. Set your intended date/time and review
# catch-up-missed before enabling a sample task whose first date is already past.
#
# Upgrade safety: retain this file and your enabled tasks/settings.
# Free-to-Premium upgrades do not require deleting configuration or
# language files. Back up the complete plugin data folder first;
# review UPGRADE-SAFETY.txt before changing editions or storage.
#
# Main layout:
#
# scheduled-mail:
#   task-id:
#     enabled: true/false
#     type: PAPER_LETTER | BOOK_LETTER | PACKAGE | MONEY
#     from: "&a&lServer"
#     send-date: "yyyy-MM-dd"
#     send-time: "HH:mm:ss"
#     timezone: server or an IANA timezone such as America/New_York
#     repeat: none | daily | weekly | monthly | every:<duration>
#     catch-up-missed: true/false
#     notify-recipients: true/false
#     expire-after: none or a duration such as 30m, 12h, 7d
#     recipients:
#       mode: PLAYERS | ALL_WITH_MAILBOX_DATA | ALL_WITH_REGISTERED_MAILBOX | ONLINE_PLAYERS | PERMISSION
#
# Setting details:
#
# enabled:
#   true  = task can run.
#   false = task is ignored until enabled with config edit or /mba scheduledmail enable <id>.
#
# type:
#   PAPER_LETTER = sends a Paper Letter with its message body in lore.
#   BOOK_LETTER  = sends a written Book Letter.
#   PACKAGE      = sends a standard Package or COD Package if package.cod.enabled is true.
#   MONEY        = sends Vault/economy Money Mail.
#
# from:
#   Display name shown in the mail lore. Minecraft color codes using '&' are supported.
#
# send-date:
#   Optional first scheduled send date.
#   Format must be: yyyy-MM-dd
#   Example: "2026-08-01"
#   Required for repeat: none, weekly, monthly, and every:<duration>.
#   Also recommended for daily schedules when you want a specific start date.
#
# send-time:
#   Required scheduled send time.
#   Format must be: HH:mm:ss
#   Example: "18:00:00"
#   If send-time is set without send-date, the task repeats daily at that time.
#
# timezone:
#   server = use the server JVM timezone.
#   You may also use an IANA timezone, for example:
#   America/New_York, America/Los_Angeles, UTC, Europe/London
#
# repeat:
#   none       = one scheduled run only.
#   daily      = repeats once per day after the first send date/time.
#   weekly     = repeats once per week after the first send date/time.
#   monthly    = repeats once per month after the first send date/time.
#   every:<duration> = repeats by duration. Examples: every:6h, every:30m, every:7d
#   If send-date is omitted, only repeat: daily is valid. If repeat is omitted with only send-time, daily is used.
#
# catch-up-missed:
#   true  = if the server was offline at the scheduled time, send once when the plugin starts.
#   false = runs missed by more than the one-minute grace are skipped; repeating
#           tasks wait for their next due time. One-time skipped tasks do not repeat.
#   /mba scheduledmail reload rereads tasks without immediately running startup catch-up.
#   Normal scheduled processing continues; use /mba scheduledmail run <id> for an immediate test.
#
# notify-recipients:
#   true  = recipients receive normal MailboxGUI notifications.
#   false = deliver silently without recipient notification messages/sounds.
#
# expire-after:
#   none = mail does not expire.
#   Duration examples: 30m, 12h, 3d
#   Expiration starts when mail is delivered, not when it is first scheduled.
#   Expired COD Packages can return to the Shared Admin Inbox if configured below.
#
# recipients.mode:
#   PLAYERS = send only to listed players/UUIDs under recipients.players.
#   ALL_WITH_MAILBOX_DATA = send to every player with MailboxGUI data.
#   ALL_WITH_REGISTERED_MAILBOX = send only to players with at least one registered physical mailbox.
#   ONLINE_PLAYERS = send only to online players who have MailboxGUI data when the task runs.
#   PERMISSION = send to online players with recipients.permission and MailboxGUI data.
#
# recipients.players:
#   Used only with mode: PLAYERS.
#   Accepts player names or UUIDs.
#
# recipients.permission:
#   Used only with mode: PERMISSION.
#
# recipients.online-only:
#   Used only with mode: PERMISSION.
#   Currently permission checks are online-player only.
#
# Package item syntax:
#   MATERIAL:amount
#   xp:amount
#   t:template-id:amount
#   template:template-id:amount
#
# letter.message:
#   PAPER_LETTER uses the shared message rules above.
#   Example: "&aWelcome!/n&fEnjoy the event."
#
# package.message:
#   Optional message attached to a standard or COD Package.
#   Uses the shared message rules above, including /n and //n.
#   Omit this setting or use an empty value to send the Package without a message.
#
# money.message:
#   Optional message attached to Money Mail.
#   Uses the shared message rules above, including /n and //n.
#   Omit this setting or use an empty value to send Money Mail without a message.
#
# COD package settings:
#   package.cod.enabled:
#     true/false. If true, the package becomes a COD Package.
#
#   package.cod.vault:
#     Vault/economy price. Use 0.0 for no Vault payment.
#
#   package.cod.item-currency:
#     Item-currency payment list using the same package item syntax above.
#
#   package.cod.return-to-admin-inbox.payments:
#     true = successful COD payments return to the Shared Admin Inbox.
#
#   package.cod.return-to-admin-inbox.declined-or-expired:
#     true = declined or expired COD Package contents return to the Shared Admin Inbox.
#
# Admin commands:
#   /mba scheduledmail reload
#   /mba scheduledmail list
#   /mba scheduledmail info <id>
#   /mba scheduledmail run <id>
#   /mba scheduledmail enable <id>
#   /mba scheduledmail disable <id>
#
# Permissions:
#   mailboxgui.admin.scheduledmail
#   mailboxgui.admin.scheduledmail.reload
#   mailboxgui.admin.scheduledmail.run
#   mailboxgui.admin.scheduledmail.manage
# ============================================================

scheduled-mail: {}

# ============================================================
# Commented Examples
# ============================================================
#
# To use an example, replace the empty line above:
# scheduled-mail: {}
#
# with an uncommented scheduled-mail section like the examples below.

# scheduled-mail:
#   event-paper-letter:
#     enabled: false
#     type: PAPER_LETTER
#     from: "&a&lServer"
#     send-date: "2026-08-01"
#     send-time: "18:00:00"
#     timezone: server
#     repeat: none
#     catch-up-missed: true
#     notify-recipients: true
#     expire-after: none
#     recipients:
#       mode: PLAYERS
#       players:
#         - Rismr1
#     letter:
#       message: "&aThanks for joining!/n&fEnjoy the event."
#
#   weekly-vip-money:
#     enabled: false
#     type: MONEY
#     from: "&6&lVIP Rewards"
#     send-date: "2026-08-02"
#     send-time: "12:00:00"
#     timezone: server
#     repeat: weekly
#     catch-up-missed: true
#     notify-recipients: true
#     expire-after: 14d
#     recipients:
#       mode: PERMISSION
#       permission: "mailboxgui.scheduled.vip"
#       online-only: true
#     money:
#       amount: 100.00
#       message: "&aYour weekly reward!/n&fThanks for your support."
#
#   event-package:
#     enabled: false
#     type: PACKAGE
#     from: "&b&lEvent"
#     send-date: "2026-08-03"
#     send-time: "20:00:00"
#     timezone: server
#     repeat: none
#     catch-up-missed: true
#     notify-recipients: true
#     expire-after: 3d
#     recipients:
#       mode: ONLINE_PLAYERS
#     package:
#       message: "&bYour event rewards!/n&fUse //n for literal text."
#       contents:
#         - DIAMOND:3
#         - EMERALD:5
#         - xp:250
#       cod:
#         enabled: false
#         vault: 0.0
#         item-currency: []
#         return-to-admin-inbox:
#           payments: false
#           declined-or-expired: false
#
#   event-cod-package:
#     enabled: false
#     type: PACKAGE
#     from: "&c&lAuction"
#     send-date: "2026-08-04"
#     send-time: "18:00:00"
#     timezone: server
#     repeat: none
#     catch-up-missed: true
#     notify-recipients: true
#     expire-after: 2d
#     recipients:
#       mode: PLAYERS
#       players:
#         - Rismr1
#     package:
#       message: "&eAuction package ready!/n&fPayment is due on claim."
#       contents:
#         - DIAMOND_BLOCK:1
#         - xp:500
#       cod:
#         enabled: true
#         vault: 250.00
#         item-currency:
#           - EMERALD:10
#         return-to-admin-inbox:
#           payments: true
#           declined-or-expired: true
scheduled-mail.yml — Premium defaults, examples and scope instructions
Download clean reference text
# ============================================================
# MailboxGUI Scheduled Mail
# ============================================================
# File location after the plugin starts:
# plugins/MailboxGUI/scheduled-mail/scheduled-mail.yml
#
# This file lets server owners schedule MailboxGUI mail to send
# at a specific server date/time. Mail is sent through the same
# MailboxGUI systems as admin/API mail, so normal recipient checks,
# notifications, expiration, package limits, COD validation, item
# templates, and Shared Admin Inbox COD return behavior still apply.
# The task's due time starts sending. Mail then uses its normal config.yml
# delivery delay, measured from enqueue time using the server's wall clock.
# Optional per-task delivery-delay-seconds overrides that delay; 0 is immediate.
# Full inboxes can still queue mail. Scheduling is not a guarantee of immediate claiming.
#
# Paper letters and optional package/COD/money messages use the
# shared message rules: at most 256 visible characters, wrapped
# at 28 visible characters per line, at most 17 body lines TOTAL.
# Automatic wrapping, /n, and blank lines share this limit; a two-line
# paragraph leaves 15 further lines, not 16 extra /n tags.
# Legacy '&' color/format codes are preserved
# and do not count toward visible length. /n inserts a manual break;
# //n displays literal /n. Actual LF line breaks are also supported
# (use a YAML block scalar with |- to avoid an extra trailing break).
# Book Letter pages use their own book limits, not these body limits.
# Sender names and text support legacy &, HEX (&#4498DB or <#4498DB>)
# and supported restricted visual MiniMessage colors/styles; no separate formatting toggle is needed.
# Interactive click/hover/command tags and custom font tags are not supported.
# Quote formatted strings; # outside quotes starts a YAML comment.
# Example sender: "&#4498DB&lServer"
# Example paper/package/money message: "<#4498DB>Welcome!</#4498DB>/n<bold>Enjoy your rewards.</bold>"
# These are display styles only; never apply formatting to keys, item IDs or recipient IDs.
# Book first-page layout and locale date formatting are customized in language/messages_*.yml
# with book-letter-information-page and book-letter-date-time-pattern, not this schedule file.
# Keep YAML keys, type names, item syntax and commands in English.
# Example dates below are illustrative. Set your intended date/time and review
# catch-up-missed before enabling a sample task whose first date is already past.
#
# Upgrade safety: retain this file and your enabled tasks/settings.
# Free-to-Premium upgrades do not require deleting configuration or
# language files. Back up the complete plugin data folder first;
# review UPGRADE-SAFETY.txt before changing editions or storage.
#
# Premium network execution settings (independent of mail delivery targeting):
#   network.scope: shared | backend-local (default: shared).
#     shared coordinates one task across eligible backends. Keep identical shared
#     definitions on participating backends; conflicts or pending checks pause runs.
#     backend-local runs independently on this backend; installing the same task
#     on several backends can produce one execution on each backend.
#   network.owner: distributed | server:<server-id>.
#     Shared tasks default to scheduled-mail.default-owner in network/config.yml.
#     backend-local tasks default to local execution, not that shared default.
#     A backend-local task cannot explicitly name a different backend owner.
#     distributed permits coordinated execution on an eligible backend.
#     server:<server-id> requires that specific backend; an unavailable owner pauses.
#     Legacy network-owner-mode is accepted when network.owner is absent.
#   recipients.scope: network | backend-local (default: network).
#     network resolves recipients across the network. backend-local limits lookup
#     to this backend; it does not change execution scope or mail claim targets.
#     ONLINE_PLAYERS and PERMISSION are evaluated on authoritative owning backends,
#     not from remote Bukkit player objects or guessed cached permissions.
#     Offline permission checks are unsupported. A PERMISSION task requesting them
#     pauses; keep recipients.online-only: true for permission tasks.
#     Define matching PERMISSION tasks on all backends that may host recipients.
#     Missing or stale owning-backend eligibility proofs pause the task.
#   delivery.target: network | current-backend | backends | exclude-backends | group.
#     network (default) allows claims throughout the network, subject to compatibility.
#     current-backend targets the execution backend. Shared tasks with distributed
#     ownership cannot use this ambiguous target; they pause instead.
#     backend-local tasks can naturally target their own backend.
#     backends allows only IDs listed in delivery.backends: [survival, lobby].
#     exclude-backends excludes IDs listed in delivery.backends.
#     group uses delivery.group and matching backend-groups in network/config.yml.
#     Keep backend group definitions consistent across the whole network.
# Execution ownership, recipient lookup and mail delivery targeting are separate.
# Mail availability/claim restrictions follow the delivery target, not task ownership.
# Network tasks wait when readiness, ownership, definitions or recipient checks fail.
# Correct configuration problems before expecting a paused task to resume.
# This reference is generated only when the schedule file is missing. Existing
# schedule files and task settings are not automatically replaced by new examples.
#
# Main layout:
#
# scheduled-mail:
#   task-id:
#     enabled: true/false
#     type: PAPER_LETTER | BOOK_LETTER | PACKAGE | MONEY
#     from: "&a&lServer"
#     send-date: "yyyy-MM-dd"
#     send-time: "HH:mm:ss"
#     timezone: server or an IANA timezone such as America/New_York
#     repeat: none | daily | weekly | monthly | every:<duration>
#     catch-up-missed: true/false
#     notify-recipients: true/false
#     expire-after: none or a duration such as 30m, 12h, 7d
#     recipients:
#       mode: PLAYERS | ALL_WITH_MAILBOX_DATA | ALL_WITH_REGISTERED_MAILBOX | ONLINE_PLAYERS | PERMISSION
#
# Setting details:
#
# enabled:
#   true  = task can run.
#   false = task is ignored until enabled with config edit or /mba scheduledmail enable <id>.
#
# type:
#   PAPER_LETTER = sends a Paper Letter with its message body in lore.
#   BOOK_LETTER  = sends a written Book Letter.
#   PACKAGE      = sends a standard Package or COD Package if package.cod.enabled is true.
#   MONEY        = sends Vault/economy Money Mail.
#
# from:
#   Display name shown in the mail lore. Minecraft color codes using '&' are supported.
#
# send-date:
#   Optional first scheduled send date.
#   Format must be: yyyy-MM-dd
#   Example: "2026-08-01"
#   Required for repeat: none, weekly, monthly, and every:<duration>.
#   Also recommended for daily schedules when you want a specific start date.
#
# send-time:
#   Required scheduled send time.
#   Format must be: HH:mm:ss
#   Example: "18:00:00"
#   If send-time is set without send-date, the task repeats daily at that time.
#
# timezone:
#   server = use the server JVM timezone.
#   You may also use an IANA timezone, for example:
#   America/New_York, America/Los_Angeles, UTC, Europe/London
#
# repeat:
#   none       = one scheduled run only.
#   daily      = repeats once per day after the first send date/time.
#   weekly     = repeats once per week after the first send date/time.
#   monthly    = repeats once per month after the first send date/time.
#   every:<duration> = repeats by duration. Examples: every:6h, every:30m, every:7d
#   If send-date is omitted, only repeat: daily is valid. If repeat is omitted with only send-time, daily is used.
#
# catch-up-missed:
#   true  = if the server was offline at the scheduled time, send once when the plugin starts.
#   false = runs missed by more than the one-minute grace are skipped; repeating
#           tasks wait for their next due time. One-time skipped tasks do not repeat.
#   /mba scheduledmail reload rereads tasks without immediately running startup catch-up.
#   Normal scheduled processing continues; use /mba scheduledmail run <id> for an immediate test.
#
# notify-recipients:
#   true  = recipients receive normal MailboxGUI notifications.
#   false = deliver silently without recipient notification messages/sounds.
#
# expire-after:
#   none = mail does not expire.
#   Duration examples: 30m, 12h, 3d
#   Expiration starts when mail is delivered, not when it is first scheduled.
#   Expired COD Packages can return to the Shared Admin Inbox if configured below.
#
# recipients.mode:
#   PLAYERS = send only to listed players/UUIDs under recipients.players.
#   ALL_WITH_MAILBOX_DATA = send to every player with MailboxGUI data.
#   ALL_WITH_REGISTERED_MAILBOX = send only to players with at least one registered physical mailbox.
#   ONLINE_PLAYERS = send only to online players who have MailboxGUI data when the task runs.
#   PERMISSION = send to online players with recipients.permission and MailboxGUI data.
#
# recipients.players:
#   Used only with mode: PLAYERS.
#   Accepts player names or UUIDs.
#
# recipients.permission:
#   Used only with mode: PERMISSION.
#
# recipients.online-only:
#   Used only with mode: PERMISSION.
#   Currently permission checks are online-player only.
#
# Package item syntax:
#   MATERIAL:amount
#   xp:amount
#   t:template-id:amount
#   template:template-id:amount
#
# letter.message:
#   PAPER_LETTER uses the shared message rules above.
#   Example: "&aWelcome!/n&fEnjoy the event."
#
# package.message:
#   Optional message attached to a standard or COD Package.
#   Uses the shared message rules above, including /n and //n.
#   Omit this setting or use an empty value to send the Package without a message.
#
# money.message:
#   Optional message attached to Money Mail.
#   Uses the shared message rules above, including /n and //n.
#   Omit this setting or use an empty value to send Money Mail without a message.
#
# COD package settings:
#   package.cod.enabled:
#     true/false. If true, the package becomes a COD Package.
#
#   package.cod.vault:
#     Vault/economy price. Use 0.0 for no Vault payment.
#
#   package.cod.item-currency:
#     Item-currency payment list using the same package item syntax above.
#
#   package.cod.return-to-admin-inbox.payments:
#     true = successful COD payments return to the Shared Admin Inbox.
#
#   package.cod.return-to-admin-inbox.declined-or-expired:
#     true = declined or expired COD Package contents return to the Shared Admin Inbox.
#
# Admin commands:
#   /mba scheduledmail reload
#   /mba scheduledmail list
#   /mba scheduledmail info <id>
#   /mba scheduledmail run <id>
#   /mba scheduledmail enable <id>
#   /mba scheduledmail disable <id>
#
# Permissions:
#   mailboxgui.admin.scheduledmail
#   mailboxgui.admin.scheduledmail.reload
#   mailboxgui.admin.scheduledmail.run
#   mailboxgui.admin.scheduledmail.manage
# ============================================================

scheduled-mail: {}

# ============================================================
# Commented Examples
# ============================================================
#
# To use an example, replace the empty line above:
# scheduled-mail: {}
#
# with an uncommented scheduled-mail section like the examples below.

# scheduled-mail:
#   event-paper-letter:
#     enabled: false
#     type: PAPER_LETTER
#     from: "&a&lServer"
#     send-date: "2026-08-01"
#     send-time: "18:00:00"
#     timezone: server
#     repeat: none
#     catch-up-missed: true
#     notify-recipients: true
#     expire-after: none
#     recipients:
#       mode: PLAYERS
#       players:
#         - Rismr1
#     letter:
#       message: "&aThanks for joining!/n&fEnjoy the event."
#
#   weekly-vip-money:
#     enabled: false
#     type: MONEY
#     from: "&6&lVIP Rewards"
#     send-date: "2026-08-02"
#     send-time: "12:00:00"
#     timezone: server
#     repeat: weekly
#     catch-up-missed: true
#     notify-recipients: true
#     expire-after: 14d
#     recipients:
#       mode: PERMISSION
#       permission: "mailboxgui.scheduled.vip"
#       online-only: true
#     money:
#       amount: 100.00
#       message: "&aYour weekly reward!/n&fThanks for your support."
#
#   event-package:
#     enabled: false
#     type: PACKAGE
#     from: "&b&lEvent"
#     send-date: "2026-08-03"
#     send-time: "20:00:00"
#     timezone: server
#     repeat: none
#     catch-up-missed: true
#     notify-recipients: true
#     expire-after: 3d
#     recipients:
#       mode: ONLINE_PLAYERS
#     package:
#       message: "&bYour event rewards!/n&fUse //n for literal text."
#       contents:
#         - DIAMOND:3
#         - EMERALD:5
#         - xp:250
#       cod:
#         enabled: false
#         vault: 0.0
#         item-currency: []
#         return-to-admin-inbox:
#           payments: false
#           declined-or-expired: false
#
#   event-cod-package:
#     enabled: false
#     type: PACKAGE
#     from: "&c&lAuction"
#     send-date: "2026-08-04"
#     send-time: "18:00:00"
#     timezone: server
#     repeat: none
#     catch-up-missed: true
#     notify-recipients: true
#     expire-after: 2d
#     recipients:
#       mode: PLAYERS
#       players:
#         - Rismr1
#     package:
#       message: "&eAuction package ready!/n&fPayment is due on claim."
#       contents:
#         - DIAMOND_BLOCK:1
#         - xp:500
#       cod:
#         enabled: true
#         vault: 250.00
#         item-currency:
#           - EMERALD:10
#         return-to-admin-inbox:
#           payments: true
#           declined-or-expired: true

# ============================================================
# Premium Network Examples (append under the same scheduled-mail mapping)
# ============================================================
# All network examples are disabled. Replace backend IDs, groups and permissions.
# A send-time without send-date repeats daily; omit repeat in that combination.
#
#   network-daily-rewards:
#     enabled: false
#     type: PACKAGE
#     from: "&6&lDaily Rewards"
#     send-time: "18:00:00"
#     timezone: server
#     catch-up-missed: true
#     notify-recipients: true
#     expire-after: 1d
#     network:
#       scope: shared
#       owner: distributed
#     recipients:
#       scope: network
#       mode: ONLINE_PLAYERS
#     package:
#       message: "&aYour daily reward!/n&fEnjoy your adventure."
#       contents:
#         - DIAMOND:2
#         - xp:250
#       cod:
#         enabled: false
#
#   survival-vip-rewards:
#     enabled: false
#     type: MONEY
#     from: "&6&lVIP Rewards"
#     send-time: "19:00:00"
#     timezone: server
#     catch-up-missed: true
#     notify-recipients: true
#     expire-after: 1d
#     network:
#       scope: shared
#       owner: server:survival
#     recipients:
#       scope: backend-local
#       mode: PERMISSION
#       permission: "mailboxgui.scheduled.vip"
#       online-only: true
#     delivery:
#       target: backends
#       backends: [survival]
#     money:
#       amount: 100.00
#       message: "&aYour VIP reward!/n&fThanks for your support."
#
#   group-news:
#     enabled: false
#     type: PAPER_LETTER
#     from: "&a&lServer News"
#     send-time: "20:00:00"
#     timezone: server
#     catch-up-missed: true
#     notify-recipients: true
#     expire-after: 7d
#     network:
#       scope: shared
#       owner: distributed
#     recipients:
#       scope: network
#       mode: ALL_WITH_MAILBOX_DATA
#     delivery:
#       target: group
#       group: survival-servers
#     letter:
#       message: "&aNews for the survival group!/n&fRead this on a matching backend."
#
# For independent per-backend tasks, use network.scope: backend-local instead.
# Do not confuse that with recipients.scope: backend-local; they control different steps.
Back to top ↑

Administration

Updates, editions & optional purchase linking

Shared update settings — release / beta / alpha channels
updates:
  enabled: true
  release-channel: release
  check-on-startup: true
  notify-admins-on-join: true

/mba updatecheck may report a newer alpha/beta/release from a different channel and explain how to change channels. /mba update installs only the selected release-channel after confirmation and validates plugin identity/edition/version. Free updates need no Premium login. Do not force-reload a new plugin jar; apply it through the server’s normal maintenance process.

Premium-only protected update settings — blank reference values
updates:
  auth:
    username: ""
    password: ""

Optional SpigotMC purchase linking does not affect the purchased plugin’s ability to operate. Generate a product-specific short-lived website code only when genuine buyer verification is available, then use the exact commands below. The website currently keeps linking preparation/code generation locked until real resource IDs and authoritative verification are ready; submitted buyer/resource/download IDs alone are not proof of purchase.

English MailboxGUI marketplace linking command
/mba spigotlink <account-link-code>
DiscBridge marketplace linking — current integrated command

MailboxGUI linking licenses only MailboxGUI; DiscBridge linking licenses only DiscBridge. Builds missing/unresolved injected identifiers reject locally with “This plugin was not purchased on SpigotMC.” and send no request. Do not share a real code; server command logs may record it. Use Purchases & Licenses for status and the support page for assistance.

Purchases & Licenses
Back to top ↑

Premium networking • Premium only

Premium: network setup from scratch

DiscBridge one-backend installation and inherited network settings
  1. Plan unique stable backend IDs (for example lobby, survival and creative), a shared mail database and one Redis namespace. Install the same compatible Premium build on each Minecraft backend, not Velocity/BungeeCord.
  2. Back up existing stores. Provision a private MySQL/MariaDB database/user and Redis reachable by every backend. Restrict network access and protect passwords; use TLS where supported/configured.
  3. Configure storage.type MYSQL and identical database settings in every config.yml. Migrate existing local data deliberately before activating the network; conversion replaces destination data.
  4. Configure network/config.yml on each backend. Use the same namespace/channels/groups and a UNIQUE server-id for each active backend. Display names may differ. Never clone an active backend ID.
  5. Enable network.enabled after reviewing required storage/Redis settings. Keep locks enabled. Validate one node, then peers; check startup/reload readiness and subscription status with /mba redis status and Network Tools.
  6. Synchronize backend/database clocks. Test same-player inbox changes on different backends, restricted targeting, COD, delayed mail, scheduled ownership and reconnect recovery before opening to players.
Premium network — shared config.yml fragment
storage:
  type: MYSQL
  mysql:
    host: db.internal
    port: 3306
    database: mailboxgui_network
    username: mailboxgui
    password: "REPLACE_WITH_PRIVATE_DB_PASSWORD"
    use-ssl: true
Premium network/config.yml — survival backend example
network:
  enabled: true
  namespace: my_network
  server-id: survival
  server-display-name: Survival
redis:
  host: redis.internal
  port: 6379
  password: "REPLACE_WITH_PRIVATE_REDIS_PASSWORD"
  database: 0
  use-ssl: true
backend-groups:
  groups:
    gameplay: [survival, creative]
    safe_hubs: [lobby]

Use lobby or creative as server-id on the other respective nodes; do not copy survival to all of them. There is no separate redis.enabled toggle. Shared storage, subscriber readiness and valid distributed ownership are required. A degraded node stops unsafe coordinated actions; it does not fall back to unrestricted local claims.

A namespace partitions Redis coordination/events, not the mail already stored in one shared database. Independent networks need separate mail stores as well as separate namespaces. Redis database numbers do not isolate Pub/Sub channels. Backend compatibility heartbeats still run when optional player presence is disabled. Duplicate instance/generation identities are fenced.

Default player presence heartbeat is 30 seconds and stale threshold 90 seconds. A missing/stale report is not proof that a player is offline or a backend is safe. /mba networkindex imports local world playerdata into shared recipient discovery; it is not a data-provider conversion or a mass-mail command.

Back to top ↑

Premium networking • Premium only

Premium: targets, Multiverse & mixed versions

Backend IDs, groups and Multiverse worlds

A backend ID identifies one running Minecraft server. Its normal worlds, nether/end and Multiverse-managed worlds remain worlds inside that backend, not additional network nodes. Register mailboxes after their worlds load; presence can show server and world. Use mailbox command world whitelists for local access policy. The network send flags target backends/groups, not worlds: there is no --world send-target flag.

Multiverse is not required and does not supply the shared mail database or Redis. A Multiverse world on survival is still targeted as survival. Missing/unloaded world references remain unavailable until safely resolved. Do not rename backend IDs to solve a world-load problem. Multiverse/multi-world behavior is distinct from multiversion (different Minecraft server versions).

Premium targetMeaning
--server survivalOnly the named backend is eligible to claim.
--servers survival,lobbyAny listed eligible backend may claim.
--exclude-servers creativeExclude those backend IDs without disabling item checks.
--server-group gameplayUse the configured backend group; group definitions must agree.
Admin Tools targetingBackend/group selection follows expiration selection and shows backend details.

Targeted mail is visible in the shared inbox and notifies wherever the recipient is online. Only an eligible compatible backend can open restricted letter bodies/books or claim/manage protected contents. Cosmetic names, admin access and selecting a target never bypass item/payment safety.

Opt-in mixed Minecraft versions and partial claims

Premium mixed-version opt-in — network/config.yml
compatibility:
  multiversion-backends:
    enabled: true
  packages:
    allow-partial-unsupported-item-claims: false

Same-version networking is the default. Premium multiversion backend support covers Minecraft 1.18.2–1.21.11 / 26.1–26.3. Every backend must use the same server platform: Paper with Paper, Purpur with Purpur, or Spigot with Spigot; do not mix platforms in a multiversion network. Opt-in allows mixed Minecraft versions only when plugin/data/serialization/protocol capabilities are compatible. Unsupported material, codec, nested contents or ambiguous/corrupt manifests restrict the mail; a source server’s Minecraft version is not guessed to be every item’s minimum version.

With allow-partial-unsupported-item-claims false, an incompatible package remains restricted as a whole. Setting it true allows verified supported entries to be claimed while preserving remaining opaque entries exactly. It does not strip metadata, accept corrupt framing, ignore targets or skip unpaid COD. Successful claims refresh the same package revision/window. Checked logical XP may remain claimable independently of a newer XP display material.

Restriction details show eligible targets/group members, source/local versions, material/amount and nested compatibility evidence without exposing raw payload bytes. Admins may inspect supported details even when player partial claims are disabled, but can take only eligible supported, paid and current entries. Unsupported-only remainders stay visible.

Back to top ↑

Premium networking • Premium only

Premium: tools, scopes, safety & recovery

Premium Network Tools categoryInformation / boundaries
BackendsLocal/remote profile, world/presence freshness, instance/generation, supported capabilities and group membership.
ConnectionsMeasured Redis/MySQL health, timing/latency and sanitized failure reasons. Redis ping success does not prove subscriber readiness.
Mail DeliveryDelayed routing, delivery ID/recipient UUID search, details and scheduled status/history. Not a player-name inbox archive.
Configuration ConsistencyCompare allowlisted common settings/groups; ignore private credentials/backend-specific labels. Missing peer data stays pending; no remote file rewrite.
Support ReportBounded local JSON in network/diagnostics excluding credentials, tokens, private mail text, item bytes and raw exception details.

Diagnostics/search are read-only, not delete, retarget, resend or claim tools. Focused permissions control diagnostics, deliverysearch, scheduledmail, consistency and supportreport. Async results and permissions are rechecked before replacing a screen; unavailable functions are hidden.

Shared versus backend-local presentation and kits

Premium shared GUI publisher and kit backend — network/config.yml
gui:
  scope: shared
  shared-main-backend: lobby
sync:
  kit:
    enabled: true
    main-backend: lobby

gui.scope can be shared or backend-local. Shared-main-backend chooses the authoritative publisher; an empty setting allows the initial authoritative publication behavior. Shared appearances distribute settings/IDs, not resource-pack files or an ItemsAdder registry. Deploy required assets/providers on each backend. Network resource-pack preferences are shared in either scope; client pack-loaded status is still local. sync.kit coordinates usage/preferences and can designate a main backend.

Locks, delayed workers and recovery

Mandatory renewable leases and fresh owner reads protect mutations; viewing a package does not reserve an inbox mutation lock for the whole window. Defaults are 120-second mail claims, 15-second COD and 30-second delayed leases. These are renewed safety leases, not a GUI timeout. Lost ownership, stale revisions or generations reject unsafe writes.

The Premium delayed worker defaults to a maximum 30-second scan interval and 25 attempts per scan, with due-time ordering and failure-starvation protection. Known deadlines wake the worker sooner; these are not a fixed extra 30-second delay. Source sender/default delay belong to the sending backend; receiving config does not recalculate a saved deadline. Notification-disabled deliveries still refresh committed views.

A durable local event outbox, bounded Redis stream replay and revision reconciliation repair missed mail/registration/template/public-access updates after reconnect. Preserve recovery files; corrupt/full records are reported, not reset to empty. Redis 5+ and appropriate persistence/retention are needed for stream recovery; fresh nodes do not replay every old notice.

Back to top ↑

Appearance & integrations

gui.yml: custom packs & icon appearance

  1. Enable gui-customization.enabled in config.yml and run /mba reload to generate/synchronize the edition’s gui.yml. Disabled customization preserves an existing file but ignores it.
  2. Choose a matching pack or your own asset set. Match material, CustomModelData, modern item-model and optional tooltip-style to assets the client actually receives.
  3. Edit gui.yml’s shared control/recipient/mail appearance roles. Titles, lore, colors and names belong in language/messages_<locale>.yml.
  4. Deploy the corresponding assets, then /mba reload. Test a player with pack loaded, pending, declined, failed and no pack; ordinary mail should remain usable.
  5. Use /mb settings resourcepack on for a manually installed client pack, off for original icons, or auto for confirmed server-sent pack loading, unless the administrator locks auto mode.
config.yml — enable customization and optional player choice
gui-customization:
  enabled: true
  require-automatic-detection: false
Illustrative custom server pack — these are not the paid pack’s mappings
gui-config-version: 1
icons:
  defaults:
    filler:
      material: GRAY_STAINED_GLASS_PANE
      custom-model-data: 12000
      item-model: "myserver:gui/frame"
      tooltip-style: null
  controls:
    back:
      material: PAPER
      custom-model-data: 12001
      item-model: "myserver:gui/back"
  new-mail-notification:
    personal:
      enabled: true
      material: PAPER
      custom-model-data: 12300
      item-model: "myserver:mail/new_mail"

Use a valid non-air ITEM material. CustomModelData is the older integer model selector; item-model and tooltip-style are namespaced modern components. Older APIs need an explicit CustomModelData fallback AND matching legacy client assets. A valid key is not proof an asset exists. null/missing fields inherit earlier appearance; they do not clear earlier model metadata. Invalid fields are independently ignored with bounded diagnostics.

Fillers use icons.defaults.filler only. Controls layer original appearance → defaults.control → controls.<purpose>. Recipients add defaults.recipient and online/offline state. Mail adds the applicable type/state, then more-specific message/expiration combination. Back, Exit, Cancel, Refresh, Info and page controls are shared by purpose, not per-screen coordinates. Real package contents bypass appearance replacement.

Paper/book letters have base and expiration appearances because they inherently contain text; do not create letter with-message paths. Standard/pending COD/accepted COD/returned COD/item-payment/money types have their applicable message/no-message and expiration variants. Personal/public floating overrides have enabled/material/model fields but no tooltip-style; they cannot move the world item or bypass config notification toggles.

Automatic fallback and forced server policy

Auto requires a successful-load acknowledgement for a server-sent pack. Pending, accepted-but-loading, failed, declined and unknown status use the complete original icon. On is explicit player confirmation of a manually installed pack; Off keeps original icons. require-automatic-detection true forces Auto, hides/disables the resourcepack preference command and preserves saved choices for later policy changes. It does not kick players, send a pack or enforce acceptance.

Use /mb settings resourcepack or /mb settings resourcepack help to see the current On/Off/Auto value and the explanatory command menu. The menu is available only when customization is enabled and automatic detection is not locked. This appearance menu is separate from /mb settings notification status.

A successful native pack-load acknowledgement or trusted resource-pack provider confirmation refreshes an already-open player inbox, including after a Premium backend switch; the player does not need to close/reopen it just to activate loaded-pack icons. Confirmations belong to the current local session. Explicit Off, disabled customization, policy restrictions and missing-asset detection limits still apply.

Free saves local appearance preferences; Premium network preferences are shared independently of GUI scope. Pack-loaded status is always connection-local. Native/provider confirmations refresh floating indicators and the supported live inbox flow; do not expect a reload to reopen or reconstruct an old transactional package window.

Back to top ↑

Appearance & integrations

MailboxGUI Resource Pack: purchase & installation

MailboxGUI Resource Pack is an optional, separately paid product. One resource-pack license includes the Free-edition bundle (95 custom models) AND Premium-edition bundle (122 custom models), all available renditions/compatible versions and resource-pack support/updates. It does NOT grant a MailboxGUI Premium plugin license. MailboxGUI works without buying a pack.

MailboxGUI Resource Pack — details, icon preview & downloads

Release display separates MailboxGUI version compatibility (for example 6.1.0 Free / 6.1.0 Premium) from pack rendition (for example 1). Confirm the listed compatibility, not just a ZIP filename. MailboxGUI 6.0.0 and older do not support this custom GUI resource-pack system.

Bundle structure — use the actual release filenames
MailboxGUI-Free-6.1.0-1.zip
├── MailboxGUI-Free-ResourcePack-6.1.0-1.zip
├── gui.yml
├── INSTALLATION.md
├── compatibility.json
├── resource-pack.sha1
├── ItemsAdder-Free-6.1.0-1.zip
├── ITEMSADDER.md
├── mappings.json / MAPPINGS.md
├── VALIDATION.json
└── RESOURCE-PACK-API.md

The outer bundle contains setup files; the inner ResourcePack ZIP is the pack Minecraft loads. The supplied gui.yml matches that edition’s assets. compatibility.json, mappings and validation documents explain formats/model selectors; resource-pack.sha1 belongs to the supplied standalone inner pack, not a later merged/custom ZIP.

  1. Buy/activate the resource-pack entitlement, then choose the compatible release and correct edition download on the resource-pack page.
  2. Extract the outer bundle, read INSTALLATION.md and back up your current gui.yml/server pack. Copy the edition’s supplied gui.yml to plugins/MailboxGUI/gui.yml.
  3. Enable gui-customization.enabled and /mba reload. Do not replace config.yml or player data with pack files.
  4. For manual installation, put the INNER pack ZIP into the client Resource Packs directory, enable it, then /mb settings resourcepack on (requires server policy not locked to Auto).
  5. For server delivery, host the correct pack bytes and configure the server’s existing delivery system. On vanilla-style delivery use the URL and SHA-1 for those exact bytes; use Auto after successful load.
  6. Test inbox, all mail/message/expiration variants, composition/navigation and floating notifications. Premium users also test Premium network/restriction screens. Check every supported client version.

Integrate into an existing server resource pack

  1. Back up the existing main pack and work on a new output. Do not install a second competing PAPER carrier pack and assume priorities will merge models.
  2. Merge the MailboxGUI namespace assets and required legacy PAPER overrides plus modern item definitions/range-dispatch selectors into your existing pack. Preserve all existing models and ordering.
  3. Audit collisions in CustomModelData IDs/ranges, including the reset boundary at ID+1, model names, namespaces and modern selectors. A collision requires coordinated remapping of assets, mappings and gui.yml, not just renaming an item.
  4. Keep pack.mcmeta and assets at the ZIP root. Match formats to the client releases you actually support; compatibility metadata is guidance, not live proof for your custom merge.
  5. Build/validate a NEW final ZIP, calculate a NEW SHA-1 and update your single pack delivery URL/hash. Test actual model rendering and fallback. Rebuild this integration when either base pack changes.

Example server.properties keys are resource-pack=https://your-host.example/server-pack.zip and resource-pack-sha1=<SHA-1-of-final-ZIP>. Keep secrets/private download URLs out of public help posts. The pack’s own instructions take precedence for its rendition’s exact filenames. ItemsAdder’s supplied adapter/helper workflow is below.

Back to top ↑

Appearance & integrations

ItemsAdder: bundle merge & custom item integration

Supplied MailboxGUI pack adapter

The optional ItemsAdder ZIP is a raw-resource adapter, not a catalog of registered ItemsAdder custom items. It does not require inventing an items.yml or ItemsAdder IDs for each supplied MailboxGUI model. The supplied gui.yml continues to use the pack’s carrier/model mappings.

  1. Install a compatible ItemsAdder and read the bundle’s ITEMSADDER.md. Extract the matching edition adapter into staging.
  2. Copy its plugins/ItemsAdder/contents/mailboxgui_free/ (or mailboxgui_premium/) contents into your ItemsAdder contents directory. The adapter contributes assets/mailboxgui; Minecraft PAPER carrier overrides/paper_base helper are deliberately not blindly copied over ItemsAdder’s own carrier.
  3. Run /iazip to build a FRESH unprotected base ItemsAdder ZIP using your normal configuration. Do not publish an intermediate pack missing the carrier merge.
  4. Run the supplied Python 3.9+ merge_itemsadder_pack.py --base <fresh-base.zip> --check-only, then with --output <new-final.zip> to integrate and validate selectors.
  5. The helper writes a new ZIP, .zip.sha1 and .zip.report.json; it does not overwrite the base, host/deploy output or reserve IDs in ItemsAdder’s allocator. Point your existing delivery system to the final pack and exact hash.
  6. After every ItemsAdder rebuild, rerun against the fresh generated base—not the previously merged output. Test models on every supported client, then apply /mba reload to GUI changes.
Commands from the supplied adapter — run in its helper directory
python3 merge_itemsadder_pack.py --base itemsadder-fresh.zip --check-only
python3 merge_itemsadder_pack.py --base itemsadder-fresh.zip --output server-pack-final.zip

The helper checks the full legacy ID interval/reset boundaries and modern selectors, asset byte collisions, unsafe/ambiguous carriers, overlays, invalid ZIPs and existing output files. Complex/scaled/unsorted selectors or collisions can require a manual coordinated remap. Do not silently disable validation or assume an ItemsAdder rebuild preserves your post-build merge.

Using your own registered ItemsAdder icons

Your own registered ItemsAdder IDs — illustrative, not bundled pack IDs
icons:
  controls:
    back:
      itemsadder-item: "mail_theme:back"
  new-mail-notification:
    personal:
      enabled: true
      itemsadder-item: "mail_theme:new_mail"

Both editions support itemsadder-item on supported appearances. MailboxGUI clones the registered item metadata while retaining its own text, identity and actions. A non-null itemsadder-item wins over material/custom-model-data/item-model in the same layer. If ItemsAdder is missing/not ready or the ID is unknown, the previous inherited/built-in appearance remains; sibling fields in the same layer are NOT fallback settings. Use an earlier layer or set itemsadder-item null to fall back deliberately.

ItemsAdder registry availability is not player pack acceptance. Normal customization enablement, On/Off/Auto and forced Auto still apply. /iareload refreshes the registry; /iazip builds the pack; deploy it through your existing delivery system; /mba reload applies GUI settings. Registry reloads refresh floating items and newly opened menus, not every already-open inventory. Premium shared references still require local registries/assets on participating backends.

Official ItemsAdder commands
Back to top ↑

Appearance & integrations

Dynmap, DiscBridge & PlaceholderAPI

Dynmap and companion integrations

With Dynmap installed and dynmap.enabled true, MailboxGUI reconciles player-mailbox, Public Access Mailbox and Public Access NPC markers. Configure marker-set ID/label, hide-by-default, priority, icons, labels/descriptions and refresh triggers in config.yml. Public names use %publicmailboxname%; no physical re-registration is required solely for the terminology update. Citizens and PlaceholderAPI are optional soft dependencies, not requirements for standalone mail.

DiscBridge adds Discord notifications through its own integration. Use matching editions and compatible 6.1.0 / 2.1.0 builds. In Premium network mode install DiscBridge + DiscordSRV on exactly ONE backend; networking and backend identity inherit MailboxGUI network/config.yml, while locale policy inherits MailboxGUI config.yml. Website support-role linking remains separate from in-game notification linking.

Complete PlaceholderAPI reference

Use %mailboxgui_<name>%. Values are informational cached snapshots, not authorization or a promise of claim success. Machine booleans stay yes/no, unlimited kit use is -1, and missing next delivery/expiration stays empty. Cache refresh can take up to one second; a first asynchronous request may remain unresolved until the main-thread refresh.

All shared placeholders — 51 names
%mailboxgui_storage_type%%mailboxgui_delayed_mail_queued%%mailboxgui_package_size_rows%%mailboxgui_package_slot_limit%%mailboxgui_package_content_limit%%mailboxgui_loaded_player_data%%mailboxgui_registered_mailboxes%%mailboxgui_postoffice_mailboxes%%mailboxgui_stored_mail_total%%mailboxgui_has_mailbox%%mailboxgui_mailbox_registered%%mailboxgui_mailbox_count%%mailboxgui_inbox_total%%mailboxgui_pending_total%%mailboxgui_pending_player_total%%mailboxgui_pending_admin_total%%mailboxgui_pending_letters%%mailboxgui_pending_packages%%mailboxgui_pending_money%%mailboxgui_pending_admin_letters%%mailboxgui_pending_admin_packages%%mailboxgui_pending_admin_money%%mailboxgui_unchecked_total%%mailboxgui_has_unchecked_mail%%mailboxgui_unchecked_letters%%mailboxgui_unchecked_packages%%mailboxgui_unchecked_money%%mailboxgui_inbox_paper_letters%%mailboxgui_inbox_book_letters%%mailboxgui_inbox_packages%%mailboxgui_inbox_cod_packages%%mailboxgui_inbox_money%%mailboxgui_inbox_money_value%%mailboxgui_inbox_overflow%%mailboxgui_mail_total%%mailboxgui_inbox_capacity%%mailboxgui_inbox_free_slots%%mailboxgui_inbox_full%%mailboxgui_delivery_waiting%%mailboxgui_next_delivery_time%%mailboxgui_next_delivery_remaining%%mailboxgui_expiring_total%%mailboxgui_next_expiration_remaining%%mailboxgui_mailbox_limit%%mailboxgui_mailbox_remaining%%mailboxgui_kit_available%%mailboxgui_kit_uses_remaining%%mailboxgui_notifications_enabled%%mailboxgui_notification_sound_enabled%%mailboxgui_public_mailboxes%%mailboxgui_public_npcs%
Premium-only network and claim placeholders
%mailboxgui_backend_id%%mailboxgui_backend_name%%mailboxgui_network_enabled%%mailboxgui_network_available%%mailboxgui_network_status%%mailboxgui_network_online%%mailboxgui_network_stale_players%%mailboxgui_network_backends%%mailboxgui_network_stale_backends%%mailboxgui_network_groups%%mailboxgui_network_snapshot_age_ms%%mailboxgui_inbox_claimable%%mailboxgui_inbox_restricted%%mailboxgui_network_backend_<id>_status%%mailboxgui_network_group_<group>_members%%mailboxgui_network_group_<group>_online%%mailboxgui_network_group_<group>_status%%mailboxgui_inbox_restricted_<compatibility_status>%

Replace <id>, <group> and <compatibility_status> with actual identifiers/status. Group members is a count, group online counts presence, and claimable/restricted are eligibility snapshots—not sufficient funds, free inventory or a guaranteed claim.

Back to top ↑

Appearance & integrations

Developer API: dedicated guide

The public MailboxGUI API has its own complete guide covering dependencies, service discovery, mail builders/results, inbox queries and revision-aware claims, tracking, scheduling, registrations, events, custom-item codecs, notification providers and resource-pack status. Public Premium read-only network integration is clearly labeled. API contract 2.0 is separate from plugin version 6.1.0.

Open the complete MailboxGUI Developer API guide

The guide documents supported addon-facing interfaces rather than internal storage or the owner-only DiscBridge API system. Never modify MailboxGUI YAML/SQL records to bypass its services.

Back to top ↑

Help

Troubleshooting & verification checklist

SymptomCheck before changing data
Command unavailableFeature enablement, player/admin permission, local world rules and the currently registered root language. Package/money/open commands are disabled by default.
No custom iconsEnable customization, match edition gui.yml/assets, player On/Off/Auto, forced Auto policy, pack successful-load status and actual models.
ItemsAdder icon missingRegistered ID/namespace, compatible loaded registry and earlier-layer fallback. Loaded registry is not loaded client pack.
Money/COD unavailableVault AND economy provider, enabled currency mode, recipient funds/items, inventory space and valid/current mail.
Delivery not arrivedAbsolute due time, host clock, delay queue versus overflow, server-thread stalls and Premium locks/worker/runtime health.
Premium mail visible but restrictedCurrent target backend/group, compatible item/nested payload, payment state, fresh profiles/revisions. Admin privilege is not an override.
Premium runtime degradedShared database, Redis/TLS/auth, namespace/channels, subscription readiness, duplicate backend IDs and network tools.
Scheduled task paused/not runEnabled task, date/time/timezone/repeat, catch-up policy, valid payload/audience; Premium owner/definition/authority agreement.
Mail appears missing after updateOriginal storage type/path/database, consistent backups and migration logs. Do not delete/regenerate data or guess another DB.
World/backend unavailableLoad the correct world/backend and retain registration references. Do not purge because a world is temporarily absent.
  • Test with both an ordinary player and a focused-permission staff account.
  • Verify each mail type, message/no-message, expiration, COD accept/decline/return, XP, templates, delayed arrival and overflow.
  • Verify read-only check, live admin/player refresh, shared staff inbox and scheduled state after reload.
  • For Premium, test eligible/ineligible backend targets, mixed-version restrictions/partial claims, reconnect and shared owners without duplicate effects.
  • For packs, test correct/missing/declined/failed packs, custom GUI fallback, ItemsAdder rebuilds and client/backend version combinations.

The source and bundled validation reports document implemented behavior; this wiki update is not a fresh Minecraft/MySQL/Redis/Vault live test of every supported combination. Keep results for your actual environment. Do not publish raw configs, credentials, codes, license keys, private messages or item payloads when asking for support.

Back to top ↑

Help

Support & useful links

For installation, configuration, upgrades, bugs or resource-pack help, use the ImagineCraft Plugin Support Discord guide. It explains free support, licensed Premium/resource-pack forums, license/purchase assistance and website Discord linking. Premium/resource-pack support posting requires the matching entitlement and a linked Discord account; owning one product does not unlock another.

Discord Support — channels, requirements & join linkLink your Discord accountMailboxGUI Resource PackMailboxGUI downloadsDiscBridge 2.1.0 guide
Back to top ↑