πΉοΈ 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β
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: trueuses thedefinitionsformat and modernitem_modelfiles such asassets/oraxen/items/<id>.json.Pack.generation.appearance.model_data_float: trueuses thelegacyformat 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/.
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=<file>
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 <name> [row]
Lists the chest GUI measurements saved by BedrockGen.
/feather gui list
Removes a saved chest GUI measurement.
/feather gui remove <id>
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:
- GeyserUtils Geyser extension
- GeyserUtils Spigot bridge
- GeyserUtils Velocity bridge
- GeyserUtils BungeeCord bridge
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.
scalemultiplies the authored size while preserving the relative size between glyphs.heightsets an exact pixel height and takes priority overscale.supersample: trueuses 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.
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.
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.