-
Notifications
You must be signed in to change notification settings - Fork 6
features player pay
The /pay command (alias: /pagar) allows transferring money between players either directly or via an interactive GUI menu. It integrates SkinsRestorer skins to display custom player heads in the menu.
/pay <player> <amount> [note]
Transfers money instantly to the target player if they are online. If the player is offline and offline-uuid-fallback: true, the payment is queued as an offline payment (see corresponding section).
Applicable Permissions:
-
vault.pay— Enables general use of/pay(default:true) -
vault.pay.bypass_min— Bypasses the minimum limit (default:op) -
vault.pay.bypass_max— Bypasses the maximum limit (default:op)
Run /pay by itself to open the menu listing all online players as player heads (PLAYER_HEAD). The inventory size is configured in pay_menu.size (multiple of 9, default 27).
Head skin resolution follows this priority order (PayMenuService.java:92):
- Live player
GameProfile(reflection) - Modern
PlayerProfileAPI - SkinsRestorer API — If the plugin is installed, extracts skin texture/signature
- Legacy
setOwningPlayer/setOwnerfallback
With pay_menu.show_self: false (default) your own head is excluded from the list.
Clicking on a head or running /pay Notch opens a 9-slot sub-menu with 4 actions (PayMenuService.java:424-477):
| Slot | Item | Action |
|---|---|---|
| 1 | Emerald | Pay — Opens Quick Pay menu |
| 3 | Paper | View balance — Shows target's balance |
| 5 | Redstone | Charge — Request payment (clickable) |
| 7 | Gold Ingot | Loan — Direct access to loan menu |
After selecting Pay or Charge, the plugin enters chat input mode. Type the amount and press Enter. To cancel, type cancel or cancelar (configurable in pay.prompt.cancel_words).
The limits pay_limits.min (1) and pay_limits.max (100000) are applied both to chat input and the direct command. The bypass_min / bypass_max permissions (or the wildcard vault.pay.bypass_limits) ignore them.
In config.yml:
pay_limits:
min: 1
max: 100000If the value is ≤ 0, the limit is disabled. The pay.amount_too_small / pay.amount_too_large errors use %min% / %max% placeholders formatted with the currency symbol.
When choosing Charge in the sub-menu, the plugin sends the recipient a clickable message with RUN_COMMAND:
/pay <requester> <amount>
If the recipient is offline, the request is stored:
-
In memory (
pendingByRecipient) if no MySQL -
In MySQL table
vault_charge_requestsifstorage.use_mysql: true
On login, a maximum of pay_pending.max_on_join: 5 requests are delivered; the rest remain queued for the next connection.
Vault Economy v2.1.0 · Compatible with Spigot 1.8.8 – 1.21.x
📦 Modrinth ·
💬 Discord ·
Java 17 (legacy) · Java 21 (modern)
Documentation generated on 2026-09-03 · Vault Project Team
- 🏠 Home
- 🚀 First Install
- 🧑🏫 Getting Started
- ❓ Basic FAQ
- 📋 Complete Command List
- 🛡️ Complete Permission List
- ⚙️ config.yml Reference
- 🌐 Supported Languages
- 🆕 Modrinth Updates
- 💰 Player-to-Player Payments
- 🏦 Bank System
- 💵 Physical Notes
- 💸 Loans
- 📜 Transaction History
- 📊 Top Players
- ⏸️ Offline Payments
- 💳 Charges / Payment Requests
- 🔔 Discord Webhook
- 🛠️ Installation Errors
- 🚫 Players Can't Pay
- 🧨 Balances Wiped on Restart
- 📉 Bank Doesn't Pay Interest
- 🧾 Invalid / Expired Notes
- 🩺 Complete Step-by-Step Troubleshooting
- Java API
- 📜 Skript
- 🧰 Contribute · Dual Maven Build