Inventory Control Tweaks

Inventory Control Tweaks


Makes various tweaks to inventory controls including armor swapping and shift-clicking to offhand.

Client Utility

Created3 years ago
Updated3 months ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

This mod is for the Fabric mod loader and Minecraft Versions

Also works on Quilt!

Modrinth Downloads CurseForge Downloads

Requires Fabric API

Supports Cloth Config and Mod Menu for configuration, but neither is required.

Like this mod? me or Buy me a coffee

Mod loader Fabric Mod loader Fabric

Discuss on Discord License MIT Source Code on GitLab gitlab issues

Inventory Control Tweaks is a client-side mod.

This mod makes various changes to inventory controls to make them more convenient.

Known compatibility issue: if you use Item Scroller, Inventory Control Tweaks' shift-click features won't work. There won't be a crash, and the Armor Swap feature will still work. This may be dependent on Item Scroller settings. I'm looking into a compat fix.

Current features:


  • Armor swap

Right click while holding a piece of armor to swap it with the piece you're currently wearing.

You can also swap by clicking armor in your inventory while holding a modifier key that can be configured in Minecraft's controls options.

Armor swap demos

Using armor swap to change from diamond armor to netherite armor. Using armor swap to swap from a chest plate to an elytra after jumping from a high place. Using armor swap to equip a golden helmet just in time to avoid being attacked by a piglin.

  • Armor swap item blacklist

Using items in this list won't swap them with your current armor. Useful for compatibility.

  • Pick block fills stack

If you pick-block (middle click) while you already have the picked block selected, the stack in your hand will be refilled from your inventory.

  • Pick block never changes slot

If you pick-block and the block you're pointing at is on your hotbar, instead of changing which slot you have selected, that block will be swapped to your hand.

Pick block feature demos

Picking block on a flower that's already in hand, other flowers in inventory fill the stack that's held. Picking block on a flower with an empty hand, a flower in another slot in the inventory moves to the hand.

Drag item tweaks

  • Drag matching stacks across inventories

With an external inventory open (chest, dropper, etc. ), click, hold, and drag a stack between the two inventories to move all matching stacks.

You can also drag all stacks (not just matching) if you hold anther modifier key, configurable in Minecraft's controls options.

Drag matching stacks across demo (with 'ignore NBT' enabled)

Dragging a gold axe back and forth between the play inventory and a chest, other golden axes move back and forth too.

  • Choose bottom row stacks first

When you use 'Drag matching stacks across inventories', stacks will be moved from the bottom of inventories first.

  • Move hotbar stacks

When you use 'Drag matching stacks across inventories', stacks in your hotbar will be included.

  • Deposit cursor stack

When you use 'Drag matching stacks across inventories', the stack you were dragging will be deposited upon release. Possible values: "DISABLED", "AT_RELEASE_SLOT", "ON_RELEASE_AT_EMPTY", "IMMEDIATELY_AT_EMPTY"

  • Drag single stack out of inventory

With an inventory open, click, hold, and drag a stack outside the inventory to throw the stack.

Drag single stack out demo

Dragging rotten flesh out of inventory to throw it into fire.

  • Drag matching stacks out of inventory

With an inventory open, click, hold, and drag a stack outside the inventory to throw it and all matching stacks. Optionally requires a key to be held which can be configured in Minecraft's controls interface. Possible values: "DISABLED", "NO_KEY", "WITH_KEY"

Drag matching stacks out demo

Dragging rotten flesh out of inventory, all rotten flesh is thrown with it into fire. Dragging a golden axes out of inventory, all golden exes are thrown out with it: ignoring NBT is enabled.

  • When comparing stacks, ignore NBT

Offhand tweaks

  • Shift-click to partial offhand stack

If a partial stack of items is in your offhand, shift-clicking another stack of the same type of items will add them to your offhand.

  • Shift-click any food to offhand

Shift-clicking any food in your inventory while your offhand is empty will move that food to your offhand.

  • Don't shift-click food items with negative effects to offhand

Excludes food with negative effects from shift-clicking to your offhand. Examples: rotten flesh, raw chicken, spider eye. This won't check suspicious stews because you're not supposed to know their effects.

  • List of items that shift-click to offhand

Shift-clicking items in this list while your offhand is empty will move those items to your offhand.

Offhand feature demos

Shift clicking on steak moves it in and out of the offhand, shift clicking on rotten flesh just moves it to the hotbar (vanilla behavior): steak is food, rotten flesh is food but had negative effects. Shift clicking on firework rockets and a totem of undying moves them in and out of the offhand; they are configured to be offhand-preferred.

Each of these features can be configured either through Mod Menu or by editing .minecraft/config/inventory_control_tweaks.json

Default settings
  "enable_armor_swap": true,
  "equip_and_swap_non_armor_wearables": false,
  "armor_swap_deny_list": [],
  "fetch_translation_updates": true,
  "enable_pick_fills_stack": true,
  "enable_pick_never_changes_slot": true,
  "drag_matching_stacks_across_inventories": true,
  "choose_bottom_row_stacks_first": true,
  "move_hotbar_stacks": true,
  "deposit_cursor_stack": "ON_RELEASE_AT_EMPTY",
  "drag_single_stack_out_of_inventory": true,
  "drag_matching_stacks_out_of_inventory": "WITH_KEY",
  "ignore_stack_nbt": false,
  "enable_shift_click_to_offhand_stack": true,
  "all_food_is_offhand_preferred": true,
  "exclude_food_with_negative_effects": true,
  "offhand_preferred_items": [

If you'd like to contribute a translation, follow this link.

Once approved, a new translation will be available without the need to download an update thanks to CrowdinTranslate.

This mod is only for Fabric (works on Quilt, too!) and I won't be porting it to Forge. The license is MIT, however, so anyone else is free to port it.

I'd appreciate links back to this page if you port or otherwise modify this project, but links aren't required.

External resources

Project members



Technical information

Client side
Server side
Project ID