Option to Compress SavedVariables

I mean half of this is gibberish to me as someone who has very basic knowledge of coding, but please Blizz, if this reduces loading screen times, make it happen… The ridiculously long loading screens I have actually affects my ability to do certain quests or content. And it’s not because I have a toaster for a PC. I’ve got a PCIe Gen 4 NVMe SSD, Ryzen 9 5900X, 64GB of DDR4 RAM, and an RTX 3080. There is no bottleneck in my system that should be causing loading screens upwards of 30 seconds.

For example the daily quests at the Little Scales Daycare to do Whelpling Races are LITERALLY unplayable, because I spend so long at the loading screen that once it’s finally completed, the 5 second countdown to begin the race has already finished, the race has started, the debuff for not flying through any rings quick enough has started counting down, and by the time I ACTUALLY get out of the loading screen the debuff has 1 second left, so it’s literally impossible to fly through any rings in time, at which point you “fail” the race, and get put straight back into another loading screen to return you to Valdrakken.

I have been in loading screen loops for literally 5+ minutes, where I spend 5 seconds interacting with the game then upwards of 60 seconds just sitting there staring at my screen through 2 loading screens, before getting so frustrated I disable literally all of my addons just to be able to do these quests and then turn them back on again. If the fix is something as simple as what is being suggested, there is literally no good reason not to implement it. Please, Blizzard. Do the right thing, for the people who actually want to play this game.

1 Like

Yeah, sorry. This subject is super technical so a lot of it will be kinda gibberish to most. :sweat_smile:

Those specific load times wouldn’t be affected by this. This would be /reloads and logging in to a character when addons are loaded. They aren’t loaded again when you go through a portal.

LUA files being human readable is important for transparency in the addon community. It’s important because it allows easier understanding including fixes of the addons and their data by players with a smidge of knowledge. It keeps people honest. Especially when dealing with a community that includes addons that have separate executable programs that read them and upload the contents to websites I think transparency is a critically important goal.

Given the fact players including addon authors come and go there are addons that end up permanently abandoned but which players can help limp on for years as well as addons that are simply abandoned for an expac when an addon author quits.

It’s well and good for a major addon project like ATT to suggest this, it has multiple authors, contributors, a huge discord community, it’s not going anywhere regardless of one person’s feelings about the next expac.

With the advent of SSDs as standard for running the game off of the penalty for running even a very large amount of large addons (as I do and have done for years) is mitigated significantly. Very fast RAM also being standard and fast processors mean the impact from white-space isn’t nothing but it’s also not what it once was and grows less and less important with time IMO.

For many years I ran Auctioneer and the saved variables files from that were double digit megabyte in size (my auc-stat-histogram.lua file is 14mb for instance and that’s just one module). So believe me I’ve experienced what bad load times can be when I used to run WoW off a spinning disk back in the day with big addons. Disabling my addons dramatically changed my load times back then. Now it still does to a degree but it’s a matter of shaving off 5 seconds on login which isn’t that much.

Now I do think Blizzard could do much more to optimize things and they should. They haven’t really touched the addon system other than tossing on restrictions, the occasion new variable and lots and lots of seemingly random variable name changes that come whimsically.

One additional thing on a personal note. I like keeping backups. I do this using 7zip on ultra compression. Doing so I can take my WTF folder from 600MB in size to 30MB in size. If white-space were to be removed it makes going back into my back-ups to pull some data out a lot more painful without a stand-alone tool to re-add white-space (admittedly there might be an IDE that can do that for lua but I’ve never used anything but NPP for it with highlighting) but it’s a concern which is why I’d want easy control over it.

A toc setting is not a good solution as it is not something that most users could maintain for themselves.

It would take the power out of the hands of the user and put it in the addon author’s hands. Every addon update (and many people use programs to automate updates so aren’t even in control of that and wouldn’t be aware) would overwrite such a preference if set by the user. If one runs only 6 addons sure it’s not a huge deal though there will be times after automated addon updates that the files will inevitably be made human unreadable. But for someone like me and I suspect others who runs over 200 addons (in terms of ToC files, many are modules of larger addons obviously like DBM) it becomes unmanageable.

So instead if we must do this I propose an option be added in-game which globally sets or disables this according to player preference and which the game uses when writing the data to have or remove white-space

