HomeJavaModsEMI JEI Grid Fix
EMI JEI Grid Fix
ModsJava

EMI JEI Grid Fix

by viribus · on Modrinth

Fixes recipes from JEI plugins rendering wrong in EMI: slots handed to a scrolling grid widget (like the Strainers drop table) were all drawn stacked in…

⬇ Download on Modrinth
EMI JEI Grid Fix — screenshot 1

Some mods ship a JEI plugin but no EMI plugin, and EMI shows those recipes anyway by reading the JEI plugin through its built-in compatibility layer. That mostly works — except for recipes whose slots are placed by a scrolling grid widget instead of by fixed coordinates.

Those slots all end up drawn in the top-left corner of the recipe, stacked on each other and on top of the recipe's inputs. If you have ever opened a strainer recipe in EMI and seen the entire drop table piled onto the input item, this is that bug.

This mod fixes it. Nothing else changes: no new UI, no config, no recipes added or hidden.

Before / after

BenBenLaw's Strainers puts its drop table in a 5×3 scrolling grid. Without this mod every one of those outputs renders at the same spot over the input slots; with it, they lay out in the grid the recipe asked for.

Why it happens

EMI's JEI-compat layer implements JEI's "add a slot and let a widget position it later" method as:

public IRecipeSlotBuilder addSlotToWidget(RecipeIngredientRole role, ISlottedWidgetFactory<?> widgetFactory) {
    return addSlot(role, 0, 0);
}

The widget is ignored, so every slot lands at (0, 0). This mod intercepts that call, asks the grid where it was placed and how wide it is, and puts each slot in the next grid cell — the same position JEI's own grid widget would have used.

Any JEI plugin using a scroll grid benefits, not just Strainers.

Requirements

Known limitation

EMI recipe panels do not scroll, so a recipe with more outputs than its grid was sized for keeps flowing downward past the bottom of the panel instead of scrolling. Strainer recipes fit comfortably.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more