## [1.4.1] — 2026-06-11
### Fixed
- **NeoForge: clients could not join a dedicated server** ([#4](https://github.com/mc-webgui/webgui/issues/4)). The server-to-client payload channels (`open_web`, `main_menu`, `emit`, `entity_context`) were registered only on the physical client, so a dedicated NeoForge server never declared them. Joining clients were rejected during channel negotiation with `Channel [webgui:open_web] failed to connect: Client wants payload to be sent in: CLIENTBOUND, but server doesn't support it!`. The S2C payloads are now registered in common init on both sides; the receive handlers still run client-side only.
---
## [1.4.0] — 2026-06-11
### Added
#### NeoForge support
The mod is now multi-loader. The codebase is split across loaders with [Stonecutter](https://stonecutter.kikugie.dev/), so the same source builds for both Fabric and NeoForge.
| Minecraft | Fabric | NeoForge |
|---|---|---|
| 1.20.1 | ✅ | — (NeoForge moddev 2.x targets 1.20.4+) |
| 1.21.1 | ✅ | ✅ |
| 1.21.11 | ✅ | ✅ |
- NeoForge builds use Mojang mappings; Fabric builds use Yarn — handled automatically at build time
- All existing features (entity binding, events, signed tokens, HUD overlays, commands) work identically on both loaders
- `WebviewApi` and the `window.webgui` browser surface are unchanged — no migration needed for existing web UIs
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }