Walkthrough: targets, choices, and fizzles
File: targeting.mtgr (format 0.3.0)
The file is a short complete game: PlayerA shocks in Watery Grave, casts Thoughtseize on PlayerB, and takes Ragavan. Below it, this page shows how the same tools handle related situations: a declined shock, Thoughtseize on yourself, a hand with nothing to take, spells that fizzle, ward against a spell that can't be countered, and choosing without targeting. These are excerpts, not complete games.
All examples are recorded from PlayerA's seat. Rules decisions are in decisions/0005-choices-and-costs.md and decisions/0017-entering-tapped-replacement-order-and-choosers.md.
The archetypes
[Player1Archetype "Dimir Murktide"]
[Player2Archetype "Boros Energy"]These tags name the deck each player is piloting, so tools can group games by matchup. PlayerA knows their own deck. PlayerB's decklist is hidden, but Ragavan, Guide of Souls, and Phlage are enough to classify it. An archetype is a label added to the record, not something that happened in the game: a tool can add or correct it later, and when nothing is known the tag is left out.
The game: shock, then Thoughtseize
0:31 #1 "Watery Grave" choose option "pay 2 life"
0:31 "PlayerA" life 20 -> 18 by #1
0:31 #1 "Watery Grave" play from hand"As this land enters, you may pay 2 life" is a replacement effect of Watery Grave itself (CR 614.1c), so the payment is by #1. Its choice and payment come immediately before the event they change, because they decide how the land enters.
0:34 new ability #15 mana of #1 "Watery Grave" "({T}: Add {U} or {B}.)" controller "PlayerA"
0:34 #1 "Watery Grave" tap by cost:#15
0:34 "PlayerA" add {B} by #15
0:35 #2 "Thoughtseize" cast from hand
0:35 #2 "Thoughtseize" target "PlayerB"
0:35 "PlayerA" pay {B} by cost:#2The target is a player, written as a player name.
0:38 #2 "Thoughtseize" resolve
0:38 #8 identify "Ragavan, Nimble Pilferer"
0:38 #8 "Ragavan, Nimble Pilferer" reveal by #2
...
0:45 #2 "Thoughtseize" choose object #8 "Ragavan, Nimble Pilferer"
0:45 #8 "Ragavan, Nimble Pilferer" move hand -> graveyard as discard by #2
0:45 "PlayerA" life 18 -> 16 by #2- PlayerB's hand was seven hidden objects. As it is revealed, each card gets an
identifyline (PlayerA now knows its name) and arevealline (the game action, CR 701.20a). The names stay known afterwards, until PlayerB shuffles them away. - Picking the card is a choice, not a target: Thoughtseize targets the player, then "you choose a nonland card" as it resolves (CR 115.10).
- The discard is a move
as discard, so "whenever a player discards" abilities can find it. - Both life changes on this turn have a cause: 20 to 18 from the shock, 18 to 16 from Thoughtseize.
Declining the shock
0:31 #1 "Watery Grave" choose option "don't pay 2 life"
0:31 #1 "Watery Grave" play from hand tappedThe land enters tapped. That is part of how it enters, so it is tapped on the play line, not a separate tap line: the land never "becomes tapped" (CR 614.1c).
Thoughtseize on yourself
Reanimator decks target themselves to discard a big creature.
0:47 #2 "Thoughtseize" target "PlayerA"
...
0:49 #2 "Thoughtseize" resolve
0:49 #1 "Watery Grave" reveal by #2
0:49 #3 "Archon of Cruelty" reveal by #2
0:49 #4 "Persist" reveal by #2
0:52 #2 "Thoughtseize" choose object #3 "Archon of Cruelty"
0:52 #3 "Archon of Cruelty" move hand -> graveyard as discard by #2
0:52 "PlayerA" life 20 -> 18 by #2Nothing new is needed. There are no identify lines because PlayerA already knows their own cards. The reveal is still recorded, because PlayerB now knows the hand. From PlayerB's seat, the same reveal would be #3 identify "Archon of Cruelty" followed by #3 "Archon of Cruelty" reveal by #2.
Nothing to take
If PlayerB's hand holds only lands, the target is still legal, so Thoughtseize resolves. "You choose a nonland card" has nothing to choose:
0:38 #2 "Thoughtseize" resolve
0:38 #12 identify "Mountain"
0:38 #12 "Mountain" reveal by #2
...
0:45 "PlayerA" life 18 -> 16 by #2
0:45 #2 "Thoughtseize" move stack -> graveyard by rule:resolveThere is no choose line and no discard. PlayerA still loses 2 life.
If there is no legal target at all when casting, the spell can't be cast (CR 601.2c), so there is nothing to record.
Fizzle: the target player gains hexproof
In response to Thoughtseize, PlayerB casts Veil of Summer, gaining hexproof from black:
1:24 #9 identify "Veil of Summer"
1:24 #9 "Veil of Summer" cast from hand
1:24 "PlayerB" pay {G} by cost:#9
1:24 "PlayerB" priority
1:24 stack
1:24 #9 "Veil of Summer" controller "PlayerB"
1:24 #2 "Thoughtseize" controller "PlayerA" target "PlayerB"
...
1:27 #9 "Veil of Summer" resolve
1:27 new hidden #18 owner "PlayerB" in library
1:27 #18 move library -> hand as draw by #9
1:27 #9 "Veil of Summer" move stack -> graveyard by rule:resolve
...
1:29 #2 "Thoughtseize" fizzle by #9
1:29 #2 "Thoughtseize" move stack -> graveyard by rule:fizzleThoughtseize's only target is now illegal, so it does not resolve (CR 608.2b): nothing is revealed and PlayerA loses no life. fizzle by #9 says which object made the target illegal. The hexproof itself is a continuous effect, which the format does not record yet (spec section 15), so the cause is how a reader connects the two.
Fizzle: the target creature gains hexproof
The same thing happens when a spell targets a creature. PlayerA casts Fatal Push on PlayerB's Guide of Souls, and PlayerB responds with Veil of Summer, which also gives their permanents hexproof from black:
2:10 #20 "Fatal Push" cast from hand
2:10 #20 "Fatal Push" target #11 "Guide of Souls"
...
2:16 #21 "Veil of Summer" resolve
...
2:19 #20 "Fatal Push" fizzle by #21
2:19 #20 "Fatal Push" move stack -> graveyard by rule:fizzleA target that leaves the battlefield in response (sacrificed, bounced, flickered) makes the spell fizzle the same way, with the cause being whatever moved it, when known.
Ward against a spell that can't be countered
PlayerA controls Graveyard Trespasser, which has "Ward: Discard a card". PlayerB targets it with Abrupt Decay, which can't be countered, and chooses not to discard:
3:02 #50 identify "Abrupt Decay"
3:02 #50 "Abrupt Decay" cast from hand
3:02 #50 "Abrupt Decay" target #40 "Graveyard Trespasser // Graveyard Glutton"
3:02 "PlayerB" pay {B}{G} by cost:#50
3:02 new ability #51 triggered of #40 "Graveyard Trespasser // Graveyard Glutton" "Whenever this creature becomes the target of a spell or ability an opponent controls, counter that spell or ability unless that player discards a card." controller "PlayerA" in stack
3:02 "PlayerB" priority
3:02 stack
3:02 #51 triggered of #40 "Graveyard Trespasser // Graveyard Glutton" "Whenever this creature becomes the target of a spell or ability an opponent controls, counter that spell or ability unless that player discards a card." controller "PlayerA"
3:02 #50 "Abrupt Decay" controller "PlayerB" target #40 "Graveyard Trespasser // Graveyard Glutton"
...
3:06 #51 resolve
3:06 #51 choose option "don't discard a card" by "PlayerB"
3:06 #51 cease by rule:resolve
...
3:09 #50 "Abrupt Decay" resolve
3:09 #40 "Graveyard Trespasser // Graveyard Glutton" move battlefield -> graveyard as destroy by #50
3:09 #50 "Abrupt Decay" move stack -> graveyard by rule:resolve- Ward is a triggered ability (CR 702.21a). It triggers when the Trespasser becomes a target, and goes on the stack above Abrupt Decay.
- Ward belongs to PlayerA, but PlayerB decides whether to pay, so the choice line ends
by "PlayerB". A choice withoutbyis made by the object's controller. - Ward then tries to counter Abrupt Decay and can't, because "can't" beats "can" (CR 101.2). Nothing happens, so nothing is written: there is no
counteredline, and Abrupt Decay resolves. - The ability text is shown in its expanded form (CR 702.21a). A recorder writes whatever text its source reports.
Choosing without targeting
Hexproof and ward only apply to targets (CR 702.11b, 702.21a). "Choose" is not "target" (CR 115.10), so a spell that chooses can take a creature with hexproof or ward. In the file, that is the difference between target and choose object.
Council's Judgment has every player vote for a nonland permanent its caster doesn't control (CR 701.38a). PlayerA votes for PlayerB's Graveyard Trespasser; PlayerB votes for their own Guide of Souls. It's a tie, so both are exiled:
4:40 #60 "Council's Judgment" resolve
4:40 #60 "Council's Judgment" choose object #45 "Graveyard Trespasser // Graveyard Glutton"
4:44 #60 "Council's Judgment" choose object #47 "Guide of Souls" by "PlayerB"
4:44 #45 "Graveyard Trespasser // Graveyard Glutton" move battlefield -> exile by #60
4:44 #47 "Guide of Souls" move battlefield -> exile by #60
4:44 #60 "Council's Judgment" move stack -> graveyard by rule:resolveThere is no target line, so ward never triggers. Each vote is a choice, and PlayerB's names its chooser.
The full file
[Mtgr "0.3.0"]
[Event "Modern League"]
[Site "MTGO"]
[Date "2026.11.02"]
[Round "-"]
[Player1 "PlayerA"]
[Player2 "PlayerB"]
[Result "1-0"]
[Format "Modern"]
[Match "example-targeting"]
[Game "1"]
[Perspective "PlayerA"]
[Player1Archetype "Dimir Murktide"]
[Player2Archetype "Boros Energy"]
[Termination "concession"]
[TimeControl "1500"]
[UTCDate "2026.11.02"]
[UTCTime "18:30:00"]
0:00 deck "PlayerA" unknown
0:00 pregame
0:00 keyframe
0:00 player "PlayerA" life 20 poison 0 library 60
0:00 player "PlayerB" life 20 poison 0 library 60
0:03 "PlayerA" roll 6
0:03 "PlayerB" roll 3
0:08 "PlayerA" choose first "PlayerA"
0:09 new card #1 "Watery Grave" owner "PlayerA" in library
0:09 #1 "Watery Grave" move library -> hand as draw by rule:opening-hand
0:09 new card #2 "Thoughtseize" owner "PlayerA" in library
0:09 #2 "Thoughtseize" move library -> hand as draw by rule:opening-hand
0:09 new card #3 "Murktide Regent" owner "PlayerA" in library
0:09 #3 "Murktide Regent" move library -> hand as draw by rule:opening-hand
0:09 new card #4 "Consider" owner "PlayerA" in library
0:09 #4 "Consider" move library -> hand as draw by rule:opening-hand
0:09 new card #5 "Polluted Delta" owner "PlayerA" in library
0:09 #5 "Polluted Delta" move library -> hand as draw by rule:opening-hand
0:09 new card #6 "Island" owner "PlayerA" in library
0:09 #6 "Island" move library -> hand as draw by rule:opening-hand
0:09 new card #7 "Counterspell" owner "PlayerA" in library
0:09 #7 "Counterspell" move library -> hand as draw by rule:opening-hand
0:09 new hidden #8 owner "PlayerB" in library
0:09 #8 move library -> hand as draw by rule:opening-hand
0:09 new hidden #9 owner "PlayerB" in library
0:09 #9 move library -> hand as draw by rule:opening-hand
0:09 new hidden #10 owner "PlayerB" in library
0:09 #10 move library -> hand as draw by rule:opening-hand
0:09 new hidden #11 owner "PlayerB" in library
0:09 #11 move library -> hand as draw by rule:opening-hand
0:09 new hidden #12 owner "PlayerB" in library
0:09 #12 move library -> hand as draw by rule:opening-hand
0:09 new hidden #13 owner "PlayerB" in library
0:09 #13 move library -> hand as draw by rule:opening-hand
0:09 new hidden #14 owner "PlayerB" in library
0:09 #14 move library -> hand as draw by rule:opening-hand
0:21 "PlayerA" keep
0:26 "PlayerB" keep
0:26 turn 1 "PlayerA"
0:26 keyframe
0:26 player "PlayerA" life 20 poison 0 library 53
0:26 player "PlayerB" life 20 poison 0 library 53
0:26 #1 "Watery Grave" hand "PlayerA"
0:26 #2 "Thoughtseize" hand "PlayerA"
0:26 #3 "Murktide Regent" hand "PlayerA"
0:26 #4 "Consider" hand "PlayerA"
0:26 #5 "Polluted Delta" hand "PlayerA"
0:26 #6 "Island" hand "PlayerA"
0:26 #7 "Counterspell" hand "PlayerA"
0:26 #8 hand "PlayerB"
0:26 #9 hand "PlayerB"
0:26 #10 hand "PlayerB"
0:26 #11 hand "PlayerB"
0:26 #12 hand "PlayerB"
0:26 #13 hand "PlayerB"
0:26 #14 hand "PlayerB"
0:26 untap
0:26 upkeep
0:26 precombat-main
0:31 #1 "Watery Grave" choose option "pay 2 life"
0:31 "PlayerA" life 20 -> 18 by #1
0:31 #1 "Watery Grave" play from hand
0:34 new ability #15 mana of #1 "Watery Grave" "({T}: Add {U} or {B}.)" controller "PlayerA"
0:34 #1 "Watery Grave" tap by cost:#15
0:34 "PlayerA" add {B} by #15
0:35 #2 "Thoughtseize" cast from hand
0:35 #2 "Thoughtseize" target "PlayerB"
0:35 "PlayerA" pay {B} by cost:#2
0:35 "PlayerA" priority
0:35 stack
0:35 #2 "Thoughtseize" controller "PlayerA" target "PlayerB"
0:35 "PlayerA" pass
0:35 "PlayerB" priority
0:35 stack
0:35 #2 "Thoughtseize" controller "PlayerA" target "PlayerB"
0:38 "PlayerB" pass
0:38 #2 "Thoughtseize" resolve
0:38 #8 identify "Ragavan, Nimble Pilferer"
0:38 #8 "Ragavan, Nimble Pilferer" reveal by #2
0:38 #9 identify "Lightning Bolt"
0:38 #9 "Lightning Bolt" reveal by #2
0:38 #10 identify "Phlage, Titan of Fire's Fury"
0:38 #10 "Phlage, Titan of Fire's Fury" reveal by #2
0:38 #11 identify "Guide of Souls"
0:38 #11 "Guide of Souls" reveal by #2
0:38 #12 identify "Mountain"
0:38 #12 "Mountain" reveal by #2
0:38 #13 identify "Sacred Foundry"
0:38 #13 "Sacred Foundry" reveal by #2
0:38 #14 identify "Arid Mesa"
0:38 #14 "Arid Mesa" reveal by #2
0:45 #2 "Thoughtseize" choose object #8 "Ragavan, Nimble Pilferer"
0:45 #8 "Ragavan, Nimble Pilferer" move hand -> graveyard as discard by #2
0:45 "PlayerA" life 18 -> 16 by #2
0:45 #2 "Thoughtseize" move stack -> graveyard by rule:resolve
0:52 "PlayerB" concede
1-0