Can Minecraft Java and Bedrock Play Together?

One of the most common questions from new players in the Minecraft Community is whether they can join their friends on Bedrock while playing on Java. Officially, the answer is no. The two versions are built fundamentally differently, creating a divide that prevents direct cross-play. As per usual, the community has come up with a few solutions for this. Before we get into how to do it, it’s important to understand why they are incompatible in the first place. 

Why Are the Two Editions Incompatible?

The core of the issue lies in the programming language used by each version. Minecraft Java Edition is the original 2009 release, written in Java and running exclusively on Windows, macOS and Linux PCs. 

Minecraft Bedrock Edition was however built with C++, originally intended for mobile devices called Minecraft Pocket Edition, but was later rewritten to achieve better performance on a wide range of hardware, including low-power consoles like the Nintendo Switch and phones. This C++ version was rebranded to Bedrock and became the cross-platform hub for MInecraft, unifying consoles, mobile, and Windows 10/11 versions under a single umbrella that allowed players to play together seamlessly. 

The foundational differences in code leads to many discrepancies in terms of features. Start from how the world data is stored (Java’s Anvil format and Bedrock’s LevelDB) to the syntax of in-game commands. Over the years, the two editions have also developed more of their own identity with each edition having its own different gameplay mechanics. These include but are not limited to: 

  • Redstone: Java Edition has a feature called Quasi-Connectivity (QC), a consistent behaviour integral to many advanced redstone contraptions, something that is absent in bedrock. 
  • Combat: The two editions have very different combat mechanics. Java uses an attack cooldown system introduced in Minecraft 1.9, while Bedrock retains the old pre 1.9 “spam-clicking” combat. 
  • Customization: Java Edition has a massive, open and most importantly free modding scene. While Bedrock has a curated and monetized Marketplace for Add-Ons and cosmetics.
An Example of Quasi Connectivity in Java vs the lack thereof on Bedrock

Finally, the lack of official crossplay is also due to a strategic business divergence. Early purchasers of Java Editions were promised that all future content would be included with their one time purchase, making it difficult for Mojang or Microsoft to introduce paid DLC.

The Minecraft Bedrock Add-On Marketplace
The Minecraft Bedrock Add-On Marketplace

The Bedrock Edition Marketplace however is a critical monetization channel for Microsoft since almost all add-ons are paid, with Microsoft receiving a percentage of the revenue. If an official bridge was made, it would highlight the stark contrast between the two models, and take away one of the reasons to pick Bedrock (more profitable for Microsoft) over Java.

Minecraft Bedrock's Monetization Model
Minecraft Bedrock’s Monetization Model

GeyserMC

As is often the case with Minecraft, if official support is absent, the community will often come up with a solution. In this case, the solution is GeyserMC, a project that functions as a “universal translator,” allowing players on Bedrock Edition to connect and play on Java servers.
GeyserMC works as a standalone proxy or a server plugin that sits between the Bedrock and Java server. When a Bedrock player connects, Geyser intercepts the network packets and translates them into a format that Java understands. It then translates the server’s responses back into the Bedrock protocol.
From the Java server’s perspective, the Bedrock player is not distinguished from any other Java player. This means that the Bedrock player is subject to all the rules and mechanics of the Java server. They will experience Java’s combat cooldowns and be able to build and interact with all Java exclusive mechanics such as quasi-connectivity. Geyser effectively forces the Bedrock client to play by Java’s rules. 

The GeyserMC Webpage

History of GeyserMC

The GeyserMC project had its first official release as a Spigot plugin on July 10th, 2020. Blog posts from the GeyserMC team that celebrate their anniversary suggest the inception around July 2019. It began as an open collaboration, with developers giving credit to earlier projects like DragonProxy for paving the way in protocol translation.
The project matured over time; early development in 2020 focused more on fixing the central gameplay like movement. 2021 saw the implementation of major features like support for player skins and full inventory translation. Since 2022, the project has shifted focus to ensuring stability, fixing bugs and improving performance. Over time, it has gone from a niche experiment to the core of any server that wishes to be accessible for both Java and Bedrock. 

GeyserMC 6th Anniversary Discord Announcement
GeyserMC Discord 6th Anniversary Announcement

The Geyser Ecosystem

In order to achieve proper crossplay, there needs to be more than just the GeyserMC program. There is a suite of companion projects which help resolve the secondary problems when attempting to bridge the Editions. 

