
EMI Shadow Patch
Running EMI and Shadow Drop together is slow. This fixes most of it.
The problem
Shadow Drop draws a second, shadow-coloured copy of every item in a GUI. That is cheap while EMI's batched item renderer is doing the drawing — but the moment items are drawn one at a time, it becomes the most expensive thing on screen. And EMI rebuilds its item list every time you scroll, so a large list pays that cost over and over.
The result is a frame rate that collapses when you open EMI, and stutters while you scroll.
What this mod does
- No more stutter while scrolling an EMI list. The list no longer pauses to inspect the screen image to work out what is a slot, and it no longer redoes the same per-item lookups from scratch on every pass.
- Restores EMI's fast batched item rendering when EMI has switched it off by mistake. Some Sodium-family setups make EMI decide it cannot use its fast path, without checking properly. When that happens this mod puts it back, which is worth more than everything else here combined.
- Items that share an ID but differ in NBT stop costing extra. Enchanted books, potions, custom-model items and the like are the worst case for EMI, because working out how to draw each one is expensive and it was being redone every frame.
- Shadows draw together instead of one at a time. Shadow Drop's shadow copies used to cost a separate draw call for every item on screen.
- Works alongside GUI animation mods rather than fighting them. Mods that slide or bounce a screen, like SmoothGui, deliberately switch EMI's fast path off, because items built once cannot move. This mod rebuilds the list only while the animation is actually moving, so the animation plays and the fast path comes back the moment it settles.
- Nothing is forced. Every part of this is configurable, and each option can restore the original behaviour on its own.
Your shadows, their appearance, their placement and their settings are all unchanged.
Requirements
| Minecraft | 1.20.1 |
| Forge | 47.2.30 or newer |
| EMI | required for any of this to apply |
| Shadow Drop | required for any of this to apply |
Client side only. Nothing is needed on a server.
Both EMI and Shadow Drop are declared as optional dependencies. If either is missing, or if a future version of one of them changes something this patch relies on, the mod logs one line and does nothing at all — it will not refuse to load and it will not crash.
Compatibility
- Embeddium / Rubidium — works, and this mod corrects a false verdict they can cause that makes EMI switch its fast item rendering off.
- SmoothGui — supported directly. Animations and the fast item list both work.
- ImmediatelyFast — no special handling needed.
- Shaders (Oculus / Iris) — untested by the author; the fast item path is the part most likely to interact with a shader pack, and it can be turned off in the config if anything looks wrong.
Configuration
config/emi_shadow_patch-client.toml — the file is reloaded while the game is running, so options
can be changed and tried without restarting.
| Option | Default | Effect |
|---|---|---|
slotDetection |
SLOT_LIST |
How to tell whether an item is in a real slot. PIXEL_PROBE restores the original, slower method. |
memoizeItemTagMatching |
true |
Remember the transparent/translucent item and tag lookups instead of redoing them per item. |
accumulateShadowDraws |
true |
Let a whole list's shadows draw in one go instead of one draw call per item. |
forceEmiBatchedRenderer |
true |
Put EMI's fast batched item rendering back when EMI disabled it by mistake. |
reBatchDuringGuiAnimations |
true |
Rebuild the list while a GUI animation is moving so the animation plays, then go back to the fast path. Set to false to let the animation mod switch the fast path off instead. |
memoizeEmiBatchability |
true |
Remember EMI's per-item "can this be batched?" answer, which is expensive to work out. |
debugCounters |
false |
Draws a small on-screen counter overlay. |
Checking that it is working
Open logs/latest.log and look for lines starting with [EMI Shadow Patch]. The first time you open
a screen you should see:
[EMI Shadow Patch] All Shadow Drop hooks resolved; patch is active.
[EMI Shadow Patch] EMI batched renderer: ENABLED (config use-batched-renderer=true).
If you see DISABLED, or a line saying some hooks did not resolve, the log explains which part did
not apply and why. Nothing is broken when that happens — the affected part simply stays off.
Known limitations
- The item is still drawn twice to make each shadow. That is what the effect is, and it is the one cost this mod cannot remove. Everything else around it has been made cheaper.
- The fast item path can be turned off entirely by the config if you would rather compare against the unpatched behaviour.
Credits
Not affiliated with EMI or Shadow Drop. Neither is bundled or modified on disk; this is a separate client-side patch that works with them at run time. All credit for those mods goes to their authors.
Licence
All Rights Reserved. You may use the mod and include it in a modpack that downloads it from this page. You may not redistribute it, rehost it, or reuse its source.

