Yeah it would be possible. Not got my thinking cap screwed on properly at the minute though - still half asleep; or maybe it's the bloody heat making it hard to concentrate.
But yeah, you could use a mouse event handler to listen out for any mouse movement which you can use to reset the getTime() function, would probably be the simplest solution. Changing to a random scene on the other hand might be a bit of a pain as you would also need to adjust various conditions/values accordingly & add/remove inventory items, etc. Might be simpler if you play through your game/demo yourself & create an autosave at the beginning of each scene, then using a mainLoop event you can check when time equals 5 minutes (in milliseconds - sorry, though you could convert it with one of the time conversion functions I shared on the wiki into minutes/seconds if you prefer) then call a called by other action that contains a set random value, then a bunch of if queries along the lines of...
if value "rand_scene" is 1
load autosave #1
end if
if value "rand_scene is 2
load autosave #2
endi if
... etc
Anyway, hope this helps. Sorry if it's not very clear. As I said, I'm tired & it's boiling hot here at the minute.
function mouseEvt(eventType, mousePosition)
getTime({flags=1, reset=true}) -- reset timer back to zero
end
function check_idle()
if getTime() >= 300000 then -- 5 minutes (in ms)
startAction(Actions["random_scene"])
getTime({flags=1, reset=true}) -- reset timer back to zero
end
end
registerEventHandler("mainLoop", "check_idle")
registerEventHandler("mouseEvent", "mouseEvt")
replaceGame("data.vis") -- replace data.vis with name of vis file located in game root folder