A client-side mod that adds several ways of moving items in inventory GUIs. This is done by scrolling the mouse wheel over item slots (optionally while holding some modifier keys) or by holding down modifier keys and then left- or right-click dragging over the slots.
The mod has a few modifier keys (Shift, Ctrl and Ctrl + Shift) to move entire stacks, all matching items or all items. It also has special handling for Villagers to ease the annoying clicking around while trading. As of version 0.11.0, it also has special crafting inventory handling (with a 18-slot internal "recipe memory").
The basic item scrolling is similar to what NEI (and some other mods) also did/do. But I wanted more control and more ways to move items, so I made this mod to have all those modes that I find useful, in one distinct, client-side mod (so it also works on vanilla servers all the same).
There are config options to individually enable or disable more or less any of the modes. There are also options to reverse the scroll directions, or to change what for example "scrolling up" means. All the configs are accessible via the in-game config menu.
The LiteLoader, Rift and Fabric versions require the MaliLib library mod:
- I + C - In the Rift and Fabric versions, and the LiteLoader version starting from 0.15.0, the default hotkey to open the in-game config GUI is I + C.
- Mouse wheel scroll alone: Move one item at a time from or to the slot hovered over.
- Shift + scroll: Move matching, entire stacks. The stack hovered over is moved last.
- Ctrl + scroll: Move all matching stacks to or from the other inventory.
- Alt + click: Move all matching stacks to or from the other inventory. (Same as Ctrl + scroll)
- Ctrl + shift + scroll: Move everything to or from the other inventory.
- Alt + shift + click: Move everything to or from the other inventory. (Same as Control + Shift + scroll)
- Shift + left click and hold + drag: Move all the stacks that are dragged over.
- Shift + right click and hold + drag: Move all but the last item from all the stacks that are dragged over.
- Ctrl + left or right click and hold + drag: Move only one item from all the stacks that are dragged over.
- Shift + click on an empty slot with items in the cursor: Move all matching items to that inventory.
- Shift + click outside the inventory with items in the cursor: Drop all matching items from the entire inventory.
- Ctrl + Drop key + left or right click and hold + drag: Drop one item from all dragged-over slots
- Shift + Drop key + right click and hold + drag: Drop all but one item from all dragged-over slots
- Shift + Drop key + left click and hold + drag: Drop all items from all the dragged-over slots
- W/S + Shift/Control + click (and drag): Move items up (W) or down (S) in the inventory.
Note: Before version 0.6.1, the Shift + right click and hold + drag functionality required one empty slot in the source inventory for an intermediate click action.
Special case - Villager GUI
Villager GUI has special handling (if enabled in the configs). It is only used when you hover over the output slot.
- Hold shift and scroll down to fill the recipe/trade input slots
- Hold shift and scroll up to move the output items to the player inventory as usual
- When the output slot is empty: hold shift and scroll up to move the input items to the player inventory
So basically you can just hold shift and scroll down/up repeatedly to trade items fast & easy.
Special case - Crafting grids (or similar)
Starting from version 0.11.0, there is support for crafting grid re-filling and mass crafting of items.
- The default key for the "recipe view" is S
- To change the selected recipe, either scroll or click on the recipe slots
- (Shift +) Left/right clicking on stored recipes will also move the items to the crafting grid
- Middle click on a stored recipe to clear the crafting grid
- Middle click on the crafting output slot to store that recipe to the currently selected slot
- (Shift +) scroll over the crafting output slot to craft and/or move items to the grid
- Alt + Shift + Control + C: Crafts everything possible with the currenty selected recipe with the items in the player's inventory
- Alt + Shift + Control + T: Throws any of the currently selected recipe's output items to the ground
- Alt + Shift + Control + M: Moves any of the currently selected recipe's output items to the currently open "other inventory" (= non-player inventory)
- Note: The mass crafting unfortunately doesn't currently work properly in the Forge version (in MC 1.12.x), because it doesn't have the client-side crafting recipe output fix. The Liteloader version has an option for the fix, and it will also have configurable key binds for the actions. (The Liteloader version is yet to be released on Curse)
Old Crafting Scrolling behaviour in 0.11.0:
- While hovering over a crafting output slot, scroll down to fill one set of ingredient items to the grid
- If you hold shift while scrolling down, then the grid is filled as much as possible
- For this to work, there must either be an item in the output slot (so a set of ingredient items on the grid), or you must have a stored recipe selected while scrolling down over an empty output slot
- To craft one recipe's worth of items, scroll up while hovering over he output slot
- To craft all the ingredients from the grid (basically a shift + click on the output slot), hold shift and scroll up
- To craft as much as possible from all the items available in the GUI, hold Ctrl + Shift + scroll up over the output slot
- When the output slot is empty, you can hold Shift and scroll up to move the ingredient items off the grid
- The grid can also be emptied by Ctrl + Shift + scrolling over one of the ingredient slots, like you would do the "move all items" action in other inventories
- When you scroll to craft items, or scroll to add items to the grid (if the config option craftingScrollingStoreRecipeOnFill is enabled), then the current output item and the ingredients are stored as a "recipe" to the currently selected recipe slot
- Alternatively, while hovering over an output slot with a craft result item, you can press Shift + the Recipe key + a number key to store the recipe to the slot by that number (slots 1 to 9 only).
- To see the stored recipes, and to change the selection, hold the hotkey for "Recipe store/recall" (by default S), and then either scroll, or press a number key to change the selection
- If you use the Recipe key + number method to load a recipe while hovering over the output slot, then the ingredient items are immediately moved to the grid
NOTE: This feature is actually in no way tied to crafting grids/tables. All the to-be-supported crafting grids must be added to the configuration. The vanilla crafting grids, plus all the crafting grids from Ender Utilities have been added there by default (and thus also serve as examples of how the config should look like).
To find out the GUI class name, the output slot class name and the slot numbers for the output slot and the ingredient slots, you can use the debug key combination Ctrl + Alt + Shift + I. To get the GUI class name, press it while not hovering over any slots.
To get the output slot's class and slotNumber, press it while hovering over the output slot. And then also get the ingredient slot range by pressing it while over the first and last slots for the grid. All the output will be printed to the console.
NOTE: In the output, you want the slotNumber value, not the getSlotIndex() value.
All the crafting inventories that should be supported, must be added to the scrollableCraftingGrids configuration value.
The format of one config line for adding crafting grids is:
Here is an example of what one such crafting grid definition line will look like (taken from the default config, for the vanilla Crafting Table):
Note that you must NOT use any spaces in it, or otherwise the regex won't match.
Blacklisting Slots or GUIs
Slot and GUI blacklisting was added in version 0.10.0. By default the ME Terminal slots from Applied Energistics 2, and the Crafting Station side inventory slots from Tinkers' Construct are blacklisted. You can blacklist problematic slots or entire GUIs via the in-game config menu (the blackListedSlots and the blackListedGuis options). To find out the required class name to add to the blacklist, use the debug key combination Ctrl + Alt + Shift + I while hovering over a slot to get information about the slot, or while NOT hovering over a slot to see the GUI class name.
Alternatively, (as of 0.9.0) you can also simply toggle ON/OFF Item Scroller as-needed while inside a GUI, by pressing the toggle key, (which is Ctrl + S by default, can be configured in the Controls menu). The ON/OFF status is retained for as long as the game is running. There are two different noteblock sounds to indicate what the status changed to: the higher-pitch pling when enabling, and the lower-pitch bass when disabling.
The option useSlotPositionAwareScrollDirection (added in 0.7.0) changes the behaviour of the the scrolling direction so that it tries to detect if the "other inventory" on the screen is above or below the slot that is being scrolled over. The scroll direction will then be "scroll up to move to the inventory above, scroll down to move to the inventory below" instead of the normal "scroll up to move to the other inventory, scroll down to move to this slot/inventory". The reverse scroll direction options will also be applied on top of it still.
All the item moving in this mod is done by emulating mouse clicks on the slots.
Note: Some other mods also add the same functionality. You don't want to have multiple mods installed and doing this at the same time.
Mods that add the single item scrolling functionality in Minecraft 1.8.9+, that I know about: Mouse Tweaks, Inventory Sorter. So make sure you don't have the (single item) scroll functionality enabled in more than one mod at a time.
Note: This is a client-side-only mod!
- Mod packs: go ahead!
- Re-hosting the mod file otherwise is not cool, mmkay?
Short demonstration video (from version 0.4.3)