Be Quiet Negotiator
Be Quiet Negotiator is a lightweight, client-side-only NeoForge mod that lets modded clients connect to vanilla or minimally modded servers (such as Fabric servers with only server-side mods) without triggering NeoForge’s strict network negotiation process.
How it works
Normally, NeoForge enforces a handshake protocol to ensure both client and server agree on modded payloads and capabilities. This mod quietly suppresses that negotiation when connecting to servers that don’t speak NeoForge, allowing the connection to go through cleanly without disconnects or errors — hence, it “negotiates” by staying silent.
In addition, other errors that may occur during the connection process, such as packet decoding errors or unexpected packet sizes, are also ignored, allowing the client to connect without issues.
Specifically, Be Quiet Negotiator uses Mixins to patch the NeoForge client code, specifically targeting any annoying methods which produce errors or disconnects when connecting to servers that do not support NeoForge.
Furthermore, all patches are configurable, allowing users to enable or disable specific patches as needed.
Use cases
This mod is ideal for:
- Players using NeoForge clients who want to join vanilla servers, preventing disconnects caused by missing network negotiation responses.
- Players connecting through hybrid or proxy networks, where the entrypoint is a vanilla or non-NeoForge server, avoiding failed handshakes when the client expects NeoForge.
- Modpack developers or testers using full-stack NeoForge mods client-side, who want to connect to unmodded or differently modded servers without having to disable mods each time.
- Players attempting to join servers without NeoForge, while still having mods installed that expect a modded server-side (e.g., worldgen, item, or GUI mods with networking).
- LAN or casual multiplayer setups, where only the client is running NeoForge with full-feature mods, and the server is unmodded or running a different mod loader.
Making a production-ready proxy network?
Do not use this mod! You will likely run into issues with mod compatibility, as Be Quiet Negotiator just suppresses errors and does not magically make incompatible mods work.
Instead of using a traditional proxy to route connections to backend servers, I recommend giving each NeoForge server its own public IP address / domain.
If you don't have enough IP addresses, you can use a reverse proxy like Gate Lite Mode or my own mc-router to route connections based on the Handshake packet's Server Address field.
To transfer players between servers, use the vanilla /transfer command introduced in Minecraft 1.20.5, or install the
Server Redirect mod.
Included Patches (since v1.0.1)
bypassNegotiationErrors- Allows the client to connect to servers that do not support NeoForge by ignoring negotiation errors.bypassCustomFeatureFlags- Ignores custom feature flags when connecting to a server, allowing the client to connect without issues.ignorePacketDecodingErrors- Ignores packet decoding errors when connecting to a server, allowing the client to connect without issues.ignorePacketHandlerErrors- Ignores client-side packet handling errors when connecting to a server, allowing the client to connect without issues.
Important notes
Connection Safety
Be Quiet Negotiator is safe by design: it only activates when the server is identified as non-NeoForge, leaving normal modded-to-modded connections completely untouched. Configuration is simple and toggleable, giving users fine control over when quiet negotiation is allowed.
Mod Compatibility
Some mods may depend on successful negotiation or expect server-side support for certain features. In these cases, functionality may break silently or result in confusing behaviour.
Use caution, and avoid placing or interacting with modded blocks, items, or GUIs on servers that aren’t running NeoForge. This mod enables connection compatibility, but it cannot make incompatible mods magically work.
We have a list of known incompatible mods in docs/incompatibility.md.
All Versions
+ Add Versionv2.0.0-rc1 release candidate marks a major milestone in the development of BeQuietNegotiator, introducing multi-version support andcompatibility with newer Minecraft versions. This release focuses on expanding the range of supported Minecraft versions while ensuring
stability and performance across all targets.
Highlights
- Added multi-version support and explicit compatibility for newer Minecraft/NeoForge versions.
- Added support for Minecraft
1.21.8and1.21.11development targets. - Improved CI to publish built artifacts and uploads.
Added
- Initial multiversion support to allow building/publishing multiple Minecraft-targeted artifacts. (180bb11)
- Added support for
1.21.8. (5c28f0f) - Added
1.21.11version entry. (e23ccc6)
Changed / Refactor
- Refactored
NetworkRegistryMixinand other mixins to adapt to multi-version NeoForge support. (9df1bcc) - Updated VCS and main version strings to match new targets and build metadata. (7bdfbdd, fa310a7, fb150e8, 0286291)
Fixed
- Fixed compilation issues across targeted versions so all configured targets compile cleanly. (1350036)
- Conditional removal of mixins to allow running under JDK 21 and avoid startup crashes. (a3f0e8f)
- Corrected version ranges that could cause incorrect compatibility handling. (f4bc139)
CI / Chore
- Updated CI/CD to publish versioned artifacts and added an artifact upload step. (4b421b0, dfc7075)
- Misc. repo maintenance: updated author links and issue templates. (038748c, 9fee61a)
Notes for testers
- This candidate stabilizes multi-version builds and adds support for newer mappings; please test on development servers for each target Minecraft version.
- If you hit issues, include the full server log and the repository
buildlogs when opening an issue.
- Full Changelog**: [compare v1.0.4 with v2.0.0-rc1](https://github.com/ajh123/BeQuietNegotiator/compare/v1.0.4...v2.0.0-rc1)
v2.0.0-rc1 release candidate marks a major milestone in the development of BeQuietNegotiator, introducing multi-version support andcompatibility with newer Minecraft versions. This release focuses on expanding the range of supported Minecraft versions while ensuring
stability and performance across all targets.
Highlights
- Added multi-version support and explicit compatibility for newer Minecraft/NeoForge versions.
- Added support for Minecraft
1.21.8and1.21.11development targets. - Improved CI to publish built artifacts and uploads.
Added
- Initial multiversion support to allow building/publishing multiple Minecraft-targeted artifacts. (180bb11)
- Added support for
1.21.8. (5c28f0f) - Added
1.21.11version entry. (e23ccc6)
Changed / Refactor
- Refactored
NetworkRegistryMixinand other mixins to adapt to multi-version NeoForge support. (9df1bcc) - Updated VCS and main version strings to match new targets and build metadata. (7bdfbdd, fa310a7, fb150e8, 0286291)
Fixed
- Fixed compilation issues across targeted versions so all configured targets compile cleanly. (1350036)
- Conditional removal of mixins to allow running under JDK 21 and avoid startup crashes. (a3f0e8f)
- Corrected version ranges that could cause incorrect compatibility handling. (f4bc139)
CI / Chore
- Updated CI/CD to publish versioned artifacts and added an artifact upload step. (4b421b0, dfc7075)
- Misc. repo maintenance: updated author links and issue templates. (038748c, 9fee61a)
Notes for testers
- This candidate stabilizes multi-version builds and adds support for newer mappings; please test on development servers for each target Minecraft version.
- If you hit issues, include the full server log and the repository
buildlogs when opening an issue.
- Full Changelog**: [compare v1.0.4 with v2.0.0-rc1](https://github.com/ajh123/BeQuietNegotiator/compare/v1.0.4...v2.0.0-rc1)
v2.0.0-rc1 release candidate marks a major milestone in the development of BeQuietNegotiator, introducing multi-version support andcompatibility with newer Minecraft versions. This release focuses on expanding the range of supported Minecraft versions while ensuring
stability and performance across all targets.
Highlights
- Added multi-version support and explicit compatibility for newer Minecraft/NeoForge versions.
- Added support for Minecraft
1.21.8and1.21.11development targets. - Improved CI to publish built artifacts and uploads.
Added
- Initial multiversion support to allow building/publishing multiple Minecraft-targeted artifacts. (180bb11)
- Added support for
1.21.8. (5c28f0f) - Added
1.21.11version entry. (e23ccc6)
Changed / Refactor
- Refactored
NetworkRegistryMixinand other mixins to adapt to multi-version NeoForge support. (9df1bcc) - Updated VCS and main version strings to match new targets and build metadata. (7bdfbdd, fa310a7, fb150e8, 0286291)
Fixed
- Fixed compilation issues across targeted versions so all configured targets compile cleanly. (1350036)
- Conditional removal of mixins to allow running under JDK 21 and avoid startup crashes. (a3f0e8f)
- Corrected version ranges that could cause incorrect compatibility handling. (f4bc139)
CI / Chore
- Updated CI/CD to publish versioned artifacts and added an artifact upload step. (4b421b0, dfc7075)
- Misc. repo maintenance: updated author links and issue templates. (038748c, 9fee61a)
Notes for testers
- This candidate stabilizes multi-version builds and adds support for newer mappings; please test on development servers for each target Minecraft version.
- If you hit issues, include the full server log and the repository
buildlogs when opening an issue.
- Full Changelog**: [compare v1.0.4 with v2.0.0-rc1](https://github.com/ajh123/BeQuietNegotiator/compare/v1.0.4...v2.0.0-rc1)
v2.0.0-rc1 release candidate marks a major milestone in the development of BeQuietNegotiator, introducing multi-version support andcompatibility with newer Minecraft versions. This release focuses on expanding the range of supported Minecraft versions while ensuring
stability and performance across all targets.
Highlights
- Added multi-version support and explicit compatibility for newer Minecraft/NeoForge versions.
- Added support for Minecraft
1.21.8and1.21.11development targets. - Improved CI to publish built artifacts and uploads.
Added
- Initial multiversion support to allow building/publishing multiple Minecraft-targeted artifacts. (180bb11)
- Added support for
1.21.8. (5c28f0f) - Added
1.21.11version entry. (e23ccc6)
Changed / Refactor
- Refactored
NetworkRegistryMixinand other mixins to adapt to multi-version NeoForge support. (9df1bcc) - Updated VCS and main version strings to match new targets and build metadata. (7bdfbdd, fa310a7, fb150e8, 0286291)
Fixed
- Fixed compilation issues across targeted versions so all configured targets compile cleanly. (1350036)
- Conditional removal of mixins to allow running under JDK 21 and avoid startup crashes. (a3f0e8f)
- Corrected version ranges that could cause incorrect compatibility handling. (f4bc139)
CI / Chore
- Updated CI/CD to publish versioned artifacts and added an artifact upload step. (4b421b0, dfc7075)
- Misc. repo maintenance: updated author links and issue templates. (038748c, 9fee61a)
Notes for testers
- This candidate stabilizes multi-version builds and adds support for newer mappings; please test on development servers for each target Minecraft version.
- If you hit issues, include the full server log and the repository
buildlogs when opening an issue.
- Full Changelog**: [compare v1.0.4 with v2.0.0-rc1](https://github.com/ajh123/BeQuietNegotiator/compare/v1.0.4...v2.0.0-rc1)
[#6](https://github.com/ajh123/BeQuietNegotiator/issues/6).
This release updates mod metadata to mark the mod as incompatible with Minecraft 1.21.2 and later versions to prevent
automated installations on unsupported versions.
This is a temporary measure while a proper fix is developed. Future releases will aim to restore compatibility with
Minecraft 1.21.2+.
- Full Changelog**: [compare v1.0.3 with v1.0.4](https://github.com/ajh123/BeQuietNegotiator/compare/v1.0.3...v1.0.4)
Bug Fixes and Changes:
1. Remove the unused server side config as Be Quiet Negotiator is strictly client-side only (fixes: [#4](https://github.com/ajh123/BeQuietNegotiator/issues/4))
2. The mods.toml file has been updated to reflect that Be Quiet Negotiator is a client-side only mod
the client just did not ignore them at all.
The problem was caused by the
ClientCommonPacketListenerImplMixin not being registered in the mixins file -this has now been fixed.
New Features:
1. The client can now ignore custom feature flags when connecting to a vanilla server
(fixes: [#1](https://github.com/ajh123/BeQuietNegotiator/issues/1)) (*introduced in v1.0.1-rc1*)
2. The client can now ignore packet decoding errors when connecting to a server
(fixes: [#1 (comment 3011626189)](https://github.com/ajh123/BeQuietNegotiator/issues/1#issuecomment-3011626189)) (*introduced in v1.0.1-rc2*)
3. Automated release pipelines for GitHub and Modrinth have been set up (*introduced in v1.0.1-rc2*)
4. The client now ignores packets larger than expected (fixes: [#1 (comment 3067088739)](https://github.com/ajh123/BeQuietNegotiator/issues/1#issuecomment-3067088739)) (*introduced in v1.0.1-rc6*)
5. Client side packet handling errors are now ignored when connecting to a vanilla server, allowing the client to connect without issues. (fixes: : [#1 (comment 3067399173)](https://github.com/ajh123/BeQuietNegotiator/issues/1#issuecomment-3067399173)) (*introduced in v1.0.1-rc7*)
Bug Fixes and Changes:
1. Patches are now disabled when connecting to NeoForge servers to prevent compatibility issues (*introduced in v1.0.1-rc2*)
2. Fixed all occurrences of the typo **"Quite"** (should have been **"Quiet"**) across the codebase (*introduced in v1.0.1-rc2*)
3. Fixed a crash caused by invalid access transformer syntax despite Architectury Loom successfully applying the access transformer (fixes: [#2](https://github.com/ajh123/BeQuietNegotiator/issues/2)) (*introduced in v1.0.1-rc3*)
4. Fixed an issue where
isConnectedToVanillaServer was not set early enough, causing CheckFeatureFlags.handleVanillaServerConnection to behave incorrectly (fixes: [#1 (comment 3065956489)](https://github.com/ajh123/BeQuietNegotiator/issues/1#issuecomment-3065956489)) (*introduced in v1.0.1-rc4*)5. Improved the implementation for ignoring packet decoding errors to be more robust (properly fixes: [#1 (comment 3011626189)](https://github.com/ajh123/BeQuietNegotiator/issues/1#issuecomment-3011626189)) (*introduced in v1.0.1-rc5*)
6.
NetworkRegistryMixin now checks ClientConfig.bypassCustomFeatureFlags() before calling CheckFeatureFlags.handleVanillaServerConnectionto ensure custom feature flags are ignored when connecting to servers that do not support them (fixes: [#1 (comment 3066014192)](https://github.com/ajh123/BeQuietNegotiator/issues/1#issuecomment-3066014192)) (*introduced in v1.0.1-rc5*)
7. Renamed
acceptVanillaServer to bypassNegotiationErrors to better reflect its purpose (*introduced in v1.0.1-rc7*)Removed Features:
1. Unsupported server-side patches have been removed from the Be Quiet Negotiator codebase (*introduced in v1.0.1-rc7*)
- Full Changelog**: [compare v1.0.0 with v1.0.1](https://github.com/ajh123/BeQuietNegotiator/compare/v1.0.0...v1.0.1)
Changes in this release:
- Unsupported server side patches are removed from the Be Quite Negotiator codebase.
- Renamed
acceptVanillaServertobypassNegotiationErrorsto better reflect its purpose. - Client side packet handling errors are now ignored when connecting to a vanilla server, allowing the client to connect without issues. (fixes: https://github.com/ajh123/BeQuietNegotiator/issues/1#issuecomment-3067399173)
- If there are no significant issues this release will be promoted to v1.0.1 on both GitHub and Modrinth.*
Changes in this release:
- The client now ignores packets larger than expected (fixes: https://github.com/ajh123/BeQuietNegotiator/issues/1#issuecomment-3067088739)
- If there are no significant issues this release will be promoted to v1.0.1 on both GitHub and Modrinth.*
Changes in this release:
- There is now a more robust solution for client ignoring packet decoding errors when connecting to a server (properly fixes: https://github.com/ajh123/BeQuietNegotiator/issues/1#issuecomment-3011626189)
NetworkRegistryMixinnow checksClientConfig.bypassCustomFeatureFlags()before callingCheckFeatureFlags.handleVanillaServerConnectionto ensure custom feature flags are ignored when connecting to servers that do not support them (fixes: https://github.com/ajh123/BeQuietNegotiator/issues/1#issuecomment-3066014192)
- If there are no significant issues this release will be promoted to v1.0.1 on both GitHub and Modrinth.*
Changes in this release:
- Fixed an issue where
isConnectedToVanillaServerwas not set early enough, causingCheckFeatureFlags.handleVanillaServerConnectionto behave incorrectly.
The flag is now correctly set to
true before the method runs.(fixes: https://github.com/ajh123/BeQuietNegotiator/issues/1#issuecomment-3065956489)
- If there are no significant issues this release will be promoted to v1.0.1 on both GitHub and Modrinth.*
Changes in this release:
- The client no longer crashes due to invalid access transformer syntax (fixes: https://github.com/ajh123/BeQuietNegotiator/issues/2)
- If there are no significant issues this release will be promoted to v1.0.1 on both GitHub and Modrinth.*
Changes in this release:
- The client can now ignore packet decoding errors when connecting to a server (fixes: https://github.com/ajh123/BeQuietNegotiator/issues/1#issuecomment-3011626189)
- Patches are disabled when connecting to a NeoForge server to ensure compatibility
- Automated release pipelines for GitHub and Modrinth has been set up
- Fixed typo Quiet in all places where it was incorrectly spelled as Quite
- If there are no significant issues this release will be promoted to v1.0.1 on both GitHub and Modrinth.*
- Full Changelog**: https://github.com/ajh123/BeQuietNegotiator/commits/v1.0.0