The 21-year-old rapper - real name DeAndre Cortez Way - was stopped by police officers in Temple at 3.15am local time.
Way was riding in an Escalade with four other men, who were originally stopped for a driving violation, according to TMZ.
Police reportedly found a "substantial amount" of marijuana and money in the car, along with several guns. The rapper was then taken to Carroll County Jail.
All five men were charged with possession of marijuana, possession with intent to distribute, and possession of a firearm.
Soulja Boy recently denied claims that he purchased a $55 million private jet.
> Soulja Boy army insult track won't appear on new album
Watch the video for Soulja Boy's 'Crank That' below: