Nanatsu-AutoStorage icon

AutoStorage

Automatically stores inventory items in designated locations. Uses per-map default storage points, supports per-item custom destinations, auto stacking, and optional disposal of excess stock to reduce world clutter.

Last updated 2 days ago
Total downloads 88
Total rating 1 
Categories Mods
Dependency string Nanatsu-AutoStorage-1.0.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2304 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2304

README

OldMarket.AutoStorage

Features

Store items from inventory

  • Press Y (all slots) or U (current slot) to move items from your inventory to their assigned storage locations.
  • All inventory items except bags and tools are eligible to be moved. Fishing trash, empty boxes, and rotten items are automatically routed to the JunkMan.
  • If no per-item storage has been defined, items are stored in the default storage locations (these may include coordinates that are not accessible before certain areas such as the Cellar are unlocked).
  • Default storage locations are defined for all maps. You can customize them per map if needed.

Auto-stacking

  • Press Home to automatically stack items stored in their assigned locations.
    • When multiple partial stacks exist in assigned storage, stacks are consolidated up to the stack limit.
    • Perishable items are only stacked together when they share the same remaining days.

Auto-disposal of excess items

  • When you auto-stack with Home, items above a configured limit are sent to the JunkMan (only sent there, not sold).
  • Only items in assigned storage locations are counted. Items in default storage or on display in the shop are not included.
  • Can be used to prevent world slowdowns caused by too many objects.
  • Requires prior configuration (a limits.json file). If many items match the criteria, processing can temporarily become heavy.

Item drop

  • Drops all items in your inventory at your feet (excluding bags and tools).

Post-install checklist

  1. On the first game launch after installing the mod, default storage and material category files are created under BepInEx/config/OldMarket.AutoStorage. If you do not need customization, you can use them as-is.
  2. Put some items in your inventory, then press Y (all slots) or U (current slot). Confirm that items are stored in the default storage locations even without per-item assignments.
  3. Press F6 to show markers in the world for the current map’s default storage locations.

Assigning per-item storage locations

  1. Put the item you want to assign into an inventory slot.
  2. Stand at the desired storage location in the world and press L (default).

Default storage behavior

When you press Y or U, items in your inventory are automatically distributed to default storage locations as follows:

  • Workshop front: foraged items (flowers, etc.), ores
  • JunkMan: fishing trash, fishing trophies, items with 0 quantity (empty boxes), rotten products
  • Cellar: all other items
  • Cellar entrance: items with only 1 day remaining (takes priority over assigned storage locations)
    • Example: after closing, send all “1-day-left” items here as a temporary holding area so they are easy to re-display together the next day.

If a per-item storage location has been assigned, it takes priority over the default storage location. Default storage locations are mapped per map, not per save file.
All maps have initial default storage locations defined, and you can customize them if necessary.

Config

You can change the following settings in BepInEx/config/oldmarket.autostorage.cfg.

  • Key bindings (default)

    • L: register storage location (per world + per item ID)
    • Y: auto-store all inventory slots (excluding bags and tools / storage priority: one-day-left default storage (if enabled) > per-item storage > default storage)
    • U: auto-store only the current slot (uses the same rules as Y, but limited to a single slot)
    • Home: auto-stack items in assigned storage and send amounts above the configured limit to the disposal location (requires prior setup)
    • B: drop all non-bag, non-tool items in the inventory at your feet
    • F6: visualize default storage locations per map (Cellar / JunkMan / Workshop / one-day-left Cellar) and output debug info to the log
    • F7: debug function to inspect item IDs in your inventory
  • Use dedicated default storage for “one-day-left” items (default: true)

    • true: when storing an item with 1 day remaining, the one-day-left default storage location takes priority, even if a per-item storage location is assigned.
    • false: the one-day-left default storage is only used if neither a per-item storage nor a map default storage location is defined.

Customizing default storage locations

  1. Install OldMarket.AutoStorage and start the game.
  2. Load a world, move to the position you want to use as a default storage location, and press the debug key (F6 by default).
  3. Open LogOutput.log under the BepInEx folder and look for [AutoStorage WORLD DEBUG]. For example:
   [Info   :Old Market Auto Storage] ========== [AutoStorage WORLD DEBUG] ==========
   [Info   :Old Market Auto Storage] [AutoStorage DEBUG] MarketTitle = 'EAST WIND MARKET'
   [Info   :Old Market Auto Storage] [AutoStorage DEBUG] mapId      = 2
   [Info   :Old Market Auto Storage] [AutoStorage DEBUG] worldKey   = '2'
   [Info   :Old Market Auto Storage] [AutoStorage DEBUG] playerPos  = (20.66, 25.78, -3.14)
   [Info   :Old Market Auto Storage] [AutoStorage DEBUG] Cellar: (-2.49, 28.27, -26.84)
   [Info   :Old Market Auto Storage] [AutoStorage DEBUG] Junkman: (24.69, 26.55, 1.45)
   [Info   :Old Market Auto Storage] [AutoStorage DEBUG] Workshop: (-39.53, 27.73, 9.02)
   [Info   :Old Market Auto Storage] [AutoStorage DEBUG] OneDayLeftCellar: (-2.49, 28.27, -25.98)
   [Info   :Old Market Auto Storage] ==============================================
  1. Open OldMarket.AutoStorage.defaults.json in BepInEx/config/OldMarket.AutoStorage.

  2. In OldMarket.AutoStorage.defaults.json, edit the block whose mapId matches the value shown in LogOutput.log (for example: 0 = TropicalIsland, 1 = EastTown, 2 = RomanTown).

  3. Apply the playerPos value from LogOutput.log to the entries you want to change as default storage locations.

    • You can define only some of the default locations (for example, only JunkMan) and leave the rest unchanged.
  4. Start the game and press F6 to confirm that the default storage markers have been updated. If you want to reset everything back to the original defaults, delete OldMarket.AutoStorage.defaults.json.

Auto-disposal settings

Only items stored in assigned storage locations are affected. To enable auto-disposal:

  1. Check the bundled sample file

    • The following sample file is included:

      • BepInEx/plugins/OldMarket.AutoStorage/Samples/OldMarket.AutoStorage.limits.json
    • The sample configuration will send items to the disposal location when:

      • normal fish or brown fish exceed 50 units in storage, or
      • whiskey exceeds 100 units.
    • Copy this file to BepInEx/config/OldMarket.AutoStorage/ to use it as-is.

  2. Identify the target items (itemId)

    • Put the item you want to configure into your inventory and press F7.
    • Open LogOutput.log and look for [AutoStorage INVENTORY DEBUG], for example:
     [Info   :Old Market Auto Storage] ========== [AutoStorage INVENTORY DEBUG] ==========
     [Info   :Old Market Auto Storage] [AutoStorage DEBUG] CurrentSlotIndex = 0
     [Info   :Old Market Auto Storage] [AutoStorage DEBUG] CurrentSlot: itemId=1762012563854, amount=1, cost=1200, dayCounter=0
     [Info   :Old Market Auto Storage] [AutoStorage DEBUG] Current ItemSO: type=BagSO, isBag=True, isTool=False, name='medium_bag', basePrice=1200, stackSize=1, id=1762012563854
     [Info   :Old Market Auto Storage] ---------- ALL SLOTS ----------
     [Info   :Old Market Auto Storage] [AutoStorage DEBUG] Slot[0]: itemId=1762012563854, amount=1, cost=1200, dayCounter=0, ItemType=BagSO, isBag=True, isTool=False, ItemName='medium_bag'
     [Info   :Old Market Auto Storage] [AutoStorage DEBUG] Slot[1]: itemId=1734622959366, amount=1, cost=22, dayCounter=11, ItemType=ItemSO, isBag=False, isTool=False, ItemName='copper_stone'
     [Info   :Old Market Auto Storage] [AutoStorage DEBUG] Slot[2]: itemId=1760108909804, amount=1, cost=2, dayCounter=13, ItemType=ItemSO, isBag=False, isTool=False, ItemName='stone'
     [Info   :Old Market Auto Storage] ==============================================
  1. Edit limits.json

    • Copy the sample file to BepInEx/config/OldMarket.AutoStorage/ and modify itemId and the limit quantity.
    • Remove any entries you do not need.
  2. Test

    • Start the game and press Home (default). Items above the configured limits will be sent to the disposal location.

Generated and bundled files

  • Bundled files (under BepInEx/plugins/OldMarket.AutoStorage/Samples)

    • OldMarket.AutoStorage.limits.json

      • Sample configuration for auto-disposal.
    • OldMarket.AutoStorage.defaults.json

      • Sample default storage data (matches the file automatically generated on first launch).
  • Generated files (under BepInEx/config/OldMarket.AutoStorage)

    • OldMarket.AutoStorage.defaults.json

      • Default storage location data. Generated on first launch; coordinates can be customized.
    • OldMarket.AutoStorage.[mapId].json

      • Per-map data for assigned storage locations. Created the first time you register a storage location in that map (not per save file).
    • OldMarket.AutoStorage.materialCategories.json

      • List of items stored at default JunkMan / Workshop front locations (customizable).

Auto-disposal configuration files are not generated automatically. If you want to use auto-disposal, copy the sample file and test your setup before using it in a real save.

Exceptions

  • Bags (to prevent accidental assignment)
  • Tools (e.g. fishing rods)

Known issues

  • Auto-disposal (when using a configuration file together with auto-stacking)

    • If the number of target items is very large, the game may briefly freeze or stutter.

      • Fixing this would require major changes, so this is the current specification.

Planned features

  • Color-coded markers for default storage locations