Skip to content

smashyalts/java2bedrockclient

Repository files navigation

GeyserConverter

This was made almost entirely with claude fable 5, if you dont want to use a ai generated tool, refrain from further use

Java Edition → Bedrock Edition resource pack converter with a web UI. Upload a Java .zip pack in your browser and get back:

  • <pack>.mcpack — a Bedrock resource pack
  • geyser_mappings.json — Geyser Custom Item API v2 mappings
  • conversion_report.json — per-asset status: converted / approximated / skipped, with reasons

Everything runs client-side (Web Worker) — files never leave your PC. Static-hostable.

What it converts

Feature Status
Vanilla texture retextures (blocks/items/entity/armor/environment) ✅ rename table + parity-name passthrough
Legacy custom items (custom_model_data overrides, 1.14+) ✅ v2 legacy mappings
Modern item definitions (assets/<ns>/items/*.json, 1.21.4+) ✅ v2 definition mappings incl. condition/range_dispatch/select predicates
2D sprites (generated/handheld, multi-layer) ✅ composited icons + item_texture.json
3D models ✅ geometry + texture atlas + attachable + display-transform animations
Custom armor (modern equipment/ assets + legacy layer textures) ✅ armor attachables on vanilla armor geometry, equippable components
Elytra wings layers ✅ elytra attachable
Animated textures (.png.mcmeta flipbooks) ✅ blocks via flipbook_textures.json; item icons cropped to first frame (Bedrock limit)
Custom sounds (sounds.json + ogg) sound_definitions.json
Languages texts/*.lang
Bitmap fonts (PUA glyphs) font/glyph_XX.png sheets
Paintings ✅ stitched kz.png atlas
Core shaders, custom GUI, TTF fonts, builtin/entity items ❌ reported as skipped (no Bedrock equivalent)

Usage

pnpm install
pnpm dev        # web UI on http://localhost:5173
pnpm test       # core conversion tests
pnpm build      # production build (apps/web/dist — deployable to any static host)

Server setup: drop the .mcpack into Geyser's packs/ folder and geyser_mappings.json into custom_mappings/, then restart.

HTTP API (self-hosted, no GUI)

The same engine is available as a small HTTP server for automation:

pnpm --filter @geyser-converter/api start   # PORT=3000 by default
# multipart: pack + optional plugin config zip
curl -X POST "http://localhost:3000/convert?packName=mypack" \
  -F "[email protected]" \
  -F "[email protected]" \
  -o mypack_bedrock.zip

# or raw body
curl -X POST "http://localhost:3000/convert?packName=mypack" \
  --data-binary @MyJavaPack.zip -H "Content-Type: application/zip" \
  -o mypack_bedrock.zip

Response is a zip containing <packName>.mcpack, geyser_mappings.json, geyser_blocks.json, and report.json. Query params: packName, attachableMaterial, modernBaseItem, maxAnimationFrames. Env: PORT, MAX_UPLOAD_BYTES. Note: the hosted GitHub Pages site is browser-only — the API must be run on your own machine/server.

Repo layout

  • packages/core — conversion engine (environment-agnostic TypeScript; usable from Node or browser)
    • src/java — Java pack parsing (models, item definitions, mcmeta)
    • src/resolve — model parent-chain resolution and variant flattening
    • src/bedrock — Bedrock emitters (geometry, attachables, animations, armor, manifest)
    • src/convert — pipeline stages
    • src/data — Java→Bedrock vanilla texture rename tables
  • apps/web — Vite + React UI, conversion in a Web Worker

Credits & attribution

This converter stands on the shoulders of the projects and documentation below. Thank you to all of them:

License

GPL-3.0. Free software: use, study, share, improve — derivatives stay free.

Notes

  • Modern item-model assets don't declare their host item in the pack (servers apply them via the minecraft:item_model component). Those map under a configurable fallback base item (default minecraft:paper) — see Advanced options.
  • 3D icon fallback: a model texture is used as inventory icon. Provide a sprites.json at pack root ({"<model id>": "<texture id>"}) to override.
  • Coordinate/animation math follows java2bedrock.sh conventions; mappings follow the Geyser custom items v2 format.

About

No description, website, or topics provided.

Resources

License

Stars

9 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages