Skip to content

DeluxeMenus GUI background with Nexo or Oraxen

Custom menu screens in Minecraft are a trick: the background picture is a single character in the menu title. Nexo and Oraxen call these characters glyphs. This guide shows the glyph config for both plugins, the shift placeholders that move the picture into place, and how to connect everything with DeluxeMenus.

Updated:

How a glyph becomes a menu background

A chest menu prints its title in the top left corner, and that title can contain characters from the server resource pack. A glyph is such a character, drawn from your PNG. Place a large glyph in the title and the client paints it over the whole chest screen.

Two values position it. A negative shift moves the cursor left before the glyph, so the picture starts at the edge of the chest and not at the title indent. The glyph's ascent moves it vertically until it covers the menu. Slots stay real slots: where the picture shows a button, the menu has an empty slot with material: air that still runs click actions.

If you use ItemsAdder instead, read the ItemsAdder version of this guide. The idea is the same, only the config and placeholder names differ.

What you need

  • DeluxeMenus and PlaceholderAPI on your server. DeluxeMenus parses PlaceholderAPI placeholders in menu_title.
  • Nexo or Oraxen, which build the resource pack and provide the glyph and shift placeholders.
  • For Oraxen: glyphs in inventory titles work natively on Paper 1.21.2 or newer. Older servers need PacketEvents, according to the Oraxen docs.
  • A background PNG of at most 256×256 pixels. Bigger textures are not allowed for a single glyph.

Step 1: Design the background

Build the menu in the GUI Maker: choose the rows, a preset or theme, and draw big buttons across several slots. Under export pick Nexo or Oraxen, set a namespace (for example mymenus) and a menu name (for example shop).

The PNG is 256 pixels wide and between 164 pixels (one row) and 254 pixels (six rows) tall. The margin around the chest gives frames room to stick out of the normal menu outline.

Step 2a: Nexo glyph config

Nexo reads glyphs from any YAML file in its glyphs folder. The texture is written as namespace:path, here the PNG at plugins/Nexo/pack/assets/mymenus/textures/gui/shop.png:

plugins/Nexo/glyphs/gui_shop.yml
gui_shop:
  texture: mymenus:gui/shop
  ascent: 45
  height: 254
  • height is the drawn height. Use the real pixel height of the PNG.
  • ascent moves the glyph up. Nexo says the height must never be lower than the ascent.
  • The placeholders are %nexo_gui_shop% for the glyph and %nexo_shift_<pixels>% for space, which may be negative.

Step 2b: Oraxen glyph config

Oraxen reads glyphs from plugins/Oraxen/glyphs/. Its texture path is relative to pack/textures/, so the PNG goes to plugins/Oraxen/pack/textures/gui/shop.png:

plugins/Oraxen/glyphs/gui_shop.yml
gui_shop:
  texture: gui/shop
  ascent: 45
  height: 254
  • Oraxen requires height to be greater than or equal to ascent; Minecraft enforces this.
  • The glyph placeholder is %oraxen_gui_shop%. Shifts have two placeholders: %oraxen_shift_<pixels>% moves right, %oraxen_neg_shift_<pixels>% moves left. Each supports up to 2047 pixels.
  • A char key exists to pick the character yourself, but it is optional.

Step 3: The DeluxeMenus menu title

The title combines colour, a shift to the left, the glyph, a shift back and the title text. For Nexo:

plugins/DeluxeMenus/gui_menus/shop.yml
menu_title: '&f%nexo_shift_-48%%nexo_gui_shop%%nexo_shift_-201%&8Shop'
open_command: 'shop'
register_command: true
size: 54
items:
  button_1_buy:
    material: air
    slots: [10, 11, 19, 20]
    priority: 1
    click_commands:
      - '[openguimenu] shop_buy'

For Oraxen only the title changes, because left shifts have their own placeholder:

plugins/DeluxeMenus/gui_menus/shop.yml
menu_title: '&f%oraxen_neg_shift_48%%oraxen_gui_shop%%oraxen_neg_shift_201%&8Shop'
  1. &f keeps the picture in its own colours instead of tinting it with the title colour.
  2. The first shift moves the cursor 48 pixels left: the GUI Maker counts 8 pixels for the chest title indent plus the 40 pixel margin of its canvas.
  3. The second shift brings the cursor back so &8Shop sits on the picture. Its value depends on your picture width; the GUI Maker works it out.

Nexo and Oraxen also have MiniMessage tags such as <glyph:gui_shop> and <shift:-48>. The GUI Maker writes the %…% form, because DeluxeMenus documents PlaceholderAPI placeholders for menu_title.

Step 4: Register the menu and reload

plugins/DeluxeMenus/config.yml
gui_menus:
  shop:
    file: shop.yml
  1. Rebuild the pack: /nexo reload (or /nexo reload pack) for Nexo, /oraxen reload all for Oraxen.
  2. Run /dm reload and test with /dm open shop.
  3. Restart the server once. DeluxeMenus registers /shop from register_command: true only on start.
  4. Rejoin so you get the new resource pack.

Common errors and fixes

What you seeCause and fix
%nexo_gui_shop% or %oraxen_gui_shop% as textPlaceholderAPI is missing, or the glyph ID in the placeholder does not match the key in the glyph file.
An empty box or a wrong symbolThe pack was not rebuilt or the player has the old pack. Reload the plugin and rejoin.
Oraxen glyph missing only in menu titlesThe server is older than Paper 1.21.2 and PacketEvents is not installed.
The picture is shiftedShift or ascent does not match the PNG. Export again from the same design.
The picture is darker than the PNG&f is missing before the first placeholder.
The glyph is rejected on loadascent is higher than height, or the PNG is bigger than 256×256.
/shop does nothingThe menu is not in config.yml, or the server was not restarted after adding it.

Frequently asked questions

Is the setup different for Nexo and Oraxen?

Only in the details. Nexo writes the texture as namespace:path and uses %nexo_shift_N% with negative numbers. Oraxen takes a path relative to pack/textures/ and has %oraxen_neg_shift_N% for moving left.

Why is my glyph not showing in the DeluxeMenus title?

Usually the placeholder is not replaced (PlaceholderAPI missing or wrong glyph ID), the resource pack was not rebuilt, or the player has not loaded the new pack. With Oraxen on servers older than Paper 1.21.2, PacketEvents is needed for titles.

Which reload command do I need?

For Nexo /nexo reload, which reloads everything, or /nexo reload pack for the pack only. For Oraxen /oraxen reload all. Then /dm reload for the menu file.

Can I use a texture bigger than 256×256 pixels?

Not as one glyph. Minecraft limits glyphs to 256×256 pixels. A menu background from the GUI Maker stays inside that limit for every row count.

Sources

Checked against the official documentation: