

v0.66.1 REBORN P2P + Mini Fixing BUG
🐛 Bug Fixes & Patches
- Fix p2p connection (5d3a93f338fbb779a12e4b8d4a7e6ced0a4d1fa4)
- Avoid bundle redundent file to prod (c80f0425f5f6b50c3f1082e7ca6220b7fe07858c)
- Should select version when select modloader (eb94ce3cbea55914eec314067ac7396f8c904c39)
- improve marketplace installation flow (25d955cb768d834333fc311cf697f8480ce21a1c)
- sanitize marketplace file paths (ff88eea763df35d28e619bbff598b9d578cb807a)
🏗️ Refactors
- gate multiplayer behind XMCL account login (a19ac5e6b5d0770ec3469eee74b3cfe1d834eaf2)
- add DPoP support to XMCL account auth (7dfaf0596d8d4e3c4b950f228e67e93237880e7e)
P2P Multiplayer Reborn: Cloudflare Workers, DPoP Security & Zero-Trust Privacy
We are thrilled to announce that P2P Online Multiplayer is officially back and fully operational in XMCL v0.66.0 and v0.66.1!
Following the temporary downtime caused by Deno Deploy quota exhaustion, we completely rebuilt our WebRTC signaling infrastructure from the ground up. The new system is powered by Cloudflare Workers with Durable Objects, client-side DPoP cryptographic authentication (RFC 9449), and an architecture designed around strict zero-trust privacy.
Major Update
about 8 hours ago
P2P Multiplayer Reborn: Cloudflare Workers, DPoP Security & Zero-Trust Privacy
SERVICE STATUS: ONLINE
P2P Multiplayer Room Hosting is Fully Restored! Update your launcher to XMCL v0.66.1 or later to enjoy high-speed, port-forwarding-free multiplayer with your friends worldwide.
1. The Return of Seamless World Sharing
XMCL's P2P multiplayer allows you to host single-player Minecraft worlds and play with friends across the internet without port forwarding, dedicated server setups, or third-party VPN tools like Hamachi or Radmin.
With the release of XMCL v0.66.0 (new account system, host-star multiplayer v2 client, room master migration & reconnect) and stability patches in v0.66.1 (P2P connection fix, DPoP auth, multiplayer gated behind account login), room creation, WebRTC ICE candidate exchanges, and connection handshakes are faster and more reliable than ever.
2. New Backend Architecture: Cloudflare Workers, Durable Objects & xmcl-web-api
To replace the legacy Deno Deploy infrastructure, we migrated our entire backend to Cloudflare Workers and open-sourced the brand-new backend repository: xmcl-web-api. The backend is built on the Hono web framework.
+---------------------------+ +---------------------------+
| | signaling.xmcl.app | |
| Host XMCL Launcher | <==== WebSocket + DPoP Auth ====> | Guest XMCL Launcher |
| (Local DPoP Key Pair) | (Durable Object per Room) | (Local DPoP Key Pair) |
+---------------------------+ +---------------------------+
| |
+=================== Direct WebRTC P2P Connection ===============+
(Encrypted Host-Star DataChannel)
Production Domain Split
The backend runs as three independent Cloudflare Workers, each with its own domain:
| Domain | Purpose |
|---|---|
api.xmcl.app |
Core API: launcher updates, notifications, flights, mod translations |
ai.xmcl.app |
AI chat completions proxy (Agnes) |
signaling.xmcl.app |
Multiplayer room signaling (/v1/multiplayer/*) and WebRTC (/v1/rtc/official) |
Why Cloudflare Workers & Durable Objects?
- Global Low Latency: Signal exchanges route through Cloudflare's 300+ edge data centers globally, minimizing WebRTC connection setup times.
- Stateful Room Objects: Each P2P room is managed by a dedicated
MultiplayerRoomObjectDurable Object instance withmaster/memberroles and revisioned room-state snapshots. When a room closes or all players disconnect, the Durable Object is automatically evicted from memory. - High Availability: Built-in DDoS protection and serverless scalability ensure room signaling never suffers from traffic spikes or single-point failures -- eliminating the Deno Deploy quota exhaustion that caused the previous outage.
3. Why Account Sessions are Now Required
The XMCL account system was introduced in v0.66.0 (add account system #1619). Starting with v0.66.1, hosting or joining P2P online multiplayer rooms requires logging in to a lightweight XMCL Web Account (gate multiplayer behind XMCL account login).
The Reasons for Account Authentication:
- Spam & Abuse Prevention: Open WebRTC signaling brokers are vulnerable to automated botnets, room spamming, and denial-of-service exploits. Account sessions provide rate-limiting and access control.
- Cryptographic Identity Verification: Accounts enable the launcher to issue secure, DPoP-signed session tokens to verify that room hosts and guests are legitimate clients.
- STUN/TURN Relay Management: When direct P2P connections are restricted by strict NAT routers, account sessions grant authenticated relay access to keep your game connected smoothly.
4. Zero-Trust Privacy & Security Architecture
We understand that introducing user accounts raises privacy questions. We designed our authentication and session system under a strict Zero-Trust Privacy Model.
+-----------------------------------------------------------------------------------+
| XMCL ZERO-TRUST PRIVACY ARCHITECTURE |
+-----------------------------------------------------------------------------------+
| 1. Client-Side DPoP : Private keys generated & stored on your device only. |
| 2. Developer Access : ZERO access to private keys, tokens, or credentials. |
| 3. Cloudflare Managed : Auth & signaling run in isolated Cloudflare Workers. |
| 4. Ephemeral Rooms : Durable Objects evicted when rooms close or idle out. |
| 5. No Data Harvesting : Zero tracking, zero IP logging, zero activity selling. |
+-----------------------------------------------------------------------------------+
1. Client-Side DPoP Cryptographic Security (RFC 9449)
XMCL v0.66.1 implements DPoP (Demonstrating Proof-of-Possession) as a client-side authentication mechanism for Web Account sessions.
- When you log in, your launcher generates an asymmetric cryptographic key pair locally on your computer. The private key never leaves your device.
- Every API request sent to
xmcl-web-apiincludes a DPoP proof signed by your local private key, cryptographically binding the token to your specific device. - Even if a session token were intercepted in transit, it is completely useless without your device's private key. This eliminates traditional token-theft attacks.
2. Zero Access by Developers & Moderators
- Core XMCL developers, server admins, and moderators have ZERO access to user private keys or credentials.
- All account authentication, token issuance, and validation run strictly inside Cloudflare's isolated Worker execution environment. No human operator can extract runtime secrets from a running Worker.
3. Ephemeral Room Signaling via Durable Objects
- P2P room signaling data lives exclusively inside Cloudflare Durable Objects -- stateful, per-room instances that exist only while a room is active.
- When all players disconnect or a room is closed, the Durable Object is automatically evicted from memory. No room state, chat history, or connection metadata persists after a session ends.
- The launcher does not maintain any database storing user activity logs, connection history, or room archives.
4. No Data Harvesting or Activity Tracking
- The launcher does NOT collect, harvest, track, or monetize user account data, IP addresses, or playing habits.
- XMCL remains 100% open-source, allowing anyone to audit both the launcher source code and the
xmcl-web-apibackend repository.
5. How to Start Playing P2P in XMCL v0.66.1
Getting back into P2P multiplayer takes less than a minute:
- Update XMCL: Download the latest version (v0.66.1).
- Create / Sign In to Account: Click the account menu in the top-right corner and create a lightweight XMCL account.
- Launch Your World: Start any Minecraft single-player world.
- Open P2P Room: Press Esc -> Click "Open to LAN / P2P" -> Share your room link or QR code with your friends!
6. Open Source Verification & Release Links
We invite security researchers and community developers to inspect our open-source codebase:
- XMCL Launcher Releases: v0.66.0 Release Notes | v0.66.1 Release Notes
- Web API Backend Repository: github.com/Voxelum/xmcl-web-api
- RFC 9449 DPoP Standard: OAuth 2.0 Demonstrating Proof-of-Possession
- Previous Outage Report: P2P Multiplayer Service Downtime & Backend Migration
Thank you for your patience during the backend migration. Happy gaming!
The XMCL Core Team
Стосовно одного лаунчера від українця
Я просто побачив відео про лаунчер CL launcher і я шукав огляди на цей лаунчер, але я не зміг знайти крім нього - https://youtu.be/PMiezww5OA4
Честно кажучи просто хотілось поспілкуватися як ви відноситесь до цього лаунчера ? Просто цікаво хто використовує цей лаунчера і поспілкуватися що до вайб кодинга по цьому лаунчеру
v0.66.0 Big Update for AI + Bug Fixing
🚀 Features
- add hide installed mods option to marketplace filter (#1635) (baa8cdea5da59949ccf076dae0bc7b35a384e005)
- multiplayer: support room master migration and reconnect (c43748c1096df4ae8f323bb0a003bc112d6a5faf)
- centralize XMCL API endpoints (d29a08aa60573971860867dafec980dd33b03374)
- agent: gate built-in provider behind flight (2457da9326dd8af4a1b4182886c2762be00a8baa)
- use split XMCL API domains (7b42ac3b38e241effa2f85ac31cf5b952768e73e)
- xmclAccount: auto-refresh session tokens and classify API errors (737e14f2646cb18f3f6d34269d13a512aae7ed3c)
- agent: integrate built-in provider and omni workflow (7dd0a825054fb4b9d8138e509f46c52345874428)
- launch: retain recent diagnostics history (5e660190178da61a659b6371d063c052d3158b94)
- mods: stage market installs with dependencies (34e31d8f809f820104a4e4f801f5d0ccb101ec84)
- server: add local and remote server runtime (780dfdf96af415c34e504f63d114dc05197b719c)
- support fullscreen monitor selection (5ea6d5f2177738d880517efc899a5c823f7a2b79)
- add host-star multiplayer v2 client (#1627) (cf48e0c235fe80dc3d1ab373b56278b7f2c80722)
- add account system (#1619) (df7e47df6a2770007c25da9253810cc966935af9)
🐛 Bug Fixes & Patches
- Fix some java glitch (163d47c415361c5031b1933ca537d9ca4229d68e)
- agent: stop migrating legacy provider settings (848c045533a25e1b5835754e6c64df776a803c42)
- modrinth: remove projects from collections (aff6e1e85723513090b3d6d4cdcbe79930a6a87d)
- mods: clarify filtered mod groups (3df2940f38a34d219759be38d002ca69f19da3e9)
- ci: apply publishConfig overrides when publishing core packages (1dc8d062a57f4640d15028b9f623a394127d5c2d)
- Try to improve login experience (eac18b2b3b0ada57b912fcf0a87eacd86ed2a565)
- auth: serialize Microsoft native broker initialization (dd60a7d597069732902929bcab3d7d1c341c047f)
- launch: recover Linux display environment (24772eaaf01514c48df29cfa5472eaf7e8e1cefe)
- use XMCL auth for RTC requests (8a49fc6e23e6b7cf12e224ddc111c504b83056c7)
- preserve HTTP cache mode through Electron interception (bdcb538f83b3fffc9c6ca9d43268b82900fcca56)
- electron: retry requests with replayable bodies (3edb6b7290cc2f440656d19bf30a63b6c214c5f7)
- settings: preserve proxy protocol (8303ef5d5a8380aad7b00e24c8b2920280ec327d)
- prepare MSAL native runtime safely (e069a396a39fab21d30119c9093a996c8cedb9c7)
- Adjust layout (78986e33f6eed56601db232e139a6b8253f77cc3)
- store instance theme and icon media locally (8f6ccc3efadca9c2e9dc4a6423171877f76058be)
- correct Microsoft child-account login error UX (6cb0269df9ddc11869c4504b6056f743954dd4fe)
- correct resource pack drag ordering (1cee82600a6983bdb587d09840d9649e27900695)
- Redundent user refresh (6bf8e0705e9763ba6e8e25da02547ad8730c94c6)
- auth: not allowing multiple accounts (7714801b11ffd92669e1914b12c9377d3b60bb07)
- use configured token for core docs deployment (a78996298e1054a00e386917c8e967b0914d1d89)
🏗️ Refactors
- friends: remove group-backed presence (73e4ce69813af1181b31b9e5b9db8bc109875b7a)
- agent: add provider presets with per-provider API keys (#1630) (1da004ac5d65dc127e8e633cf51f3314162e2a64)
- rework agent workflows and action menu (#1618) (a90b8a00a106d5987e3062d53d0353c2b40dc437)
Є якісь реально класні лаунчери від українських розробників ?
reddit.comStatus Update: P2P Multiplayer Service Downtime & Backend Migration
An in-depth update regarding the temporary outage of XMCL's Peer-to-Peer (P2P) online multiplayer service, how the launcher interacts with `xmcl-web-api`, why Deno API limits were exhausted, and our current backend migration.
---
<PostDetail>
:::warning SERVICE NOTICE
**P2P Online Room Hosting is Temporarily Unavailable.**
When attempting to create or join P2P rooms in XMCL, you may encounter `multiplayer_room_request_failed` or WebSocket connection errors. Local LAN play and joining dedicated servers remain **100% functional**.
:::
## Overview
Over the past few days, many players have reported that creating or joining online multiplayer rooms through X Minecraft Launcher (XMCL) is currently failing.
We want to provide full transparency by explaining how XMCL's P2P multiplayer system works behind the scenes, how the launcher communicates with our backend ([`xmcl-web-api`](https://github.com/Voxelum/xmcl-web-api)), why changes in Deno Deploy's free tier quotas caused this service interruption, and how we are fixing it.
---
## How XMCL P2P Multiplayer Works
XMCL's P2P multiplayer allows players to host single-player Minecraft worlds and open them to friends over the internet **without port forwarding, external server hosting, or third-party VPN tools like Hamachi**.
```
+------------------+ Signaling & Ticket Broker +------------------+
| | (https://api.xmcl.app / Web-API) | |
| Host Launcher | <======== WebSocket Control ========> | Guest Launcher |
| | (SDP & ICE Exchange) | |
+------------------+ +------------------+
| |
+================ Direct P2P WebRTC Connection ===============+
(Host-Star DataChannel Mesh)
```
### 1. Launcher Architecture & `xmcl-web-api`
The launcher (`xmcl-electron-app`) uses `@xmcl/wrtc-multiplayer` and `PeerService` to manage room life-cycles and peer connections:
- **Host Room Creation**: The host issues a request to `POST /v2/multiplayer/rooms`. The backend validates the player's XMCL session token and issues a 5-minute single-use admission ticket and WebSocket URL.
- **Control Socket**: The host opens a persistent control WebSocket (`GET /v2/multiplayer/rooms/:roomId/socket?ticket=...`).
- **Guest Admission**: Guests request an admission ticket via `POST /v2/multiplayer/rooms/:roomId/join` and connect via WebSocket to exchange WebRTC offer/answer SDP payloads and ICE candidates.
- **Direct P2P DataChannels**: Once SDP negotiation finishes, guests close their temporary WebSocket connection. All Minecraft game traffic and mod/file transfers flow **directly between peers** via WebRTC DataChannels and a local virtual port bridge (`http://localhost:25566/files/...\`). Game traffic is **never** relayed through the web API servers.
### 2. Network Topology: Host-Star Mesh
Rather than forcing every guest to connect to every other guest, XMCL uses an efficient **Host-Star topology**:
- The **Host** maintains a persistent control socket to accept new guest handshakes immediately.
- **Guests** establish WebRTC links exclusively with the host.
- STUN/TURN servers (`/rtc/official`) assist in discovering public IP addresses and traversing complex home NATs/routers (via UPnP / NAT-PMP).
---
## The Root Cause: Deno API Quotas & Limit Exhaustion
Our primary public deployment of [`xmcl-web-api`](https://github.com/Voxelum/xmcl-web-api) relied on **Deno Deploy** (using Deno KV and native WebSocket `BroadcastChannel` signaling).
Recently, Deno instituted strict platform policy updates and reduced free-tier quotas across Deno Deploy and Deno KV:
**Exponential User Growth**: As XMCL's player base expanded, the sheer volume of daily WebSocket room creations, authorization tickets, and real-time signaling exchanges increased dramatically.
**Quota Exhaustion**: The total API usage generated by active P2P multiplayer sessions **surpassed 100% of all Deno free-tier limits**.
**API Rejection**: Deno Deploy began rejecting incoming `/v2/multiplayer/rooms` API requests and closing WebSocket connections.
Because the signaling server acts as the essential "handshake broker" required for WebRTC peers to exchange ICE candidates and establish direct connections, room creation became unavailable worldwide.
---
## What We Are Doing: Migration to Cloudflare Durable Objects
We are actively completing a major architectural migration of [`xmcl-web-api`](https://github.com/Voxelum/xmcl-web-api) away from Deno Deploy to **Cloudflare Workers with `MultiplayerRoom` Durable Objects**.
### Why Cloudflare Durable Objects?
- **Global High Availability**: Durable Objects provide stateful, low-latency WebSocket signaling nodes globally distributed across Cloudflare's edge network.
- **Zero Third-Party Quota Blocks**: Eliminates the strict free-tier API rate limits that broke the Deno deployment.
- **Enhanced Security**: Admission tickets (`XMCL_MULTIPLAYER_TICKET_SECRET`) expire after 5 minutes and single-use validation prevents room hijacking.
- **Improved TURN Infrastructure**: Expanded STUN/TURN relay server pools for higher NAT traversal success rates.
---
## What Players Should Do
:::tip PLEASE WAIT PATIENTLY
We kindly ask all players to **please wait and be patient** while we complete the backend migration and deploy the new signaling infrastructure.
:::
While online P2P room hosting is being restored:
- 📶 **Local Area Network (LAN) Play**: Playing with friends on the same physical Wi-Fi or home network operates via local multicast/ssdp discovery and remains **100% functional**.
- 🌐 **Dedicated Minecraft Servers**: Joining standard public or private Minecraft servers via IP address or domain is **completely unaffected**.
---
## Announcement Channels
Once the new Cloudflare Durable Objects backend is fully deployed and verified, **we will immediately announce service restoration** on our official communication channels:
- 📰 **XMCL Blog**: Updates and post-mortems will be published directly here in our journal.
- 💬 **Community Channels**: Announcements will be posted in our **Discord server** and **Reddit community**.
*(Note: Official status announcements are published via our blog and social channels rather than GitHub repository issues).*
We sincerely apologize for the disruption to your multiplayer gaming sessions. Thank you for your patience, support, and understanding while we upgrade our infrastructure!
v0.65.1
0.65.1
🐛 Bug Fixes & Patches
- microsoft auth xbox error guide (#1601) (62a98bfa35bfe48b20bf7b9a571ed002224288c7)
- runtime: preserve existing Steam shortcuts (cdcc6e6be2696995f0fefff7da97efd5b3f4532f)
- select and detect Zulu JRE by host libc (musl vs glibc) (#1617) (04c8c70aedd8ea60a783083855f577c266c9aeb4)
- Accept hyphenated Microsoft email addresses during login (#1610) (89fedf11c993b580b0403b730a808216f3e0b984)
- auth: resolve 24-hour Microsoft account reauthentication issue (cc3896a6403a5a3be5549336627e1da35f910530)
- unblock setup completion (7b6d7992da645e2df21e2c9223881f7bcdf8f168)
🏗️ Refactors
- implement gamepad control enhancements, UI toggles, and contextual fixes (#1611) (76f6403e256cc2e190dd6b6ac38723edf55e6546)
- add Xbox Live presence status support for friends (#1615) (f861c1026c410eb2be9f8d7a9cb8f585efe3af56)
v0.65.0 + New Designer site
🚀 Features
- telemetry: capture safe Java runtime resolve diagnostics (fc04a1de7bc44c9eb6d099b9297f720ca3edefa2)
🐛 Bug Fixes & Patches
- runtime: type zip cache correctly (d071d3c96a13ec7b458f79a8da5b58a94123bcca)
- Regression of drop file in new electron (5ab494229e22331839d783aa026d615028f16384)
- watcher: release stale filesystem watchers (67bdfab8b9f4f1b203c8f088facebfede49c15dd)
- modpack: reuse ZipManager inode aliases (34701f9267ba381ecedf10a06634e2723a5da430)
- instance: detect case-colliding modpack paths (d6078263b1791c236d69e28e41b3292ecde95566)
- modpack: skip missing CurseForge files (6cd28fb6919ea98d92a148aa6bc2b65bfc91840f)
- network: preserve multipart uploads in Electron (19c4e6c789373f9f9f11d22ec72f1f3d47a3d4f0)
- telemetry: track end-to-end install outcomes (6eee5f64a0fadfb952b1517dda9ac64c9195e791)
- user: handle expected skin upload failures (c353022cb57aa80ff109a209f7985d0c176be5dd)
- installer: recover range downloads and diagnose processors (b7354d3e69110e699ee566dc990a6f3680fcd312)
- java: add Zulu Java 25 fallback runtimes (9c81689c36f4e26104db835c350ece329051c36b)
- java: gate x64 runtime fallback on WOW64 (51a472b109764a27bdf1768c10f2056ac99a16df)
- java: recover when the official runtime cannot start (8e4ae3dbea609c7ab815a96e934dcb0793162c91)
- auth: treat known network and friends failures as exceptions (055ab1f977943b1f03de9dcb1aa8f44bc9c8f44c)
new site - https://xmcl.app
v0.63.1 Mini-fixin
🐛 Bug Fixes & Patches
- Fix CurseForge downloads leaving instances incomplete (#1583) (be3272b5c7c429825b4fabc094815b3bc5fd0881)
- Fix Multiplayer On LAN group creation (#1581) (72798f3179d60d6124907b813d2f0622a1cc9da5)
- avoid DRI_PRIME for NVIDIA offload (#1571) (f38167848d254760fbabe805477b085ca942c1ec)
- Fix perf issue due to lots of screenshot (aa3529ea80df10f3ce2cfcfb3e09512955f8e278)
- fall back to X11 when Wayland socket is unavailable (b94bc9b9378953b399903918fa184ac350fa949b)
- electron: resolve llhttp-wasm and iconv-lite from parent directories if called from subfolder workers (c81ebe73710ee85108961caceac90243186bc5d3)
🏗️ Refactors
- Make install parallel (de916c2bf8218012e1af79ca6bb34a7c8bda8ebd)
v0.63.0 Big Fixing and UI new
🚀 Features
- ui: group context menu items into sections (81bc438f6dece42d062fe322fabadd405b7b6f4c)
- add a globally preferred Java setting (52cb36c7e85b21bf286cde238ce04a828a736eb6)
- add instance to a group from the sidebar context menu (f9cc2ee23493be0efd23b9ba546ce7f0e0e02f0f)
- ui: cascade enable/disable of mod dependencies (a783ceeb4267304c6319bd3efc162124a6b23a52)
- default font picker to system font folder (c6141124541ec0318234f6a9390c153714df7e57)
- choose shared-folder links when creating an instance (32696bc74f8029003a58f5a8a036d1d3c022618b)
- ui: launcher-owned collections and favorites (bd153fb847df0887a7d7074343e7e9196ab6f2d6)
🐛 Bug Fixes & Patches
- ui: hide group-installed button in local mod view and fix active state (bfe85dca0dda58eb00944bad467865340c313055)
- support MultiMC patches in local imports (e14d54ee2b0caf2ae18b297f62a5442c7367164f)
- linux: keep discrete GPU launch environment consistent (#1565) (3444a44f2e76e49cbdd39b888c1a973c432c26b3)
- add 9 new locale translations and update tr/ko (#1566) (e9a13fc40a2df421ed5ef25b57b99ba74a94e37a)
- ui: responsive store layout with pinned search bar on narrow screens (957c994e228d282146108b92718d8998ac607dcd)
- ui: block instance creation without an effective name (c2875c50409e81b2e64f849c9b4436816b842cc8)
- network: fall back after API error responses (9f858f47e707b414b3002532ba17b582919b6a9f)
- ui: tolerate legacy server status without players (7cb145289a70b48bb127e83a5677a5fa7dc678cb)
- sqlite: recover lowercase database lock errors (dc14b9f2e69e5740927c2ccefe987086576a8fbd)
- Add try to yggdrasil loading (86e80efe64387fb5edc1bbeb21d0e63bb7a1f231)
🏗️ Refactors
- ui: smarter shared mod group rules sync (810736ec7073d92e6bba0679f18e6265da0df52d)
- Allow explicit multi-select (578c5483e3bc1ac719115eb0e82ecf10b7ae11bb)
- group mod loader and Modrinth environment filters in a single row (1048b007d2dbc2668a73033a59e496fa3019c4a1)
- sqlite: replace node-sqlite3-wasm with node:sqlite (b1068d32652859f70782c2c96b6617b37a9d1795)
Hello FLATHUB VERIFICATION !
We are thrilled to announce that X Minecraft Launcher (XMCL) is now officially verified on Flathub! You will now see the blue verification badge next to our launcher on the store.
👉 Check us out at: app.xmcl.voxelum on Flathub
Our Journey to Verification
We couldn't get through before because a lot of things were missing, but we figured it out, and now—hello, verification!
Getting verified on Flathub requires proving the ownership of the domain associated with the App ID. Since our App ID is app.xmcl.voxelum, we needed to demonstrate control over our domain and address some metadata checks required by Flathub's modern AppStream validator.
Here is what we solved to make this happen:
1. Domain Ownership Verification
Flathub validates developers by looking for a unique verification token at a specific secure URL. We added our verification token under the .well-known/ directory of our official website (xmcl.app):
Once the site deployed the token, Flathub verified the domain xmcl.app immediately.
2. Refining AppData / AppStream Metadata
To comply with Flathub's strict quality standards, we updated our app description and metadata rules inside app.xmcl.voxelum.metainfo.xml:
- Friendly Summary: Simplified the app summary to "Play and manage Minecraft" (under 35 characters, non-technical, and free of articles or redundant app name mentions).
- Asset Updating: Replaced all old screenshots in the metadata package with fresh, high-resolution snapshots of the latest XMCL interface showcasing our multi-instance manager, modpack explorer, mod downloader, server dashboard, and game creation flow.
What This Means For You
The blue checkmark on Flathub means you can download and update XMCL with full confidence, knowing the Flatpak package is verified and maintained by the official development team.
Thank you to everyone in the community for your continued support!
👋 Welcome to r/XMCL - Introduce Yourself and Read First!
Hey everyone! I'm u/Banerbansa, a founding moderator of r/XMCL.
This is our new home for all things related to {{ADD WHAT YOUR SUBREDDIT IS ABOUT HERE}}. We're excited to have you join us!
What to Post
Post anything that you think the community would find interesting, helpful, or inspiring. Feel free to share your thoughts, photos, or questions about {{ADD SOME EXAMPLES OF WHAT YOU WANT PEOPLE IN THE COMMUNITY TO POST}}.
Community Vibe
We're all about being friendly, constructive, and inclusive. Let's build a space where everyone feels comfortable sharing and connecting.
How to Get Started
- Introduce yourself in the comments below.
- Post something today! Even a simple question can spark a great conversation.
- If you know someone who would love this community, invite them to join.
- Interested in helping out? We're always looking for new moderators, so feel free to reach out to me to apply.
Thanks for being part of the very first wave. Together, let's make r/XMCL amazing.
0.61.0 NEW UI SETTING & GAMEPAD SUPPORT (AND STEAM DECK !)
🚀 Features
>- **ui**: overhaul settings page with search and better UX (#1524) ([c860ada0a214c7cf74a24f94cc5cc76b9e493c11](https://github.com/Voxelum/x-minecraft-launcher/commit/c860ada0a214c7cf74a24f94cc5cc76b9e493c11))
>- link resourcepack/shaderpack/save folder to global shared folder ([8fddcaa6b9a9cba842634d6759430046db2e3478](https://github.com/Voxelum/x-minecraft-launcher/commit/8fddcaa6b9a9cba842634d6759430046db2e3478))
>- auto pick background from OS desktop wallpaper ([c2681814b5ba36b56174ce4104eefb84f3d07762](https://github.com/Voxelum/x-minecraft-launcher/commit/c2681814b5ba36b56174ce4104eefb84f3d07762))
>- support datapacks from CurseForge/Modrinth per save ([b69c3b6ed199bd13a524395ebef2c18816f2a183](https://github.com/Voxelum/x-minecraft-launcher/commit/b69c3b6ed199bd13a524395ebef2c18816f2a183))
>- **ui**: extract shared ModloaderSelector and use it in version card ([96fc2eb9ecf1b899654fbc05ff5bcc337370c310](https://github.com/Voxelum/x-minecraft-launcher/commit/96fc2eb9ecf1b899654fbc05ff5bcc337370c310))
>- Support gamepad (#1514) ([21492d271155a46f8015791b7f0ee00bd0bc67ae](https://github.com/Voxelum/x-minecraft-launcher/commit/21492d271155a46f8015791b7f0ee00bd0bc67ae))
🐛 Bug Fixes & Patches
>- convert custom postprocess fallback to telemetry event ([5d089b8fae02fea334141a3fedf7a51d36babc08](https://github.com/Voxelum/x-minecraft-launcher/commit/5d089b8fae02fea334141a3fedf7a51d36babc08))
>- **i18n**: avoid Ukrainian duration plural crash ([971109039a58b535a42f72a1b2ed8d892681281e](https://github.com/Voxelum/x-minecraft-launcher/commit/971109039a58b535a42f72a1b2ed8d892681281e))
>- **telemetry**: suppress Vuetify detached overlay errors ([61d5f91f8956822abf8d54cf681de4367bbbc246](https://github.com/Voxelum/x-minecraft-launcher/commit/61d5f91f8956822abf8d54cf681de4367bbbc246))
>- **runtime**: recover project mapping sqlite cache ([70c52fc809898a9056914629a8a164d3392cda7c](https://github.com/Voxelum/x-minecraft-launcher/commit/70c52fc809898a9056914629a8a164d3392cda7c))
>- **runtime**: classify version metadata fetch failures ([ced3983ab53e2367a57f14986eca891b7dea1d46](https://github.com/Voxelum/x-minecraft-launcher/commit/ced3983ab53e2367a57f14986eca891b7dea1d46))
>- Complete some missing ui in market view ([6c24f1f3f5bde7788f54fbe4ee4a444a37484c6d](https://github.com/Voxelum/x-minecraft-launcher/commit/6c24f1f3f5bde7788f54fbe4ee4a444a37484c6d))
>- **sqlite**: suppress benign rollback + no-such-table telemetry storms ([ed954ef3e126a0c0693c6c01f9f3b68ac09ffdab](https://github.com/Voxelum/x-minecraft-launcher/commit/ed954ef3e126a0c0693c6c01f9f3b68ac09ffdab))
>- update microsoft registration URL to signup.live.com (#1534) ([c7a79944581b802d6cb8b05cbd5aaaf15bd4b7b6](https://github.com/Voxelum/x-minecraft-launcher/commit/c7a79944581b802d6cb8b05cbd5aaaf15bd4b7b6))
>- Try fix race condition of worker queue ([37b16aa259c9797fa46fe126244bb466c730e576](https://github.com/Voxelum/x-minecraft-launcher/commit/37b16aa259c9797fa46fe126244bb466c730e576))
Gamepad Test on the Launcher (I'll show you how to use it, create an instance, and install a mod to enable gamepad support for the Java v
I don't use a gamepad very often (or rather, rarely), so I've been dragging my feet on this. But by creating this, we'll provide REAL support for the Steam Deck—unlike PrismLauncher, which just added a text mention but failed to implement even basic gamepad support.
I’ve now reached the final stage, and after version 6.0.0, gamepad support will be 100% ready.
I’ll answer a few quick questions right away:
* Will there be support for other gamepads? - Yes, there will be support for Xbox, PS5, PS4, and PS3 (PS2 and PS1 aren’t really supported), and once it’s released, I’ll try to add support for Nintendo and Wii
* Do I need a license to use this feature? - No, it’s free
* Is there keyboard support? - There used to be... but I removed it at CI010’s request
* Is the mod safe to install? - Don’t blame us—blame Modrinth—that’s where the mod is downloaded from
* Can I choose not to install the mod? - Yes, just press “B”
/If you have any questions or suggestions, let me know—I’ll look into them and make improvements/
In the meantime, here’s my PR: https://github.com/Voxelum/x-minecraft-launcher/pull/1514
BEDROCK SUPPORT VERSION COMING SOON
1. It will appear if a bedrock is purchased
Hello everyone! I wanted to tell you that we recently started a new project and finished it. In the new version you will be able to play the Bedrock version (though only on Windows), there will be no physical support for Linux and Mac, and it is also not possible to implement it. Also, Bedrock is available only to those who have purchased a license.
Hello to technology and modern technologies! 😼
Questions, design, themes, ideas, we are developing a launcher that wins in functionality, design and most importantly, that this is not a fork of MultiMC or another launcher - the design was made from scratch, the functionality is difficult. The main goal on our server is to help people get pleasant emotions from the launcher, as well as answer questions and show small updates
Hello to everyone who has gamepads or SteamDeck!
I want to tell everyone that we are now working normally on SteamDeck (and before that too), but now a very nice part is being implemented even for simple gamepads - LAUNCHER CONTROL VIA GAMEPAD.
I am writing this post so that you can prepare your consoles for the tests.