jrbudda / KerbalEngineer

Kerbal Engineer v1.0 (current in-development build).
241 stars 30 forks source link

KER GUI Settings Not Saving #54

Open quade-ksp opened 4 years ago

quade-ksp commented 4 years ago

Is it just me? Not that it's a game killer, but every time I start up I have to reset my KER GUI size. It seems to be stuck at "0". KER v1.1.7.1 KSP v1.8.1

Occurs to me I should mention I'm on iOS 10.15.1 and as I recall there is some issue some other modder had in writing saves to Unix based systems. I wish I could remember what exactly that was. That issue got resolved, but as I also recall it had something to do with the way the file tree works vs how he had specifically written for some fancy way of doing it for Windows (version unknown).

SteveBenz commented 4 years ago

I have the same issue... Came here actually looking to see if I could figure out why I was broke. I assumed it was just me. And perhaps it's just us. After digging into the code, I came to this settings storage file, here:

C:\Program Files (x86)\Steam\steamapps\common\Kerbal Space Program\GameData\KerbalEngineer\Settings\GuiDisplaySize.xml

I'm kinda boggled that this location works - usually stuff under C:\Program Files is locked down and it'd be smarter to be under %APPDATA% than here. But whatever, it does work and has been that way for years. Anyway, I think you'll find the same thing I did, that when you look at the file, it'll look like this:

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfSettingItem xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SettingItem>
    <Name>multiplier</Name>
    <Value xsi:type="xsd:double">1.1</Value>
  </SettingItem>
  <SettingItem>
    <Name>increment</Name>
    <Value xsi:type="xsd:int">0</Value>
  </SettingItem>
  <SettingItem>
    <Name>increment</Name>
    <Value xsi:type="xsd:int">7</Value>
  </SettingItem>
</ArrayOfSettingItem>

Notice how the 'increment' block is duplicated and the first one has the value of 0. You can actually watch what happens if you update the setting in the game - it alters the second block, but it reads the first one. I haven't stared at the code long enough to see how it could have gotten into this state, but removing the bogus block seems to be making the problem go away -- at least for the moment.