Not Enough Bandwidth

⭐ — (21 endorsements) 📥 218,251 downloads 📌 v26.1.2-1+alpha 📅 3/26/2026
🟡 Updated this year

By USS-Shenzhou · neoforge

⬇ Download Mod Source: Modrinth ↗ 📅 Updated: 8/4/2026 📅 Created: 3/26/2026
⚠️ Install Order · 2 steps
1🛠️ Forge — Minecraft Forge (mod loader) Download ↗
2🛠️ Fabric — Fabric Loader Download ↗

Install in this order, then this mod last — most mods fail to load without their framework and dependencies in place.

🔍 Analysis

  • 👍 0.0% endorsement rate
  • 🏆 #19 of 36 neoforge mods in this game by downloads

📋 About This Mod

# Not Enough Bandwidth (NEB) !(https://cdn.modrinth.com/data/cached_images/2d6c0b2d49e68249c7a0ba20a859e7bb2045b8bd.png) ## Introduction NEB uses various methods to save as much network traffic as possible during Minecraft gameplay, while remaining transparent to both mods and players. In the ZZZZ Dataset from (teacon.cn), compared to raw uncompressed data, NEB can theoretically reduce the server's outbound traffic to 7.6% of its original size, with an actual measured value of approximately 13.8%. <img width="1908" height="1908" alt="output" src="https://github.com/user-attachments/assets/5e015031-f6e8-4280-a280-17da859a8615" /> In tests conducted in a Vanilla environment, the server outbound traffic was reduced to 18% of its original size. Theoretically, as the number of installed mods increases, the content transmitted over the network becomes larger and more complex, leading to better compression performance. Press Alt+N in-game to easily view the network traffic status. <img width="2559" height="1383" alt="image" src="https://github.com/user-attachments/assets/216dea71-dbc7-40f2-8117-d20fcf74cd11" /> ## Main Features ### Compact Packet Header Optimize `CustomPacketPayload` encoding and decoding by replacing the packet header `Identifier` (Packet Type) with a compact index. This reduces the mod network packet header overhead to a fixed 3-4 bytes, instead of the length of the string corresponding to the network packet type. The index structure is as follows: > ### Fixed 8 bits header > ``` > ┌------------- 1 byte (8 bits) ---------------┐ > │ function flags │ > ├---┬---┬-------------------------------------┤ > │ i │ t │ reserved (6 bits) │ > └---┴---┴-------------------------------------┘ > ``` > - i = indexed (1 bit) > - t = tight_indexed (1 bit, only valid if i=1) > - reserved = 6 bits (for future use) > > ### Indexed packet type > - If i=0 (not indexed): > ``` > ┌---------------- N bytes ---------------- > │ Identifier (packet type) in UTF-8 > └----------------------------------------- > ``` > - If i=1 and t=0 (indexed, NOT tight): > ``` > ┌-------- 1 byte ---------┬-------- 1 byte --------┬-------- 1 byte --------┐ > ┌------------- 12 bits ---------------┬-------------- 12 bits --------------┐ > │ namespace-id (capacity 4096) │ path-id (capacity 4096) │ > └-------------------------------------┴-------------------------------------┘ > ``` > - If i=1 and t=1 (indexed, tight): > ``` > ┌--------- 1 byte ----------┬--------- 1 byte ---------┐ > ┌--------- 8 bits ----------┬--------- 8 bits ---------┐ > │namespace-id (capacity 256)│ path-id (capacity 256) │ > └---------------------------┴--------------------------┘ > ``` > Then packet data. It occupies 3 bytes when the network packet namespace and its corresponding path are fewer than 256, and 4 bytes when greater than 256. This supports up to 4096 mods, with 4096 channels per mod. ### Aggregation and Compress Optimize the situation where vanilla often produces a large number of small network packets. Intercept transmission at the `Connection` level, assemble them into one large network packet every 20ms, and send it after compression. > ``` > ┌---┬----┬----┬----┬----┬----┬----... > │ S │ p0 │ s0 │ d0 │ p1 │ s1 │ d1 ... > └---┴----┴----┴----┴----┴----┴----... > └--packet 1---┘└--packet 2---┘ > └----------compressed----------┘ > ``` > - S = varint, size of compressed buf > - p = prefix (medium/int/utf-8), type of this subpacket > - s = varint, size of this subpacket > - d = bytes, data of this subpacket ### Delayed Chunk Cache In Vanilla, when a player moves, the server instructs the client to immediately forget the chunks behind them; if the player returns to the original position, the full chunk data must be sent again. By delaying this "forgetting", the chunk transmission traffic generated when poking around can be saved. ## Config Modify the configuration file at `config/NotEnoughBandwidthConfig.json`. ### compatibleMode > WORK INDEPENDENTLY ON CLIENT AND SERVER. Whether to enable compatibility mode. If set to `true`, the `blackList` below will be used. ### blackList > WORK INDEPENDENTLY ON CLIENT AND SERVER. The blacklist for compatibility mode. Packets listed here will be skipped by NEB. By default, it includes a list of Velocity-related packets, but you can add new packets as needed. > To ensure packet ordering, packets in the blacklist will interrupt the ongoing aggregation. If there are many packets in the blacklist, or if the corresponding packets are sent too frequently, the efficiency of aggregation-compression will decrease. ### contextLevel > WORK INDEPENDENTLY ON CLIENT AND SERVER. The context window size used for compression. Valid values are integers from 21 to 25, representing 2MB to 32MB respectively. The default is 23 (8MB). A larger context window results in better compression and bandwidth savings, but consum

# Not Enough Bandwidth (NEB)

