đŧī¸ 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
The height value must always be greater than or equal to the ascent value. This is a strict requirement enforced by Minecraft.
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.
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.
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.
The sprite sheet should be a PNG file which can be referenced in the texture field.
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
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.

đ 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.
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
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
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
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).