Releases: zerozshare/OpenFriendMod
ForgeV1.0.4
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.IntegratedServerMixinstays 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+ hardcoded0xFF…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 throughUTheme.*, plus two helper methodsUTheme.noticeBorder(Level)andUTheme.noticeTitle(Level)replace duplicatedswitch (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 firstrender()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
OFW0warmup + ICE timeouts 3s / 8s / 1s. OpenFriend launcher session probelog 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.-trimpathfix 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
- Source: https://github.com/zerozshare/OpenFriendMod
- Issues: https://github.com/zerozshare/OpenFriendMod/issues
License
MIT. See LICENSE. Third-party trademarks remain the property of their respective owners.
FabricV1.0.4
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.IntegratedServerMixinstays 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+ hardcoded0xFF…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 throughUTheme.*, plus two helper methodsUTheme.noticeBorder(Level)andUTheme.noticeTitle(Level)replace duplicatedswitch (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 firstrender()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
OFW0warmup + ICE timeouts 3s / 8s / 1s. OpenFriend launcher session probelog 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.-trimpathfix 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
- Source: https://github.com/zerozshare/OpenFriendMod
- Issues: https://github.com/zerozshare/OpenFriendMod/issues
License
MIT. See LICENSE. Third-party trademarks remain the property of their respective owners.
FabricV1.0.2
OpenFriend Mod v1.0.2 — Fabric
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.
What v1.0.2 is about
This release aligns OpenFriend's Mojang API request pattern with how a well-behaved Friends-List client should behave. The biggest practical effect is a dramatic drop in 429 rate-limit issues during normal use.
What changed
Presence updates are now state-change driven
Previously, OpenFriend posted presence every 12 seconds unconditionally — about 5 posts per minute even when nothing was happening. This produced a request pattern noticeably noisier than necessary and was the main cause of 429 rate limited warnings during testing.
v1.0.2 replaces the fixed ticker with a state-driven loop:
- Minimum interval between posts: 10 seconds (throttle)
- Maximum interval without a post: 60 seconds (heartbeat)
- Posts fire when: presence status / join-info / invite list actually changes, or the 60-second heartbeat is due
Approximate volume change for a 5-minute idle session: ~25 POST → ~5 POST. Active sessions (host start / stop, friend invites) still get an immediate update, just throttled to no more than one every 10 seconds.
429 cooldown auto-retry
When Mojang returns a 429 with a cooldown window, the watch loop now schedules a retry exactly when the cooldown expires (plus a 2-second margin) instead of waiting for the next regular tick.
Friends list cadence
OpenFriend continues to rely on the signaling WebSocket's push notifications (friend.added, friend.removed, friend.requestIncoming, etc.) for friends-list deltas — there is no periodic GET /friends polling, and none has been added. Push gives lower latency at zero rate-limit cost.
Cosmetic
- The Mod's
presence.watchIPC now sendsintervalSeconds=60for log-readability (the Core-side loop drives the actual cadence and ignores the value beyond a sanity floor). - Core + Mod bumped to v1.0.2; all 30 Fabric jars rebuilt.
Downloads
30 Fabric jars, MC 1.16.5 → 1.21.11. Drop the matching one 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) is bundled in each jar and auto-extracts on first launch.
Carried over from v1.0.1 (still in this build)
- Seamless sign-in via launcher MSA session (no device-code prompt on every launch).
- Account-switch detection: changing the launcher's MS account invalidates the Core cache automatically.
- Friends-list cache persisted to disk between Core restarts.
MCScreenOpener.publishToFriendscallsonServerPublisheddirectly so "Stop hosting" switches without depending on a mixin.- WebRTC
OFW0warmup magic + ICE timeouts 3s / 8s / 1s. - 1.16.5 / 1.17.x: clearer Java floor + JsonParser compat + java.util.logging.
- SignInScreen layout fix (panel 240 → 300 px, button row overlap resolved).
OpenFriend launcher session probelog line at startup for sign-in diagnostics.- Specific friend-request error messages (target hasn't opted into Friends List, Xbox privacy, etc.).
Known limitations
- Player skin heads on legacy MC (1.16.5 – 1.19.x). Friend list shows a hashed-color placeholder, not the real head.
- Toast click-to-expand on title / pause / multiplayer screens. Currently only works inside the OpenFriend overlay.
- Go build path embedded in Core binary (
<dev-home>/go/...). Cosmetic — leaks only the developer's macOS username. Cleanup with-trimpathplanned for v1.1.
Test coverage disclaimer
Smoke-tested end-to-end on: 1.16.5, 1.20.4, 1.20.6, 1.21.1, 1.21.4, 1.21.6.
The remaining 24 jars compile and 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
- Source: https://github.com/zerozshare/OpenFriendMod
- Issues: https://github.com/zerozshare/OpenFriendMod/issues
License
MIT. See LICENSE. Third-party trademarks remain the property of their respective owners.
FabricV1.0.1
OpenFriend Mod v1.0.1 — Fabric
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.
Highlights
- Seamless sign-in. No more device-code prompt on every launch. The mod hands the launcher's Microsoft session straight to the Core — first launch goes directly into the Friends overlay.
- Mod ↔ Mod online-mode joins verified. When both sides run OpenFriend, joins work on online-mode servers natively. No Bypass plugin required for that flow.
- WebRTC join reliability. First-attempt success rate improved by a 4-byte warmup handshake plus shorter ICE timeouts (3s / 8s / 1s). The "had to click Join twice" pattern is significantly reduced.
- Rate-limit resilient. Friends-list cache is persisted to disk between Core restarts. Mojang's 429 is no longer triggered by simple game-restart cycles.
- Account switching. Change your MS account in the launcher → OpenFriend follows automatically. No stale previous-account issue.
Downloads
30 Fabric jars, MC 1.16.5 → 1.21.11. Drop the matching one 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. The Core binary (Windows / macOS / Linux × amd64 + arm64) is bundled in each jar and auto-extracts to your platform's data directory on first launch.
Fixes since v1.0.0
Auth / sign-in
- Auto-handoff via launcher session now works reliably.
User.getProfileId()is invoked as a direct call instead of via reflection. Resolves the "no Minecraft session available, falling back to device-code" loop reported on 1.21.5 / 1.21.6 fresh installs. - Per-MC-version profileId path. Versions before 1.19.1 use
user.getGameProfile().getId(); 1.19.1 onward usesuser.getProfileId()directly. Compiles and runs on every supported MC version. - Account switching detected automatically. Core compares the launcher's profileId against the cached one — if they differ,
auth.pemandfriends-cache.jsonare invalidated and the new launcher account takes over. No more "stuck on previous account". - Device-code hint. When the launcher's session isn't usable and the fallback
auth.signInfires, Java now sendsexpectedProfileIdto Core so a stale cached refresh-token isn't silently used to sign in as the wrong account. - Presence subscription on device-code path. Legacy MC versions (1.16.5 – 1.17.x) that always go through device-code now subscribe to
presence.watchafter sign-in. Friend Online / Offline status updates correctly. - 1.16.5 sign-in stability. Dropped slf4j dependency from
common(1.16.5 doesn't ship slf4j on classpath — causedNoClassDefFoundErroron first IPC notification). Switched tojava.util.logging. - 1.16.5 IPC compat.
JsonParser.parseString(...)(Gson 2.8.6+) replaced withnew JsonParser().parse(...)— works on the older Gson shipped with MC 1.16.5. - Accurate Java floors per MC version in
fabric.mod.json. 1.16.5 →java >=8, 1.17.x →java >=16, 1.18 – 1.20.4 →java >=17, 1.20.5+ →java >=21. Fixes "OpenJDK 8 too old" rejection when installing on a vanilla 1.16.5 launcher. - Minecraft version pinned per-jar. Each jar's
fabric.mod.jsondeclares its exact MC version — dropping the wrong jar intomods/is rejected cleanly at load time instead of crashing later.
Hosting / Open to Friends
- "Stop hosting" button switches correctly.
MCScreenOpener.publishToFriendsnow invokesonServerPublished(port)directly afterpublishServer()succeeds, instead of relying onIntegratedServerMixin. AlastBridgedPortguard prevents duplicatehost.startIPC calls when both paths fire.
Friends UI
- Specific friend-request error messages. When Mojang's
PUT /friendsreturns 403, the toast now shows why (target hasn't opted into Friends List, Xbox privacy block, blocked by either side) instead of a generic "Could not reach …". The Mod passes Core's error message body through to the UI instead of swallowing it. - SignInScreen layout fix. Panel widened 240 → 300 px; vertical spacing increased. The code box no longer overlaps the "2. Enter this code:" label, and the three footer buttons no longer overlap on smaller GUI scales.
Rate-limit / cache
- Friends-list cache persisted to disk. Core saves
friends-cache.jsonafter each successful refresh and reloads on startup. Mojang's/friendsrate limit (≈5 req/min) is no longer tripped by simple game-restart cycles during development / quick testing. - Cooldown + cached return. When in 429 cooldown and a cached response exists, Core returns the cache instead of bubbling up the rate-limit error. The Friends list stays populated instead of going blank.
WebRTC / Join reliability
- DataChannel warmup magic. Both peers send a 4-byte
OFW0header immediately after the data channel opens; both peers strip the first 4 bytes from received data. Establishes SCTP + NAT mapping with discardable bytes before MC's handshake packets flow. Reduces the "first Join attempt fails, second works" pattern. - ICE candidate gathering timeouts dropped from 10s / 30s / 5s (gathering / disconnect / failed) to 3s / 8s / 1s. Bad paths fail in time for the Mod to react; good paths complete the join faster.
Mixins
ScreenMouseMixinremoved from the universal set.Screen.mouseClickedis a default interface method onGuiEventListener— Mixin cannot@Injectinto it becauseScreenitself doesn't declare it. The mixin was causing mod-load failures on 1.16.5. Toasts are still clickable inside the OpenFriend overlay (viaMCScreenWrapper.mouseClicked); the global-screen click-to-expand will return in a future release with aMouseHandler.onPressretarget.
Logging
- Added an
OpenFriend launcher session probelog line at startup showing exactly what the mod sees from the launcher (userClass,name,tokenLen,profileId). Makes future sign-in bug reports diagnosable from the log alone.
Known limitations
- Player skin heads on legacy MC (1.16.5 – 1.19.x). Friend list shows a hashed-color placeholder, not the real head. The Mojang sessionserver skin lookup isn't wired up for the PoseStack-era variants yet.
- Toast click-to-expand on title / pause / multiplayer screens. Currently only works inside the OpenFriend overlay (see
ScreenMouseMixinnote above).
Test coverage disclaimer
Smoke-tested end-to-end (sign-in → friend add → online-mode Join works):
- 1.16.5, 1.20.4, 1.20.6, 1.21.1, 1.21.4, 1.21.6
The other 24 jars compile and load cleanly, share the same overlay group as a tested representative, and are expected to work — but each one is not individually verified.
If something is broken on your MC version, please open a GitHub Issue: https://github.com/zerozshare/OpenFriendMod/issues
Include:
- Your MC version
- The full
latest.log(especially lines containingOpenFriend,openfriend, orcore:) - What you tried to do and what happened
The diagnostic log line OpenFriend launcher session probe: … (new in v1.0.1) makes sign-in issues self-describing.
Acknowledgements
Thanks to the user who filed the 1.21.5 / 1.21.6 fresh-install device-code-missing bug report — that single report identified the resolveProfileId reflection bug and directly shaped this release's seamless-sign-in fix.
Related
- Source: https://github.com/zerozshare/OpenFriendMod
- Issues: https://github.com/zerozshare/OpenFriendMod/issues
License
MIT. See LICENSE. Third-party trademarks remain the property of their respective owners.
Fabric Release v1.0.0
OpenFriend — Fabric jars
Drop the matching jar into your mods/ folder. Requires the Fabric Loader.
No Fabric API dependency.
Supported versions (v1.0.0)
| MC version | jar | overlay | notes |
|---|---|---|---|
| 1.21.10 | OpenFriend-fabric-1.21.10.jar |
group-d3 | new KeyEvent / CharacterEvent API |
| 1.21.9 | OpenFriend-fabric-1.21.9.jar |
group-d3 | new KeyEvent / CharacterEvent API |
| 1.21.8 | OpenFriend-fabric-1.21.8.jar |
group-d2 | |
| 1.21.7 | OpenFriend-fabric-1.21.7.jar |
group-d2 | |
| 1.21.6 | OpenFriend-fabric-1.21.6.jar |
group-d2 | |
| 1.21.5 | OpenFriend-fabric-1.21.5.jar |
group-d | |
| 1.21.4 | OpenFriend-fabric-1.21.4.jar |
group-c | |
| 1.21.3 | OpenFriend-fabric-1.21.3.jar |
group-c | |
| 1.21.2 | OpenFriend-fabric-1.21.2.jar |
group-c | |
| 1.21.1 | OpenFriend-fabric-1.21.1.jar |
group-c2 | |
| 1.21 | OpenFriend-fabric-1.21.jar |
group-c2 | |
| 1.20.6 | OpenFriend-fabric-1.20.6.jar |
group-c1c | |
| 1.20.5 | OpenFriend-fabric-1.20.5.jar |
group-c1c | |
| 1.20.4 | OpenFriend-fabric-1.20.4.jar |
group-c1b | primary tested target |
| 1.20.3 | OpenFriend-fabric-1.20.3.jar |
group-c1b | |
| 1.20.2 | OpenFriend-fabric-1.20.2.jar |
group-c1b | |
| 1.20.1 | OpenFriend-fabric-1.20.1.jar |
group-c1 | |
| 1.20 | OpenFriend-fabric-1.20.jar |
group-c1 | |
| 1.19.4 | OpenFriend-fabric-1.19.4.jar |
group-b | PoseStack era |
| 1.19.3 | OpenFriend-fabric-1.19.3.jar |
group-b3 | PoseStack era |
| 1.19.2 | OpenFriend-fabric-1.19.2.jar |
group-b0 | PoseStack era |
| 1.19.1 | OpenFriend-fabric-1.19.1.jar |
group-b0 | PoseStack era |
| 1.19 | OpenFriend-fabric-1.19.jar |
group-b0 | PoseStack era |
| 1.18.2 | OpenFriend-fabric-1.18.2.jar |
group-b1 | PoseStack + TextComponent |
| 1.18.1 | OpenFriend-fabric-1.18.1.jar |
group-b1 | PoseStack + TextComponent |
| 1.18 | OpenFriend-fabric-1.18.jar |
group-b1 | PoseStack + TextComponent |
| 1.17.1 | OpenFriend-fabric-1.17.1.jar |
group-a2 | legacy PoseStack |
| 1.17 | OpenFriend-fabric-1.17.jar |
group-a2 | legacy PoseStack |
| 1.16.5 | OpenFriend-fabric-1.16.5.jar |
group-a | log4j logger, ConnectScreen 3-arg, TextureManager.bind |
Total: 29 Fabric builds, MC 1.16.5 → 1.21.10.
What does it ship
- The full OpenFriend Java mod (UI, IPC client, MC binding)
- The bundled Core binary for the current platform (Windows / macOS / Linux,
amd64 + arm64) — auto-extracted on first launch to
~/Library/Application Support/openfriend/bin/(macOS),
%APPDATA%/openfriend/bin/(Windows),
or~/.local/share/openfriend/bin/(Linux)