Back to mods
Consumable Optimizer project artwork

Modrinth · Minecraft mod

Consumable Optimizer

Handles eating client-side, ensuring servers don't slow down the eating process

Choose a version Pick your version below, then grab the matching file.

Quick answer

Which Consumable Optimizer release matches 1.21.9 Fabric?

Updated 23 days ago
Best match for your filters 2.2.1-1.21.5
Game version 1.21.5, 1.21.6, 1.21.7
Loader Fabric

Consumable Optimizer 2.2.1-1.21.5 targets 1.21.5, 1.21.6, 1.21.7 with Fabric. It must be installed on the client. Do not install it on the dedicated server. No extra mods listed for this file.

Where it goes

Is Consumable Optimizer required on the client, server, or both?

It must be installed on the client. Do not install it on the dedicated server.

Client Required
Dedicated server Not supported
Loader for this release Fabric
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

This file is marked client-only.

What else does Consumable Optimizer 2.2.1-1.21.5 need?

2.2.1-1.21.5 on 1.21.9 Fabric. Every mod below is checked against that same setup.

No extra mods listed for this file

This file does not list any required mods. Do not add a library just because a different file uses it.

This file does not list any required or optional mods.

Before you install it

Add Consumable Optimizer without breaking your instance.

Built for Consumable Optimizer 2.2.1-1.21.5 on 1.21.9 Fabric. Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use 2.2.1-1.21.5. It targets 1.21.5, 1.21.6, 1.21.7 with Fabric; another release may have different loader, side or dependency requirements.

  2. 02

    Bring the mods it needs

    This file does not list any required mods. Do not add a library just because a different file uses it.

  3. 03

    Put it on the correct side

    It must be installed on the client. Do not install it on the dedicated server.

  4. 04

    Pick the file you checked

    Use the “Get this file” button beside 2.2.1-1.21.5. It opens that exact file at the source.

About this project

What does Consumable Optimizer add?

Consumable Optimizer!

This mod enforces more client-sided processing when handling consumable items (any food item).


Information

By default, Minecraft requires the user to wait for a server response before consuming an item. While this delay is hardly noticeable on low ping, it becomes much more noticable on high ping and causes players to be stuck in an eating animation until the server eventually responds.
This optimizer ensures all of that processing is done client-side rather than server-side, allowing items to be comsumed with no delay and on the exact tick it should be finished. The server still applies the item's effects (such as absorption or regeneration from a golden apple) while the client handles the actual eating process.

High ping can also occationaly causes desyncs when consuming an item, forcing the server to restart the eating process for the player. This further slows the overall process of consuming an item down even more and makes it feel inconsistent. This optimizer fixes this, by cancelling these recalls from the server when unneeded.

Demonstration Video


Server Opt Out

If you don't want your playerbase using the mod and you're a server owner, you can opt out using a very simple plugin. Some example code can be found below:

public class ConsumableOptimizerDisable extends JavaPlugin implements PluginMessageListener {

    private static final String S2C_CHANNEL = "consumable_optimizer:disable_payload";
    private static final String C2S_CHANNEL = "consumable_optimizer:handshake_payload";

    @Override
    public void onEnable() {
        this.getServer().getMessenger().registerOutgoingPluginChannel(this, S2C_CHANNEL);
        this.getServer().getMessenger().registerIncomingPluginChannel(this, C2S_CHANNEL, this);
    }

    @Override
    public void onPluginMessageReceived(String channel, Player player, byte[] message) {
        if (channel.equals(C2S_CHANNEL)) {
            Bukkit.getScheduler().runTaskLater(this, () -> {
                if (player.isOnline()) {
                    player.sendPluginMessage(this, S2C_CHANNEL, new byte[0]);
                    getLogger().info("Disabled consumable optimizer for " + player.getName());
                }
            }, 20L);
        }
    }
}

Credits

Project description from Modrinth.

Pick your setup

Consumable Optimizer by Minecraft version and loader

Choose the version and loader you play, then open the matching release.

18 available setups

Showing the newest 12 of 18 game versions. Older files are in the list below.

Check the dependencies, then try the file in a copied instance before changing a world you care about.

Recent files

Consumable Optimizer versions and loaders

4 of 31 releases match
Clear filters

Looking for an older file? The official Modrinth project page is in Resources.