Tom Holland doubted he “had it in him” to pull off The Devil All the Time role.

The 24-year-old star is best known for playing Spider-Man in the Marvel movie, so transforming into a sinister character for Antonio Campos’ new psychological thriller was a real stretch.

Tom admits he felt totally out of his comfort zone playing violent protagonist Arvin Russell.

“This is not the type of movie I have typically made,” the actor explained during a digital premiere of the Netflix film, reports Page Six. “I was kind of nervous and scared going on set for the first time because I didn’t know if I had it in me to play this type of character. I had to kind of go to places mentally that I didn’t know I could … or don’t think I ever want to go to again.”

The Devil All the Time, based on the novel of the same name by Donald Ray Pollock, follows a young man devoted to protecting the people he loves in a remote town plagued by brutality and corruption.

While Tom may have had some doubts, director Antonio knew he was the perfect choice to play the character.

“In the hands of a lesser actor, Arvin would have just been an impenetrable, potentially alienating character who did a lot of awful things,” Antonio told Indie Wire. “The key to him was understanding his trauma and communicating the humanity in him.

"Tom was able to take on and carry the trauma Arvin had lived but was still able to communicate the warmth and humanity that made Arvin an accessible character we could actually connect with and root for.”

The Devil All the Time also stars Robert Pattinson, Riley Keough, Haley Bennett, Jason Clarke, Mia Wasikowska, and Sebastian Stan.