View Single Post
01/05/24, 10:33 PM   #3
vsrs_au
Join Date: Dec 2022
Posts: 18
Originally Posted by Dolgubon View Post
BAG_BANK and BAG_SUBSCRIBER_BANK are two different bags. This isn't just a number or funny quirk, it has actual consequences in how the underlying game behaves.They are completely separate, and just display as combined when viewed in the game UI.
So if you ask for the first empty slot in the BAG_BANK and it's full, you'll get nil even if sub bank has space. Or if you stack items in the bank, it won't stack an item in the bag_bank with one in the bag_subscriber_bank even if they are stackable (See https://www.esoui.com/downloads/info...nkStacker.html for a fix )
If you go through your bank, for items that appear in both lists, you'll probably see separate stacks of both items - and doing Y to stack the bank won't change that.

House storage could actually theoretically work similarly - all items in storage are available for withdrawal when you're inside a house. An addon could be made that shows you all 360 slots whenever you interact with any house storage item.


I haven't tested it, but it might even be possible to put in items above the bank 'limit' if your ESO+ lapses and you had most of your items in the sub bank.
Thanks for the reply, much appreciated.

However, this doesn't explain how I have the same item showing in both bags, e.g. in the bank UI in game, the item "Revelry Pie" shows with a stack of 60, then in my SavedVariables file, I have the same item showing in BAG_BANK and in BAG_SUBSCRIBER_BANK, and both have a count of 60, i.e. there's only 1 stack of 60 and it shows in both bags. It looks like GetItemLinkStacks() is returning the same value for that item for both bags, which doesn't make sense to me.

If it's any help, my DumpItem function is as follows:
Code:
function InventoryDump.DumpItem(bagType, count, itemName)
	if bagType == BAG_BANK then
		InventoryDump.savedVariablesAccountWide.Bank[itemName] = count
	elseif bagType == BAG_SUBSCRIBER_BANK then
		InventoryDump.savedVariablesAccountWide.ESOBank[itemName] = count
	elseif bagType == BAG_VIRTUAL then
		InventoryDump.savedVariablesAccountWide.CraftBag[itemName] = count
	elseif bagType == BAG_BACKPACK then
		InventoryDump.savedVariablesPerChar.Backpack[itemName] = count
	end
end
I then have the following in SavedVariables file:
Code:
InventoryAccountWide =
{
    ["EU Megaserver"] = 
    {
        ["@vsrs_au"] = 
        {
            ["$AccountWide"] = 
            {
                ["version"] = 1,
                ["ESOBank"] = 
                {
...
                    ["Revelry Pie"] = 60,
...
                }
                ["Bank"] = 
                {
...
                    ["Revelry Pie"] = 60,
...
                }

Last edited by vsrs_au : 01/05/24 at 10:49 PM.
  Reply With Quote