Floodgate

The first major issue is authentication. Most public Java servers run in “online-mode”, a system that verifies whether each connecting player owns a legitimate paid copy of Minecraft Java Edition. Since Bedrock players authenticate using a Microsoft/Xbox Live account, they would be unable to pass the check.
Floodgate is a companion plugin that acts as an authentication bridge, allowing Bedrock players to join online-mode servers without needing to own a separate Java account. To prevent username conflicts, it adds a prefix (by default, a period “.”) to the Bedrock player’s username. It also allows displaying of Bedrock players skins and offers a “Global Linking” service to link accounts across all supporting servers. 

Floodgate adding a "." prefix before the Username
Floodgate adding a “.” prefix before the Username

Hydraulic

The biggest challenge for crossplay has always been mods. The standard Geyser installation has no way to support mods since the Bedrock client will be unable to display custom blocks. (You may have some luck combining either Polymer or PolyMC but the results have no guarantee and are yet untested).
Hydraulic is an ambitious project by the GeyserMC team aiming to solve this. It is a server-side mod for Fabric and NeoForge that works with Geyser to allow Bedrock players to join Modded servers. While it is difficult to understand exactly the way it works, development activity suggests it functions by analyzing the server’s mods and creating necessary Bedrock resource and behaviour packs in runtime. Unfortunately, as of yet, Hydraulic is in early development and at an experimental stage. Please do not attempt to use it for production use.

Other Utilities

To smooth over some parity gaps, some additional tools are available:

  • GeyserOptionalPack: A client-side resource pack for Bedrock players that fixes visual and UI discrepancies, such as enabling custom armor stand poses and adding missing particle effects. 
  • Hurricane: A server side plugin, created by a third-party developer, fixing a few specific bugs Geyser is unable to address on its own such as jerky player movement around bamboo.

Performance and Parity

Even though Geyser is a very good solution, due to the nature of real-time translation, there are some unavoidable issues. 

An example of a parity gap with armor stands
An example of a parity gap with armor stands

Performance

For the Java server itself, the overhead is negligible. The more important consideration is the performance for the Bedrock client. It is common for connecting Bedrock players to experience client-side lag, including cases of rubber-banding, delayed block breaking and sometimes, noticeable drops in framerate, especially on lower-end hardware like the Nintendo Switch. It appears that this may be related to translation latency and the varying efficiency through which the Bedrock client can process the incoming data from the Java server. One way to improve the experience for Bedrock players is to reduce the server-side view-distance setting in server.properties

Gameplay Differences/Parity Gaps

FeatureSupportNotes
Basic Combat (Melee & Ranged)Fully SupportedBedrock players use the Java server’s combat, including attack cooldowns.
Sweeping Edge EnchantmentNot SupportedThe visual effect and multi-target damage do not translate to the Bedrock client.
Redstone (Quasi-Connectivity)Fully SupportedThe server is Java, so Bedrock players can build and use QC circuits.
Redstone (Visuals)Partially SupportedRedstone dot blockstates do not translate, so the visual connection of redstone dust appears incorrect.
Inventory (Left vs. Right Click)Not SupportedGeyser cannot distinguish between left and right clicks in the inventory.
Off-hand Item UsagePartially SupportedOnly works via the /geyser offhand command. Off-hand animations require the GeyserOptionalPack.
Visuals (Custom Armor Stands)Partially SupportedRequires the GeyserOptionalPack to be installed by Bedrock clients to see custom poses.
Visuals (Specifically the Glowing Effect)Not SupportedThe glowing outline effect is not visible on Bedrock clients.
Client-Side Mod SupportNot SupportedRequires the experimental Hydraulic project.
Anti-Cheat Requires TuningBedrock movement differs from Java, possibly triggering flags in strict anti-cheat plugins.

In spite of the developers best efforts, some features simply cannot be translated due to the architectural differences between the two game clients. These are not necessarily bugs, but constraints stemming from the divide. 

Conclusion

In answer to the original question, “Can Minecraft Java play with Bedrock?”, Yes. Despite there not being an official way to do so and will likely be remaining that way for the foreseeable future, by using the GeyserMC project and its tools, it is possible to play with your Bedrock friends. It may not be perfect, but it works, and that’s the important part. 

Looking for affordable Minecraft Server Hosting? Prices start at $1.99. Go to Cybrancee.com and create your own Minecraft Server.