From 7e6e4153b8f9c303d22df1a7aa322f484173f6dc Mon Sep 17 00:00:00 2001 From: theoht <47785739+theoht@users.noreply.github.com> Date: Tue, 12 May 2026 23:04:23 +0200 Subject: [PATCH 1/3] added play with friends doc --- package-lock.json | 107 +++-------------- src/constants/sidebar.ts | 1 + .../play-minecraft-with-friends-natively.mdx | 110 ++++++++++++++++++ 3 files changed, 129 insertions(+), 89 deletions(-) create mode 100644 src/content/docs/play-minecraft-with-friends-natively.mdx diff --git a/package-lock.json b/package-lock.json index fc2c343..2963cf6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,6 @@ "requires": true, "packages": { "": { - "name": "docs", "version": "1.1.0", "dependencies": { "@astrojs/check": "^0.9.4", @@ -166,6 +165,7 @@ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.27.0.tgz", "integrity": "sha512-EJJ7WmvmUXZdchueKFCK8UZFyLqy4Hz64snNp0cTc7c0MKaSeDGYEDxVsIJKp15r7ORaoGxSyS4y6BGZMXYuCg==", "license": "MIT", + "peer": true, "dependencies": { "@algolia/client-common": "5.27.0", "@algolia/requester-browser-xhr": "5.27.0", @@ -494,6 +494,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", "license": "MIT", + "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", @@ -1390,9 +1391,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1409,9 +1407,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1428,9 +1423,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1447,9 +1439,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1466,9 +1455,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1485,9 +1471,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1504,9 +1487,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1523,9 +1503,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1542,9 +1519,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1567,9 +1541,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1592,9 +1563,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1617,9 +1585,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1642,9 +1607,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1667,9 +1629,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1692,9 +1651,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1717,9 +1673,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2032,9 +1985,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2048,9 +1998,6 @@ "cpu": [ "arm" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2064,9 +2011,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2080,9 +2024,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2096,9 +2037,6 @@ "cpu": [ "loong64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2112,9 +2050,6 @@ "cpu": [ "loong64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2128,9 +2063,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2144,9 +2076,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2160,9 +2089,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2176,9 +2102,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2192,9 +2115,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2208,9 +2128,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2224,9 +2141,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2780,6 +2694,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz", "integrity": "sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==", "license": "MIT", + "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -2790,6 +2705,7 @@ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", "license": "MIT", + "peer": true, "peerDependencies": { "@types/react": "^18.0.0" } @@ -2929,6 +2845,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2950,6 +2867,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -2980,6 +2898,7 @@ "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.27.0.tgz", "integrity": "sha512-2PvAgvxxJzA3+dB+ERfS2JPdvUsxNf89Cc2GF5iCcFupTULOwmbfinvqrC4Qj9nHJJDNf494NqEN/1f9177ZTQ==", "license": "MIT", + "peer": true, "dependencies": { "@algolia/client-abtesting": "5.27.0", "@algolia/client-analytics": "5.27.0", @@ -3142,6 +3061,7 @@ "resolved": "https://registry.npmjs.org/astro/-/astro-5.18.1.tgz", "integrity": "sha512-m4VWilWZ+Xt6NPoYzC4CgGZim/zQUO7WFL0RHCH0AiEavF1153iC3+me2atDvXpf/yX4PyGUeD8wZLq1cirT3g==", "license": "MIT", + "peer": true, "dependencies": { "@astrojs/compiler": "^2.13.0", "@astrojs/internal-helpers": "0.7.6", @@ -3916,6 +3836,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001718", "electron-to-chromium": "^1.5.160", @@ -7102,6 +7023,7 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz", "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", "license": "MIT", + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -7164,6 +7086,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -7173,6 +7096,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", "license": "MIT", + "peer": true, "dependencies": { "scheduler": "^0.26.0" }, @@ -7551,6 +7475,7 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.1.tgz", "integrity": "sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==", "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -7862,7 +7787,8 @@ "version": "4.1.10", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.10.tgz", "integrity": "sha512-P3nr6WkvKV/ONsTzj6Gb57sWPMX29EPNPopo7+FcpkQaNsrNpZ1pv8QmrYI2RqEKD7mlGqLnGovlcYnBK0IqUA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/tapable": { "version": "2.2.2", @@ -7999,6 +7925,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8302,6 +8229,7 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -8877,6 +8805,7 @@ "version": "3.25.76", "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/src/constants/sidebar.ts b/src/constants/sidebar.ts index 2d43cf5..8769160 100644 --- a/src/constants/sidebar.ts +++ b/src/constants/sidebar.ts @@ -100,6 +100,7 @@ export function getSidebar(lang = 'en'): SidebarSection[] { title: 'Other', items: [ { title: 'How do I play Minecraft with friends?', href: base + '/how-to-play-minecraft-with-friends' }, + { title: 'Play with friends (native)', href: base + '/play-minecraft-with-friends-natively' }, { title: 'Contributors', href: base + '/contributors' }, ], }, diff --git a/src/content/docs/play-minecraft-with-friends-natively.mdx b/src/content/docs/play-minecraft-with-friends-natively.mdx new file mode 100644 index 0000000..a273457 --- /dev/null +++ b/src/content/docs/play-minecraft-with-friends-natively.mdx @@ -0,0 +1,110 @@ +--- +title: Play Minecraft with friends, natively +description: Minecraft Java is finally getting a built-in Friends List and peer-to-peer multiplayer. Here's how to use it, and when you'll still want a real server. +--- + + +Mojang first shipped the Friends List and peer-to-peer (P2P) multiplayer in **Java Edition 26.2 Snapshot 7**, with a full release planned for the next major update. It lets you open any single-player world to your friends over the internet without renting a server, paying for Realms, or being on the same Wi-Fi. Just like Bedrock players have had for years. + +This guide walks through how to set it up and use it, and provides you with a list of pros and cons - indicating when you might want to use a Seedloaf server instead. + +## 1. What you will need + +A few things have to be true before any of this works: + +- You and your friends are all on **Minecraft: Java Edition**, version 26.2 or newer (currently in snapshot, so back up your worlds before you touch it). +- Everyone is signed in with a **Microsoft / Xbox account**. +- Your Xbox **privacy settings** allow you to add friends and join multiplayer sessions. If you're using a child account, the parent account has to flip those switches first. + +If you're not sure about the privacy side, head to your Xbox account settings on the web and check the *Privacy & online safety* section before troubleshooting in-game. + +## 2. Adding a friend + +The Friends List lives on the **title screen and the pause menu** - there's a new button where the rest of the multiplayer options are. + +1. Open the Friends List +1. Click **Add Friend** +1. Type your friend's **Minecraft Profile Name** (this is the same name shown above their head in-game) +1. Send the request + +Your friend will see a pending request on their end and can accept or decline. + +## 3. Opening a world to your friends + +This is the part that replaces the old *Open to LAN* button. From inside a single-player world: + +1. Pause the game +1. Click **Multiplayer Options** (the renamed LAN screen) +1. Choose a visibility level: + - **Off** — fully private, just you + - **Local** — friends on the same network can join (this is the classic LAN behaviour) + - **Online** — friends from your Friends List can join over the internet +1. Confirm — your world is now open + +From here you can either **invite specific friends directly**, or wait for them to **request to join**. You'll get a prompt either way and can accept or deny. + +### A few things worth knowing: + +- The world runs on **your machine**. When you close Minecraft or shut your laptop, the world goes offline and your friends get booted. +- Performance depends on your hardware *and* your upload speed. P2P is direct between players, so a slow home connection means a laggy session. +- The host's settings (difficulty, game rules, cheats, etc.) apply to everyone who joins. + +## 4. Joining a friend's world + +Going the other direction is just as simple: + +1. Open your Friends List +1. Find a friend whose world is open to **Online** +1. Click **Request to Join** (or accept their invite if they sent one first) + +Once they accept, you'll drop straight into their world. No IP, no port, no copy-pasting a string of numbers into the multiplayer screen. + +--- + +## When the native feature is enough + +The Friends List is brillaint and it's the right tool for a lot of cases. You probably don't need a server if: + +- You're playing **vanilla** Minecraft +- You're a **small group of players** (2–4 players) +- You're all online at roughly the same time +- The host has a modern PC and a good upload speed +- You don't mind the world only being available when the host is playing + +For a quick weeknight session with a couple of friends, this is going to be the easiest option Java has ever had. + +## When you'll want a Seedloaf server instead + +P2P is great for casual play, but it hits a wall the moment your server gets serious. Here's when you might look for a hosted server: + +### You want to play with mods or plugins + +The Friends List feature is for **vanilla Java**. The moment you want Fabric, Forge, NeoForge, or a Paper-based server, you're going to need alternative hosting options. Every player has to have the exact same mods installed, and *someone* has to be the source of truth for the modpack and configuration. A [Seedloaf world](https://seedloaf.com/) gives you a dedicated `mods` or `plugins` folder you can drop files into without rebuilding everyone's setup. See [Installing Mods/Plugins](/documentation/installing-mods-or-plugins) for the full walkthrough. + +### Your laptop can't carry the world + +P2P offloads everything onto the host's machine — CPU, RAM, chunk generation, mob AI, etc. If you have a lower end PC running vanilla Minecraft solo, adding three more players who all want to load new chunks at once is going to be a challenge. A Seedloaf server runs on dedicated hardware so your machine doesn't chug. + +### You want the world online when you're not + +This is the big one. With P2P, the world is only alive when the host is. Our premium servers are up 24/7, meaning your world stays up on its own schedule. + +### You're playing with more than a small group + +Once you're past five or six players, P2P starts struggling. Home connections aren't built to upload world data to ten people at once, and the host's machine becomes a bottleneck for everyone. Dedicated hosting is designed to handle this. + +### You want Bedrock friends to join + +Native P2P is **Java-only**. If you've got friends on Bedrock — Switch, Xbox, PlayStation, phones, the Windows app — they can't join a P2P session. Seedloaf supports [Geyser](/documentation/installing-geyser), which bridges Bedrock players straight into your Java world. + +### You want voice chat, backups, file access, or real admin tools + +P2P gives you the world and not much else. If you want [Simple Voice Chat](/documentation/simple-voice-chat), automated backups, a console, the ability to upload a [custom world](/documentation/custom-world-upload), [datapacks](/documentation/installing-datapacks), or fine-grained [user roles](/documentation/add-users). Seedloaf gives you access to all of this. + +### You hit a sketchy NAT or carrier-grade routing + +P2P relies on your two machines being able to talk directly. If you're behind a strict CG-NAT (common on mobile-tethered or some apartment ISPs), the connection can fail, and there's not much you can do about it from inside Minecraft. A Seedloaf server allows everyone to connect reliably. + +--- + +Tl;DR: use the Friends List for casual vanilla sessions with a couple of friends, and spin up a [Seedloaf world](https://seedloaf.com/) the moment you want mods, more players, better hardware, or a world that doesn't disappear when you close your laptop. The two options complement each other - pick whichever fits the session you're trying to run. \ No newline at end of file From 8bf98fa6d7050115260a71f9ee772f5b43d6ca0f Mon Sep 17 00:00:00 2001 From: Jasper Date: Tue, 12 May 2026 23:21:45 +0200 Subject: [PATCH 2/3] Update src/content/docs/play-minecraft-with-friends-natively.mdx --- src/content/docs/play-minecraft-with-friends-natively.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/play-minecraft-with-friends-natively.mdx b/src/content/docs/play-minecraft-with-friends-natively.mdx index a273457..bcac2a7 100644 --- a/src/content/docs/play-minecraft-with-friends-natively.mdx +++ b/src/content/docs/play-minecraft-with-friends-natively.mdx @@ -63,7 +63,7 @@ Once they accept, you'll drop straight into their world. No IP, no port, no copy ## When the native feature is enough -The Friends List is brillaint and it's the right tool for a lot of cases. You probably don't need a server if: +The Friends List is brilliant and it's the right tool for a lot of cases. You probably don't need a server if: - You're playing **vanilla** Minecraft - You're a **small group of players** (2–4 players) From a1ea49a8bfde5ce1c13dcaff92cc19b33b8d2196 Mon Sep 17 00:00:00 2001 From: Jasper Date: Tue, 12 May 2026 23:21:52 +0200 Subject: [PATCH 3/3] Update src/content/docs/play-minecraft-with-friends-natively.mdx --- src/content/docs/play-minecraft-with-friends-natively.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/play-minecraft-with-friends-natively.mdx b/src/content/docs/play-minecraft-with-friends-natively.mdx index bcac2a7..1c2e660 100644 --- a/src/content/docs/play-minecraft-with-friends-natively.mdx +++ b/src/content/docs/play-minecraft-with-friends-natively.mdx @@ -107,4 +107,4 @@ P2P relies on your two machines being able to talk directly. If you're behind a --- -Tl;DR: use the Friends List for casual vanilla sessions with a couple of friends, and spin up a [Seedloaf world](https://seedloaf.com/) the moment you want mods, more players, better hardware, or a world that doesn't disappear when you close your laptop. The two options complement each other - pick whichever fits the session you're trying to run. \ No newline at end of file +TL;DR: use the Friends List for casual vanilla sessions with a couple of friends, and spin up a [Seedloaf world](https://seedloaf.com/) the moment you want mods, more players, better hardware, or a world that doesn't disappear when you close your laptop. The two options complement each other - pick whichever fits the session you're trying to run. \ No newline at end of file