Skip to content

🍲 Stew Stacking & Consumption Ergonomics (Minecraft 26.2)

📌 Repository Source Disclaimer: The documentation in this Wiki reflects the current source code state in the repository, which may include recent unreleased commits or developmental features ahead of public release builds on CurseForge and Modrinth.

1. Official Infobox

ParameterTechnical Details
Subsystem NameStew Stacking & Consumption Ergonomics Engine
Implementation ClassStewStackerManager.java (getModifiedStackSize)
Registration InterfaceCustomStackSizeOverride (Stack Size Adjuster API)
Target Item TypesMUSHROOM_STEW, RABBIT_STEW, BEETROOT_SOUP, SUSPICIOUS_STEW
Controlling GameRulestew-stacker-addon:stew_limit (Default: 16)
Upper Bound LimitInteger.MAX_VALUE (2,147,483,647)
Recommended Safe Ceiling39,768,215 (prevents Large Chest 32-bit integer overflow)
Bowl Return Itemminecraft:bowl (Wooden Bowl)

2. Step-by-Step Player Survival Workflow

  1. Acquiring & Crafting Stews: Craft or gather Mushroom Stew, Rabbit Stew, Beetroot Soup, or Suspicious Stew. As stews enter your inventory, identical items automatically coalesce into stacks up to the active stewLimit (default: 16).

  2. Eating Stews in Survival: Hold the stacked stew item in your main hand or off-hand and hold right-click to eat.

    • Consumption Phase: The stack count decrements by 1.
    • Bowl Return Phase: The empty wooden bowl (minecraft:bowl) is immediately deposited into your inventory.
    • Inventory Overflow Safety: If your inventory is completely packed, the empty bowl cleanly spawns into the world at your feet with zero item deletion.
    • Final Item Consumption: When you consume the last remaining stew (count $= 1$), the empty bowl remains in your active hand.
  3. Storage & Chest Management: Stews can be sorted, moved, and deposited into chests, barrels, hoppers, and shulker boxes in full stacks up to the configured limit.


3. Mathematical Formulas & Storage Density

Storage Compression Multiplier ($C$)

The inventory compression ratio achieved relative to vanilla unstackable stews ($S_{\text{vanilla}} = 1$) is: $$C = \frac{S_{\text{limit}}}{S_{\text{vanilla}}} = S_{\text{limit}}$$

For default settings ($S_{\text{limit}} = 16$): $$C = 16\times \text{ more food per inventory slot}$$

Container Storage Capacities

The total stew holding capacity for standard containers is given by: $$\text{Capacity}{\text{chest}} = 27 \times S{\text{limit}}$$ $$\text{Capacity}{\text{double_chest}} = 54 \times S{\text{limit}}$$ $$\text{Capacity}{\text{player_inventory}} = 36 \times S{\text{limit}}$$

Container TypeSlotsVanilla Capacity ($S=1$)Modded Default ($S=16$)Storage Gain
Player Hotbar99 stews144 stews$+135$ stews
Main Inventory2727 stews432 stews$+405$ stews
Single Chest / Barrel2727 stews432 stews$+405$ stews
Large Double Chest5454 stews864 stews$+810$ stews
Shulker Box2727 stews432 stews$+405$ stews

The 32-Bit Integer Safe Ceiling ($S_{\text{safe}}$)

Under the Player Agency & Anti-Nanny Invariant, players may configure stack limits up to $2{,}147{,}483{,}647$. However, to avoid exceeding the signed 32-bit integer ceiling across all 54 slots of a double chest: $$S_{\text{safe}} = \left\lfloor \frac{2^{31} - 1}{54} \right\rfloor = \left\lfloor \frac{2{,}147{,}483{,}647}{54} \right\rfloor = 39{,}768{,}215$$ Any value $\le 39{,}768{,}215$ guarantees that total container item counts cannot overflow JVM integer bounds.


4. Visual ASCII Diagrams & State Machine

Item Stacking Resolution Pipeline

       [ Item Stack Size Query: getModifiedStackSize(item, original) ]
                                     |
                                     v
                             Is original <= 0?
                            /                 \
                          YES                  NO
                          /                     \
                    Return original        Is item a Stew or Soup?
                                           /                     \
                                         YES                      NO
                                         /                         \
                                Return stewLimit                Return -1
                                  (Default: 16)             (Continue chain)

Consumption & Bowl Return Lifecycle

   Player Holds: [ Stew Stack (Nx) ] --Eats Stew--> Eating Finished
                                                          |
                 +----------------------------------------+
                 |
                 v
         Is N > 1?
        /         \
      YES          NO
      /             \
Stack becomes (N-1)   Active hand becomes
      |               empty wooden bowl
      v
Try Insert Bowl into Inventory
      |
  Full Inventory?
  /             \
YES              NO
 /                \
Drop bowl at feet   Bowl placed in slot

5. SNBT & Data Component Schemas

In modern Minecraft, items retain their data components when stacked. For example, Suspicious Stew preserves its custom status effect components across stacked instances:

snbt
{
  id: "minecraft:suspicious_stew",
  count: 16,
  components: {
    "minecraft:suspicious_stew_effects": [
      {
        id: "minecraft:night_vision",
        duration: 160
      }
    ]
  }
}

When two stew stacks merge, Minecraft checks component equality. Identical stews stack seamlessly up to stewLimit.


6. Exhaustive Reference Matrix

Item DescriptionMinecraft IdentifierVanilla MaxStew Stacker MaxControlling GameRule
Mushroom Stewminecraft:mushroom_stew116 (Configurable)stew-stacker-addon:stew_limit
Rabbit Stewminecraft:rabbit_stew116 (Configurable)stew-stacker-addon:stew_limit
Beetroot Soupminecraft:beetroot_soup116 (Configurable)stew-stacker-addon:stew_limit
Suspicious Stewminecraft:suspicious_stew116 (Configurable)stew-stacker-addon:stew_limit

7. Developer & Addon Extension Hooks

Resolution Method Implementation (StewStackerManager.java):

java
public static int getModifiedStackSize(Item item, int original) {
    if (original <= 0) {
        return original;
    }
    if (isStewOrSoup(item)) {
        return stewLimit;
    }
    return -1;
}

public static boolean isStewOrSoup(Item item) {
    return item == net.minecraft.world.item.Items.MUSHROOM_STEW
        || item == net.minecraft.world.item.Items.RABBIT_STEW
        || item == net.minecraft.world.item.Items.BEETROOT_SOUP
        || item == net.minecraft.world.item.Items.SUSPICIOUS_STEW;
}

Registration with Stack Size Adjuster API (StewStackerFabric.java):

java
net.instantgratification.stacksizeadjuster.util.StackSizeManager.registerOverride(
    (net.instantgratification.stacksizeadjuster.util.CustomStackSizeOverride) (item, originalSize) -> 
        StewStackerManager.getModifiedStackSize(item, originalSize)
);

Official documentation & web portal for Dasik Igaijinn mods.