Player Interface

All you need to know about the player interface file.

Summary

Quest slots

The quests section in playerInterface.yml defines where each quest icon will be displayed in the GUI. Each quest is assigned an index (starting at 1) and mapped to a slot number (starting at 1) in the inventory.

Quests are indexed based on their order in your configuration or generation logic.

For example, if you have:

  • 3 Easy quests

  • 3 Medium quests

  • 3 Hard quests

Then the quest indexes will look like this:

Index Range
Difficulty

1 – 3

Easy

4 – 6

Medium

7 – 9

Hard

This means Quest #1 is the first Easy quest, Quest #4 is the first Medium quest, and so on.

Example:

quests:
  1: 12
  2: 14
  3: 16
  • 1: 12 → Quest with index 1 will be placed in slot 12

  • 2: 14 → Quest with index 2 will be placed in slot 14

  • 3: 16 → Quest with index 3 will be placed in slot 16

Important:

  • Slots start at 1 (not 0).

  • The inventory is counted left-to-right, top-to-bottom.

  • If you skip an index, that quest will not be displayed in the GUI.

  • After making some modifications, you may need to reset your quests with the command /dqa reset quests <player> to see your changes applied.

Item types

In the interface configuration, each item you define must have a type. This type determines what happens when the player clicks on it (or if it simply serves as decoration).

Available Types

Type
Description
Required Parameters

FILL

A decorative item with no click action. Useful for filling empty spaces in the GUI.

material, slot

PLAYER_COMMAND

Executes the listed commands as the player when clicked.

name, description, slot, commands[]

CONSOLE_COMMAND

Executes the listed commands from the console when clicked.

name, description, slot, commands[]

CLOSE

Simply closes the GUI when clicked.

name, description, slot

Items of type FILL are minimal — they only display the material and cannot have:

  • Custom name

  • Lore (description)

  • Enchantments, flags, or other visual effects

If you want a decorative item with a custom name or lore but no action, use PLAYER_COMMAND or CONSOLE_COMMAND with an empty command list:

example_button:
  type: PLAYER_COMMAND
  item:
    material: STONE
    name: "&7Information"
    lore:
      - "&fThis is a custom decorative item"
      - "&fIt does nothing when clicked"
    slot: 10
  commands: [] # no commands -> purely decorative

This allows you to use all display features (name, lore, flags) while keeping the item action-free.

Placeholders

For interface items of type CLOSE, PLAYER_COMMAND or CONSOLE_COMMAND, you can put in the lore some placeholders. Since 3.0, the use_placeholders parameter is no longer required.

1:
  type: PLAYER_COMMAND
  item:
    material: IRON_BLOCK
    name: "&cSay hello"   
    lore:
      - "Total: %odailyquests_total%"
    slot: 53
  commands:
    - "say hello"

You can also put placeholders on the player head in the same way:

player_head:
  enabled: true
  item_description:
    - "%player_name%"

Custom model data

In the player interface, you can specify a custom model data for the player's head and for different items.

  • For the player head, you need to add the custom_model_data parameter.

  • For any other item, you need to add it in the material field, as the following example.

For example:

player_head:
  enabled: true
  slot: 5
  custom_model_data: 1245 # custom model data for player heads
  item_name: "&bYour quests"
  item_description:
    - "&eCompleted quests : &b%achieved%&e/&63"
    - "&eNext draw in : &c%drawIn%"
    
items:
  1:
    type: PLAYER_COMMAND
    item:
      material: "custommodeldata:REDSTONE:1234" # custom model data for command items
      name: "&cBack"
      lore:
        - "&eGo back to menu."
      slot: 19
    commands:
      - "menu"    

Oraxen, Nexo & ItemsAdder items

You can specify for the material an item from Oraxen, Nexo or ItemsAdder. It's really simple, you just need to add oraxen:, nexo: or itemsadder: before the name of the item.

Ensure that you have the appropriate option enabled in the configuration.

material: "oraxen:my_item"
material: "nexo:my_item"
material: "itemsadder:namespace:my_item"

Don't forget to enclose the item names in inverted commas ("..."), otherwise the file will be formatted incorrectly and the plugin will crash!

Custom head texture

You can also use custom head textures, from this website.

You just need to add a texture field in the item section. The value to put here is the Minecraft-URL at the bottom of the head page. Be sure to use the Minecraft-URL and NOT the Value that is just before!

The syntax is the same as for Oraxen, Nexo and ItemsAdder items.

// from https://minecraft-heads.com/custom-heads/decoration/60568-coin
material: "customhead:ebda5f31937b2ff755271d97f01be84d52a407b36ca77451856162ac6cfbb34f"

