Geralt and Yennefer continue Ciri's training as they move from one home to the next, trying to stay ahead of the enemies who are hunting them. Geralt determines to end Rience once and for all.
While Geralt and Jaskier search for information on Rience they encounter a group of women captured by a mutated flesh monster. Yennefer brings Ciri to her former home of Aretuza, and Fringilla escapes imprisonment by the Nilfgaard.
Geralt brings a mysterious, half-elven girl to an old friend to learn the truth of her enchantment. Ciri explores the city of Gors Velen and ends up in the spotlight, and Yennefer's attempt to return to the high society of her fellow sorceresses drives a wedge between her and Ciri.
After the emperor orders him to eliminate the elven queen Francesca, Cahir instead persuades her to help in the search for Ciri. As Geralt, Ciri, and Jaskier make their way back to Aretuza, Yennefer convinces the Brotherhood of Sorcerers to hold a conclave of mages to solidify the North against Nilfgaard.
During the magical conclave Yennefer and Geralt attempt to gather what they need to expose Stregobor, while also hosting a gathering of feuding factions.
Yennefer and Geralt's plan is in tatters after the discovery of the true mastermind behind the attempts to capture Ciri and ignite a war, and Nilfgaardian soldiers along with the elvish Scoia'tael invade the city.
Ciri struggles to survive alone in the wastelands of the Korath desert, where she is tormented by visions of her past and future – and the spirit of an infamous mage. Jaskier finds a gravely wounded Geralt in the care of the dryads of Brokilon.
Yennefer leads the sorceresses to Vilgefortz's fortress, only to find it empty – save for the remains of the captured Aretuzan students. While Tissaia mourns a personal betrayal King Vizimir orders Dijkstra to eliminate Philippa in retaliation for their failures, and Geralt fights through his injuries to try and find Ciri.