Skip to content

Releases: zerozshare/OpenFriendMod

NeoForgeV1.0.9

18 May 15:41
7b9ae54

Choose a tag to compare

OpenFriend Mod v1.0.9 — NeoForge

In-client Friends List UI for Minecraft Java Edition NeoForge, covering MC 1.20.4 / 1.20.6 / 1.21.1 / 1.21.3 / 1.21.4 / 1.21.5 / 1.21.7 / 1.21.8.

⚠️ Unofficial. Not affiliated with Microsoft, Mojang, or the Xbox brand. Use OpenFriend on accounts you control. You assume all risk.

What changed since v1.0.8

UI fix + embedded Core 1.0.9 Mojang-parity P2P pass.

Max Players input remembers what you typed across Friends-menu reopens

Typing 100 and opening to friends actually set the server to 100 — but reopening the Friends menu showed the 8 placeholder again. Cause: MultiplayTab was reconstructed on every overlay open. Fix: cached on FriendsController. State (maxPlayers, gamemode, cheats) survives close/reopen.

Core 1.0.9 — embedded

Mojang-parity P2P pass (anti-spoof OFFER gate, symmetric handshake timeout, signaling error propagation, TURN auth caching, PC-FAILED short-circuit). See RELEASE_NOTES_v1.0.9_core.md for details.

Downloads (8 jars)

File MC Minimum NeoForge Java
OpenFriend-neoforge-1.20.4.jar 1.20.4 20.4.237 17
OpenFriend-neoforge-1.20.6.jar 1.20.6 20.6.119 21
OpenFriend-neoforge-1.21.1.jar 1.21.1 21.1.205 21
OpenFriend-neoforge-1.21.3.jar 1.21.3 21.3.92 21
OpenFriend-neoforge-1.21.4.jar 1.21.4 21.4.150 21
OpenFriend-neoforge-1.21.5.jar 1.21.5 21.5.97 21
OpenFriend-neoforge-1.21.7.jar 1.21.7 21.7.25-beta (no stable yet) 21
OpenFriend-neoforge-1.21.8.jar 1.21.8 21.8.53 21

Channels

ForgeV1.0.9

18 May 15:30
7b9ae54

Choose a tag to compare

OpenFriend Mod v1.0.9 — Forge

In-client Friends List UI for Minecraft Java Edition Forge, including the snapshot 26.2+ Friends List backported to MC 1.7.10 / 1.8.9 / 1.12.2 / 1.16.5 - 1.21.8.

⚠️ Unofficial. Not affiliated with Microsoft, Mojang, or the Xbox brand. Use OpenFriend on accounts you control. You assume all risk.

What changed since v1.0.8

UI bug fixes + the embedded Core 1.0.9 with the Mojang-parity P2P pass (anti-spoof OFFER gate, symmetric handshake timeouts, faster failure attribution, TURN auth caching).

Legacy backspace + arrow keys actually work now

Reported on Forge 1.7.10 / 1.8.9 / 1.12.2: backspace in the Max Players input did nothing. Cause: legacy MC dispatches LWJGL2 scancodes (BACKSPACE=14) but our UInput.keyPress switches on GLFW codes (BACKSPACE=259) — every editing key (backspace, delete, arrows, home, end, enter, esc) was silently dropped.

Fix: added LegacyKeyCodes.toGlfw(int) helper in common-openmix/ui/ and routed all three legacy wrappers' keyTyped through it. Printable chars (digits etc.) were unaffected because they take the charTyped path. Modern Forge / Fabric / NeoForge (LWJGL3) were never affected.

Max Players input remembers what you typed across Friends-menu reopens

Reported alongside the backspace bug: typing 100 and pressing Open to Friends worked (server hosted with 100 max), but closing and reopening the Friends menu showed 8 again as if the placeholder reverted. Cause: FriendsController.buildOverlay() constructed a fresh MultiplayTab on every open, throwing away the typed value (server-side PlayerList.maxPlayers was unchanged — it really was 100, just the UI looked wrong).

Fix: FriendsController now caches the MultiplayTab instance and reuses it across overlay open/close. Typed maxPlayers, gamemode selection, and cheats toggle all persist. Affects all loaders (modern + legacy).

Core 1.0.9 — embedded, applies to all jars

See RELEASE_NOTES_v1.0.9_core.md for the full P2P pass. Headline items:

  • Anti-spoof OFFER gate — host refuses OFFERs that don't match a prior JOIN_REQUEST within 60 s
  • Symmetric handshake timeout — both sides 30 s (host was 10 s, asymmetric)
  • Signaling errors propagate — server-side rejections (UnknownPlayer / Throttled) surface in 5 s instead of waiting 30 s
  • PC FAILED short-circuits handshake — concrete error in logs instead of opaque timeout
  • TURN auth caching — 60 s expiry margin + single-flight, fewer RPCs per join
  • WS disconnect drains in-flight RPCs — no more goroutines stuck waiting for replies on dead sockets

Downloads

Modern Forge (Architectury Loom, 18 jars)

