Files
Friends-CMP-2.0-Bedrock/README.md
T
root df3b190c8c
Build and release Bedrock pack / release (push) Successful in 6s
Complete Bedrock resource pack conversion
2026-08-02 08:27:33 +02:00

4.4 KiB
Raw Blame History

Friends CMP Bedrock Resource Pack

Bedrock resource pack assets for Friends CMP when Java players and Bedrock players meet through Geyser.

Scope

This repository converts the client-side Java resource pack assets from Friends-CMP-2.0 only. The Java repository's data/ datapack is intentionally not copied or recreated; it remains installed on the Java server and is outside the scope of a Bedrock resource pack.

Included:

  • Seven custom music-disc icons and their streamed OGG audio.
  • Geyser custom-item mappings for the Java music_disc_13 and paper stacks whose custom_model_data.strings values identify those seven models.
  • The Java cloud texture, preserved at Bedrock's environment texture path.
  • The original 64×64 pack icon.
  • Bedrock manifest, pack icon, validation, packaging, and tagged-release automation.

Build and validate

Requires Python 3.9+ and no third-party packages:

python3 scripts/validate_pack.py
python3 scripts/build_pack.py

The build output is build/Friends-CMP-Bedrock.mcpack. The generated build/ directory is ignored and should not be committed.

Geyser installation

  1. Copy build/Friends-CMP-Bedrock.mcpack to Geyser's packs/ directory (or install it through the server's Bedrock resource-pack mechanism).
  2. Copy geyser/mappings.json to Geyser's custom_mappings/ directory.
  3. Enable Geyser custom content/items in the server configuration, then restart Geyser.
  4. Test each Java datapack disc in a Bedrock client: its icon should match its title and its jukebox sound should stream.

The mappings use the current Geyser custom-item mapping format (format_version: 2) and match the Java pack's string values at custom_model_data.strings[0] for both music_disc_13 and paper.

Conversion notes and limitations

The source repository contains seven 16×16 item textures, seven OGG record tracks, one 1×1 cloud texture, a pack icon, Java item-model selectors, and a Java datapack. The textures and audio are copied byte-for-byte; Java's generated item models are represented by Bedrock atlas entries and Geyser custom-item icon mappings.

  • Bedrock does not understand Java assets/ model JSON or Java item-model dispatch files. Those files are translated into Bedrock icon entries and Geyser mappings rather than copied.
  • The Java clock.json and compass.json selectors only select vanilla/Java model assets. Their referenced vanilla models are not part of the pack, and Bedrock has no equivalent for Java's item-model dispatch tree in a resource-only pack; those selectors are intentionally omitted. The seven paper.json custom-model-data cases are represented by the Geyser minecraft:paper mappings instead of being copied as Java JSON.
  • The Java source has no custom fonts, block/entity models, GUI textures, particles, animations, or language files to convert.
  • Resource packs cannot implement Java datapack logic. Giving items, jukebox components, predicates, functions, recipes, and other server behavior remain Java-side responsibilities.
  • The Bedrock pack alone cannot distinguish multiple custom icons that all use music_disc_13; the Geyser mapping file is required for that per-stack visual mapping. If the server uses an older Geyser build that does not support v2 mappings or string predicates, the custom icons cannot be selected reliably without changing the server-side item data/mapping approach.
  • Bedrock's resource-pack sound catalog exposes the converted sound events, but custom Java jukebox behavior is still dependent on Geyser/server support for the mapped item. This repository does not modify the Java datapack.
  • No Java-only assets/minecraft/items/*.json, models, pack.mcmeta, language files, or datapack files are included in the .mcpack.

The pack is a resource pack, not a standalone Bedrock behavior pack. For the seven custom discs to retain their Java appearance and behavior through Geyser, install both the .mcpack and geyser/mappings.json, and keep the Java datapack installed on the server. A Bedrock client cannot independently recreate the Java datapack's custom-model-data and jukebox_playable logic.

Releases

Tag pushes matching v* run .github/workflows/release.yml, validate the pack, build Friends-CMP-Bedrock.mcpack, and attach both the pack and geyser/mappings.json to the GitHub Release. The mapping file is released alongside the pack because Geyser needs it to select the per-disc icons.