> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mythiclabs.eu/llms.txt
> Use this file to discover all available pages before exploring further.

# Commands

> Command and permission reference for MLVoucher

MLVoucher's in-game help menu (`/vouchers help`) always reflects the exact command list for the version you're running. This page mirrors it for quick reference.

## Player commands

| Command                   | Description                                      | Permission                |
| ------------------------- | ------------------------------------------------ | ------------------------- |
| `/vouchers help`          | Show the help menu (also runs with no arguments) | `mlvouchers.command.help` |
| `/vouchers gui`           | Open the voucher selector GUI                    | `mlvouchers.command.gui`  |
| `/vouchers logs <player>` | Open a player's voucher usage logs               | `mlvouchers.command.logs` |

<Note>
  `/vouchers gui` and `/vouchers logs` can only be run by a player in-game, not from console.
</Note>

## Administrator commands

| Command                                                      | Description                                                                                        | Permission                  |
| ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------- | --------------------------- |
| `/vouchers give <player> <voucher> [amount] [key:value ...]` | Give a player a voucher, optionally with a custom amount and any placeholders the voucher requires | `mlvouchers.command.give`   |
| `/vouchers list`                                             | List all configured vouchers                                                                       | `mlvouchers.command.list`   |
| `/vouchers reload`                                           | Reload the config, messages, and vouchers, and refresh any voucher GUIs currently open             | `mlvouchers.command.reload` |

<Note>
  `/voucher` also works as a shorthand alias for `/vouchers`.
</Note>

### Giving a voucher with placeholders

Some voucher templates define **required placeholders** — values that must be filled in when the voucher is given, using `key:value` pairs after the amount:

```bash theme={null}
/voucher give Nephesis_ kiraly 1 days:7
```

This gives `Nephesis_` **1×** `kiraly` voucher, filling in its required `days` placeholder with `7`. Whatever `<days>` appears in that voucher's name, lore, or granted reward is replaced with `7` — this is what powers [Custom expiration in command](/plugins/mlvouchers/overview#custom-expiration-in-command): a voucher can require a `days` placeholder instead of being locked to one fixed duration.

<Note>
  * `[amount]` is optional and defaults to `1`. If you leave it out, list any placeholders the voucher needs directly after the voucher ID.
  * If a voucher has required placeholders and you don't provide one, the command is rejected and tells you which key is missing.
  * Placeholder keys like `days`, `amount`, `time`, `hours`, `duration`, `minutes`, `seconds`, `level`, `money`, `count`, `cooldown`, and `price` must be whole numbers — anything else is rejected.
  * Tab-completion suggests the voucher's required placeholder keys automatically once you've typed the voucher ID.
</Note>

<Tip>
  Redemption activity for every voucher is tracked automatically — check `/vouchers logs <player>` or the Logs GUI to see what a player has redeemed and when.
</Tip>

## Permissions

| Permission                  | Grants                        |
| --------------------------- | ----------------------------- |
| `mlvouchers.command.help`   | Use `/vouchers help`          |
| `mlvouchers.command.gui`    | Use `/vouchers gui`           |
| `mlvouchers.command.logs`   | Use `/vouchers logs <player>` |
| `mlvouchers.command.give`   | Use `/vouchers give`          |
| `mlvouchers.command.list`   | Use `/vouchers list`          |
| `mlvouchers.command.reload` | Use `/vouchers reload`        |
