Mockup šŸ“¦ new Stash with class tabs

https://imgur.com/a/M8VlCJ9

In this mockup I have moved some elements around to make room for 3 more rows of stash space. 5 of the 8 tabs are reserved for the player class. The other tabs are shared by all characters. Everything adds up to 400 character stash slots + 240 shared stash slots. The live game offers 300 in total.

Overall, this is a very generous new design that:

  • adds 2 more tabs (now 8 vs 6)
  • adds space for 80 items per tab, up from 50
  • adds tabs exclusive to the current character/class to allow more builds cough cough armory cough
  • moves clickable tab symbols in a spot that requires less mouse movement
  • moved most other elements to one area which is easier on the eyes
  • removed some text, art, lines, visual clutter that has hardly any use
4 Likes

Your idea is fine, it just won’t work with how the stash currently works. There’s some wonky coding going on that forces us all to load everyone’s stash tabs when we enter a zone. So it’s not a matter of rearranging the UI or adding more space.

How to fix it is well beyond my pay grade. I’m obviously not a programmer. Those that claim to have a fix for it in D4 may or may not be right, but I don’t think it’ll be as easy as they say.

Sadly only thing we can do is wait for them to come up with a permanent fix to the problem they created themselves.

2 Likes
3 Likes

This never ceases to get a chuckle out of me. ASAP in Blizzard terms typically means several years out.

5 Likes

Same. My guess is they made it this way because it’s cheaper on the db calls.

1 Like

How does calling every players data from a db is cheaper than calling the current player data from the db??
Not in this planet, for sure. Everybody knows the less data you retrieve from the db, faster it is.
Blizz done this on purpose, and they’re lazy to correct it… Awfull programing… and they are pros… Sorry, my mistake…

If you make one call to load it all it’s cheaper than making a call every time someone opens their stash and looks at something or a call every time a tab is switched or a vendor is loaded and you inventory opens etc.

I agree it’s lazy design but it’s still cheaper.

The worst part is that loading stash tabs of other players was a known issue in Diablo 3 and yet nobody learned anything from it.

This is baffling to me. I can’t think of any sensible reason to load other players stash ever. I mean maybe inventory to accommodate trade (although this seems like bad engineering too) but why the stash?

So it’s wealthyer to clutter memory with a lot of data that is not gonna be of no use than just use the needed data when you want?
Ok, let’s just call 1gb of data because we might need them, and spare some calls to the database…
Really bad programming.

Copy paste code from d3 , they couldnt fix it there , what makes ppl think that it will be fixed here?

2 Likes

If I have to guess:

The UI shows us a treasure chest, an inventory and player equipment as something that is separated, but actually it uses exactly one source = a list with different properties. The list elements are marked as equipment, inventory, chest, consumable, dungeon key and so on. (Tbh, I think this is not unusual to have in the first place.)

If we assume that there is a clunky or unrefined search method behind, and the game has to look through a whole list of everything + properties (includes customized colors and transmog) so it can finally display what other players are wearing, then it could take a while.

I dont know if that is how it works.

Imagine wow servers working like this :joy:

Actually, WoW inspired me to write this wild guess, haha.
Here you can read about InventorySlotIDs:

https://warcraft.wiki.gg/wiki/InventorySlotID

Hmm either i’m not really getting what you are saying or I’m not reading this in the same way you are. It seems insane to me that any modern software would handle all objects in the world as a massive list or array and not as separate objects.

1 Like

Actually it is a simple query on the database backend to limit data pulled to the logged in user and not based on region like the current query is.

Example currently -get region → array of logged in users → get stash items… Simplified get logged in user → get stash items…

Yes I am a programmer.

Now, that is based on how I would have engineered the database and they may not have the correct foreign id’s linked to query as simply as I showed…

It is all related, as how the database is engineered is crucial on how simplified queries for that data can be.

1 Like

I’m not going to argue, I’ll only say that Blizzard has their own engine for their games and how it all works. To claim to know the inner workings of it and the programming required is well beyond my pay grade. I just have no idea if your ā€˜solution’ is even viable according to their coding.

The only people who could answer this never would though. So we’re currently stuck with various programmers such as yourself offering 101 solutions to a problem. You aren’t the first programmer to offer a solution, and you won’t be the last.

1 Like

I tried to say that there is no easy method implemented in D4 to filter what is equipment, what is inventory and what is stash. That is my non-professional explanation to make sense of it.

They should contact the WoW team about this issue.

I’m not sure this is really addressing the issue. It seems you are suggesting they should load a specific user and their stash instead of everyone in the region, But it seems they are already doing that and are saying the problem is something different

To me this reads more as :

Trigger : ā€œSeeā€ another user
Action : load character and everything about them including stash and items in it

So i’m still left wondering why the hell they would ever need to load everything in someone’s stash into your client. Since no player ever has access to another player’s stash, this makes no sense to me.

3 Likes

Meanwhile at POE 2 I have a zillion tabs and it works just fine…