Skip to main content

πŸ•ΉοΈ Usage

Overview​

BedrockGen reads the resource pack generated by Oraxen and creates the Bedrock files needed by Geyser. Oraxen's pack must be readable during conversion, so disable pack protection and obfuscation first.

Conversion​

important

Both obfuscation.type: NONE and protection: false are required. Oraxen pack protection and obfuscation prevent BedrockGen from reading the generated files.

Disable protection and obfuscation​

Open plugins/Oraxen/settings.yml and make sure the pack generation settings contain.

Pack:
generation:
obfuscation:
type: NONE
protection: false

Match the mapping mode​

BedrockGen can read either of Oraxen's appearance formats. mapping_mode: auto is recommended because it detects the format from the generated pack.

  • Pack.generation.appearance.item_properties: true uses the definitions format and modern item_model files such as assets/oraxen/items/<id>.json.
  • Pack.generation.appearance.model_data_float: true uses the legacy format and numeric custom-model-data values.

Regenerate the pack​

/oraxen reload pack

Convert the pack​

/feather convert oraxen

BedrockGen finds the generated pack in plugins/Oraxen/pack/pack.zip and reads Oraxen item configuration from plugins/Oraxen/items/.

info

Furniture is read from Oraxen's display_entity_properties. Growth-stage files are assigned to the item that owns them during conversion.

Commands​

πŸ”„ Convert Oraxen

Converts the resource pack generated by Oraxen.

/feather convert oraxen

The command reads plugins/Oraxen/pack/pack.zip and requires BedrockGen.use.

πŸ”„ Convert Nexo

Converts the resource pack generated by Nexo.

/feather convert nexo

The command reads plugins/Nexo/pack/pack.zip and requires BedrockGen.use.

πŸ”„ Convert ItemsAdder

Converts the resource pack generated by ItemsAdder.

/feather convert itemsadder

The command reads plugins/ItemsAdder/output/generated.zip and requires BedrockGen.use.

πŸ“¦ Convert a custom pack

Converts a pack ZIP from a custom path.

/feather convert --input=&lt;file&gt;

This command requires BedrockGen.use.

πŸ“Š Status

Shows the progress of a running conversion.

/feather status

This command requires BedrockGen.use.

πŸ”„ Reload

Reloads BedrockGen's configuration.

/feather reload

This command requires BedrockGen.admin.

πŸ–ΌοΈ Chest GUIs

Starts live measurement while you open chest menus.

/feather gui import live

Stops an active live measurement session.

/feather gui import live stop

Imports a glyph or a PNG from plugins/BedrockGen/gui/ with a specified row count.

/feather gui import &lt;name&gt; [row]

Lists the chest GUI measurements saved by BedrockGen.

/feather gui list

Removes a saved chest GUI measurement.

/feather gui remove &lt;id&gt;

Live measurement stops automatically after five minutes.

GeyserUtils on proxy networks​

If your integration exchanges live server data with Geyser, install geyserutils-geyser in Geyser's extensions/ directory and exactly one platform bridge in the matching plugins/ directory:

warning

If you previously used another converter, remove its old mapping files before installing BedrockGen. Multiple mapping files for the same furniture can produce undefined results.

For a proxy setup, install Floodgate on the proxy and every backend server. Copy the proxy's key.pem to each backend Floodgate folder, then enable send-floodgate-data: true in the proxy Floodgate configuration.

Chest GUIs​

BedrockGen can measure custom chest GUI backgrounds and include them in the next conversion. Live import is recommended because it reads the actual glyph and row count from the menu.

The available GUI commands are listed in the command reference. Live measurement stops automatically after five minutes. Manual imports can use a glyph or a PNG from plugins/BedrockGen/gui/.

Measurements are saved in plugins/BedrockGen/gui.yml. They are not applied until the next /feather convert.

guis:
menu_items:
row: 6
offsetX: 49.9
offsetY: 88
unicode: "U+A457"
container: chest_6

Emotes and glyphs​

Glyphs convert automatically at their authored size. Use plugins/BedrockGen/glyphs.yml when you need to change their Bedrock size.

  • scale multiplies the authored size while preserving the relative size between glyphs.
  • height sets an exact pixel height and takes priority over scale.
  • supersample: true uses the full-resolution image when a larger source is available.

The resolved glyph height is limited to 256 pixels. Bedrock resamples the image, so increasing a glyph's size does not add detail.

πŸ”€ Glyph configuration
# plugins/BedrockGen/glyphs.yml
glyphs:
farmer_tag:
scale: 2.0
god_tag:
height: 36
some_big_logo:
supersample: true

fonts: {}

