Fact1: Jess While hears doorbell ring preparing to take Tommy on boat trip with friend, Fact2: Greg pick up distress signal while radioing coast guard, Fact3: Heather is swept out into water boat, Fact4: burlap-masked shooter chases Jess to outside deck, Fact5: Victor catches up to her to impale head on wall hook
Output: While preparing to take her autistic son Tommy on a boat trip with her friend Greg, Jess hears the doorbell ring, but no one is there. She later arrives at a harbor in Florida without Tommy, explaining hes at school, and boards Gregs boat. She meets Gregs married friends Sally and Downey, Sallys friend Heather, and Victor, a runaway teen living with Greg. While out at sea, the wind dies and a storm approaches, and they pick up a distress signal while radioing the coast guard. The storm capsizes the boat, during which Heather is swept out into the water, and the others climb onto the overturned boat when the storm clears. They board an ocean liner as it passes; it appears to be deserted, yet there is fresh food in a dining room. Jess experiences a growing sense of deja vu as they explore. They find Jesss keys in a corridor near a display case for Aeolus, the ships namesake, leading Sally to believe Heather has also boarded. Jess soon spots someone watching them and Victor gives chase. She and Greg continue on and find Go To Theater written in blood on a mirror. After they part, she returns to the dining room, where the food is now rotting. Victor enters, covered in blood, and tries to kill Jess; she fights him off by aggravating a wound at the back of his head. She hears gunfire and follows it to a theater, where Greg lies dead of a gunshot. Sally and Downey tell Jess that Greg told them she shot him. They accuse her of the sending them to the theater. A burlapmasked shooter kills them from a balcony and chases Jess to an outside deck; she fights back and disarms the shooter, who tells her You have to kill them; its the only way to get home before falling overboard. She soon hears yelling, and sees herself and the others alive on Gregs upturned boat. After they board, Jess becomes the earlier unseen figure: she drops her keys near the display case and is spotted shortly after. She attempts to warn Victor when he catches up to her, only to accidentally impale his head on a wall hook. She flees deeper into the ship and finds dozens of duplicates of the shooters outfit, shotgun, her own locket, and a note saying to kill them all when they board. She takes a shotgun, intending to change the pattern, but the shooter, another Jess, kills the men and mortally wounds Sally with a knife. The first Jess chases Sally, who sends the distress signal heard on Gregs boat. Jess catches up to her on an upper deck filled with dozens of Sally corpses, and Sally succumbs to her wound as, below them, the newest Jess kills the shooter Jess. The overturned boat returns again, and Jess realizes the loop restarts once everyone is killed. Desperate to stop and ultimately prevent the loop, Jess sets everything from the first loop into motion, with herself as the shooter. After she is disarmed during the fight on the front deck, she urges her counterpart to kill everyone when they return, and falls overboard. She awakens washed ashore and discovers that its the same morning. She returns home and watches from outside her house as her double abuses Tommy out of anger toward his autism. Promising to change, she distracts her counterpart with the doorbell, then kills her, puts the bagged body in the car trunk, and leaves with Tommy. A seagull hits their windshield and dies, but when she picks it up and disposes of it, she sees a pile of dead seagulls. Realizing shes still trapped in the loop, Jess hurriedly drives away, but she crashes into a truck and Tommy is killed and the earlier double who Jess killed is seen dead at the scene. In the aftermath, the real Jess stands watching the accident scene. A taxi driver approaches her and she accepts a ride to the harbor. After promising to return, she joins the others on Gregs boat, starting the loop again.