Original Post — Direct link

I just played a match vs Mardu Knights where my opponent had only a Stormfist Crusader (2/2 menace) and Smitten Swordmaster (2/1 lifelink) in play. The rest of the board was empty except for lands.

I cast Massacre Girl on my turn, which cleared both of his creatures. After the triggers resolved and the stack was empty, my opponent flashed in a Blacklance Paragon, which was immediately killed by a Massacre Girl trigger, then the opponent conceded.

As far as I understand, there is nothing that should have triggered Massacre Girl in that situation, and the Blacklance should have survived. Am I missing anything here?

I don't believe this was a case of my opponent casting the Blacklance too early while the final Massacre trigger was still on the stack; the stack was empty and the opponent even paused for a second before playing his creature. I think he even advanced to End Step before making the play, but I'm not 100% sure on that (my client was auto-passing once I played Massacre Girl, since I was tapped out and had nothing that would pause for priority).

I do have the full log file from the match, but here is an excerpt with what I believe is the relevant bit. This covers the part of the match from when my Massacre Girl was cast until the end of the match.

The specifics of what happened should be somewhere between the line that reads

<<<<<<<<<< ZoneChange of type ZeroToughness for ["Stormfist Crusader" InstanceId:367, GrpId:70350] ("Stormfist Crusader") had no Instigator.

and the line

<<<<<<<<<< ZoneChange of type ZeroToughness for ["Blacklance Paragon" InstanceId:373, GrpId:70226] ("Blacklance Paragon") had no Instigator.

Edit: I attempted to reproduce this in a direct challenge, and the Blacklance Paragon played by the opponent after the Massacre triggers finished survived, so I don't know what happened in the previous game. In my repro attempt, I didn't have an identical board state to the original, but it was similar (a couple creatures that died to Massacre, followed by the opponent playing a Blacklance).

My first thought would be to check the log and make sure the original Mardu player didn't play their Blacklance prior to the -1/-1 trigger caused by the death of the Stormfist Crusader. Maybe there was an issue with that final trigger displaying on the stack. If they did play it afterward, then there's probably something more specific to the steps to reproduce it.

External link →
about 5 years ago - /u/WotC_BenFinkel - Direct link

I'll look into this tomorrow. I could imagine how this bug could occur, so let's see if I'm right. #wotc_staff

about 5 years ago - /u/WotC_BenFinkel - Direct link

Originally posted by Grumbul

Thanks Ben, I really appreciate how much you stay on top of the bug posts that pop up around here.

If you need anything more than the part I put on pastebin, I attached the full log file to my bug report on the official bug report tool.

If it turns out the opponent did just cast it too early, my apologies. I did what I could to rule that out before posting, but the log file is pretty difficult to decipher manually, and I didn't have a video recording.

OK, looking at both your client log and the server log for the match, it appears that your opponent did mistakenly play their [[Blacklance Paragon]] too early, while a [[Massacre Girl]] trigger was on the stack.

Here is a game state in your log that shows that the Paragon's trigger is on the stack at the same time as the Massacre Girl's trigger. You can see that the stack has two things in it:

{ "zoneId": 27, "type": "ZoneType_Stack", "visibility": "Visibility_Public", "objectInstanceIds": [ 372, 368 ] }

And that object 372 is an ability instance:

{ "instanceId": 372, "grpId": 136250, "type": "GameObjectType_Ability", "zoneId": 27, "visibility": "Visibility_Public", "ownerSeatId": 1, "controllerSeatId": 1, "objectSourceGrpId": 70226, "parentId": 369 }

And in our files, we can see that 136250 corresponds to "When CARDNAME enters the battlefield, target Knight gains deathtouch and lifelink until end of turn."

Unfortunately this game state doesn't describe 368, but earlier in your file you can see that it is:

{ "instanceId": 368, "grpId": 1378, "type": "GameObjectType_Ability", "zoneId": 27, "visibility": "Visibility_Public", "ownerSeatId": 2, "controllerSeatId": 2, "objectSourceGrpId": 69550, "parentId": 356 }

And 1378 is the delayed trigger "Whenever a creature dies this turn, each creature other than CARDNAME gets -1/-1 until end of turn." that comes from Massacre Girl.

So, looks like things are going fine from the rules engine... it's possible that something funky happened on the client though? Pity we don't have a screenshot or video :( #wotc_staff