knoxfighter / GW2-ArcDPS-Boon-Table

MIT License
83 stars 9 forks source link

settings reset #15

Closed AT0mo closed 1 year ago

AT0mo commented 3 years ago

Heyoo! I'd like to tell you about an issue that somehow prevents any changes to my custom settings (which boons to show etc.) from saving to another game session as it did before. Ty

knoxfighter commented 3 years ago

Settings should save like they always did. Please provide me your arcdps log and the imgui.ini file. They both can be found in <Guild Wars 2>/addons/arcdps/

AT0mo commented 3 years ago

This should be it

Stuff.zip

MidoriKami commented 3 years ago

I have a similar issue, I believe I have narrowed down the problem.

When you adjust the size, position, what boons to show etc, it is saved to arcdps_imgui.ini immediately and correctly. On game reload the settings are still correct inside arcdps_imgui.ini however the table is not shown. Using the hot key (Alt + Shift + B) or selecting "Boon Table" from the Arc DPS menu causes the settings inside arcdps_imgui.ini to reset to default.

I have attempted to force the arcdps_imgui.ini file to read-only, however this causes it to fail to load the settings and the boon table uses defaults regardless of what the arcdps_imgui.ini say.

knoxfighter commented 3 years ago

The main problem i have, i am completely unable to reproduce this behaviour :( I will have another look nonetheless.

0Apoz commented 3 years ago

Same issue, have had this since using addon-manager. (few months) It resets regardless of updating with addon-manager or not, a simple restart of the game makes it reset.

Thanks for taking a look at it!

MidoriKami commented 3 years ago

It seems there is some kind of external interaction going on with how the data is being saved to the arcdps_imgui.ini file.

The position of the table itself was always saved correctly and loaded correctly, what wasn't being saved was the specific configuration for the table, hiding the header, making the columns smaller, displaying with colors etc.

With the latest update to arcdps, it seems to have resolved this issue for me.

knoxfighter commented 3 years ago

Do only the Boon Table Positions/Settings reset or also the arcdps ones? Does it help, if you delete the arcdps_imgui.ini (this will reset some other window positions as well)? I suspect some kind of permission problem, cause i am still unable to reproduce it and a look into the code did not result in anything :(

MidoriKami commented 3 years ago

Do only the Boon Table Positions/Settings reset or also the arcdps ones?

The boon tables top left corner screen position is saved properly, there was never a problem with this component. Only the data contained in the "[BigTable-BoonTable]" tag was resetting on opening the boon table. None of the other data in arcdps_imgui.ini was modified upon restart.

My test sequence was the following: Start GW2 Boon Table is currently hidden, show the boon table Modify Boon table settings, such as Column Width Close Game via "Exit Guild Wars 2" menu option Open GW2 Boon Table is currently hidden, show the boon table All modified settings were reset.

Does it help, if you delete the arcdps_imgui.ini (this will reset some other window positions as well)?

I tried that a couple times, upon game reload the data was reset.

I suspect some kind of permission problem

One of my attempts I modified the table data, verified it was saved to arcdms_imgui.ini, closed the game, then marked the file as read only. I received an error ingame saying that arcdps was unable to open the file, I assume that the file handler was opened with read and write permissions and the error went unhandled.

I am unable to reproduce this issue anymore as the table seems to be working properly for me now. I suspect that it was mis-management from another arcdps addon, and was not caused by boontable itself.

AT0mo commented 3 years ago

Okay, so i found out why it was happining (in my case). I had to move gw2 folder a few weeks ago from one HDD to another, and I put it in Program files (x86) instead of just Program files....I didn't realize anything was wrong because the game was launching properly....but when i decided to really find out where the problem is, i found out that my pc doesn't even recognise gw2 as a program, nor the addons could find the bin 64 folder. So i uninstalled all Addons, then removed the game folder with all the data. Reinstalled the game properly and then added all the addons and everything is perfectly fine.

tl;dr: Check your game Location.

MidoriKami commented 3 years ago

My game files were in "Program Files" the entire time, it took an update to ArcDPS to resolve the issue for me, it is likely OP got the updated files that resolved my issue when they reinstalled the addons.

knoxfighter commented 3 years ago

As this got resolved somehow, my theory about the permission problem seems the most feasable. I keep this issue open for others to find. So, if you are reading this, cause you have the same problem, please check your permissions :)

Tinsus commented 2 years ago

I have quite a similar problem.

No changes are saved of the boon table extension

I deleted the arcdps_table.ini → it is not generated on game start, nor it will get changed I deleted the arcdps_imgui.ini → it will be created and also changed between game sessions. BUT arcdps_table.ini will not get created on startup the default settings are used unless the windows shows up at the correct position thanks to the updated imgui-file

I worked around the problem by picking the arcdps_table.ini file from my backups and changed it to my needs.

Sorry - I didn't read every post in this issue, but I noticed some someone saying the issue happens when the game is moved to another location. I didn't change its location, BUT I swapt from "vanilla" arcdps installation to "addonmanager-like" arcdps installation: the location of the dll files itself changed from /GW2/bin64 to /GW2/addons/arcdps (with the magic of the d3d9_wrapper) also the ini-files are located there. Maybe this could cause that error?

knoxfighter commented 2 years ago

The file is only created on shutdown. Moving to the addonmanager should not change anything about this :( Sounds like a permission problem as well. When i work on this plugin again, i will add more output, to see what's going on.

DoubleHighC commented 1 year ago

Hi all

I have the same problem! The permissions of the .ini files are all exactly the same in the arcdps folder where all the .ini files are but changes to arcdps or other "plugins" seem to save correctly and stay the same after restarting the game.

Just Boon Table keeps resetting after restarting the game and just part of it! The size and position stays after reload but the selected boons for example and the adjustments of the individual columns reset after restarting the game!

I added 2 screenshots:

1x after adjusting how I want it

Before restart

1x after restarting the gaem

After restart

You can also see, that the outer border of the first boon table window is thinner than the outer border of the second boon table window even if the setting of both windows are exactly the same in terms of style!

Any new info on this issue?

Thank you in advance

Pluckerpluck commented 1 year ago

So I've looked into this a lot now, and determined that it's an interaction with other addons causing the issue.

Loading with just d3d9_arcdps_table.dll works fine. The columns are all saved correctly and as expected. I then tested it alongside different DLLs.

The following addons interact nicely :

The following addons do not interact nicely and cause resetting:

Let Chaos Reign!

Even more confusing though, is that of those first two. If I have one of those, there is no resetting. If I have both of them though? Resetting begins once more! That's right, there is an interaction here that only causes problems if both of those exist.

A magical solution

Of course, I wouldn't be posting if I hadn't worked out something useful. There's a simple way to stop the settings reset. Just rename the DLL!!

I renamed this dll to aaaaaaaaaaaa.dll, and lo and behold! It works. No more resetting!

Clearly there's something relating to load order here. However I don't know why. Forcing it to load first make it work. But perhaps its messing with another extension now (and I'm not quite prepared to go on a hunt for that)? And it doesn't explain why it worked with one of the first two addons I mentioned, but not both at the same time! Surely the load order would be the same, and not dependent on that,


Note: The above is all confirmed by both me and another GW2 player who had the exact same situation, and the same "solution".


All in all, I wish you all the best in trying to work out what the hell is going on here.

And for anyone who wants at least a temporary fix? Rename the d3d9_arcdps_table.dll to aaaaaaaaaaa.dll.

Alternatively, name it something more useful like: aaaaaa_d3d9_arcdps_table.dll


Edit: God damn it guys... Turns out that it doesn't fully fix it. It happens way less often, but it still sometimes resets and I haven't worked out why (though I think it's tied to game updates). There's definitely something associated with load order here, but it feels like an ArcDPS issue or something, not an issue with this specific addon.

NifeBun commented 1 year ago

A magical solution Of course, I wouldn't be posting if I hadn't worked out something useful. There's a simple way to stop the settings reset. Just rename the DLL!!

I renamed this dll to aaaaaaaaaaaa.dll, and lo and behold! It works. No more resetting!

Edit: God damn it guys... Turns out that it doesn't fully fix it. It happens way less often, but it still sometimes resets and I haven't worked out why (though I think it's tied to game updates). There's definitely something associated with load order here, but it feels like an ArcDPS issue or something, not an issue with this specific addon.

Yeah, at first I was about to comment saying how much I love you, but sadly the fix worked for me only for about 2 game restarts. After I launched the game for the 3rd+ time, the table resets again to default "all boons" configuration. Surprisingly it keeps the appearance settings for the windows itself, but not the displayed boons :( Will need to fiddle with it more myself as well

Pluckerpluck commented 1 year ago

Surprisingly it keeps the appearance settings for the windows itself, but not the displayed boons

To elaborate. It is specifically the arcdps_imgui.ini file that resets. (That name is from memory, may not be 100% correct). This file contains only:

Everything else about the window position isn't stored there. And that's why only those two things reset.


But yeah, it's very flaky. Renaming it to aaaa.dll definitely makes it fail less often, but it clearly still fails from time to time.

@NifeBun you didn't have the rest occur directly after a GW2 update did you?

But anyway, with this being flaky I imagine this is an incredibly painful bug to debug. I can't even see how this file is loaded, I think arcdps handles it or something? So maybe handling it manually in arcdps_table.ini would make it work?

Mr-Gelo commented 1 year ago

I have a similar problem: column width and visible columns settings are not saved between game sessions. The only two addons I have are ArcDPS and ArcDPS-Boon-Table. No addon manager.

NifeBun commented 1 year ago

@NifeBun you didn't have the rest occur directly after a GW2 update did you?

Yes, @Pluckerpluck, it was around the recent game update. Been using boontable, arcdps and killproof addons together for a very long time now, without issues. Boon table resets appeared around the newest game update. Fiddled around on my own a bit more but sadly no solution yet.

Iiridayn commented 1 year ago

Similar problem, just recently started using it, and was checking issues to see if I needed to add saving column visibility as a new feature request :). Looks like it may be a regression instead.

Mythykle-Mythryndyr-Fs commented 1 year ago

I have been having this and the other issues all rolled into one plus one step up, since about a month ago now when I changed from processor graphics to a nvida 3060/geforece experience/dx11/dx11 version of radial. I have done full clean reinstalls of windows guildwars, addons and everything else with no changes/fix :(

So my boon table is not keeping it settings, not using my custom font, making my arc settings flicker half the time due to this shift + alt + b issue and on top of all those already reported issues. I have to restart my pc after every time I close gw client, or it just closes/crashes gw before it gets to the character creation. :(

My mates laptop is doing the same thing with just arc and radial installed. My Guildwars is installed on a seperate drive from Windows and nothing seems blocked etc permissions wise. My son's and my mule pc are fine. They both have windows 10, One is nvidia graphics but older one so no geforce experience, the other has an old amd studio card. Both are on dx9 and dx9 radial still.

We have all geforec experience extras disabled. So from the looks of it it has to do with dx11 itself or dx11 version of radial, conflicting with arc imo.

Pluckerpluck commented 1 year ago

As an update to this. I now believe the issue is caused by a race condition between loading the settings from the imgui.ini file, and an auto-save of those settings. If the settings save before the boon table can load the settings, then they get reset. If the boon table loads them first everything works.

This is why renaming the file to aaaa.dll makes it work more often. It loads faster, and thus grabs the settings before they are reset.

There is a plan to attempt to mitigate this issue by pushing the settings loading earlier in the initialization of the addon.

However I am concerned it will not be enough for two reasons:

  1. The update checker already runs in a secondary thread. While there is cost to that, it's not so high I would expect it to cause an issue here
  2. Renaming the file works most of the time, but seems more likely to reset after not playing for some time. So perhaps some other process that doesn't always run is just too much of a delay regardless of how much we speed up the process.

Regardless, when I get a chance I will test out the initial hypothesis and see if it helps avoid the system resetting.

The true solution is to save the data ourselves and not rely on imgui, which I believe there is ongoing work towards (in a large refactor), but not expected to happen any time soon.