SPOILER ALERT: Do not read if you have not yet watched “Elseworlds, Part 2,” the final part of the 2018 “Arrowverse” crossover, which aired Dec. 11.

After John Deegan (Jeremy Davies) got another go at using the Book of Destiny to rewrite reality, the “Elseworlds” finale saw Barry (Grant Gustin) and Oliver (Stephan Amell) facing quite a few drastic changes.

After being depowered, being hunted by the police and facing down a black-suited Superman (Tyler Hoechlin), in the first two parts of the three-episode and three-night event, the finale began with Barry and Oliver trying to talk down another powerful man: Deegan, who had made himself Superman with the Book of Destiny. Despite not having powers, the two heroes put this caped crusader in a position where he still needed to be a hero: He stopped a crane from falling on a bunch of children while Barry and Oliver escaped.

The false Superman then went to Star Labs, where it turned out Diggle (David Ramsey) and Caitlin/Killer Frost (Danielle Panabaker) were working for him in his rewritten reality. They agreed to search for Barry and Oliver while he went to talk with Supergirl (Melissa Benoist), who was locked in the pipeline. The Book of Destiny revealed everything about Barry and Oliver, but nothing about Supergirl —- probably because she and Clark (Tyler Hoechlin) are from another Earth. Before Supergirl could bust her way out of the pipeline, though, she was stopped by an alternate version of her sister Alex (Chyler Leigh). Deegan said if she didn’t behave Alex would die.

Back on the streets, Barry and Oliver planned to find Cisco (Carlos Valdes), and breach to Earth-38 to find the real Superman. But before they could carry out that plan, The Monitor (LaMonica Garrett) zapped them somewhere to “talk about their destiny.” He was surprised the two were able to escape from any version of Superman and warned them that heroic self-sacrifice wouldn’t work before returning them to Central City.

Barry and Oliver then headed to a criminal bar -– where they were ironically feared as the “Trigger Twins.” “DC’s Legends of Tomorrow” got a little piece of the the crossover real estate after all! Gary (Adam Tsekhman) pointed them in the direction of Cisco —- who was a crime boss in this reality. He still had his powers, but here he used them for robbing banks. Cisco was not too warm to the idea of helping the Trigger Twins, and ordered Jimmy Olsen (Mehcad Brooks) to teach them a lesson.

Without any powers or abilities, Jimmy made short work of the two. Before they were taken out, Barry said he knew Cisco’s brother, which earned them some time with the new crime lord. Cisco expressed interest in taking down Superman and getting to another Earth, so he vibed the Trigger Twins to the Fortress of Solitude, to find Clark and Lois (Elizabeth Tulloch).

In the pipeline, Kara (Benoist) listened as Killer Frost berated Alex for spending too much time at work. Despite the choice words, she chose to stay, though. Shortly after, Kara got caught trying to get out and Alex stopped her — at least until Kara told stories from their past that made her second-guess herself. Kara told Alex that her Earth’s version didn’t just serve, but also led. Kara’s speech rattled Alex, and it convinced her to let her out of the pipeline to help stop the false Superman.

Before the Danvers sisters got too far, though, they were stopped by Deegan and Killer Frost. Barry, Oliver, and the real Man of Steel got vibed in at the perfect time to set up a Superman-on-Superman brawl. While the two grappled -– in one of the most impressive fights featured in any ”Arrowverse” show -– Oliver squared off with Diggle, and Killer Frost fought Barry, while Kara, and Alex went looking for the hidden Book of Destiny.

Like most things in Star Labs, the book was hidden in the Time Vault. Kara raced off to get the book to her cousin, who knew how to use it. Thanks to the Man of Steel, everything got put back to normal, and everyone got suited back up in their own gear. Barry and Oliver raced off to help Clark and Kara, but Deegan got the jump on Barry. Oliver was ready to kill Deegan with a Kryptonite arrow, but Barry stopped him — saying maybe the Monitor’s test was about not giving in to anger. While all that was happening, Superman lost control of the book and Deegan was able to zoom off with it.

The team regrouped at Star Labs, where reality was getting constantly rewritten. Barry’s idea was to have himself and Kara fly around Earth in opposite directions to slow down time. Clark told them he saw them both dying because of the plan -– much like both characters do in the “Crisis on Infinite Earths” comic — but they went anyway.

Meanwhile, Oliver had his own plan. He returned to where he and Barry talked with the Monitor and eventually got his audience: Oliver told the Monitor he knew what happened to Barry and Kara, and that he thought they were being testing to see if they’re good enough. Oliver said he was not who the Monitor needs —- that he’s full of darkness —- but Barry and Kara represented the best of them. If the Monitor wanted their help to stop whatever crisis was coming, the Monitor needed to change their destinies. He agreed…for a price.

While Kara and Barry continued their plan and Oliver spoke with the Monitor, Superman went off to face Deegan. Before Deegan could unwrite him, Lois, Brainy (Jesse Rath) and Martian Manhunter (David Harewood) showed up to help. Lois knocked the book from Deegan, but the black-suited Superman knocked away the Daily Planet reporter in retaliation, and Superman raced to catch her before she fell back to Earth. In this moment time finally began to slow, thanks to Barry and Kara’s efforts.

Oliver showed up with a special arrow to shoot and destroy the book, Superman caught Lois, and Kara and Barry didn’t burn up slowing time. All seemed well in the “Arrowverse” once more.

Team Supergirl returned home, and Kara went back to Kent Farm with her cousin. She got a staple Superman pep talk before finally being told what he wanted to share when she first showed up at the beginning of this crossover event: Lois is pregnant, and they’re going to Argo City. Clark said he’s hanging up his cape for a bit, knowing his cousin can handle things. The Man of Steel even took the time to propose to Lois before they left.

Back on Earth-1, Barry and Oliver drank away the crossover and talked about each other’s powers. Barry wanted to know how Oliver got the Monitor to change his and Kara’s destiny. Oliver said he changed his own destiny. The two toasted to appreciating what they had “for however long you might have it.” Before the two headed out, Oliver got a call from Batwoman (Ruby Rose), who asked if Deegan and his new friend were going to cause her a headache in Arkham.

It was then revealed that Deegan’s new friend is the Psycho Pirate (Bob Frazer). He had some interesting things to say, too: “The stage is set, worlds will live, worlds will die, and the universe will never be the same.”

When this year’s crossover was announced, many speculated that it could lead into a larger story. One of DC’s biggest stories. The finale didn’t force people to speculate about what could be next year’s crossover: Instead. it seemed to promise that, come winter 2019, the “Arrowverse” will face a “Crisis on Infinite Earths.”