File MC Minimum Forge Java
OpenFriend-forge-1.16.5.jar 1.16.5 36.x+ 8
OpenFriend-forge-1.17.1.jar 1.17.1 37.x+ 16
OpenFriend-forge-1.18.2.jar 1.18.2 40.x+ 17
OpenFriend-forge-1.19.2.jar 1.19.2 43.x+ 17
OpenFriend-forge-1.19.3.jar 1.19.3 44.x+ 17
OpenFriend-forge-1.19.4.jar 1.19.4 45.x+ 17
OpenFriend-forge-1.20.1.jar 1.20.1 47.x+ 17
OpenFriend-forge-1.20.2.jar 1.20.2 48.x+ 17
OpenFriend-forge-1.20.4.jar 1.20.4 49.x+ 17
OpenFriend-forge-1.20.6.jar 1.20.6 50.x+ 21
OpenFriend-forge-1.21.jar 1.21 51.x+ 21
OpenFriend-forge-1.21.1.jar 1.21.1 52.x+ 21
OpenFriend-forge-1.21.3.jar 1.21.3 53.x+ 21
OpenFriend-forge-1.21.4.jar 1.21.4 54.x+ 21
OpenFriend-forge-1.21.5.jar 1.21.5 55.x+ 21
OpenFriend-forge-1.21.6.jar 1.21.6 56.x+ 21
OpenFriend-forge-1.21.7.jar 1.21.7 57.x+ 21
OpenFriend-forge-1.21.8.jar 1.21.8 58.x+ 21

Legacy Forge (3 jars)

File MC Minimum Forge Java Build tool
OpenFriend-forge-1.12.2.jar 1.12.2 14.23.5.2860+ 8 RetroFuturaGradle
OpenFriend-forge-1.8.9.jar 1.8.9 11.15.1.2318+ 8 ForgeGradle 2.1.6
OpenFriend-forge-1.7.10.jar 1.7.10 10.13.4.1614+ 8 RetroFuturaGradle

Channels

FabricV1.0.9

18 May 15:39
7b9ae54

Choose a tag to compare

OpenFriend Mod v1.0.9 — Fabric

In-client Friends List UI for Minecraft Java Edition Fabric, including the snapshot 26.2+ Friends List backported to MC 1.16.5 - 1.21.11.

⚠️ Unofficial. Not affiliated with Microsoft, Mojang, or the Xbox brand. Use OpenFriend on accounts you control. You assume all risk.

What changed since v1.0.8

UI fix + embedded Core 1.0.9 Mojang-parity P2P pass.

Max Players input remembers what you typed across Friends-menu reopens

Reported on Forge but shared code so affects Fabric too: typing 100 in Max Players and pressing Open worked, but reopening the Friends menu showed the 8 placeholder as if your value was lost. The hosting server was always running with the correct value — only the UI display was stale.

Cause: FriendsController.buildOverlay() constructed a fresh MultiplayTab on every open. Fix: MultiplayTab is now cached on the controller, so typed maxPlayers, gamemode and cheats toggle all persist.

Core 1.0.9 — embedded

See RELEASE_NOTES_v1.0.9_core.md. Headline P2P improvements:

  • Anti-spoof OFFER gate — host refuses fabricated session IDs (DoS mitigation)
  • Symmetric handshake timeout — both sides 30 s
  • Signaling errors fail fast — server rejections surface in 5 s, not 30 s
  • PC FAILED short-circuits handshake — clearer error attribution
  • TURN auth caching — 60 s margin + single-flight, fewer RPCs
  • WS disconnect drains pending RPCs — no zombie waiters on dead sockets

Downloads (26 jars)

File MC Loader Java
OpenFriend-fabric-1.16.5.jar 1.16.5 Fabric Loader 0.14+ 8
OpenFriend-fabric-1.17.1.jar 1.17.1 Fabric Loader 0.14+ 16
OpenFriend-fabric-1.18.2.jar 1.18.2 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.19.jar 1.19 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.19.1.jar 1.19.1 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.19.2.jar 1.19.2 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.19.3.jar 1.19.3 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.19.4.jar 1.19.4 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.20.jar 1.20 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.20.1.jar 1.20.1 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.20.2.jar 1.20.2 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.20.4.jar 1.20.4 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.20.5.jar 1.20.5 Fabric Loader 0.15+ 21
OpenFriend-fabric-1.20.6.jar 1.20.6 Fabric Loader 0.15+ 21
OpenFriend-fabric-1.21.jar 1.21 Fabric Loader 0.15+ 21
OpenFriend-fabric-1.21.1.jar 1.21.1 Fabric Loader 0.15+ 21
OpenFriend-fabric-1.21.2.jar 1.21.2 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.3.jar 1.21.3 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.4.jar 1.21.4 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.5.jar 1.21.5 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.6.jar 1.21.6 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.7.jar 1.21.7 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.8.jar 1.21.8 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.9.jar 1.21.9 Fabric Loader 0.17+ 21
OpenFriend-fabric-1.21.10.jar 1.21.10 Fabric Loader 0.17+ 21
OpenFriend-fabric-1.21.11.jar 1.21.11 Fabric Loader 0.17+ 21

Channels

NeoForgeV1.0.8

18 May 04:27
7b9ae54

Choose a tag to compare

NeoForgeV1.0.8 Pre-release
Pre-release

OpenFriend Mod v1.0.8 — NeoForge

In-client Friends List UI for Minecraft Java Edition NeoForge, covering MC 1.20.4 / 1.20.6 / 1.21.1 / 1.21.3 / 1.21.4 / 1.21.5 / 1.21.7 / 1.21.8.

⚠️ Unofficial. Not affiliated with Microsoft, Mojang, or the Xbox brand. Use OpenFriend on accounts you control. You assume all risk.

What changed since v1.0.7

UI reliability fixes + in-client update notifier. Same Core 1.0.8 (ICE diagnostics + longer handshake window) embedded.

Friends UI fixes (shared with Forge / Fabric)

  • Rate-limit toast on accept / decline — 429 → clean "Mojang rate limit" warn toast
  • Close button no longer freezes after a failed action — UButton wrapped in try/catch
  • Max Players input ditched the "8" trap — empty placeholder + select-all-on-focus
  • Open to Friends disabled when Max=0

