How to create custom GUIs using Oraxen

Creating custom GUIs can be confusing at first, but it’s actually quite simple. Continue reading to see how!

Step 1: Create your GUI

For this example, we will be creating a GUI with a size of 9 (one row). You can find the base texture files for each GUI size through the button below. You can edit these base textures in any good image editing software.

Here’s a picture of the example GUI:

Step 2: Upload your design to your server and create glyph configuration

You can do this in any folder after the pack/textures directory. I decided to put mine in “pack/textures/interface/gui”.

Next, you’ll need to create the glyph configuration. Inside the “glyphs” folder, you can either add your configuration to an existing file or create a new one. I have created a file called “guis.yml” and added this code:

a_example_gui:
  texture: interface/gui/a_example_gui
  ascent: 13 # The ascent of the character, measured in pixels. This value adds a vertical shift to the displayed result.
  height: 256 # The height of the character, measured in pixels. Can be negative. See https://minecraft.fandom.com/wiki/Resource_Pack for more.

Note: The “ascent” is different for each GUI size. It should be within the range of 10-20

Step 3: Create the GUI Configuration

Now, you need to create the actual GUI. Unfortunately, this is not a feature in Oraxen, so you will need to use a separate plugin. I recommend DeluxeMenus, it is free and easy to use (other GUI plugin options: BetonQuest 2.0 / RPGMenu and many more).

Example config for a DeluxeMenus menu:

menu_title: '&f%oraxen_shift_8%%oraxen_a_example_gui%' # The shift character is used to correctly offset the GUI. See the FAQ for more information
size: 9
items:
  green_slot_1:
    priority: 0
    slot: 1
    amount: 1
    material: PAPER
    display_name: '&f'
    nbt_int: CustomModelData:312
  green_slot_2:
    priority: 0
    slot: 2
    amount: 1
    material: PAPER
    display_name: '&f'
    nbt_int: CustomModelData:312
  green_slot_3:
    priority: 0
    slot: 3
    amount: 1
    material: PAPER
    display_name: '&f'
    nbt_int: CustomModelData:312
  close_menu:
    priority: 0
    slot: 4
    amount: 1
    material: PAPER
    display_name: '&cClose Menu'
    nbt_int: CustomModelData:310
  red_slot_1:
    priority: 0
    slot: 5
    amount: 1
    material: PAPER
    display_name: '&f'
    nbt_int: CustomModelData:312
  red_slot_2:
    priority: 0
    slot: 6
    amount: 1
    material: PAPER
    display_name: '&f'
    nbt_int: CustomModelData:312
  red_slot_3:
    priority: 0
    slot: 7
    amount: 1
    material: PAPER
    display_name: '&f'
    nbt_int: CustomModelData:312

Once you’ve created the DeluxeMenus configuration, you’re done! Check out your newly-made GUI to ensure it looks good.

FAQ:

How do I create invisible items?

Invisible items are great for making clickable buttons. To create invisible items, you’ll need to make an item with a transparent texture. You can view my example configuration here:

invisible_item:
  displayname: "<white>"
  material: PAPER
  Pack:
    generate_model: true
    parent_model: item/generated
    textures:
    - item/invisible_texture

When I add a new item to Oraxen, the CustomModelData of others change!

You can give items a specific CustomModelData number by adding this line under the “Pack” section of your item configuration:

“custom_model_data: <number>”

My GUI isn’t correctly aligned, what do I do?

There are two possible causes for this:

If your GUI isn’t aligned vertically, you need to change the ascent in the glyph configuration.

If your GUI isn’t aligned horizontally, you need to add a shift character in the DeluxeMenus configuration. You can find all the included shift characters in Oraxen’s shifts.yml file.

My GUI looks tinted, what’s wrong?

You need to use the white color code (&f) before the GUI title.