Let's make this simple: You want to know if there are any post- or mid-credits scenes in Weapons. The answer is no, though the movie does have some visually distinct closing credits.
Full spoilers for the movie follow!
Director Zach Cregger’s follow-up to his terrific 2022 horror film Barbarian, Weapons begins with the attention-getting scenario that nearly an entire third-grade classroom in a small town has vanished, with 17 children silently leaving their homes at 2:17am in the morning. With no explanation and no leads, the town is on edge, and no one is feeling that more than Justine (Julia Garner), who was the kids’ teacher and is now looked upon with suspicion by many, most notably the increasingly spiraling Archer (Josh Brolin), whose son Matthew (Luke Speakman) is one of the missing children.
But there is one other notable aspect to this bizarre event, which is that a single child from Justine’s class, Alex (Cary Christopher), did not go missing, and was the only one to show up to class that fateful morning. Alex has also said he has no idea what happened to his classmates, but Justine begins to follow him and spy on his house – and its oddly newspaper-covered windows – with her own increasing concerns and suspicion.
Weapons Ending Explained: The Kids Are Not Alright
Weapons is formatted with sections focused on several characters, beginning with Justine and Archer, but gradually growing to include many more in the town, giving us a bit of information at a time and often presenting the same events from different points of views. Through these overlapping stories, we eventually learn that the person responsible for the children’s disappearance is Aunt Gladys (Amy Madigan), an unsettling and creepy older relative of Alex’s living in his house. While the specifics of how she came to have her abilities aren’t given, nor how she would label herself, for the purposes of simplicity let’s just say Glady is a witch of some sort.
As we learn in the section focused on Alex himself, Gladys came to town because she is sick, and seemingly needs to feed on the life energy of others in some manner to heal herself, in the process leaving those she enchants standing (or sitting) still in silence, nearly comatose. Such is the case for Alex’s parents, who simply sit in the house all day now, though Gladys has instructed Alex to regularly hand feed them soup in order to keep them alive. Gladys lets it be known that she can control the parents to do what she wants, having them stab themselves in the face with a fork to prove to Alex she could make them kill themselves if she chooses to do so, and forcing the terrified boy to do as she says lest she harm them.
When Gladys decided she needed more people to help save her, she came up with the plan to take the children, and forced Alex to help her, since she needs personal items for her ritual to work. He stole his classmates’ name labels from their classroom cubbies, and then she called the children forth to the house in the middle of the night. Now, these 17 kids all stand silently in the house’s basement, with Alex grimly tasked with feeding them as well.
Yes, the movie accounts for the fact that Alex was heavily questioned, with the police even coming by the house. Gladys took on the role of the kindly aunt helping take care of Alex after his father had a stroke, while the children were sent by her to hide out in the woods until it was safe to return them to the house.
Now, having seen Justine watching the house, Gladys decides to have her killed and uses her abilities to possess Justine’s boss, kindly school principal Marcus (Benedict Wong). She first has him brutally kill his own boyfriend, and then sends him to find and kill Justine by using a lock of Justine’s hair as part of her ritual, with him running down the street in the same freaky, Naruto run-style the kids did when they left their homes. (Why is the movie called Weapons? Well, the storyline contains some notable allegories for the aftermath of school shootings and how it affects a town, underlined when Archer sees a vision of a giant gun floating over Alex’s house. But also, on a direct plot level, Gladys can turn people into human weapons as she pleases.)
Though Archer has been frequently harassing and even stalking Justine, he is eventually convinced of her claims that something else and much stranger is behind the kids’ disappearance. This happens in a notably dramatic manner when he witnesses Marcus run at her and try to kill her with his bare hands, clearly completely out of control and never speaking. Archer intervenes and helps save her, before Marcus is killed by a car when he runs after a fleeing Justine into traffic. In the wake of these added unexplainable events, Archer and Justine join forces, as they realize the path all of the kids ran the night they left their homes heads towards Alex’s house.
Aunt Gladys Learns a Lesson
Realizing too many people are beginning to draw close to her involvement, Gladys tells Alex they are going to leave town the next day. In the meantime, she has added to her collection with two others who had begun to look into what was happening at the house, taking control of drug addict and drifter James (Austin Abrams) and local cop Paul (Alden Ehrenreich), the latter of whom has a romantic history with Justine. Gladys locks herself within her bedroom, posting Alex’s parents as guards, and leaving a line of salt outside the door she orders Alex not to cross.
When Justine and Archer arrive at the house, James and Paul try to kill them thanks to Gladys’ control. This leads to a brutal confrontation that proves just how possessed these people are when Justine, desperate for a weapon of her own as Paul pins her against the kitchen cabinets, grabs a vegetable peeler and – in what might be the film’s most gnarly moment – she begins to skin Paul’s face with it, even as he never flinches. Ultimately, Justine and Archer are forced to kill James and Paul in order to survive, with Justine shooting Paul with his own gun and Archer smashing in James’ head. Archer then discovers the kids in the basement, but his momentary focus on having finally found Matthew is interrupted by Gladys herself, who is able to take control of Archer, sending him back upstairs to grab Justine, as he begins to choke her to death.