Update notifier

5s after startup, checks github.com/zerozshare/OpenFriendMod for NeoForgeV* tags. If newer, info toast appears:

OpenFriend update available
You're on NeoForge v1.0.8. v1.0.9 is out — grab it at openfriend.net

Core 1.0.8 — embedded

  • ICE diagnostics in logs/latest.log — exact reason for failed joins
  • WaitDataChannelOpen 15s → 30s
  • TURN auth result logged

Downloads (8 jars)

File MC Minimum NeoForge Java
OpenFriend-neoforge-1.20.4.jar 1.20.4 20.4.237 17
OpenFriend-neoforge-1.20.6.jar 1.20.6 20.6.119 21
OpenFriend-neoforge-1.21.1.jar 1.21.1 21.1.205 21
OpenFriend-neoforge-1.21.3.jar 1.21.3 21.3.92 21
OpenFriend-neoforge-1.21.4.jar 1.21.4 21.4.150 21
OpenFriend-neoforge-1.21.5.jar 1.21.5 21.5.97 21
OpenFriend-neoforge-1.21.7.jar 1.21.7 21.7.25-beta (no stable yet) 21
OpenFriend-neoforge-1.21.8.jar 1.21.8 21.8.53 21

Channels

ForgeV1.0.8

18 May 04:31
7b9ae54

Choose a tag to compare

ForgeV1.0.8 Pre-release
Pre-release

OpenFriend Mod v1.0.8 — Forge

In-client Friends List UI for Minecraft Java Edition Forge, including the snapshot 26.2+ Friends List backported to MC 1.7.10 / 1.8.9 / 1.12.2 / 1.16.5 - 1.21.8.

⚠️ Unofficial. Not affiliated with Microsoft, Mojang, or the Xbox brand. Use OpenFriend on accounts you control. You assume all risk.

What changed since v1.0.7

This release focuses on UI reliability fixes reported by testers + an in-client update notifier that nudges you when a newer release is out.

Friends UI fixes (all loaders affected)

  • Rate-limit toast on accept / decline. Accepting or declining a friend request when Mojang rate-limited (HTTP 429) used to show a cryptic error toast OR no toast at all. Now shows a clean "Mojang rate limit — please wait a moment before retrying" warn toast.
  • Close button no longer freezes after a failed action. UButton's click handler now wraps the action in try/catch — if the action threw (e.g., on a transient IPC error), the button no longer got stuck in the "pressed" state and the screen's close [X] could not be clicked. Fixed.
  • Max Players input ditched the "8" trap. The Multiplay tab's max-players field used to pre-fill "8" (white text) on top of a "8" placeholder. Typing "10" without first backspacing the 8 produced "810" which was either silently clamped or misread. Now: field starts empty (placeholder shows the default), and a new select-all-on-focus behaviour means clicking the field selects existing text so typing replaces it (matches web <input>).
  • Open to Friends disabled when Max=0. If you intentionally type 0 the Open button greys out and refuses to start the world. Empty field still falls back to the default 8.

Legacy Forge (1.7.10 / 1.8.9 / 1.12.2): maxPlayers actually applied now

Previously the legacy hosts called shareToLAN(gameType, allowCheats) (which doesn't take maxPlayers) and silently ignored your input — every hosted world had MC's default max-players regardless of what you typed. Added a reflection helper that writes PlayerList.maxPlayers (1.12.2) / ServerConfigurationManager.maxPlayers (1.7.10 / 1.8.9) right after shareToLAN succeeds, before the chat-bar "Opened to LAN" message.

Update notifier

5 seconds after startup, the mod fires an async background check against github.com/zerozshare/OpenFriendMod releases, filters by tag prefix (ForgeV* for Forge, FabricV* for Fabric, NeoForgeV* for NeoForge — your loader is detected automatically), and if a higher version is found shows a single info toast:

OpenFriend update available
You're on Forge v1.0.8. v1.0.9 is out — grab it at openfriend.net

Never blocks startup, never throws, silent on network failure or GitHub rate limit. No URL is opened — you copy the link from the toast.

Core 1.0.8 — embedded, applies to all jars

  • ICE diagnostics — log says exactly why a join failed (no candidates / no relay / candidates couldn't traverse). Look for [rtc] selected pair / [rtc] ICE gathering complete local_types=... in logs/latest.log.
  • Longer handshake window — WaitDataChannelOpen 15s → 30s for slow networks.
  • TURN auth status logged — visible whether relay fallback is available.

Downloads

Modern Forge (Architectury Loom, 18 jars)

File MC Minimum Forge Java
OpenFriend-forge-1.16.5.jar 1.16.5 36.x+ 8
OpenFriend-forge-1.17.1.jar 1.17.1 37.x+ 16
OpenFriend-forge-1.18.2.jar 1.18.2 40.x+ 17
OpenFriend-forge-1.19.2.jar 1.19.2 43.x+ 17
OpenFriend-forge-1.19.3.jar 1.19.3 44.x+ 17
OpenFriend-forge-1.19.4.jar 1.19.4 45.x+ 17
OpenFriend-forge-1.20.1.jar 1.20.1 47.x+ 17
OpenFriend-forge-1.20.2.jar 1.20.2 48.x+ 17
OpenFriend-forge-1.20.4.jar 1.20.4 49.x+ 17
OpenFriend-forge-1.20.6.jar 1.20.6 50.x+ 21
OpenFriend-forge-1.21.jar 1.21 51.x+ 21
OpenFriend-forge-1.21.1.jar 1.21.1 52.x+ 21
OpenFriend-forge-1.21.3.jar 1.21.3 53.x+ 21
OpenFriend-forge-1.21.4.jar 1.21.4 54.x+ 21
OpenFriend-forge-1.21.5.jar 1.21.5 55.x+ 21
OpenFriend-forge-1.21.6.jar 1.21.6 56.x+ 21
OpenFriend-forge-1.21.7.jar 1.21.7 57.x+ 21
OpenFriend-forge-1.21.8.jar 1.21.8 58.x+ 21

Legacy Forge (3 jars)

File MC Minimum Forge Java Build tool
OpenFriend-forge-1.12.2.jar 1.12.2 14.23.5.2860+ 8 RetroFuturaGradle
OpenFriend-forge-1.8.9.jar 1.8.9 11.15.1.2318+ 8 ForgeGradle 2.1.6
OpenFriend-forge-1.7.10.jar 1.7.10 10.13.4.1614+ 8 RetroFuturaGradle

Legacy jars are ~22 MB — every platform's Core binary is embedded.

Channels

FabricV1.0.8

18 May 04:37
7b9ae54

Choose a tag to compare

FabricV1.0.8 Pre-release
Pre-release

OpenFriend Mod v1.0.8 — Fabric

In-client Friends List UI for Minecraft Java Edition Fabric, including the snapshot 26.2+ Friends List backported to MC 1.16.5 - 1.21.11.

⚠️ Unofficial. Not affiliated with Microsoft, Mojang, or the Xbox brand. Use OpenFriend on accounts you control. You assume all risk.

What changed since v1.0.7

UI reliability fixes + in-client update notifier. Same Core 1.0.8 (ICE diagnostics + longer handshake window) embedded.

Friends UI fixes

  • Rate-limit toast on accept / decline. Mojang 429 now surfaces as a clean "Mojang rate limit — please wait" warn toast (was: cryptic error or nothing).
  • Close button no longer freezes after a failed action. UButton action wrapped in try/catch — transient errors don't stick the button in pressed state.
  • Max Players input ditched the "8" trap. Field starts empty (placeholder = "8"), click selects existing text so typing "10" no longer becomes "810".
  • Open to Friends disabled when Max=0. Typing 0 greys out the button.

Update notifier

5s after startup, checks github.com/zerozshare/OpenFriendMod releases for FabricV* tags. If newer than this jar, shows an info toast:

OpenFriend update available
You're on Fabric v1.0.8. v1.0.9 is out — grab it at openfriend.net

Async, silent on failure, never blocks startup.

Core 1.0.8 — embedded

  • ICE diagnostics in logs/latest.log — exact reason for failed joins
  • WaitDataChannelOpen 15s → 30s
  • TURN auth result logged

Downloads (26 jars)

File MC Loader Java
OpenFriend-fabric-1.16.5.jar 1.16.5 Fabric Loader 0.14+ 8
OpenFriend-fabric-1.17.1.jar 1.17.1 Fabric Loader 0.14+ 16
OpenFriend-fabric-1.18.2.jar 1.18.2 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.19.jar 1.19 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.19.1.jar 1.19.1 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.19.2.jar 1.19.2 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.19.3.jar 1.19.3 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.19.4.jar 1.19.4 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.20.jar 1.20 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.20.1.jar 1.20.1 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.20.2.jar 1.20.2 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.20.4.jar 1.20.4 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.20.5.jar 1.20.5 Fabric Loader 0.15+ 21
OpenFriend-fabric-1.20.6.jar 1.20.6 Fabric Loader 0.15+ 21
OpenFriend-fabric-1.21.jar 1.21 Fabric Loader 0.15+ 21
OpenFriend-fabric-1.21.1.jar 1.21.1 Fabric Loader 0.15+ 21
OpenFriend-fabric-1.21.2.jar 1.21.2 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.3.jar 1.21.3 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.4.jar 1.21.4 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.5.jar 1.21.5 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.6.jar 1.21.6 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.7.jar 1.21.7 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.8.jar 1.21.8 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.9.jar 1.21.9 Fabric Loader 0.17+ 21
OpenFriend-fabric-1.21.10.jar 1.21.10 Fabric Loader 0.17+ 21
OpenFriend-fabric-1.21.11.jar 1.21.11 Fabric Loader 0.17+ 21

Channels

ForgeV1.0.7

17 May 16:27
bf60dfe

Choose a tag to compare

OpenFriend Mod v1.0.7 — Forge

In-client Friends List UI for Minecraft Java Edition Forge, including the snapshot 26.2+ Friends List backported to MC 1.7.10 / 1.8.9 / 1.12.2 / 1.16.5 - 1.21.8.

⚠️ Unofficial. Not affiliated with Microsoft, Mojang, or the Xbox brand. Use OpenFriend on accounts you control. You assume all risk.

What changed since v1.0.6

Heavy-modpack joining is now reliable. Users running 90+ mod packs (Hexxit Updated, large horror packs, custom kitchen-sink packs) reported joins that needed multiple retries and ran with severe lag. v1.0.7 fixes this — first-try connects, stable throughput.

All four changes below live in the embedded Core 1.0.7; the Forge-side Java code is unchanged from v1.0.6.

  • No more silent SCTP drops on heavy login handshakes. Core now applies backpressure: when the WebRTC send queue exceeds 1 MiB, it pauses reading from the local MC TCP socket so TCP flow control can naturally throttle the sender. Forge mod-registry sync (which is several MB on a big pack) no longer overflows the queue and drops messages mid-handshake.
  • ICE candidate path visibility. Every successful join now logs whether it's LAN-direct, P2P (NAT-traversed, full bandwidth), or TURN-relay (bandwidth limited by relay) — so you immediately know if your slow connection is due to TURN fallback.
  • STUN server explicitly added. stun:stun.l.google.com:19302 is now listed alongside Mojang's TURN, increasing the chance of P2P success vs. relay fallback.
  • ICE timeouts loosened from 3s/8s/1s to 10s/30s/2s so transient state churn during a long modpack login doesn't kill the session.

Downloads

Modern Forge (Architectury Loom, 18 jars)

File MC Minimum Forge Java
OpenFriend-forge-1.16.5.jar 1.16.5 36.x+ 8
OpenFriend-forge-1.17.1.jar 1.17.1 37.x+ 16
OpenFriend-forge-1.18.2.jar 1.18.2 40.x+ 17
OpenFriend-forge-1.19.2.jar 1.19.2 43.x+ 17
OpenFriend-forge-1.19.3.jar 1.19.3 44.x+ 17
OpenFriend-forge-1.19.4.jar 1.19.4 45.x+ 17
OpenFriend-forge-1.20.1.jar 1.20.1 47.x+ 17
OpenFriend-forge-1.20.2.jar 1.20.2 48.x+ 17
OpenFriend-forge-1.20.4.jar 1.20.4 49.x+ 17
OpenFriend-forge-1.20.6.jar 1.20.6 50.x+ 21
OpenFriend-forge-1.21.jar 1.21 51.x+ 21
OpenFriend-forge-1.21.1.jar 1.21.1 52.x+ 21
OpenFriend-forge-1.21.3.jar 1.21.3 53.x+ 21
OpenFriend-forge-1.21.4.jar 1.21.4 54.x+ 21
OpenFriend-forge-1.21.5.jar 1.21.5 55.x+ 21
OpenFriend-forge-1.21.6.jar 1.21.6 56.x+ 21
OpenFriend-forge-1.21.7.jar 1.21.7 57.x+ 21
OpenFriend-forge-1.21.8.jar 1.21.8 58.x+ 21

Legacy Forge (3 jars)

File MC Minimum Forge Java Build tool
OpenFriend-forge-1.12.2.jar 1.12.2 14.23.5.2860+ 8 RetroFuturaGradle
OpenFriend-forge-1.8.9.jar 1.8.9 11.15.1.2318+ 8 ForgeGradle 2.1.6
OpenFriend-forge-1.7.10.jar 1.7.10 10.13.4.1614+ 8 RetroFuturaGradle

Legacy jars are ~22 MB — every platform's Core binary is embedded and self-extracts on first launch.

What you get

  • Friends button on the title screen, pause menu, and multiplayer screen.
  • Friends + Pending tabs populated from your real Mojang Friends List (snapshot 26.2 API).
  • Multiplay tab in single-player worlds — Open to Friends with one click.
  • Join button on each online friend's row — connects through the Core's WebRTC tunnel.
  • In-game HUD toasts for sign-in / friend request / friend joined / errors.

Quick start

  1. Install Forge for your MC version.
  2. Drop OpenFriend-forge-<mc>.jar into your mods/ folder.
  3. Launch Minecraft. Core extracts itself into your platform data dir on first run.
  4. Microsoft session is handed to Core automatically if available, otherwise a device-code sign-in toast appears.
  5. Single-player world → Friends button → Multiplay → "Open to Friends".

Diagnosing slow joins (new in v1.0.7)

If joins are still slow with a big modpack, check logs/latest.log for a line like:

OpenFriend core/INFO: [rtc] selected pair ... path="TURN-relay (bandwidth limited by relay)"

If path is TURN-relay, your traffic is going through Mojang's TURN server and you're sharing its bandwidth with everyone else online. Workarounds: try when fewer people are using Mojang servers, ask your ISP about IPv6 (often unlocks P2P), or wait for OpenFriend's own TURN option (planned for v1.1).

If path is LAN-direct or P2P (...) and things are still slow, something else is wrong — please file an issue with the log.

Known limitations

  • ⚠️ Unofficial — not affiliated with Microsoft, Mojang, or the Xbox brand.
  • Cracked / non-Microsoft launchers are not supported.
  • 1.7.10 toast clicks only work in-game — pre-1.7 lacks the GuiScreenEvent.MouseInputEvent hook.
  • MC 1.6.4 and older are out of scope. Pre-1.7 uses legacy username-based Yggdrasil authentication that predates Mojang's modern OAuth / Xbox account system; there's no path from those clients to the snapshot 26.2 Friends API.
  • 1.9.x / 1.10.2 / 1.11.x / 1.13.x / 1.14.x / 1.15.2 are NOT in this build. Build-tool gaps (RetroFuturaGradle whitelist + ForgeGradle 2.x patchy coverage).
  • Snapshot 26.x / 1.21.9-1.21.11 Forge: not built. Forge hasn't published Gradle artifacts for those MC versions.

Channels

ForgeV1.0.4

15 May 19:12
bf60dfe

Choose a tag to compare

OpenFriend Mod v1.0.4 — Fabric + Forge

Minecraft Java Edition Friends List, backported to MC 1.16.5 – 1.21.11.

Unofficial — not affiliated with Microsoft, Mojang, or the Xbox brand

OpenFriend is an independent, community-built project. Not developed, endorsed, or officially connected to Microsoft, Mojang, or the Xbox brand. Use on accounts you control.


Note: v1.0.3 was withdrawn

v1.0.3 shipped with a malformed openfriend.fabric.mixins.json (a stray tail accidentally introduced during a tooling pass). The result was an unrecoverable Fabric Loader crash at startup. v1.0.4 is the same release with the JSON repaired and the build re-run from clean sources. If you grabbed v1.0.3, replace it with the matching v1.0.4 jar.


What v1.0.4 is about

A UX polish + code-quality release. The user-visible changes are small but address day-to-day friction reported during v1.0.2 testing: the popup dimming the whole screen after a click no longer traps the user, friend-request errors no longer flood the screen with duplicate notifications, and the 403 error message now actually says what to check.

Forge support also grows from 1 jar (1.20.4 canary) to 2 jars (1.20.1, 1.20.4).


What changed

UX

  • Popup detail dismisses on ESC. Previously the toast detail overlay would stay painted on screen until you happened to click outside it, because ESC was being eaten by vanilla Minecraft's screen handling. Pressing Esc now closes the popup the same way clicking does.
  • Friend-request failure no longer doubles up. A duplicate notice.error(...) push between the quick-add field and the Add Friend tab callback was causing two stacked toasts on every 403. Now you get exactly one.
  • 403 message is short and actionable. The old message was three sentences explaining both Mojang opt-in and Xbox privacy. Shortened to "Xbox account privacy settings may need to be adjusted on the other side." Long-form text is no longer in the toast.
  • Long error messages don't overflow the inline tab anymore. If a message exceeds 60 chars (e.g. some Mojang error bodies), the inline tab shows "Request rejected — click the notification for details." and the full text lives in the clickable toast.

Forge expansion

  • Forge 1.20.1 added. Now ships alongside the existing 1.20.4 canary.
  • Mixin / event-bus duplication eliminated. v1.0.2 had subtle double-execution on Forge (two Friends buttons stacked at the same coordinates, two toast renderers active per frame). v1.0.3 splits the Mixin config so Fabric-only mixins (GuiMixin, TitleScreenMixin, etc.) no longer apply on Forge, and Forge uses its native event bus exclusively for those concerns. IntegratedServerMixin stays shared because Mojang's "Open to LAN" path is the same on both loaders.

Code-quality / open-source housekeeping

  • All ARGB color literals consolidated into UTheme. Previously 30+ hardcoded 0xFF… constants were scattered across 8 files (OpenFriendToastOverlay, SignInScreen, FriendsToast, MCScreenWrapper, UButton, UTabBar, OpenFriendIconButton, MCRenderer), with multiple distinct literals representing the same logical color. Now every color reference goes through UTheme.*, plus two helper methods UTheme.noticeBorder(Level) and UTheme.noticeTitle(Level) replace duplicated switch (level) blocks.
  • OpenFriendToastOverlay.drawBorderedBox(...) extracts the repeated 5-rect bordered-rectangle pattern into a single method, used by both the toast row and the detail panel renders.
  • Toast detail diagnostic logging — the first push() and first render() call each log once at INFO level (OpenFriendToastOverlay.push fired: … / OpenFriendToastOverlay.render first call: …). Useful when triaging "toasts not appearing on my setup" reports.

Downloads

Fabric (26 jars, MC 1.16.5 → 1.21.11)

Drop the matching jar into your mods/ folder.

MC range Java floor Fabric Loader floor
1.16.5 8 0.11.0
1.17 – 1.17.1 16 0.12.0
1.18 – 1.20.4 17 0.16.0
1.20.5 – 1.21.11 21 0.16.0

No Fabric API dependency. Core binary (Windows / macOS / Linux × amd64 + arm64) bundled in each jar and auto-extracts on first launch.

Forge (2 jars: 1.20.1 / 1.20.4)

MC Forge minimum Java floor
1.20.1 47.0.0 17
1.20.4 49.0.0 17

Older Forge versions (1.17.1, 1.18.2, 1.19.2, 1.19.4) and newer (1.21.1) need per-version API work — planned for a later release.


Carried over from v1.0.2 (still in this build)

  • Presence updates state-change driven (10s min, 60s max heartbeat), driving idle 5-min sessions from ~25 POST down to ~5.
  • 429 cooldown auto-retry on the watch loop.
  • Friends-list cadence: push-based via signaling WebSocket, no polling.
  • Seamless launcher MSA session sign-in.
  • Account-switch detection invalidates Core cache.
  • WebRTC OFW0 warmup + ICE timeouts 3s / 8s / 1s.
  • OpenFriend launcher session probe log at startup.

Known limitations

  • Player skin heads on legacy MC (1.16.5 – 1.19.x). Friend list shows a hashed-color placeholder. Real-skin support planned for a later release.
  • Toast click-to-expand outside the OpenFriend overlay. On Forge, toasts in vanilla menu screens (Title / Pause / Multiplayer) can't be clicked to expand. Inside the OpenFriend overlay, clicking the toast opens the detail popup as expected.
  • Go build path embedded in Core binary (<dev-home>/go/...). Cosmetic — leaks only the developer's macOS username. -trimpath fix planned for a later release.
  • Windows Defender ASR (Attack Surface Reduction) may block the unsigned Core binary on managed devices. Workarounds in the issue tracker. Code signing (Certum / SignPath) is on the roadmap.

Test coverage disclaimer

Smoke-tested end-to-end on Fabric 1.16.5, 1.20.4, 1.20.6, 1.21.1, 1.21.4, 1.21.6; Forge 1.20.4.
The remaining jars compile + load cleanly and share the same overlay group as a tested representative, but are not individually verified.

Issue reports: https://github.com/zerozshare/OpenFriendMod/issues

Include MC version, full latest.log (lines containing OpenFriend / openfriend / core:), and what you tried. The OpenFriend launcher session probe: … line makes sign-in issues self-describing.


Related

License

MIT. See LICENSE. Third-party trademarks remain the property of their respective owners.

FabricV1.0.7

17 May 16:24
bf60dfe

Choose a tag to compare

OpenFriend Mod v1.0.7 — Forge

In-client Friends List UI for Minecraft Java Edition Forge, including the snapshot 26.2+ Friends List backported to MC 1.7.10 / 1.8.9 / 1.12.2 / 1.16.5 - 1.21.8.

⚠️ Unofficial. Not affiliated with Microsoft, Mojang, or the Xbox brand. Use OpenFriend on accounts you control. You assume all risk.

What changed since v1.0.6

Heavy-modpack joining is now reliable. Users running 90+ mod packs (Hexxit Updated, large horror packs, custom kitchen-sink packs) reported joins that needed multiple retries and ran with severe lag. v1.0.7 fixes this — first-try connects, stable throughput.

All four changes below live in the embedded Core 1.0.7; the Forge-side Java code is unchanged from v1.0.6.

  • No more silent SCTP drops on heavy login handshakes. Core now applies backpressure: when the WebRTC send queue exceeds 1 MiB, it pauses reading from the local MC TCP socket so TCP flow control can naturally throttle the sender. Forge mod-registry sync (which is several MB on a big pack) no longer overflows the queue and drops messages mid-handshake.
  • ICE candidate path visibility. Every successful join now logs whether it's LAN-direct, P2P (NAT-traversed, full bandwidth), or TURN-relay (bandwidth limited by relay) — so you immediately know if your slow connection is due to TURN fallback.
  • STUN server explicitly added. stun:stun.l.google.com:19302 is now listed alongside Mojang's TURN, increasing the chance of P2P success vs. relay fallback.
  • ICE timeouts loosened from 3s/8s/1s to 10s/30s/2s so transient state churn during a long modpack login doesn't kill the session.

Downloads

Modern Forge (Architectury Loom, 18 jars)

File MC Minimum Forge Java
OpenFriend-forge-1.16.5.jar 1.16.5 36.x+ 8
OpenFriend-forge-1.17.1.jar 1.17.1 37.x+ 16
OpenFriend-forge-1.18.2.jar 1.18.2 40.x+ 17
OpenFriend-forge-1.19.2.jar 1.19.2 43.x+ 17
OpenFriend-forge-1.19.3.jar 1.19.3 44.x+ 17
OpenFriend-forge-1.19.4.jar 1.19.4 45.x+ 17
OpenFriend-forge-1.20.1.jar 1.20.1 47.x+ 17
OpenFriend-forge-1.20.2.jar 1.20.2 48.x+ 17
OpenFriend-forge-1.20.4.jar 1.20.4 49.x+ 17
OpenFriend-forge-1.20.6.jar 1.20.6 50.x+ 21
OpenFriend-forge-1.21.jar 1.21 51.x+ 21
OpenFriend-forge-1.21.1.jar 1.21.1 52.x+ 21
OpenFriend-forge-1.21.3.jar 1.21.3 53.x+ 21
OpenFriend-forge-1.21.4.jar 1.21.4 54.x+ 21
OpenFriend-forge-1.21.5.jar 1.21.5 55.x+ 21
OpenFriend-forge-1.21.6.jar 1.21.6 56.x+ 21
OpenFriend-forge-1.21.7.jar 1.21.7 57.x+ 21
OpenFriend-forge-1.21.8.jar 1.21.8 58.x+ 21

Legacy Forge (3 jars)

File MC Minimum Forge Java Build tool
OpenFriend-forge-1.12.2.jar 1.12.2 14.23.5.2860+ 8 RetroFuturaGradle
OpenFriend-forge-1.8.9.jar 1.8.9 11.15.1.2318+ 8 ForgeGradle 2.1.6
OpenFriend-forge-1.7.10.jar 1.7.10 10.13.4.1614+ 8 RetroFuturaGradle

Legacy jars are ~22 MB — every platform's Core binary is embedded and self-extracts on first launch.

What you get

  • Friends button on the title screen, pause menu, and multiplayer screen.
  • Friends + Pending tabs populated from your real Mojang Friends List (snapshot 26.2 API).
  • Multiplay tab in single-player worlds — Open to Friends with one click.
  • Join button on each online friend's row — connects through the Core's WebRTC tunnel.
  • In-game HUD toasts for sign-in / friend request / friend joined / errors.

Quick start

  1. Install Forge for your MC version.
  2. Drop OpenFriend-forge-<mc>.jar into your mods/ folder.
  3. Launch Minecraft. Core extracts itself into your platform data dir on first run.
  4. Microsoft session is handed to Core automatically if available, otherwise a device-code sign-in toast appears.
  5. Single-player world → Friends button → Multiplay → "Open to Friends".

Diagnosing slow joins (new in v1.0.7)

If joins are still slow with a big modpack, check logs/latest.log for a line like:

OpenFriend core/INFO: [rtc] selected pair ... path="TURN-relay (bandwidth limited by relay)"

If path is TURN-relay, your traffic is going through Mojang's TURN server and you're sharing its bandwidth with everyone else online. Workarounds: try when fewer people are using Mojang servers, ask your ISP about IPv6 (often unlocks P2P), or wait for OpenFriend's own TURN option (planned for v1.1).

If path is LAN-direct or P2P (...) and things are still slow, something else is wrong — please file an issue with the log.

Known limitations

  • ⚠️ Unofficial — not affiliated with Microsoft, Mojang, or the Xbox brand.
  • Cracked / non-Microsoft launchers are not supported.
  • 1.7.10 toast clicks only work in-game — pre-1.7 lacks the GuiScreenEvent.MouseInputEvent hook.
  • MC 1.6.4 and older are out of scope. Pre-1.7 uses legacy username-based Yggdrasil authentication that predates Mojang's modern OAuth / Xbox account system; there's no path from those clients to the snapshot 26.2 Friends API.
  • 1.9.x / 1.10.2 / 1.11.x / 1.13.x / 1.14.x / 1.15.2 are NOT in this build. Build-tool gaps (RetroFuturaGradle whitelist + ForgeGradle 2.x patchy coverage).
  • Snapshot 26.x / 1.21.9-1.21.11 Forge: not built. Forge hasn't published Gradle artifacts for those MC versions.

Channels

FabricV1.0.6

17 May 13:43
bf60dfe

Choose a tag to compare

OpenFriend Mod v1.0.6 — Fabric

In-client Friends List UI for Minecraft Java Edition Fabric, including the snapshot 26.2+ Friends List backported to MC 1.16.5 - 1.21.11 + Snapshot 26.x.

⚠️ Unofficial. Not affiliated with Microsoft, Mojang, or the Xbox brand. Use OpenFriend on accounts you control. You assume all risk.

What changed since v1.0.5

  • Multi-session bug fixed (Core 1.0.6). Joining a friend who had previously joined you (or any case where the same friend produced a second OFFER) used to silently kill the working session — the joiner saw [join] DataChannel did not open (context deadline exceeded) and Mojang's Connecting... screen never advanced. Core now keys sessions by session ID instead of the friend's pmid, so concurrent / repeated sessions from the same friend coexist properly.
  • Duplicate "DataChannel closed" log lines deduped. Every disconnect used to log [proxy] DataChannel closed twice for the same sid. Now logs once — much easier to diagnose disconnect causes.

Functionally identical to the Fabric v1.0.5 release otherwise — same Friends UI, same toasts, same flows. The fix is in the embedded Core binary, which every Fabric jar carries.

Downloads (Architectury Loom, 26 jars)

File MC Loader Java
OpenFriend-fabric-1.16.5.jar 1.16.5 Fabric Loader 0.14+ 8
OpenFriend-fabric-1.17.1.jar 1.17.1 Fabric Loader 0.14+ 16
OpenFriend-fabric-1.18.2.jar 1.18.2 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.19.jar 1.19 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.19.1.jar 1.19.1 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.19.2.jar 1.19.2 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.19.3.jar 1.19.3 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.19.4.jar 1.19.4 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.20.jar 1.20 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.20.1.jar 1.20.1 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.20.2.jar 1.20.2 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.20.4.jar 1.20.4 Fabric Loader 0.14+ 17
OpenFriend-fabric-1.20.5.jar 1.20.5 Fabric Loader 0.15+ 21
OpenFriend-fabric-1.20.6.jar 1.20.6 Fabric Loader 0.15+ 21
OpenFriend-fabric-1.21.jar 1.21 Fabric Loader 0.15+ 21
OpenFriend-fabric-1.21.1.jar 1.21.1 Fabric Loader 0.15+ 21
OpenFriend-fabric-1.21.2.jar 1.21.2 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.3.jar 1.21.3 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.4.jar 1.21.4 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.5.jar 1.21.5 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.6.jar 1.21.6 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.7.jar 1.21.7 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.8.jar 1.21.8 Fabric Loader 0.16+ 21
OpenFriend-fabric-1.21.9.jar 1.21.9 Fabric Loader 0.17+ 21
OpenFriend-fabric-1.21.10.jar 1.21.10 Fabric Loader 0.17+ 21
OpenFriend-fabric-1.21.11.jar 1.21.11 Fabric Loader 0.17+ 21

~22 MB each — the OpenFriend Core binary for every platform (macOS arm64/amd64, Linux arm64/amd64, Windows amd64) is embedded and extracted on first launch.

What you get

  • Friends button on the title screen, pause menu, and multiplayer screen. Click to open the OpenFriend overlay.
  • Friends + Pending tabs populated from your real Mojang Friends List (snapshot 26.2 API). Online / Playing / Offline presence visible.
  • Multiplay tab in single-player worlds — Open to Friends with one click; OpenFriend Core bridges your LAN port to Mojang signaling so friends can join.
  • Join button on each online friend's row — connects through the Core's WebRTC tunnel to whatever they are hosting (no server-side plugin needed when both ends run OpenFriend Mod).
  • In-game HUD toasts for sign-in / friend request / friend added / friend joined / errors.

Quick start

  1. Install Fabric Loader for your MC version (https://fabricmc.net/use/).
  2. Drop the matching OpenFriend-fabric-<mc>.jar into your mods/ folder. No Fabric API dependency — OpenFriend uses only stable Fabric Loader APIs.
  3. Launch Minecraft. On first run OpenFriend Core extracts itself into your platform data dir:
    • macOS: ~/Library/Application Support/openfriend/
    • Linux: ~/.local/share/openfriend/ (or $XDG_DATA_HOME/openfriend/)
    • Windows: %APPDATA%\openfriend\
  4. If your launcher already has a valid Microsoft session, OpenFriend hands it to Core automatically. Otherwise a device-code sign-in toast appears with a code + verification URL.
  5. Open a single-player world → click the Friends button (top-right) → Multiplay tab → "Open to Friends".

Known limitations

  • ⚠️ Unofficial — not affiliated with Microsoft, Mojang, or the Xbox brand.
  • Cracked / non-Microsoft launchers are not supported.
  • Heavy friends.add retries can hit Mojang's per-account API rate limit (HTTP 429). If you see a "Rate limited by Mojang" toast on every attempt, wait ~1 minute and retry.

Channels