GeyserMC Documentation
website·Indexed 35 days ago
https://geysermc.orgDocumentation for Geyser, a bridge/proxy allowing Minecraft: Bedrock Edition players to connect to Minecraft: Java Edition servers. Includes guides on setup, custom blocks, extensions, and the Geyser API, as well as information on companion projects like Floodgate and Hydraulic.
What's inside GeyserMC
- GeyserMC provides a suite of tools to enable connectivity between different versions of Minecraft. The primary project, Geyser, acts as a bridge/proxy that allows players using Minecraft: Bedrock Edition to connect to Minecraft: Java Edition servers.
Overview of Hydraulic for Bedrock-to-Modded-Java connectivity
Hydraulic is a server-side mod designed to work alongside Geyser, allowing players using the Bedrock Edition of Minecraft to join modded Minecraft: Java Edition servers. Note that this project is in early development and is not recommended for production environments.Overview of Geyser Custom Items (v2)
Geyser's Custom Items (v2) system allows developers to map custom Bedrock items to modified vanilla Java items or modded non-vanilla items. This is necessary because Bedrock Edition does not natively support extending vanilla item behavior or modifying it at runtime.
Key concepts include:
- Java Item Model Definition: Introduced in Java 1.21.4+, these are found in
assets/<namespace>/items/and stored in theminecraft:item_modelcomponent. - Custom Item Definition: A Geyser-specific term for a Bedrock custom item mapped to a Java item model definition.
- Non-vanilla Custom Item Definition: A Bedrock custom item mapped to a modded Java item.
To implement custom items, you must provide a Bedrock Edition resource pack and register items via a JSON mapping file or the Geyser API.
- Java Item Model Definition: Introduced in Java 1.21.4+, these are found in
Overview of Geyser Extensions
Geyser Extensions are platform-agnostic 'plugins' specifically for the Geyser platform. They are applied only to Bedrock players joining via Geyser. Extensions utilize the Geyser API to add functionality such as registering custom items and blocks, hiding command suggestions, changing the MOTD, registering custom commands, and listening to events (e.g., emote events).Overview of Rainbow for Geyser
Rainbow is a client-sided Minecraft mod for the Fabric modloader. It analyzes resource packs on a Java client to convert custom content (created for Java Edition) into an equivalent Bedrock Edition resource pack and the necessary custom mappings for Geyser. It is specifically designed for resource packs that add new custom content; for packs that only modify vanilla content, Thunder is recommended instead.Overview of GeyserIntegratedPack features
GeyserIntegratedPack is a built-in Bedrock resource pack designed to bring Bedrock Edition closer to Java Edition parity. It is included with Geyser and does not require manual installation. Key features include:
- Visibility for armor base arms and baseplates
- Armor stand poses and Illusioner support
- Missing particles and offhand animations
- Shulker invisibility parity and spectral arrow entity textures
- Bypassing the scoreboard character limit
- Hiding Java-non-existent UI elements (e.g., cartography table text input, creative 2x2 crafting grid, specific command block and structure block fields)
- Removing accessibility backgrounds on weapon cooldown titles.
Overview of Geyser Custom Entity API
The Custom Entity API (introduced in Geyser API 2.11.0) allows Geyser extensions to register custom Bedrock entity definitions to replace Java entity types during spawning events. This is primarily used to support custom entities for Bedrock players, as Bedrock supports custom entity types while Java typically simulates them using armor stands or display entities.
Key Constraints:
- The API is marked
@ApiStatus.Experimentaland may change without prior deprecation. - It cannot be used via JSON mappings.
- Custom entity definitions require a corresponding Bedrock resource pack defining textures and animations.
- The API is marked
Overview of Geyser Event Categories
Geyser provides a powerful event system used by Extensions, plugins, and mods. Events are organized into four primary categories:
- Bedrock: Events triggered by Bedrock clients (e.g.,
ClientEmoteEvent,SessionLoginEvent). - Java: Events triggered by the Java server (e.g.,
ServerDefineCommandsEvent). - Connection: Connection-related events, such as ping events for custom MOTDs.
- Lifecycle: Events triggered during Geyser's internal lifecycle, such as loading resource packs or custom items.
- Bedrock: Events triggered by Bedrock clients (e.g.,
Overview of custom skull registration in Geyser
Because Bedrock Edition lacks native support for custom skull items, Geyser implements a workaround by pre-registering skulls. Geyser generates a custom resource pack on startup containing the necessary geometry and textures. This allows custom skulls to be held in player inventories and displayed correctly when worn or held by entities (as they are treated as blocks with associated attachables). Registration can be performed via JSON mappings or the Geyser API.Convert Java Edition resource packs to Bedrock using Thunder
Thunder is a Java application that converts simple Java Edition resource packs (specifically those that modify existing vanilla assets) into Bedrock Edition packs.
Important Constraints:
- The project is in early beta.
- It does not support the conversion of custom items. For custom item conversion, use Rainbow.
Enable Bedrock Edition clients to join Java Edition servers with Geyser
Geyser is a translator program that enables crossplay by sitting between a Minecraft: Bedrock Edition client and a Minecraft: Java Edition server. It translates data packets between the two editions in real-time. Geyser supports any modern Minecraft version and can be deployed as a plugin or as a standalone program. It is compatible with Bedrock clients on Windows 10/11, iOS, Android, and consoles.Retrieve the latest build for a specific project version
Use the
GET /v2/projects/:project/versions/:version/builds/latestendpoint to get information about the most recent build of a specific project version.Path Parameters:
project(string, required): The project identifier. Must match the regex[a-z]+. Example:geyser.version(string, required): The version of the project. Must match the regex(?:latest|[0-9.]+-?(?:pre|SNAPSHOT)?(?:[0-9.]+)?)?.
# Example request to get the latest build of Geyser version 'latest' curl https://downloads.geysermc.org/v2/projects/geyser/versions/latest/builds/latest