All right... so I'm having incredibly bizarre, nonsensical changes in program behavior between testing in-editor and compiling the .exe.
My game, when run, sets the ini file, then immediately checks if "filevalid" is equal to 1. If the ini doesn't exist (which is the only way this variable can equal 0), the game bypasses loading from the .ini and sets initial values manually.
START OF FRAME -> set ini file to "filename.ini", set filevalidator global var to "filevalid" (from ini)
If filevalidator = 1 + RUN ONCE -> load all game data from ini into global variables.
If filevalidator = 0 + RUN ONCE -> bypass data load, manually set all variables to initial values.
This works every time. I don't set "filevalid" until the user closes the app, which triggers (on "close window has been selected", or ctrl+Q) KILL FRAME, which loops through and saves all settings/high scores. filevalid is set to 1 here - this also works every time.
When I'm in the editor, the next time I load the game it properly finds the filevalid set to 1, loads the data in from the file, and all is well!
When I compile and run however, it correctly sets filevalid to 1, but every other value in the .ini has been set to 0. I have no clue what's doing this - when I open the .ini file after the game closes the first time all the values are properly set. Somehow my load operation is setting everything to 0, which then saves everything to 0 as soon as I close the app again.
I cannot figure this out for the life of me. I'm even putting the compiled .exe in the same folder that the in-editor version is using to access the .ini, but no dice.
Anyone have any clue what could be going wrong? I can't use the debugger, as it functions fine in editor, and I know for a fact the folder isn't access-restricted - ran in several different locations just to be sure....this is infuriating