(Though I’m predicting it now, if they add this, hold-outs like me will be so small in number I predict within two expacs the option to go back to white-space will be removed entirely as a tiny but unacceptable additional maintenance burden)

Thank goodness.

I hate minification. Malware authors love it, proprietary software that tries to obfuscate how it works loves it. People who love to take control away from the user love it. Advocates of open and free software do not like it and for good reason.

3 Likes

Well, Minification does serve its purpose. It keeps things small and sometimes (although to can be quite the opposite!) it can make code execute faster. My primary job is JavaScript-based and so I’m quite familiar with how it works and how much of a pain it is to work with.

That said, yeah, I’d be fine with a global setting provided in the UI. I just want an option to make my load times faster and to also make it faster for everyone else. I have my tool that fixes my load times, but I want the same thing (but better) for everyone else as well!

EDIT: As far as people doing malicious things with SavedVariables, even if it wasn’t trimmed of excess characters, no one would know to look at that anyways. If it was proven that an addon author was doing something sketchy, they could be dealt with on a per-addon basis. We have a TOS on CurseForge and WAGO that outlines this.

1 Like

IMO link the tool!

I think if you take 10-15 seconds to load addon data, you probably do have an excessive number of addons?

I mean, I notice ATT takes maybe a second to load after I get into the world.

It’s a C# program that I wrote that loads the Lua (using NLua) code for every *.lua file and exports all the globals found in each document back without indenting and commenting anything. (I wrote it specifically for my WTF folder, but if someone wants it, I could possibly share it, although posting a link here is likely against TOS.)

That sorta depends on how big your collection is in ATT. My account is still (after not maining Retail for 3 years) in the 60% range account completionist wide.

This probably really only affects people using addons like ATT with high levels of account completion. I’ve noticed fresh accounts load up pretty fast. (my nephew loads in lightning fast and I stare in disbelief)

“More Data” = “Longer Load Time”

1 Like

I mean… I’m tracking “some of the things, Rogue mode (Main Only)”.

Account mode is off.
Not tracking appearances, heirlooms, illusions, flight paths, recipes ( Blizz UI has that), reputations (mostly exalted), or titles (who cares?). Not tracking unobtainable stuff or wrong covenant stuff.

So I’m at 30556/35584 overall, 85.8%.

Sub-second load time.

I’m going to guess account-wide appearances are a good way to choke it.

Crieve is asking for Blizzard to rewrite the saved variables file the only code he has is removing whitespace from the current files which is a manual process.

bumping for visibility and more discusion, i have ton of alts and i like to track as much as i can so i dont have to log into them to find stuff and sometimes the load times are interesting hehe

I know, I’m interested because I have some uses for reading the variable file myself but wasn’t keen on writing my own SavedVariables file parser.

You know I didn’t think I cared about this until you phrased it this way.

Very good point.

1 Like

Not to be negative or anything but
Blizzard wants the game to be completely playable without addons.

So, with that being their stated feelings on the matter, I doubt they’ll be catering to an addon dev.

That’s not my understanding. While they want that to be an option, they’ve encouraged addons by providing lua and documentation to use it since day 1. Robust addons allowing so much customization is one of the selling points of WoW for some people. They cater to addon devs all the time by addressing bugs and answering questions or clarifying issues with lua code.

Well, that’s exactly what you were. Not only that, but you were totally contrarian about everything you stated as well. Think before you press Reply.

“LUA” eyes bleed every time…

Heres the thing, those loads tend to break something in the UI so I pretty much have to /reload every time I go anywhere.

Looks like the latest patch for Retail removed the pre-indenting and the comment indexing of saved variable files.

My load time just decreased! :slight_smile:

EDIT: That said, the option to include both of these options should an addon developer want to preserve this functionality doesn’t appear to be present. In some cases devs use the addon’s saved variables for human readable purposes.

Something like a global variable toggle to include indenting for the next reload cycle would be awesome, just have it reset on the next reload and it’d be perfect.

Most of you guys probably don’t /reloadui as much as I do, but man, the improvement is massive. Particularly for addons like ATT that use a lot of big sequential tables. Just removing the whitespace and comments ripped out 1.2 MB worth of data from the saved variable file for ATT alone.

2 Likes