Moving to present-day New York, Michal (Alyson Gorske) is now in college and trying to avoid the onslaught of headlines announcing David’s impending lethal injection. Her small group of friends is comprised of Danny (Kio Cyr), muscle-bound jock Glenn (Cameron Wong), and bookish Jo (Anna Telfer). Michal’s roommate, Charlie (Angel Prater), has been video documenting her sleepwalking and other moments when she cuts herself and marks three distinct short lines on the walls. But everyone’s world is turned upside down when one of their friends seemingly throws themselves off the roof. A ruffle comes in that it could have been Michal responsible for the death. Is there something to her father’s claims of not being in control all those years ago?

The various gruesome deaths push Michal to the brink of accepting what is happening and fighting against the entity’s gathering strength. These are bloody deaths that are twisted fun to witness. One involves a loaded bar falling on a jaw during a bench press session similar to Nightmare on Elm Street 4: The Dream Master. The CGI is iffy, but the practical elements are solid. A compelling music track coupled with crisp direction keeps the action moving toward a solid drive toward a final reckoning with the evil. The Puppetman makes fun use of the ideas in past genre films, waging a battle over the paranoid behavior of Michal and the media manipulation of her father’s crime. The war within Michal is the central story as her world crumbles around her. Even the police Detective Al Rosen (Michael Pare) and the confused spiritualist Ruby (Caryn Richman) only make the trouble worse by unlocking secrets. It is all engaging, even if the presentation is uneven from time to time.