Blackrock is an Australian beachside working-class suburb[a] where surfing is popular among youths like Jared (Laurence Breuls). His first serious girlfriend is Rachel (Jessica Napier), who comes from a much wealthier part of the city. One day, Ricko (Simon Lyndon), a surfer popular among the local youths, returns from an eleven-month trip. Jared’s mother Diane (Linda Cropper) attempts to tell Jared that she has been diagnosed with breast cancer, though Jared insists on talking to her later as he is busy arranging a “welcome home” party for Ricko at the local surf club. Rachel’s father, a photographer who takes provocative images of women, forbids her from attending the party, though he allows her older brother Toby (Heath Ledger) to attend.
While driving to the party, Toby sees Tracy (Bojana Novakovic), Cherie (Rebecca Smart) and two other girls, and gives them a ride. Jared flirts with Tracy at the party and subsequently gets into a fight with Toby. Ricko comes to Jared’s defence, though Jared breaks up the fight after Ricko has hit Toby several times. Tracy comes to comfort Toby and Jared leaves the party to head to the beach alone. Jared sees Toby having consensual sex with Tracy on the beach. He then witnesses three of his male friends interrupting the couple and raping Tracy. Tracy calls out for help, though Jared, who is visibly disturbed by what he is witnessing, does not intervene. Toby and the other three boys, who never noticed Jared was watching, flee the area. Jared also runs away, leaving Tracy alone and distressed. Later that night Rachel, who has snuck out of home to attend the party, finds Tracy’s beaten corpse on the beach.
Jared initially tells the police nothing of what he saw. He is torn between the need to tell the truth and the desire to protect his friends; his anger leads to the breakdown of his relationships with both Rachel and Diane. Despite Jared’s silence, police arrest Toby and the three other boys within a few days. Jared decides to tell the police what he saw, as he believes Toby and the other boys will be charged with Tracy’s murder; however, on his way into the police station he is confronted by Ricko. Ricko confesses to Jared that he killed Tracy, but claims it was an accident – that she hit her head on a rock when he attempted to have sex with her. He has already told police that he was with Jared all night and asks Jared to confirm his alibi in the name of mateship. Diane, who still has not been able to tell Jared that she has cancer due to his behaviour, goes in to have surgery.
Jared tells the police that he was with Ricko; when he tries to suggest Tracy’s death may have been an accident, the police show him the photos of Tracy’s battered body. Jared aggressively confronts Ricko at the beach and Ricko confesses that Tracy’s death was not an accident. He had found her walking on the beach after the rape and she asked him to take her home. He agreed, but wanted to have sex with her first. She tried to fight him off and bit him in the process, which enraged him enough to beat her to death.
As Ricko finishes his confession, the police arrive and he realises that Jared has turned him in. He attempts to escape but the police give chase and corner him on a cliff. Rather than go to jail, and ignoring Jared’s screams of protest, he jumps to his death. In the weeks that follow, Jared’s life collapses. Despite learning of Diane’s illness, he moves out of her house, choosing instead to be homeless. Jared returns home one day to collect his belongings; after arguing with Diane, he confesses that he witnessed Tracy’s rape and could have saved her life if he had intervened or helped her afterwards. Later that day, Jared joins Diane and Cherie in cleaning graffiti from Tracy’s grave.