> For the complete documentation index, see [llms.txt](https://vulkan-technologies.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vulkan-technologies.gitbook.io/documentation/vulkan-menu/configuration/menu.md).

# Menu

General informations about menu configuration.

### Syntax

```yaml
title: <rainbow>My cool menu
size: 18

open-command:
  name: test
  aliases:
    - test-menu
  description: "This is command opens a cool menu :P"

open-requirements:
  permission:
    requirement: "[permission] mycoolmenu.permission"
    deny-actions:
      - "[message] <red><bold>You don't have permission to open this cool menu :'("

```

### Title `Required`

The menu title that is shown at the top of the menu, you can use [MiniMessage format](https://docs.advntr.dev/minimessage/format.html#minimessage-format), [ItemsAdder fonts](https://itemsadder.devs.beer/plugin-usage/adding-content/guis) and any placeholders from PlaceholderAPI.

```yaml
title: "TEXT"
```

### Size `Required`

The size of the menu in slots.

{% hint style="warning" %}
Must be a multiple of 9 between 9 and 54!
{% endhint %}

```yaml
size: 9|18|27|36|45|54
```

### Open command `Optional`

The command used to open the menu.

You can also define aliases for it and set a description (that will be shown in the /help menu)

{% hint style="warning" %}
Must be a single word!
{% endhint %}

```yaml
open-command:
  name: test # Required
  aliases: # Optional
    - test-menu
  description: "This is command opens a cool menu :P" # Optional
```

### Open requirements `Optional`

Sets requirements to open the menu. More information in the [Requirements](/documentation/vulkan-menu/configuration/requirement.md) page.

```yaml
open-requirements:
  permission: # Name of the requirement (can be anything)
    requirement: "[permission] mycoolmenu.permission" # Permission to check
    deny-actions: # Message to send if the players doesn't have the permission
      - "[message] <red><bold>You don't have permission to open this cool menu :'("
```

### Variables `Optional`

Define variables that can be used and modified throughout the menu. See the [Variables](/documentation/vulkan-menu/configuration/variables.md) page for detailed information.

```yaml
variables:
  counter: 0
  price: 100.5
```

### Refresh `Optional`

The refresh feature allows you to periodically refresh the whole menu once open by a player.

All parameters are optional but you need at least one, for example you can use both the delay and interval on their own with or without the actions.

{% hint style="warning" %}
Delay and interval fields are in ticks (1 tick = 50ms, 1 second = 20 ticks)
{% endhint %}

```yaml
refresh:
  delay: 0 # Optional - Initial delay before first refresh
  interval: 40 # Optional - Interval between refreshes
  actions: # Optional - Actions to execute on each refresh
    - "[message] Menu refreshed!"
```

### Anti-Dupe System

VulkanMenu includes a built-in anti-dupe system that prevents item duplication exploits. This system is automatically enabled and requires no configuration.

### Player Inventory Support

When PacketEvents is installed, VulkanMenu can use the player's actual inventory for menu displays, allowing for more advanced menu interactions while maintaining the player's inventory items.
