Skip to main content

đŸ–ŧī¸ Glyphs

Overview​

Glyphs allow you to display custom textures anywhere text appears in Minecraft, including chat messages, item names, lore, scoreboards, and more. They work by mapping Unicode characters to custom image files through Minecraft's font system. Since Minecraft supports multiple font sets, the same character can display different visuals depending on the font used. This powerful system enables you to create custom GUIs, HUDs, emojis, rank icons, and much more.

Configuration​

Glyphs are configured in .yml files in the plugins/Oraxen/glyphs directory.

  • 📁 plugins
    • 📁 Oraxen
      • 📁 glyphs
        • 📄 emojis.yml
        • 📄 ranks.yml

Properties​

texture - The path to your texture file (relative to pack/textures/).
ascent - The vertical offset of the glyph.
height - The scale/height of the glyph.
char - The unicode character used for this glyph (the character the glyph will be mapped to). Also accepts a list of strings, one per bitmap row. chars is an accepted alias.
is_emoji - Whether this glyph appears in /oraxen emojis. Optional
chat.placeholders - A list of chat placeholders for the glyph. Optional
chat.permission - The permission required to use the glyph. Defaults to none. Optional

warning

The height value must always be greater than or equal to the ascent value. This is a strict requirement enforced by Minecraft.

info

Glyph placeholders like :farmer: work in chat, signs, and books for any font, because Oraxen injects the glyph's font component. Anvil renames insert the raw character without a font, so there the glyph only renders with the minecraft:default font. The same applies when typing the raw unicode character in places Oraxen does not intercept.

Additional Properties​

đŸ’Ŧ Tab Completion

Makes glyphs tab complete in chat.

note

This works for any glyph. It completes the glyph's chat placeholders, so define placeholders for the glyph.

tabcomplete - Whether the glyph should tabcomplete.

chat:
tabcomplete: true
🔤 Font

Defines the font used for the glyph.

font - The font that should be used for the glyph.

appearance:
font: "minecraft:default"
đŸ–Œī¸ Shadow Appearance

Defines the text shadow color.

note

This is only available on 1.21.4+.

shadow_color - The shadow color that should be used for the glyph.

Supports ARGB, RGB and ShortRGB formats.
#AARRGGBB - Full format with alpha, red, green, blue.
#RRGGBB - RGB format (assumes FF alpha).
#RGB - Short format (expands to #FFRRGGBB).

appearance:
shadow_color: "#80000000"
đŸŽžī¸ Animations

Renders PNG sprite sheets and makes them animated ingame using core shaders.

info

The sprite sheet should be a PNG file which can be referenced in the texture field.

important

Frames may be non-square. The sheet width or height must be divisible by the frame count. Vertical and horizontal sheets are both supported.

frames - The number of frames in the sprite sheet. Max 16, extra frames are dropped with a warning.
fps - The frames per second of the animation. Clamped to 1-127, defaults to 10.
loop - Whether the animation should loop. Defaults to true.
offset - The horizontal offset of the animation. If omitted, the offset is calculated automatically. Optional

animation:
frames: 12
fps: 12
loop: true
offset: 0
đŸ§ŋ Bitmaps

Multi-bitmap glyphs allow you to display multiple custom textures from a single image file by splitting it into a grid.

cols - The number of columns in the image. columns is an accepted alias.
rows - The number of rows in the image.

myglyph:
texture: edna
ascent: 8
height: 8
cols: 1
rows: 5
info

In this example, the texture is split into 1 column and 5 rows, creating one glyph that spans multiple characters. <glyph:myglyph> renders all rows.

You can select single cells or ranges.
<glyph:myglyph:3> - Renders the third character.
<glyph:myglyph:1..4> - Renders characters 1 to 4.

Bitmap Glyphs

🔗 Reference

Reference glyphs let you alias part of an existing multi-bitmap glyph.

glyph - The unique identifier of the glyph.
index - The characters to include (1-indexed). Accepts a single number or a range (1..5 or 1-5). Omitting it selects all characters. Optional

The reference section is nested under the glyph name.

myreference:
reference:
glyph: yourglyph
index: 1
emoji-1:
reference:
glyph: yourmultibitmap
index: 1

emoji-10:
reference:
glyph: yourmultibitmap
index: 10

Example​

farmer:
texture: default/chat/farmer
ascent: 8
height: 8
appearance:
font: "minecraft:default"
shadow_color: "#80000000"
chat:
tabcomplete: true
placeholders:
- ":farmer:"
permission: oraxen.chat.farmer

font.yml​

The plugins/Oraxen/font.yml file controls font generation.

settings.automatically_generate - Whether Oraxen generates default.json for you.
settings.perms_chatcolor - A placeholder used to suffix glyphs in chat. Requires PlaceholderAPI. Optional

The bitmaps section defines shared bitmap grids. Each entry takes texture, rows, columns, ascent (default 8) and height (default 8). Glyphs reference a cell with bitmap: {id, row, column}.

The fonts section registers ttf fonts with type, file, shift_x, shift_y, size and oversample.

settings:
automatically_generate: true
perms_chatcolor: "%luckperms_meta_chatcolor%"

bitmaps:
example_bitmap:
texture: example/texture
rows: 2
columns: 9
ascent: 8
height: 8

fonts:
my_cool_font:
type: "ttf"
file: "minecraft:PPP.ttf"
shift_x: 0.0
shift_y: 1.6
size: 8.0
oversample: 10.0

Usage​

âžĄī¸ Shifts

Shifts are generated space-font characters that let you move text or glyphs to the left or right by a specific number of pixels.

info

Shifts can be used in MiniMessage and PlaceholderAPI.
Each tag supports up to 2047 pixels in either direction.

<shift:N> - Shifts N pixels (Negative values supported).
<s:N> - Shorthand for <shift:N>.

%oraxen_shift_N% - Shifts N pixels to the right (positive).
%oraxen_neg_shift_N% - Shifts N pixels to the left (negative).

For more details see the dedicated sections for MiniMessage and PlaceholderAPI.

đŸ’Ŧ MiniMessage
info

You can use shorthand aliases.
<g:yourglyph> for <glyph:yourglyph>.
<g:yourglyph:c> for <glyph:yourglyph:colorable>.
<g:yourglyph:s:#FF0000> for <glyph:yourglyph:shadow:#FF0000>.

<glyph:yourglyph> - Basic usage.
<glyph:yourglyph:colorable> - Inherits surrounding text color.
<glyph:yourglyph:shadow:#FF0000> - Override shadow with specific color.
<shift:N> - Shifts N pixels (Negative values supported).

You can combine multiple options together.
<glyph:yourglyph:c:s:#80FF0000> - Example of multiple arguments being used together.

🔤 PlaceholderAPI
warning

PlaceholderAPI has to be installed for this to work.

%oraxen_yourglyph% - Basic usage.
%oraxen_shift_N% - Shifts N pixels to the right (positive).
%oraxen_neg_shift_N% - Shifts N pixels to the left (negative).

đŸ’ŧ GUIs
warning

ProtocolLib or PacketEvents has to be installed for GUI Title placeholders to work.

Oraxen handles GUI visuals rather than inventory logic. By aligning glyphs in titles, you can overlay custom textures on the standard Minecraft interface.

Oraxen dynamically replaces placeholders when a GUI opens, ensuring titles remain functional even if the underlying Unicode characters change.

<glyph:yourglyph> - Basic usage.
<shift:N> - Shifts N pixels (Negative values supported).