Senior Sergeant Anthony Bond, of Dunedin, said officers stopped a vehicle in Bellona St, St Kilda, at 11.45am on Sunday after spotting the 31-year-old driver donning what looked to be a balaclava.
With him was a 35-year-old passenger, who had a warrant out for his arrest.
A knife was seen on the back seat, prompting a search of the car which found more knives, a stab-resistant vest and a Taser, Snr Sgt Bond said.
Police also found an imitation firearm tucked into one of the men's waistbands.
The driver was charged with possessing offensive weapons, unlawfully carrying an imitation firearm disguised for burglary, and unlawfully possessing a restricted weapon.
The passenger was charged with possessing an offensive weapon. Both appeared in the Dunedin District Court on Monday morning.
Meanwhile, another two people were arrested after drugs and an imitation firearm were found in a car during a search in St Clair.
Snr Sgt Bond said officers were patrolling early on Saturday morning and stopped a vehicle in The Esplanade.
The 31-year-old driver had with him a 24-year-old passenger who was wanted by police.
A search of the vehicle found 64g of MDMA (also known as Ecstasy) and 0.5g of methamphetamine. Police also found an imitation firearm, scales, meth utensils, plastic bags, a black face mask, a knife and a police scanner, Snr Sgt Bond said.
The driver was arrested and charged with possession of Ecstasy, while the passenger was arrested and charged with possession for supply of MDMA, possession of an imitation firearm and possession of an offensive weapon.
Both appeared in the district court later on Saturday morning and were remanded until August 22.