resourcepack.ai
DOCS

Resource packs

Bedrock and Geyser

Bedrock Edition (phones, consoles, Windows) uses a different pack format from Java. Studio converts your pack for you, so you don't make anything twice. How Bedrock players get it depends on where they play.

Most Bedrock players reach a Java server through Geyser, a plugin that lets Bedrock players join a Java server. If that's you, read the first two rows.

Where they playWhat to useWhat they get
A Java server running Geyser and RP Engine, our pluginNothing extra. Sync (sends a pack to you while testing) or Distribution (sends it to every player)Everything below, plus placed models with their animations and 3D Armor
A Java server running Geyser, without RP EngineExport › Bedrock players on a Java serverCustom items with their icons, reskins, Sounds, Armor and chat Icons
A Bedrock world or RealmExport › Minecraft: Bedrock EditionReskins, Sounds, Armor and chat Icons

On a Java server with Geyser#

Geyser translates the game, but it can't read a Java resource pack. Bedrock players need a Bedrock pack, and Geyser needs to be told which Java items are which Bedrock items. Studio makes both.

With RP Engine#

If the server runs RP Engine, there is nothing to set up. Each time you press Sync, a Bedrock player on the receiving end gets the Bedrock build of the pack; they are disconnected and rejoined for a few seconds, because Bedrock only accepts packs while joining. A pack served with Distribution always includes the Bedrock build too.

RP Engine registers your items with Geyser itself and draws placed models for Bedrock players near them. See RP Engine › Bedrock and Geyser for exactly what crosses over.

Without RP Engine#

Press Export on the pack and choose Bedrock players on a Java server. You get one zip laid out like Geyser's own folder:

packs/<your pack>.mcpack              the Bedrock pack Geyser sends players
custom_mappings/resourcepack-ai-<pack>.json   which Java items are which Bedrock items
README.txt
  1. Unzip it into Geyser's folder: plugins/Geyser-Spigot/ on Paper or Spigot (plugins/Geyser-Velocity/, config/Geyser-Fabric/ and so on elsewhere).
  2. Restart the server. Geyser reads packs and mappings only when it starts.
  3. Give Java players the Java pack as usual (Export › Minecraft: Java Edition, set in server.properties).

That's it. A custom item is the same item for both editions: the give command on its page works for everyone, and Bedrock players see it with its own icon and name instead of a piece of paper.

Not with RP Engine

If the server runs RP Engine, leave custom_mappings/ out. RP Engine registers the same items with Geyser, and two mappings for one item is one too many. The one part worth taking from this zip there is packs/, and only if you put the Java pack in RP Engine's content/ folder by hand: Sync and Distribution send Bedrock players the pack themselves.

The same file works whatever Minecraft version your server runs. Keep Geyser up to date, since it uses Geyser's newer mapping format.

In a Bedrock world or Realm#

Export › Minecraft: Bedrock Edition gives you a .mcpack. Open it on any Bedrock device and it imports itself; then turn it on under the world's Resource Packs. Without a server there's nothing to hand out custom items or place models, so a world shows the reskins, Sounds, Armor and chat Icons.

What crosses over#

AssetOn Bedrock
Block and item reskinsUnder Bedrock's own texture names
Custom itemsTheir sprite, or a picture of the model, as the item's icon
ModelsBedrock entities with native animations, placed by RP Engine
ArmorThe same sheets, under Bedrock's names
3D ArmorDrawn on the body, with RP Engine
SoundsUnder your event names
IconsBedrock's glyph sheets, so they work in chat

These have no Bedrock equivalent and are left out: GUI screens, the HUD, Shaders, Text Effects, Dialogs, Emotes, Vehicles, models placed as blocks, per-face block textures and item variants.

If a reskin doesn't show on Bedrock#

Bedrock names some textures differently (golden_apple is apple_golden, wooden_sword is wood_sword). Studio renames the ones it knows. A reskin of a texture we haven't mapped simply doesn't show on Bedrock; it never breaks the pack.

If Bedrock's button symbols change#

Chat Icons replace whole pages of Bedrock's own symbols, and Bedrock keeps a few of its button prompts on those pages. A page holding one of your Icons replaces Bedrock's symbols on it.

Designing for both#

If many of your players are on Bedrock, put anything they need to know somewhere that crosses over, such as an item's name and lore, or chat. A menu that only exists as a custom screen, the HUD or a dialog is invisible to them.

Testing it#

The test server runs Geyser: join from Bedrock on the same address and Sync as usual.