{"id":803,"date":"2021-01-11T00:54:40","date_gmt":"2021-01-11T00:54:40","guid":{"rendered":"http:\/\/www.ishygddt.xyz\/~blog\/?p=803"},"modified":"2022-03-08T14:05:21","modified_gmt":"2022-03-08T20:05:21","slug":"minecraft-opening-java-server-to-bedrock","status":"publish","type":"post","link":"http:\/\/www.ishygddt.xyz\/~blog\/2021\/01\/minecraft-opening-java-server-to-bedrock","title":{"rendered":"Minecraft: Opening a Java sever to console and mobile clients"},"content":{"rendered":"<p>Due to the work of some brilliant people, it\u2019s now possible to open a Minecraft <strong>Java Edition<\/strong> server to Bedrock Edition clients; and, due to another brilliant dude, it\u2019s possible to connect <em>even the nerfed console ports<\/em> up to an arbitrary server. This means you can have <span style=\"text-decoration: underline\">simultaneous crossplay<\/span> among the whole cornucopia of PC, Android, iOS, Win10, Fire\/Stick, Switch, PS4, and Xbox One Minecraft clients!<\/p>\n<p>(*The PS4, XBO, and Switch editions are on thin ice and may be kicked out by Mojang someday. But all the others should keep working forever.)<\/p>\n<p>To open your Java server up to bedrock clients , it's as simple as the following:<\/p>\n<ol start=\"0\">\n<li>Be running a Minecraft server that supports conventional plugins (e.g. Bukkit, Spigot, Paper, etc.)\n<ul>\n<li>FYSA, this post was last updated on March 4th, 2022. At this time, I was using <code class=\"\" data-line=\"\">paper-1.18.2-222<\/code>, <code class=\"\" data-line=\"\">Geyser-Spigot-2.0.2-SNAPSHOT-1043<\/code>, and <code class=\"\" data-line=\"\">floodgate-spigot-2.1.0-SNAPSHOT-64<\/code>.<\/li>\n<li>At the moment, this post does NOT explicitly cover setup for Waterfall, Velocity, or similar exotic architectures. They <em>are<\/em> supported; I'm just not documenting them today.<\/li>\n<\/ul>\n<\/li>\n<li>Prepare the plugins:\n<ol type=\"a\">\n<li>Download these 3 files:\n<ol type=\"i\">\n<li><a href=\"https:\/\/geysermc.org\/\">Geyser<\/a> (Paper servers need the <span style=\"text-decoration: underline\">Spigot<\/span> build)<\/li>\n<li><a href=\"https:\/\/github.com\/GeyserMC\/Floodgate\/wiki\">Floodgate<\/a> (Paper servers need the <span style=\"text-decoration: underline\">Spigot<\/span> build)<\/li>\n<li>Floodgate SQLite Plugin (downloaded from the same page as Floodgate)<\/li>\n<\/ol>\n<\/li>\n<li>Put the first two files in your <code class=\"\" data-line=\"\">plugins<\/code> folder<\/li>\n<li>Restart the server<\/li>\n<li>Put the third file <em>in<\/em> the folder <code class=\"\" data-line=\"\">plugins\/floodgate<\/code><\/li>\n<\/ol>\n<\/li>\n<li>You <strong>may wish to<\/strong> modify <code class=\"\" data-line=\"\">plugins\/Geyser-Spigot\/config.yml<\/code> with the following:\n<ul>\n<li><code class=\"\" data-line=\"\">passthrough-motd: true<\/code><br \/>\nThis will show Bedrock players your MOTD; I have <em>no idea<\/em> why it's not enabled by default.<\/li>\n<li><code class=\"\" data-line=\"\">passthrough-protocol-name: true<\/code><br \/>\nThis will show Bedrock players any custom \"protocol\" name you or your server software has configured.<\/li>\n<li><code class=\"\" data-line=\"\">passthrough-player-counts: true<\/code><br \/>\nShows bedrock players how many people are currently playing; again, I have <em>zero clue<\/em> why this isn't on by default.<\/li>\n<li><code class=\"\" data-line=\"\">forward-player-ping: true<\/code><br \/>\n\u201cWhile enabling this will allow Bedrock players to have more accurate ping, it may also cause players to time out more easily.\u201d<\/li>\n<li><code class=\"\" data-line=\"\">max-players: 5<\/code><br \/>\n<strong>Purely cosmetic<\/strong> hard-coded value. Recommend setting to your <em>actual<\/em> max-players value until a passthrough option is added, to avoid gaslighting Bedrock players.<\/li>\n<li><code class=\"\" data-line=\"\">cache-images: 7<\/code><br \/>\n(Not sure what this affects but it seems like a good idea)<\/li>\n<li><code class=\"\" data-line=\"\">emote-offhand-workaround: &quot;no-emotes&quot;<\/code><br \/>\nSet this to allow Bedrock players to switch items to their offhand by attempting to emote.<\/li>\n<li><code class=\"\" data-line=\"\">force-resource-packs: false<\/code><br \/>\n\u201cIf set to false, it allows the user to connect to the server even if they don't want to download the resource packs.\u201d<\/li>\n<li>If running a 1.17 or older server, you may need to set <code class=\"\" data-line=\"\">auth-type: floodgate<\/code>, but there is <strong>no need to do so<\/strong> in recent versions.<\/li>\n<\/ul>\n<\/li>\n<li>You <strong>may wish to<\/strong> modify <code class=\"\" data-line=\"\">plugins\/floodgate\/config.yml<\/code> with some of the following:\n<ul>\n<li><code class=\"\" data-line=\"\">username-prefix: &quot;*&quot;<\/code><\/li>\n<li><code class=\"\" data-line=\"\">enable-own-linking: true<\/code><\/li>\n<li><code class=\"\" data-line=\"\">link-code-timeout: 600<\/code><br \/>\n(600 = 10 minutes for convenience; default is 300 = 5 minutes)<\/li>\n<\/ul>\n<\/li>\n<li>Restart your server one final time to apply any config changes<\/li>\n<li>Open port <code class=\"\" data-line=\"\">19132\/udp<\/code> on your server's firewall, NAT, etc<\/li>\n<li>Invite your friends!\n<ul>\n<li>If they want to access the <em>same<\/em> character on both Java and Bedrock, tell them to visit the so-called \"global link\" server <a href=\"https:\/\/link.geysermc.org\/\">link.geysermc.org<\/a> <em>or<\/em> run <code class=\"\" data-line=\"\">\/linkaccount<\/code> from their Java client, if you enabled \"own linking\".<\/li>\n<li>Whitelisting Bedrock players is currently a <a href=\"https:\/\/github.com\/GeyserMC\/Floodgate\/issues\/206#issuecomment-927196546\">bloody nightmare<\/a>. Your best bet is to just turn off the whitelist for a moment and let them join, then whitelist them and turn the whitelist back on. (Alternatively, global linking can be used to work around this.)<\/li>\n<li id=\"dns\" style=\"background-color: moccasin\">Those on a Nintendo Switch, PS4, or Xbox One must change their console's DNS server to gain access:\n<ul>\n<li>Primary:<br \/>\n<code class=\"\" data-line=\"\">104.238.130.180<\/code><br \/>\n(If not working, try another server from <a href=\"https:\/\/github.com\/Pugmatt\/BedrockConnect#publicly-available-bedrockconnect-instances\">github.com\/Pugmatt\/BedrockConnect#publicly-available-bedrockconnect-instances<\/a>)<\/li>\n<li>Secondary:<br \/>\n<code class=\"\" data-line=\"\">1.1.1.1<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>It\u2019s now possible, on a a Minecraft Java Edition server, to have simultaneous crossplay among the whole cornucopia of PC, Android, iOS, Win10, Fire\/Stick, Switch, PS4, and Xbox One clients!<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[96,101],"tags":[17,55,31],"class_list":["post-803","post","type-post","status-publish","format-standard","hentry","category-howto","category-writeups","tag-gaming","tag-minecraft","tag-server"],"_links":{"self":[{"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/posts\/803","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/comments?post=803"}],"version-history":[{"count":45,"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/posts\/803\/revisions"}],"predecessor-version":[{"id":2090,"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/posts\/803\/revisions\/2090"}],"wp:attachment":[{"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/media?parent=803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/categories?post=803"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.ishygddt.xyz\/~blog\/wp-json\/wp\/v2\/tags?post=803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}