Multiple slots

If you want to set the same item on several slots, for a custom GUI for example, you can do it by creating a list of slots, like this:

quests: # set the position of quests items
  1: 
    - 12
    - 13
    - 14
  2: 21
  3: 30

Here, the quest number 1 will be displayed on slots 12, 13 and 14.

It also works with the player head:

player_head:
  enabled: true
  slot: 
    - 8
    - 17

Item flags

Item flags allow you to hide some default information from an item in the interface (name, attributes, enchantments, etc.). They are configured directly in the flags list of an item inside player_interface.yml.

pvp_arena:
  type: PLAYER_COMMAND
  item:
    material: DIAMOND_SWORD
    slot: 27
    name: "&cPvP Arena"
    lore:
      - "&7Fight against other players"
      - "&7and prove your strength!"
    flags:
      - HIDE_ATTRIBUTES
      - HIDE_ENCHANTS
  commands:
    - "warp pvp"

You can find the list of all available item flags right here. This parameter is applicable to all item types.

Default playerInterface.yml file
# ======================================================
# Here you can create your own player quests interface.
#
# Never delete a %variable% unless you know what you're doing.
# %achieved% is replaced by the number of completed quests.
# %drawIn% is replaced by the time remaining before the next quests draw.
# ======================================================
player_interface:
  size: 45
  inventory_name: "#0057ff &l        Daily Quests"
  # disable the status of the quest if you want to handle it manually by placeholders
  disable_status: false
  # the 3 following lines will not be used if disable_status is set to true
  status: "&eStatus :"
  progress: "&b%progress%&3/&b%required%"
  achieved: "&bCOMPLETED"
  # if you want to glow the item when the quest is achieved
  glowing_if_achieved: true
  complete_get_type: "&eClick to complete this quest!"
  player_head:
    enabled: true
    slot: 5
    # material: "nexo:odailyquests_head" # if you want to use a custom head from an external plugin
    item_name: '&b%player_name%'
    item_description:
      - '&3Status: '
      - ' &3&l| &7Completed quests: &b%achieved%&3/&b9'
      - ' &3&l| &7Total completed quests: &b%odailyquests_total%'
      - ' &3&l| &7New quests in: &b%drawIn%'

  # ========================================================
  # Available types : FILL, PLAYER_COMMAND, CONSOLE_COMMAND
  # Placeholders : %player%
  # More info on Wiki.
  #
  # SLOTS STARTS AT 1!

  # Note: Items of type FILL will be displayed with an empty name and no lore, even if defined.
  # If you want to display a name or lore, use PLAYER_COMMAND or CONSOLE_COMMAND types with an empty command list.
  # ========================================================
  quests: # set the position of quests items
    1: 12
    2: 21
    3: 30
    4: 14
    5: 23
    6: 32
    7: 16
    8: 25
    9: 34
  items:
    0:
      type: CLOSE
      item:
        material: BARRIER
        name: "&cClose"
        lore: [ ]
        slot: 37
    1:
      type: PLAYER_COMMAND
      item:
        material: CUSTOM_HEAD
        name: '&b&lInformations'
        texture: cdcdee6d06df234b8e603328b96c57f3a312e79aabfc3be72a8b421878ed68cf
        lore:
          - ' &3&l| &7Everyday you get a new'
          - ' &3&l| &7set of quests.'
          - ''
          - ' &3&l| &7Completing quests will'
          - ' &3&l| &7give you money!'
          - ''
          - ' &8(&7!&8) &7Completing categories will'
          - '  &7 give you extra rewards too'
          - ''
        slot: 1
    2:
      type: PLAYER_COMMAND
      item:
        material: CUSTOM_HEAD
        name: "&b&lDaily reroll"
        texture: bc8def67a12622ead1decd3d89364257b531896d87e469813131ca235b5c7
        lore:
          - ' &3&l| &7Everyday you can change'
          - ' &3&l| &7one of your quests for'
          - ' &3&l| &7a different one'
          - ''
          - ' &8(&7!&8) &7/dq reroll <position>'
        slot: 9
    3:
      type: FILL
      item:
        material: BLUE_STAINED_GLASS_PANE
        slot:
          - 2
          - 3
          - 4
          - 6
          - 7
          - 8
          - 10
          - 18
          - 19
          - 27
          - 28
          - 36
          - 38
          - 39
          - 40
          - 41
          - 42
          - 43
          - 44
          - 45
    4:
      type: FILL
      item:
        material: CYAN_STAINED_GLASS_PANE
        slot:
          - 11
          - 17
          - 20
          - 26
          - 29
          - 35

Last updated