Is there a way to find out what instances a player is associated with that are not saved? For example, you go into a normal dungeon like RFC, kill some mobs, then leave. You are not saved (since it is a normal dungeon) but if you go back in the instance you can continue the run as if you never left. To get the mobs back that you killed you have to either wait 30 minutes for it to reset, or click on the Reset All Instances option.
I would like a way in my addon to determine when a player enters an instance that they are not saved to if it is a fresh run or a continuation of a previous run. Is there anyway to check for that, or, alternatively, a way to check for the player using the reset all instances command?
For saved instances like raids or heroic dungeons it's really easy, but I can't figure out how to do it for normal dungeons.
Basically, I want to track how many times a player enters a dungeon for a fresh run. If they enter, then exit, then re-enter, it should only be one run, but if they enter, exit, hit Reset All Instances, then re-enter it should be two runs.
There's no way to query the client/server for that. You'd have to keep track of it yourself as it happened, eg.
- Enter - starts a new run
- Leave and reenter - continues the same run
- Reset - clears all runs
- Enter - starts new run, since all runs were cleared
Is there an event that is triggered when you do Reset All Instances? I didn't see anything happen when I ran /etrace. Right now I'm doing a bit of a workaround to cover the circumstance of dying in an instance and rezzing by re-entering. Might just have to keep it at that and have the known caveat of if you exit and re-enter it will count as two runs.
Either that or have a popup that asks you to confirm if this is a new run or not if you enter the same dungeon you last left.
local RESET_MESSAGE_PATTERN = "^" .. gsub(INSTANCE_RESET_SUCCESS, "%%s", ".+") .. "$"
local f = CreateFrame("Frame")
f:SetScript("OnEvent", function(f, event, message)
if strfind(message, RESET_MESSAGE_PATTERN) then
-- instances were successfully reset