Mod

Consumable Optimizer

Quick rating

Consumable Optimizer

No reviews yet

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

No Theme
No Genre
QoL & Tweaks
Performance & Optimization
Client Utility
Mod Loaders
Forge
Fabric
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

CurseForge
No longer available on CurseForge
Modrinth logo Modrinth

Compatibility

Supported Environments

Dev Environment
Client Required
Server Unsupported

About

Project Details

Type
Mod
License
MIT License
Latest Version
ConsumableOptimizer-2.2.1-1.21.5.jar
Authors
CurseForge

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID
Modrinth ID

Resources

External Links

About

Description

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

Embed Removed: https://www.youtube-nocookie.com/embed/1eVq6nrUfqs


Server Opt Out

On servers using popular anti-cheats, such as Grim or Vulkan, it's unlikely for Consumable Optimizer to flag. However, if your server has reports of Consumable Optimizer causing flags or you don't want your player base using the mod, 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

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

On servers using popular anti-cheats, such as Grim or Vulkan, it's unlikely for Consumable Optimizer to flag. However, if your server has reports of Consumable Optimizer causing flags or you don't want your player base using the mod, 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

Screenshots

Gallery

This project has no gallery images yet.

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

~620,000
Total Downloads
CurseForge
~5,000
Modrinth
~620,000
Last Updated
CurseForge
Modrinth
Created
CurseForge
Modrinth
Last synced
When ModDex last fetched and imported data for this project from CurseForge or Modrinth. High-traffic and active projects are checked more often.
Next pipeline sync