Shortly after the Battle of
Starkiller Base, General
Leia Organa and the
Resistance are evacuating their base when the
First Order fleet arrives. Against Leia's orders,
Poe Dameron leads a costly counterattack that destroys a
First Order dreadnought. The remaining Resistance escapes into
hyperspace, but the First Order uses a device to track them and attacks again.
Kylo Ren hesitates to fire on the
lead Resistance ship after sensing his mother Leia's presence on board, but his wingmen destroy the bridge, killing most of the Resistance's leaders. Leia is dragged into
space but survives by using
the Force. While Leia recovers,
Vice-Admiral Holdo assumes command of the Resistance. Running low on fuel, the remaining fleet is pursued by the First Order. On
Ahch-To,
Rey attempts to recruit
Luke Skywalker to the Resistance. Under self-imposed exile, Luke refuses to help, believing that the
Jedi should end. After encouragement from
R2-D2, he agrees to give Rey three lessons in the ways of the Force. During training, Rey and Kylo begin communicating through the Force, which puzzles them both. Kylo tells Rey that Luke feared his power; Luke confesses that he momentarily contemplated killing Kylo upon sensing that
Snoke was corrupting him, which prompted Kylo to destroy Luke's new Jedi Order. Convinced that Kylo can be redeemed, Rey leaves Ahch-To. Luke prepares to burn the Jedi library but hesitates. The
spirit of Luke's master
Yoda appears and destroys the library by summoning a bolt of lightning. He encourages Luke to learn from his failure. Meanwhile, Poe entrusts
Finn, mechanic
Rose, and
BB-8 with a secret mission to disable the First Order's tracking device.
Maz Kanata directs them to the casino town of
Canto Bight, where they meet the hacker
DJ. Pursued by the local security, they escape Canto Bight with the help of stablehand children and racing animals they set free. Finn, Rose, and DJ infiltrate Snoke's flagship but are captured by
Captain Phasma. Kylo brings Rey to Snoke, who claims that he connected their minds to discover Luke's whereabouts. Holdo plans to evacuate the remaining members of the Resistance using small transport vessels. Believing her plan cowardly and futile, Poe leads a mutiny. A recovered Leia stuns Poe with a
blaster and proceeds with the evacuation. Holdo remains aboard the ship as a decoy to mislead Snoke's fleet as the others flee to an abandoned base on
Crait. DJ buys his freedom by revealing the Resistance's plan to
General Hux, and the First Order fleet begins firing on the evacuation transports, destroying many. Ordered to kill Rey, Kylo instead kills Snoke and they work together to defeat his Praetorian Guard. Rey hopes that Kylo has abandoned the dark side, but he instead asks her to rule the galaxy with him. Refusing, she battles him for control of Luke's lightsaber, bisecting the weapon. Holdo sacrifices herself by slicing through
Snoke's flagship at lightspeed, crippling the First Order fleet. Rey escapes the destruction while Kylo declares himself Supreme Leader. BB-8 frees Finn and Rose; they fight and defeat Phasma and join the survivors on Crait. When the First Order arrives, Poe, Finn, and Rose attack with obsolete speeders. Rey and
Chewbacca draw
TIE fighters away in the
Millennium Falcon, while Rose stops Finn from sacrificing himself. The First Order penetrates the Resistance fortress using a siege cannon. Luke appears and confronts the First Order, allowing the surviving Resistance to escape. Kylo orders the First Order's forces to fire on Luke, but they fail to harm him. He then engages Luke in a lightsaber duel; upon striking Luke, Kylo realizes that Luke is not physically present but projecting his image through the Force. Rey helps the remaining Resistance escape on the
Falcon. Exhausted, Luke dies peacefully on Ahch-To, becoming one with the Force. Rey and Leia sense his death, and Leia tells Rey that the Resistance can rise again. At Canto Bight, the stablehands recount the story of Luke Skywalker; afterward, one of them moves a broom with the Force and gazes into space. == Cast ==