glyphs accepts glyph IDs, which are the keys in an Oraxen glyph file. It does not accept the glyph file name or texture path. fonts accepts font names and applies a setting to every glyph in that font.

Items without a material​

Some models do not specify which vanilla material they represent. BedrockGen asks for those materials during conversion and saves the answers in plugins/BedrockGen/pending/pending_materials.json.

Use either paper or minecraft:paper. Leaving an entry empty converts the pack without a Bedrock mapping for that item. Set skip_pending: true to skip the prompt; saved answers still apply.

Settings​

BedrockGen presents these options before conversion and saves the selected values as defaults. Each setting is shown below in the same format as Oraxen's settings.yml documentation.

πŸ—ΊοΈ mapping_mode

Selects how Geyser mapping rows are generated.

mapping_mode: auto

mapping_mode - Uses auto to detect the pack format, legacy for custom-model-data rows, or definitions for 1.21.4 item-model rows.

πŸ–ΌοΈ icon_size

Controls the resolution of rendered inventory icons.

icon_size: 64

icon_size - Sets the icon resolution. Valid values are 16, 32, 64, and 128. Other values use the nearest supported size.

πŸ”³ transparency

Controls how semi-transparent textures are detected during conversion.

transparency: true

transparency - Detects semi-transparent pixels so textures render correctly instead of as solid blocks.

πŸ”€ font

Controls conversion of Java bitmap fonts into Bedrock glyph pages.

font: true

font - Converts custom fonts so glyphs can appear in Bedrock chat, names, and menus.

❓ skip_pending

Controls what happens when an item has no vanilla material mapping.

skip_pending: false

skip_pending - Skips the material prompt when enabled. Saved answers still apply, while items without an answer are left without a Bedrock mapping.

info

The texture atlas is always enabled. Disabling it would make larger packs download as thousands of separate files.

Supported features​

  • 🟒 Γ— Items, 2D and 3D. 3D models become held Bedrock models and flat items become sprites.
  • 🟒 Γ— Bows, crossbows, tridents, shields, and fishing rods. Draw, charge, throw, block, and cast states are rebuilt for Bedrock.
  • 🟒 Γ— Custom blocks. Note-block, string, chorus, stairs, slabs, doors, trapdoors, and cross-shaped plants retain their supported shapes and sounds.
  • 🟒 Γ— Block hitboxes. Custom block collision sizes are converted.
  • 🟒 Γ— Player armor. Custom equipment textures render as worn armor.
  • 🟒 Γ— Glyphs and emotes. Java bitmap fonts become Bedrock glyph sheets.
  • 🟒 Γ— Custom sounds. Sound events are remapped for Bedrock.
  • 🟒 Γ— Item components. Food, consumables, tools, repairable items, and use cooldowns are carried over.
  • 🟒 Γ— Animated textures. Animation strips are rebuilt as Bedrock frame animations.
  • 🟒 Γ— Chest GUIs. Custom backgrounds, title glyphs, row counts, and positioning are converted from saved GUI measurements.
  • 🟠 Γ— Oraxen HUDs and scoreboards. Requires the BedrockGenUi add-on, which converts these interfaces to Bedrock JSON UI.
  • 🟠 Γ— LuxDialogues. Requires the BedrockGenUi add-on to adapt its resource-pack-driven dialogue interface for Bedrock players.
  • 🟠 Γ— Furniture. Requires GeyserDisplayEntity. Position, scale, and offset use the model's display settings.
  • 🟠 Γ— ModelEngine. Requires GeyserModelEngine to render converted bundles.

Limitations​

  • 🟠 Γ— Dyeable models and furniture. Bedrock cannot read the item color for these models.
  • 🟠 Γ— Custom elytras. Wings render as worn armor, but Bedrock players cannot glide with them.
  • 🟠 Γ— ModelEngine rotations. Some models can have an incorrect rotation in specific cases.
  • πŸ”΄ Γ— Armor worn by mobs. Custom horse and wolf armor does not render on Bedrock.
  • πŸ”΄ Γ— Custom paintings. Bedrock players see the vanilla paintings.
  • πŸ”΄ Γ— Hopper, dropper, and dispenser reskins. These screens are built into the Bedrock client and cannot be changed by a resource pack.
  • 🟠 Γ— GUI, HUD, and dialogue layout parity. Java font shaders and Bedrock JSON UI render differently, so complex interfaces can require position or scale adjustments.
  • 🟠 Γ— MythicHUD and BetterHUD. These plugins render HUDs from their own configuration rather than pack assets, so they require a separate Bedrock JSON UI integration.
note

Most limitations come from Bedrock or Geyser rather than Oraxen or BedrockGen. Report one specific item, block, or furniture problem with a screenshot in the BedrockGen Discord.