SaveChatToINI is the function that should be saving the location of the chat window.
this is used in 3 places.
When you change the font - This is the easiest way to save the current windows location /mqfont 4
When the window is destroyed (when you zone?)
Right after loading the settings from the INI when you load the plugin and the window is created.
When is the window destroyed?
When you /loadskin default
Whenever the plugin is shutdown
These are all the times it's supposed to save the location.
The issue appeared when ChatLeft=Value was set to 2000 during the original MQ2 update.
If you've updated and can't seem to save the location, try updating again even if the loader says you are up to date. Make sure to log out all instances of EQ and close down any MQ2 related things such as EQBCS and the Macroquest2.exe icon from the tray menu.
You can then go into the release folder and delete MQ2ChatWnd.ini (not the .dll, just the INI)
Then, once updated and that file has been deleted, load one character back into EQ to verify the issue has been corrected.
Hope this resolution works for yall as it has worked for others.
Oh, I'm wrong. That window is created in OnPulse and the CreateChatWindow() function calls LoadChatFromINI. So the crash would have been because when it's initialized the windows doesn't exist at the end of the plugin initialization. Bad assumption on my part regarding the flow and the fix.