In 1993, Harold enters his basement and takes polaroid pictures of the many creepy things he keeps there. He also says hi to his worms and adds new content to his very disturbing scrapbook. In the evening, someone rings the bell but when he opens the door there’s nobody there.
As Harold enters the house, the door closes behind him and lamps and books begin to fall. Suddenly the power goes out and Harold lights a candle to rush to the basement while the cuckoo clock goes off. As soon as he closes the door, something on the other side starts shaking it.
Harold asks to be left alone but when he steps back, he trips and falls down the stairs. The candle falls too and the flames begin spreading through the basement until they explode. In 2023, Allison shows her boyfriend Isaiah and her friend James that someone altered the video invitation she made for her upcoming Halloween party.
Meanwhile Nathan arrives at Harold’s old house, which is being renovated. After startling Isaiah’s father and builder Ben, Nathan explains he’s inherited the house. When he says he wants to check out the basement, Ben informs him that the door is stuck.
Nathan tries to pry the door open but ends up injuring his hand instead. While Ben takes him to another room to get stitches, Nathan’s blood moves like a worm and enters the keyhole, finally opening the basement door. The next day during an important test, the principal's daughter Margot carefully leans away from her desk to let Isaiah copy the answers.
After class, Allison tells them that her harasser sent the video invitation to her parents, who made her delete it to cancel the party. However Isaiah thinks they just need a new venue. That night, Isaiah, James, and Allison go to Harold’s house.
Since Ben always uses the same code at work, Isaiah can open the lock and they easily get inside. The friends try on their costumes and some lights, only for the power to go out. At that moment the basement door opens and the group is startled by a voice but it’s only Margot at the front door.
After explaining he invited her, Isaiah goes to the basement to look for the fuse box. As he looks around he’s startled by a face, but it turns out to be just a mask. When Isaiah picks up Harold’s camera, the basement door slams closed.
The other teens panic but can’t open it. Suddenly the door opens again and pushes James, causing him to hit his head against the cuckoo clock. The door closes again and the trio worries about the weird noises, gasping when something comes out.
It’s just Isaiah, who takes a picture with the old camera. At that moment the power comes back, however Isaiah admits he never found the fuse box. Moments later the party is in full swing.
Lucas shows Margot some strange worms he found around and eats one. Allison is angry that Isaiah invited Margot and storms off. At that moment Nathan finally shows up and kicks them all out, threatening to call the cops if they don’t leave.
All the teens run away and some of them take a shortcut through the forest. Isaiah can’t find Allison and tries calling her but he’s sent to voicemail. In the woods, Allison is lost and asks a stranger in the shadows for directions, but there’s no answer.
Allison walks in the opposite direction only to find the stranger again, who starts chasing her. Near the house, Isaiah hears Allison scream and goes looking for her. In the forest Allison bumps against the figure, who turns out to be Harold.
His body suddenly starts burning down and Allison steps back, only to trip and roll down the hill. At that moment Isaiah finds her and helps her go home, but he doesn't see Harold. The next day at school Nathan enters the cafeteria to return Isaiah’s bag and announces he’s the new English teacher.
Isaiah gets nervous but Nathan tells him they can start over and forget about the party. Afterward Isaiah finds two pictures in his bag: one of scared Allison, and one of scared Margot. Meanwhile Margot is using the vending machine when she sees Harold in the hallway.
The machine changes the snack choice and Margot eats it without checking while all the students leave their classrooms, causing her to lose sight of Harold. Suddenly Margot starts having an allergic reaction and Isaiah arrives just in time to take an Epipen from her bag and inject her to save her. After the nurse arrives, Isaiah looks at the picture again and realizes it matches Margot.
A terrified Isaiah runs to show the pictures to James, telling him that the camera is haunted. James doesn’t believe it and takes a picture of his friend to prove it’s harmless, but leaves without looking at it. When Isaiah looks at the picture, he sees himself in his uniform with a wound on his arm.
Later Isaiah tries showing the picture to Margot, but the image disappears. He’s convinced Margot and Allison were attacked by the curse and he’s next. Margot is tired of Isaiah always talking about himself and leaves.
A furious Isaiah goes home and smashes the camera before lighting it on fire. In the evening Isaiah’s team is having a wonderful match. However during half-time Isaiah opens his locker and finds the camera.
Getting scared, he asks his teammates to protect him. When the match continues, Isaiah hesitates to play and is shocked to see a player transforming into Harold. When he asks the referee for time, he discovers the man has also become Harold.
The field catches on fire but nobody seems to notice except for Isaiah and Lucas’ mother Nora. The hallucination makes Isaiah think the ball is melting in his hands while the crowd is confused to watch him stand there doing nothing. Soon Isaiah thinks all the players have become monsters and are chasing him, so he finally starts to run.
Nora screams they should stop the game but she’s ignored. During the chase Isaiah falls to the ground and thinks the monsters are going to eat him, but the hallucination finally ends and he sees it’s just his family and friends. His arm is broken so they take him to the hospital, where he learns recovery will take from around eight months.
This means he’ll miss the scholarship window. At that moment Nora shows up and tells Ben she saw Harold. She thinks he’s come back to make them pay for what they did to him by attacking their children.
When Isaiah is released, Margot visits him to apologize for the other day. She asks him what he saw on the field but Isaiah tells her to stay out of this. At Harold’s house, the fireplace goes off and Nathan hears a door opening.
Harold appears nearby and becomes smoke to enter Nathan’s mouth, possessing him. Going back to the day of the party, Isabella spends her morning using a troll account to insult her classmates online. When she goes to school, she tries talking to a few people but even teachers ignore her.
Lucas bumps into her while skating downstairs, saying he didn’t even notice her. Tired of being treated like this Isabella uses her troll account to insult people online again. Allison also crashes against her and doesn’t apologize, so when Isabella overhears her talking about a party, she sends the invitation to Allison’s parents.
Later at home Isabella sees a post on social media announcing the party has been moved and her brother Alan convinces her to go. During the party, she hears someone calling her from the basement. She goes downstairs and finds the mask, which tells her she deserves to be seen so she should put it on.
Isabella does so and returns to the party feeling more confident. Everyone turns around to look at her and she even dares to get close to Isaiah. After the party Isabella goes home and panics when she can’t take off the mask.
Luckily she manages to do it after some pulling but doesn’t notice that the mask changed its expression. The Monday after the big game, Isabella is getting ready for school and the mask tells her to take it. Nathan finally wakes up after being asleep the whole weekend and blames it on the alcohol, he also has trouble walking.
When he realizes it’s Monday, he rushes to the school. In the corridors he keeps crashing and falling because Harold wants control of his limbs. He tries hiding in the bathroom and sees Harold in the mirror asking him to find someone.
Then Harold takes control of the body. Meanwhile Isaiah asks Isabella for her recording of the match. While Isaiah watches the game for clues, Isabella hears a commotion outside and rushes to find Lucas climbing the bleachers.
He ignores her warnings as he jumps to hold on to her drone and ends up crashing on the ground. Afterward Principal Colin makes Lucas apologize to Isabella and the mask tells her he’s a liar. Lucas offers to give them five bucks a week until the drone’s paid for but the mask convinces Isabella not to accept the offer.
She points out the drone is expensive and he’ll never make that much money before getting aggressive and throwing some insults. When Colin tries to calm things down, Isabella tells him off too. At that moment she snaps out of it and apologizes for her attitude.
She accepts the five bucks a week and storms off. Since Isaiah doesn’t find anything weird in the video, he goes to the changing room to find the camera but it isn’t there. Suddenly he’s startled by Nathan blowing a whistle and claiming he’s practicing to be a referee.
He asks Isaiah a bunch of questions about Ben while acting very strangely. At the café Nora can’t stop thinking about the incident during the big game. Nathan comes in and while making his order Nora learns he’s living in Harold’s house.
When Nora turns around, Nathan disappears from behind the counter and reappears next to her, claiming he’s just grabbing his food. That night Nora tries talking to Isaiah but Ben interrupts them and sends Isaiah to his room. Nora tells Ben that Harold’s ghost broke Isaiah’s arm but Ben doesn’t believe her and sends her away.
At that moment Margot walks by so Nora gives her a picture of Harold and asks her to check if Isaiah recognizes him. Minutes later Margot shows the photo to Isaiah, who recognizes the boy from the field and finally tells his friend what he saw. Margot explains she did some research and confirms that’s Harold, the boy that died in the house fire.
This means Nora knows something. Meanwhile Isabella’s grounded for taking her father’s drone without permission. Alan shows Isabella that Lucas has uploaded a video of his drone trick and the mask keeps offering his help in whispers only she can hear.
Outside the café, Lucas is practicing his skating tricks and falls. Isabella shows up wearing the mask to throw the skateboard at him, making him fall again. Lucas grabs the skateboard to defend himself but Isabella breaks it and starts beating him with the resulting parts.
Then she throws Lucas against some trash cans before the mask takes over her head to become a full goblin. Suddenly the creature is hit by Isaiah and Margot, so it runs away. In the middle of the night Alan hears some noises and goes downstairs to find the goblin trashing the kitchen.
He grabs the phone to call his sister for help, only to hear the phone ringing in the goblin’s pocket. When he says Isabella’s name, the goblin hears him and starts chasing him, so Alan hides in the playhouse outside. The goblin searches the area to no avail and Alan thinks he’s safe, but then the creature breaks the window to try to grab him.
Alan keeps begging his sister for mercy and using her name, allowing her to fight against the goblin magic and finally remove the mask. The siblings share a hug and go to the river to throw the mask into the water. After they’re gone, Nathan shows up to look at the same spot.
The next day Ben gathers the other parents so they can have a talk with Nora, who insists Harold is back and he’s coming after their kids. However nobody believes her. Meanwhile Isabella plays pool with James and accidentally hits him with a ball, causing him to explode like a slime.
The story then shows the night of the party again. After hitting his head against the cuckoo clock, James keeps feeling pain, but he refuses to go to the hospital. During the party he tries flirting with Sam but it doesn’t go well, so he decides to leave.
When he crosses the door, he walks through an invisible field that sends him back to the moment he hits his head. He can predict what his friends are about to say and concludes he’s in a time loop, but the others don’t believe him. James tries leaving the house through every door and every window, but he’s always sent back to the same moment.
Eventually he gives up and sits to accept his fate. He’s approached by Sam, who offers some comforting words. This time James asks him about his favorite soccer team and searches for information online before time restarts.
During the next loop, James impresses Sam with his soccer knowledge and they end up kissing. Sam invites him to go somewhere more private but before leaving, James stops the cuckoo clock. On his way out, he’s happy to notice there’s no force field and time keeps passing normally.
The next morning James is grabbing breakfast when he’s suddenly surrounded by dozens of copies of himself. It turns out that every time he used the portal, a clone was born. When James tries to run away, the copies cover his head with a bag and drag him to the old mine.
At school, a clone tells Allison that there may be something between Isaiah and Margot. Then he misses a date with Sam, which triggers a fight. Later during the pool match Isabella screams at the goo explosion and all the adults rush in to check on them.
Isabella tells them James exploded, but another clone has appeared on the same spot and pretends the goo was a prank. A terrified Isabella says this isn’t James and gets ready to defend herself but her mother takes her away. That night Isabella sees a clone in her garden asking her to keep the secret.
The next day after class Isaiah and Margot call James out for not returning their texts. They try to tell him about the goblin and the camera but clone James pretends he doesn’t believe them and says Isaiah invented the camera story to cover he’s bad at football. Suddenly this James explodes like slime because Isabella hits him with a bat.
Afterward the three teens share their stories and Isabella even confesses she was the goblin. Since both the camera and the mask came from Harold’s house, they think that what’s happening to James is connected to that place too. Meanwhile the real James wakes up in a dark pit and finds some abandoned tools.
He moves some pieces of wood to create a ladder but when he tries to climb it, it crumbles and he falls. At Harold’s house, Nathan is tidying up while dancing to some music. It’s revealed he’s retrieved the mask and that he eats worms for breakfast.
When the CD starts skipping, he destroys the music player with a stick. At that moment Colin rings the bell because he’s heard some ruckus, but Nathan swears he’s fine and invites him in. They discuss the kids that broke in to throw that party and Nathan uses the chance to ask more questions about their parents.
Isabella, Margot, and Isaiah wait outside James’ house until a clone comes out and they follow him to the mine. They also follow him into the tunnel only for the clone to turn around and announce it’s a trap. A mine cart starts chasing after them so the trio runs to the entrance, where a bunch of clones are waiting.
Another James appears behind them claiming to be the real one to guide them into another room, where one more James shows up to tell them their guide is also a clone. The boys argue over who is the real one and Isaiah decides to hit the guide with a piece of wood, which kills the slime. However the other James admits he isn’t real either before more clones show up.
The trio tries to run away but Isaiah is captured with a bag and thrown into the pit. James is happy to see him until Isaiah hits him in the head with a rock to confirm he’s the real one. An argument ensues because James can’t believe Isaiah can’t tell his real friend from a copy.
The fight is interrupted when the girls arrive through another tunnel. Now the friends can escape together, but as they run out a door closes and splits the group again. Six clones immediately surround them so Isaiah and James work together like the old times and fight the copies, making them explode one by one.
Afterward the four friends go to the café to feed James. Margot calls her mother Sarah to ask if she knows anything about Harold. Sarah tells her not to talk to anyone about that and hangs up.
Meanwhile Nathan is in the basement crossing off pictures on the old notebook. At that moment another clone brings him a mysterious suitcase, but when Nathan opens it he sees it’s empty. A furious Nathan then destroys the James copy.
The next morning Nora wakes up next to Colin and admits she feels guilty for getting naughty with a married man. In the meantime Lucas wants to make a special trick with a bike to honor his father’s memory, but in the end he doesn’t dare to. When he returns home, he leaves the bike in the garage and finds a weird toy eye.
On his way out he sees Colin dropping Nora off and kissing her, so he records them. At school Colin calls Nathan to his office because he’s taken too many sick days off. Nathan tells him a friend of his has been missing for a while and blames his behavior on his bad mental state.
On his way back to the classroom, Nathan notices Lucas using the toy eyeball as a keychain and tries to grab it, but Lucas dodges him and rushes to class. The reflection of the vending machine shows Harold controlling Nathan. After school Lucas invites Margot to his house and shows her the video of their parents kissing.
Margot gets really upset so Lucas shows her all the worms he’s brought from Harold’s house. When he tries to eat one, the worm enters his nose and he almost chokes, but he makes an effort until he swallows it anyway. That night the worms escape from the tank and enter Lucas’ body through every available hole.
The next morning Lucas grabs his daily breakfast burrito but today he can’t stand the taste. Instead he ends up eating trash from the café’s bins. At school, Lucas is accidentally pushed down the stairs by three boys.
However he quickly recovers without any pain or wounds at all. Afterward he punches his locker and even gets his fingers smashed, but he still doesn’t feel any pain as his broken bones heal themselves. This is noticed by Nathan watching him from behind a door.
Meanwhile Allison refuses to talk about what happened in the forest and argues with Isaiah over Margot again. She refuses to listen and goes to talk to Colin instead. On his way back Isaiah sees Lucas pushing his bike through the halls.
The group discusses Lucas’ weird behavior and Margot remembers the worms, which could be considered another weird item from Harold’s house. Their conversation is interrupted when Colin calls Margot to his office. It turns out Allison told him about Isaiah using his daughter to cheat so now he tries to scold her.
Margot says she learned it from her father and reveals she knows about his affair. At that moment they hear a noise and look out the window to discover Lucas on the roof of the school with his bike. He makes a big jump and lands on top of Colin’s car, wrecking it.
When Colin tries to scold him, Lucas asks him to stop seeing his mom. When Lucas tries to leave, Margot follows him and notices he has a dislocated shoulder, however Lucas just pops it back. Now Margot can see the worms living under his skin.
Before leaving he mentions something about the “Booms of Doom”. Afterward Margot goes to Nora and tells her everything. Nora recognizes “Booms of Doom” as the place where her husband died doing a bike trick.
They rush to the mountains and stop Lucas before he does the jump. When he says he wants to finish the trick his father couldn’t complete, Nora reveals her husband did this dangerous jump knowing he wouldn’t make it, which she knows because she found his note. She never told Lucas because she didn’t write to ruin the image he had of his father.
All these overwhelming feelings cause Lucas to get off the bike and throw up every single worm. While mother and son hug, the worms pile up to create a big monster. Lucas sends the women to the car before jumping on his bike to make the worms chase after him.
He rides through the forest and soon reaches the road, where the women are speeding up in the car to dodge an attack as the worms jump out of the water. Eventually the group reaches the sawmill and locks the door, but the worms are sneaking in through the cracks. Lucas tells Margot and Nora to start the chipper while he gets on the bike again to buy time.
As the worms chase after Lucas, the women turn on the chipper but it stops working after a machinery piece fails. Nora runs downstairs to fix it only to be knocked down by the monster. Margot runs to reach the chipper and turns it on just in time.
The monster hits Lucas, who jumps off his bike before it lands into the chipper. The worms are caught by the blades too and they try to bring Lucas down with them, but they aren’t strong enough and the machine kills them. Afterward the teens run away before the police arrive.
Nora is tired of lying and tells them what truly happened, so she’s sent to a mental hospital. They keep her fully medicated and she starts seeing Harold around the facility, saying he wants “him” back. Later Nathan visits the sawmill and picks up the toy eyeball that Lucas accidentally dropped.
Nathan also goes to the mental hospital just to watch Nora go crazier by the second. While Nora is in the hospital, Lucas stays at Margot’s house. One night Sarah comes back as a surprise, shocking everyone.
She had been living in the city for work but she’s ready to live with her family again. Needing to clear her head, Margot goes for a walk with Lucas and they end up kissing. Meanwhile Isaiah tells James that he broke up with Allison.
At the same time, Nathan is still controlled by Harold and decides it’s time to reveal the truth, so he grabs the old scrapbook. That afternoon Sarah visits Nora at the hospital and hears about Harold looking for “him”. After the visit is over, Sarah is surprised to bump into Colin, who takes her home to have a serious talk.
He confesses the affair so it’s finally time for them to break up. A crying Sarah takes a moment to have a breakdown in the car before visiting Nora again to tell her she’s not crazy, they’re just giving her medicine to make her think so. She advises Nora to stop taking that medicine and swears she believes her.
After Sarah leaves a nurse brings Nora her medication, so Nora only pretends to swallow it. At school Nathan gives Margot the scrapbook, saying he randomly found it in the basement and her mother may be interested in it. As Margot looks at its contents, she finds old pictures of parents during their school days and has a vision of Harold taking photos of a young Ben and Sarah.
After she snaps out of it, she notices a page that says “in the darkroom” and rushes there. She has another vision showing her that Harold and Sarah used to be friends. Margot gathers her friends at the school stage to show them the scrapbook and the visions.
They start to argue about whether it’s too dangerous to use it since all the items they got from Harold’s house so far have equaled trouble. Lucas thinks it should be Margot’s decision, so she opens the scrapbook to have another vision. Young Harold is telling Sarah that he’s scared because someone’s trying to hurt him but he can’t explain how.
When Sarah tries to leave, Harold grabs her hand and tries to force her to stay, which terrifies her into running away. Suddenly the Harold in the vision looks at Margot and says she can’t leave either. The book’s pages move on their own and Margot’s friends freak out when they notice her eyes changing.
Since Margot won’t react to their words, Isabella slaps her but it doesn’t work either. They notice the book now shows Harold’s house and conclude Margot needs the right location to leave the vision. The group pushes her through the corridors to get to the car.
In the vision, a burnt Harold drags Margot to his house to watch the night of the fire. Ben, Sarah, and the other parents appear outside the basement after Harold locks himself up. Suddenly Margot takes Harold’s place on the stairs, so she falls and causes the fire.
The smoke is starting to get her but at that moment her friends show up in the vision to save her. They all run outside and watch their parents coming out of the house with a mysterious suitcase. Before they can go back to save Harold, the explosion happens.
The parents wonder if they should call the police but they agree they would blamed for this so they leave with the case. The teens then return to reality and wonder if their parents are killers. Nathan interrupts them to invite them in, promising to tell them everything.
When the group goes inside, they notice Nathan has the suitcase so he begins telling the story. In 1925 in New York City, Nathan’s grandfather Ephraim is failing to impress the audience with his magic tricks. He decides to buy something new and hears a voice at the store telling him to get an old suitcase.
When he gets home, he shows his wife the contents of the suitcase: it’s a puppet named Slappy. Inside the toy’s clothes he finds a card with six weird words that he reads aloud. After Ephraim turns around, Slappy moves on his own.
The first time Ephraim acts with Slappy, the audience hates it at first. However Slappy starts talking with his own voice and insults Ephraim, which makes everyone laugh. The act becomes a success and soon there are big crowds in theatres to watch it.
Ephraim’s wife says he doesn’t spend time with his family anymore, but Ephraim says he chooses Slappy. Thirty-five years later their shows aren’t successful anymore. The theatre owner recommends booking a clown as an opening act, but Ephraim refuses.
After the man leaves, Slappy orders Ephraim to deal with him. When the owner comes back, Slappy tells Ephraim to use the spell. Ephraim repeats the words from the card and kills the man by transforming him into a puppet.
Sometime later Ephraim pays two men to steal a coffin that says “Kanduu” from a mausoleum. He finds a card inside and reads it, which shows him a vision of a building burning down. Ephraim realizes Slappy has been using him to commit crimes, so he locks him up inside the case.
Two weeks later Ephraim moves to the house and hides the suitcase in a hole in a wall. In 1993 Ephraim dies, so his granddaughter moves in with her husband and her son Harold, who can hear a voice through the basement wall. On Harold’s first day of school, his dad gifts him a camera.
At school he joins the photography club and meets members Nora and Sarah. Every day he works with them, his crush on Sarah works. One day, Harold is invited to a party by Sarah at Ben’s place.
Harold is excited about it but in the end he is too shy to go. A frustrated Harold throws an object at the wall and accidentally breaks an old brick, allowing him to find the suitcase. He also finds the card in the puppet’s clothes and reads them before leaving, unaware of the puppet’s eyes moving.
At school Harold tries to join the drama club with his Slappy act. It doesn’t go well at first, but when Slappy starts talking and insulting, everyone loves it. One afternoon Nora finds Slappy telling Harold that he can’t trust Sarah.
She storms out to find Sarah and tell her what she saw. The next morning Harold’s parents say they heard him talking to his doll all night and want him to leave it at home. Harold snaps and yells at them so his father takes the suitcase from him before sending him to school.
Then the couple throws Slappy into the fire, but the puppet won’t burn. Harold catches them red-handed and freaks out, so they have to hold him down. Slappy tells him to use the spell thus Harold repeats the mysterious words, transforming his parents into puppets.
During the school talent show, Harold and Slappy try their new act. Slappy starts insulting his friends using all their secrets, so the teacher has to get them off the stage. The friends confront him after the show but Harold just tells them they don’t understand the plan that is in motion.
After Harold leaves, Nora points out it’s the puppet’s fault and they agree to steal it. On the night of the fire, the group creates all the distractions that make Harold think something weird is happening. Ben steals Slappy and the puppet insults him as the power goes out.
The group tries to get Harold out of the basement but the door is stuck and the smoke is starting to come out, so they have to leave the house. Outside Slappy forces the suitcase open and tells them it’s not over. Ben immediately breaks it into pieces and locks him in the suitcase again.
Nora can sense the puppet won’t burn so they agree to bury him and never talk about this again. In the present the teens ask Nathan how he knows all this and his body changes to reveal he’s Harold possessing Nathan. Suddenly he disappears and the group runs to the door, which is locked.
Isaiah and Lucas force it open only to find an empty abyss on the other side. It turns out the real teens are sitting on the couch with black eyes because they’re trapped in the scrapbook. Nathan is using their phones to text their parents saying they’ll spend the night at a friend’s house.
At the mental hospital Nora goes to see Victoria, who is the boss here and Isabella’s mother. Nora reveals she hasn’t taken the medicine and her mind is clear now, so they can’t keep her locked up any longer without her consent. After Nora leaves Victoria texts someone to tell them about it.
In the elevator Nora finds Nathan and notices Harold’s reflection on the doors. He demands to know where Slappy is, but at that moment the elevator stops on another floor and Nora runs away. Later at home Nora searches the bag where she keeps Slappy.
Colin finds her and wants to hang out but Nora leaves alone in her car, unaware someone is following her. Feeling confused, Colin goes to ask Ben for relationship advice and mentions the bag with the doll, which shocks Ben and causes him to rush out of the house. At Harold’s house the teens try all the doors and windows to no avail.
Suddenly they hear some steps and think it’s a monster, so they get ready to defend themselves. However it’s the real Nathan, who is stuck in the scrapbook as well. At that moment Isabella notices a light coming from under a door.
They take a peek and find the same infinite abyss, but this one has a light in the middle. Using some drapes, they make a rope long enough to send Isabella down to reach the light. She’s surprised to discover the light is their high school in the 90s and follows the sound of creepy laughter to the stage.
The public is all puppets laughing, so a terrified Isabella runs back to the rope. The group starts pulling her out at the same time Harold rips off the school page from the scrapbook, causing the school setting to crumble. As the group keeps on pulling, they accidentally slip and Nathan hits his head against the wall, allowing him to return to his body.
Harold quickly catches on and sends him back to the scrapbook, where the drapes are about to break. Thankfully the teenagers are strong enough to save Isabella just in time. Meanwhile Ben and James’ mother Eliza go to the old mine.
Ben descends into the pit and confirms Slappy is gone. At that moment a James clone appears and drops the rope so Ben can’t climb out. Next the clone goes after Eliza and she notices this isn’t her real son.
When he tries to attack her, Ben appears behind him to stop him, but the clone is stronger and starts choking him. Eliza grabs a piece of wood and hits the fake James on the head, making it explode into slime. In the sketchbook Nathan asks the teens to punch him, which effectively sends him back into his body.
After Harold sends him back, the group comes up with a plan: Nathan must recover his body long enough to write their escape on the scrapbook. Nathan gets punched again and discovers he’s been following Nora, but when he tries to talk to her Harold stops him and sends him back again. During the next try Nathan manages to grab the scrapbook and Harold fights him for control, so they accidentally throw the scrapbook into a puddle.
The house in the book starts melting and the teens are sent to different pages. When they reach the basement, they find Harold’s parents trapped there too. Nathan continues to fight Harold over the body and after lots of struggle, Nathan manages to win.
He draws an exit on the page and the teenagers can finally leave both the scrapbook and the real house. Unfortunately Nathan is sent back to the illusion when Harold regains control. Eventually Nora makes it to a cabin in the mountains and seals Slappy's mouth with tape to shut him up.
When the teens arrive at the mountains too they’re shocked to find Nathan’s car in the middle of the road and footprints on the snow. Lucas, Isaiah, and Margot follow the footprints while James and Isabella stay in the car. Harold makes it to the cabin and sees Nora leaving, so he starts chasing her.
She immediately gets in her car and Harold begins breaking the windows. Nora retaliates by speeding up and turning the car to throw him off. After this trick her car won’t move so she must continue on foot.
Harold wants to follow her and ignores the pain in his injured leg to get moving. The chase continues through the woods and Nora hides behind a tree. When she can’t see or hear Harold anymore she tries to leave, only for Harold to jump on her from his hiding spot.
He tries to grab the bag so Nora kicks him off to run again. By the road, James and Isabella are surprised to see Eliza arrive with Victoria, Ben, and his wife. They agree to work together and join the search.
Minutes later it starts to snow. Nora can hear Lucas calling for her and runs to his side, only to discover it’s Harold imitating her son’s voice. They fight over the bag again and this time Harold wins it while Nora falls down a ravine.
Harold puts back the missing eye and removes the tape so Slappy can be active again. Meanwhile Lucas’ team is having trouble moving since the snow makes it hard to see and they don’t notice Isaiah is missing until it’s too late. He’s fallen off the edge of a cliff and is holding on to some roots.
Lucas and Margot search for him and find an unconscious Nora instead. The bag is empty and Harold and Slappy aren't anywhere to be seen. At the cliff, Isaiah gathers enough strength to start climbing, only to find Slappy and Harold waiting for him.
Harold grabs a rock to kill the teen but Lucas stops him. Nora also comes to remind Harold this isn’t who he really is, but Slappy keeps manipulating him with his own sweet words. As the rest of the parents and teens arrive, Margot calls Harold “Harebear” like his parents did and tells him they’re waiting in the scrapbook world.
Hearing the nickname makes Harold hesitate, so all the adults take the chance to apologize. Slappy tries dismissing them but this time Harold ignores him and rescues Isaiah. Then he throws Slappy into the cliff, which forces Harold’s spirit to finally leave Nathan’s body.
Harold touches Sarah as a final goodbye and his appearance turns normal again. His parents’ ghosts appear nearby and welcome him so they can finally move on. Nathan returns to his body, and the adults are glad it’s finally over.
However Slappy is broken but still alive at the bottom of the cliff. Six months later Nathan decides to write a book about his adventure using fake names. Isaiah’s arm is better so he’s back on training, and Colin and Nora are now engaged.
Lucas is dating Margot, who is worried because Sarah is planning to move back to the city. One day the teens decide to go on a road trip to Seattle. Nathan wants to come along but at that moment he receives a call from New York.
A book agent is interested in his book and it may even become a series, but first he needs to change the ending. Nathan happily takes the deal, but now he’s stuck in his house trying to think of a better ending. After picking up his dinner from a restaurant, Nathan drives home while listening to a podcast about creative writing that mentions having a twist.
At the same time he sees the mountain signs and he remembers all that happened with Slappy, which gives him an idea. Nathan grabs a flashlight and searches the area until he finds the puppet pieces. In the morning Nathan returns home and dumps all the pieces on the floor.
He takes the car from Slappy’s pocket and reads the strange words, but nothing happens. Nathan’s ready to give up when suddenly the pieces start moving to reassemble the puppet. As Slappy brings Nathan's embalmed childhood dog back to life, he promises to give Nathan the best ending.
In Seattle Margot keeps trying to talk to Lucas about their relationship, since she’s considering moving here with her mother. Lucas doesn’t want to come with her since he loves their little hometown, meaning they have no choice but to break up. After Lucas decides to go home alone, Margot tries texting him but he ignores her.
That night Nathan follows his dog to the forest and notices she’s turning demoniac. Then he starts digging to retrieve a coffin that he brings home. Slappy convinces him to open it and take the card hidden inside.
Nathan does so and when he reads the spell, he has a vision of a building burning. Suddenly a dark spirit comes out of the puppet and possesses the rotten body in the coffin. The skeleton begins healing his body to be the great magician Kanduu.
At that moment Ben enters the house and Kanduu transforms him into a puppet before leaving with the dog. In 1879 Lieutenant Rupert is fighting in a war and gets shot by an enemy soldier. Then an explosion sends him flying into a concealed cave.
Rupert notices a trail of gunpowder and lights it up to discover a wall covered with spells. A particular one starts glowing so he reads it aloud and his wound immediately heals. Six years later in New York Ruper has become a famous magician under the name of Kanduu.
People think he uses tricks but he actually uses the real spells from the cave. One day he visits Franz the puppeteer and shows off a spell by making a doll move without touching it. Then Kanduu asks Franz to build something for him in exchange for acting in his carnival.
A year later Franz discovers that Kanduu is transforming his audience into puppets for some ritual. It’s too late to cancel the deal, so he finishes the puppet that would become Slappy. When he brings it to the magician in a suitcase, Franz begins reciting a spell he took from his friend and Kanduu stabs him to stop him.
However it’s too late and the spell takes effect by sealing Kanduu’s soul inside Slappy. In the present Lucas makes it home and is shocked to find his father waiting. He explains he pretended to die because he was with the witness protection program.
Nora comes in to confirm the story and Lucas rushes to reunite with his dad. However this turns out to be Kanduu in disguise, who transforms Lucas into a puppet just like he did with Nora. When the other teens come back, Isaiah enters his home and Ben introduces him to a Washington University scout, who offers him a full football scholarship.
Isaiah reluctantly agrees to sign but senses something is wrong. In the meantime James finds Sam making a grand gesture to invite him to prom. At the same time Margot discovers her parents have made up and want to live together as a family.
When she’s about to hug them, Isaiah bursts in and tells her it’s not real. A closer look reveals Kanduu is her mother and a puppet her father. The duo immediately runs out of the house and are picked up by James and Isabella, who were also almost tricked by puppets.
The group goes to the café to look for Lucas and they see him leaving on his bike. They follow him across town until they make it to the school, where Lucas removes his helmet to confirm he’s a puppet too. When he points at the car, all of the teens’ parents show up to kidnap them.
The entire town is going to the school’s football field, where Kanduu has set up tents and the tall building from the visions. The teens are left in a tent with Nathan, who explains Kanduu is controlling every person in town by fulfilling their greatest wish. Then Kanduu shows up and confirms he was manipulating Harold through Slappy’s body all along.
Using his magic, he shows them the flashback of the war and the cave. Through the years he’s mastered all the spells on the wall except one: the ritual of the spire. The carving on the wall shows a thousand humans being burnt to death in exchange for freeing all the horrors of the world, which is Kanduu’s plan.
On his way out, he orders Nathan’s dog to kill the teens. Feeling guilty, Nathan grabs a quill and repeatedly stabs the dog to kill her. Then he apologizes to the teens, saying he didn’t think Kanduu would take things so far.
Nathan tells them his great-great-grandfather was Franz but he has no idea how the man stopped Kanduu last time. The only option they have is to revive Franz. Minutes later when Kanduu is about to ignite the spire with all the people, he’s shocked to find Franz behind him.
The teens ask Franz to stop Kanduu, but instead Franz announces he finally sees his friend’s vision and grabs the torch to start the fire himself. Kanduu stares at the screaming people but suddenly his face transforms into a puppet. It turns out Nathan has been pretending to be Franz with an illusion by using the spells from the magic book.
As the teens discuss how to proceed, Kanduu returns to normal because that spell doesn’t work on him. Isaiah threatens to burn the spell book however Kanduu has already memorized them all. He simply takes the torch from Isaiah’s hand and begins reciting a spell that summons an earthquake.
Dark energy comes out of the ground to capture them but when Isaiah hits it with the spellbook, he makes it back off. He then frees Margot and gives her the book so she can free the others while he runs to stop Kanduu. While Kanduu and Isaiah fight on the ground, Margot checks the magic list and finds a reversal spell.
She recites it and Kanduu begins transforming back into Rupert, including the bullet wound. The spirits of soldiers come out of the ground to drag him down and a furious Rupert opens fire, intending to kill Margot. Isaiah jumps in the middle and gets shot instead.
The spirits throw Rupert into hell and absorb all the magic from the puppets on the spire, who are now going back to normal. Everyone rushes to Isaiah’s side, desperate to help. Sometime later at the hospital the doctor informs the group that Isaiah won’t make it, so they have a few moments to say goodbye.
Margot goes in first and cries as she shares a few words of affection. When the monitors start to flatline, she pulls out the spellbook and says a few words that bring Isaiah back to life. Meanwhile Nathan goes to the bathroom and is shocked to see Kanduu in the mirror.