!(https://cdn.modrinth.com/data/cached_images/2d6c0b2d49e68249c7a0ba20a859e7bb2045b8bd.png)

## Introduction

NEB uses various methods to save as much network traffic as possible during Minecraft gameplay, while remaining transparent to both mods and players.

In the ZZZZ Dataset from (teacon.cn), compared to raw uncompressed data, NEB can theoretically reduce the server's outbound traffic to 7. 6% of its original size, with an actual measured value of approximately 13. 8%.

output

In tests conducted in a Vanilla environment, the server outbound traffic was reduced to 18% of its original size. Theoretically, as the number of installed mods increases, the content transmitted over the network becomes larger and more complex, leading to better compression performance.

Press Alt+N in-game to easily view the network traffic status.

image

## Main Features

### Compact Packet Header

Optimize `CustomPacketPayload` encoding and decoding by replacing the packet header `Identifier` (Packet Type) with a compact index. This reduces the mod network packet header overhead to a fixed 3-4 bytes, instead of the length of the string corresponding to the network packet type.

The index structure is as follows:

> ### Fixed 8 bits header > ``` > ┌------------- 1 byte (8 bits) ---------------┐ > │ function flags │ > ├---┬---┬-------------------------------------┤ > │ i │ t │ reserved (6 bits) │ > └---┴---┴-------------------------------------┘ > ``` > - i = indexed (1 bit) > - t = tight_indexed (1 bit, only valid if i=1) > - reserved = 6 bits (for future use) > > ### Indexed packet type > - If i=0 (not indexed): > ``` > ┌---------------- N bytes ---------------- > │ Identifier (packet type) in UTF-8 > └----------------------------------------- > ``` > - If i=1 and t=0 (indexed, NOT tight): > ``` > ┌-------- 1 byte ---------┬-------- 1 byte --------┬-------- 1 byte --------┐ > ┌------------- 12 bits ---------------┬-------------- 12 bits --------------┐ > │ namespace-id (capacity 4096) │ path-id (capacity 4096) │ > └-------------------------------------┴-------------------------------------┘ > ``` > - If i=1 and t=1 (indexed, tight): > ``` > ┌--------- 1 byte ----------┬--------- 1 byte ---------┐ > ┌--------- 8 bits ----------┬--------- 8 bits ---------┐ > │namespace-id (capacity 256)│ path-id (capacity 256) │ > └---------------------------┴--------------------------┘ > ``` > Then packet data.

It occupies 3 bytes when the network packet namespace and its corresponding path are fewer than 256, and 4 bytes when greater than 256. This supports up to 4096 mods, with 4096 channels per mod.

### Aggregation and Compress

Optimize the situation where vanilla often produces a large number of small network packets. Intercept transmission at the `Connection` level, assemble them into one large network packet every 20ms, and send it after compression.

> ``` > ┌---┬----┬----┬----┬----┬----┬----... > │ S │ p0 │ s0 │ d0 │ p1 │ s1 │ d1 ... > └---┴----┴----┴----┴----┴----┴----... > └--packet 1---┘└--packet 2---┘ > └----------compressed----------┘ > ``` > - S = varint, size of compressed buf > - p = prefix (medium/int/utf-8), type of this subpacket > - s = varint, size of this subpacket > - d = bytes, data of this subpacket

### Delayed Chunk Cache

In Vanilla, when a player moves, the server instructs the client to immediately forget the chunks behind them; if the player returns to the original position, the full chunk data must be sent again. By delaying this "forgetting", the chunk transmission traffic generated when poking around can be saved.

Modify the configuration file at `config/NotEnoughBandwidthConfig.json`.

### compatibleMode

> WORK INDEPENDENTLY ON CLIENT AND SERVER.

Whether to enable compatibility mode. If set to `true`, the `blackList` below will be used.

### blackList

> WORK INDEPENDENTLY ON CLIENT AND SERVER.

The blacklist for compatibility mode. Packets listed here will be skipped by NEB. By default, it includes a list of Velocity-related packets, but you can add new packets as needed.

> To ensure packet ordering, packets in the blacklist will interrupt the ongoing aggregation. If there are many packets in the blacklist, or if the corresponding packets are sent too frequently, the efficiency of aggregation-compression will decrease.

### contextLevel

> WORK INDEPENDENTLY ON CLIENT AND SERVER.

The context window size used for compression. Valid values are integers from 21 to 25, representing 2MB to 32MB respectively. The default is 23 (8MB).

A larger context window results in better compression and bandwidth savings, but consum

🤖 AI-enhanced — based on mod data

📊 Mod Details

Game
Minecraft Mods
Author
USS-Shenzhou
Version
26.1.2-1+alpha
Downloads
218,251
Endorsements
21
Category
neoforge
Created
3/26/2026
Updated
8/4/2026
Game Versions
26.1, 26.1.1, 26.1.2
Tags
optimization

🔧 How to Install Minecraft Mods Mods

Download from Modrinth. Use Prism Launcher or drop into your mods folder.

📖 Full step-by-step install guide for Minecraft Mods →

Visit the official mod page for specific installation instructions for this mod.

🎮 Need cheat codes or console commands? Check ur gaming wiki for Minecraft Mods commands, item IDs, and more.

❓ Frequently Asked Questions

Which Minecraft Mods versions does Not Enough Bandwidth support?

The author lists 26.1, 26.1.1, 26.1.2. Other versions may work but are untested by the author.

What is the latest version of Not Enough Bandwidth?

Version 26.1.2-1+alpha, published 2026-08-04 with 218,251 downloads recorded at the source.

Keep browsing — more Minecraft Mods mods await

📋 All Minecraft Mods Mods 🏆 Top 25 📂 More neoforge 👤 More by USS-Shenzhou 🔎 Similar Mods 🌐 Best neoforge (All Games) 🔀 Check Compatibility ⚖️ Compare Mods 🆕 New Mods