I agree that better quicksaving and autosaving would be nice.
But, probably not going to happen: there are more important uses of programmer time.
So, for PC users at least, it's better to do it as a third party tool.
As a first step, timebased quicksaving should be easy enough with an
autohotkey script (or AutoIT, or whatever your favorite macroing languages is) that triggers every few minutes to hit F9 (well, whatever key you map it to, since it's not mapped by default).
Something like (tested, seems to work):
#singleinstance force
; 300,000 usecs = 300 secs = 5 mins.
msBetweenSaves := 30000
TimerActive := 0
; Wait 'til we're playing.
SetTitleMatchMode 3
WinWaitActive, Divinity2
; Then set the timer.
SetTimer AutoSaveFunction, % msBetweenSaves
; When the timer fires...
AutoSaveFunction:
{
; If we are still playing, send the "quicksave" keystroke
IfWinActive Divinity2
{
; Send the "quicksave" keystroke,
send {F8}
}
; Otherwise, wait until we are playing again.
IfWinNotActive Divinity2
{
WinWaitActive, Divinity2
}
; Either way, restart the timer.
SetTimer AutoSaveFunction, % msBetweenSaves
}
;Alt-F11 and Alt-F12 just in case the script messes up in some bad way.
!F11::reload
!F12::exitapp
You could also make it do timebased REAL saves, but that's trickier, because the save screen doesn't have any keys that work on it, so you need to control the mouse. So your script would need to hit F6 (or whatever you have "open save screen" remapped to), then click the mouse near the top of the list, then click the "save" button. You'd also need to pause before clicking, while it displayed the "finding saves" popup. And to make it work in all resolutions, you'd need to do it as a percentage of screen width (50%) and height (I dunno), rather than actual X/Y coords.
And if you're doing all that, might as well remap the quicksave button to make real saves too, as well as just saving over the quicksave slot (doing both so that quickloading still works)