GUI System

CoreItems provides a built-in, in-game browser so players never have to memorize commands. All custom items and namespaces are presented in easy-to-use menus with pagination, searching, etc...

Opening the GUI

  • Command: /coreitems menu

  • Permission: coreitems.command.menu

Running the command opens the Namespace Selection screen.


Namespace Selection Screen

  • Title: Controlled by gui.main-menu-title (supports color codes)

  • Icons: Each namespace appears as an item icon (by default the first item in its customs.yml) with the namespace name beneath.

  • Pagination:

    • Slots per page set by gui.namespaces-per-page

    • Next/Previous page arrows appear automatically when needed

  • Border: Empty slots are filled with the gui.border-item material


Item Browser Screen

After choosing a namespace, you’ll see its items:

  • Title: gui.items-menu-title (use {namespace} to insert the current namespace name)

  • Items per page: Controlled by gui.items-per-page

  • Item Icons: Display each custom item’s texture, name, and lore

  • Click Behavior:

    • Left-click an item to receive one in your inventory (requires give permission)

    • Shift-click (if supported) follows the same behavior or can be customized per item

  • Border & Pagination: Same rules as the Namespace screen


Search Functionality

CoreItems includes a namespace-wide search:

  • Enable/Disable: search.enabled

  • Search Button: An item (default search.button-material) appears in both menus

  • Timeout: Players have search.timeout seconds to type their query

  • Results Screen:

    • Titled with search.results-title (use {query})

    • Displays matching items with the same click-to-give behavior


Customizing the GUI

All GUI options live in config.yml under the gui: and search: sections:

Setting
Description
Default

gui.main-menu-title

Title of the namespace selection screen

CoreItems: Namespaces

gui.items-menu-title

Title of the item browser (use {namespace})

CoreItems: {namespace}

gui.border-item

Material to fill border slots (or NONE)

BLACK_STAINED_GLASS_PANE

gui.namespaces-per-page

Number of namespaces shown per page

14

gui.items-per-page

Number of items shown per namespace page

21

search.enabled

Toggle the search button and menus

true

search.button-material

Material for the search button

OAK_SIGN

search.timeout

Seconds before the search prompt closes

30

search.results-title

Title for the search results screen (use {query})

Search Results: {query}


Tips & Best Practices

  • Consistent Icons: Define a clear “first item” in each namespace so the menu icons stay recognizable.

  • Meaningful Titles: Use color codes in your titles to match your server’s theme.

  • Adjust Page Size: If you have large namespaces, bump up items-per-page to reduce clicks.

  • Search Positioning: Place the search button in a consistent slot (e.g., top-right) so players can find it quickly.


Next Steps

  • Visit Tips to learn advanced tricks for organizing and optimizing your GUI.

  • Head to Troubleshooting if menus aren’t loading or items aren’t appearing.

Last updated