Skip to content

The ShiftClick Fix

Shallowplague edited this page Jun 11, 2026 · 1 revision

The ShiftClick / inventory fix

ZenithProxy's inventory automation moves items with synthetic container clicks. Modern anticheats (2b2t runs Grim) validate the changedSlots map a client sends with each ContainerClickPacket against their own server-side prediction. Stock ZenithProxy's shift-click action sent an empty changedSlots prediction, so Grim rejected the click and the items never moved — silently breaking any shift-click-based automation (filling shulkers, quick-depositing, bulk trading).

AquariusProxy rewrites ShiftClick to compute the real quick-move outcome, mirroring vanilla AbstractContainerMenu.quickMoveStack:

  1. Find the quick-move destination region (player inventory ⇄ container).
  2. Merge into matching partial stacks first, then fill empty slots.
  3. Build an accurate changedSlots prediction (destination slots + the reduced/emptied source slot) so the click passes validation.

This is a general correctness fix and the foundation every container-using module here relies on. AquariusMiner (shulker fill/store, ender-chest cycle), VillagerTrader, KitMaker, Regear, and the Enchanter all break without it.

Clone this wiki locally