you have to buy it i think. i dont really remember....
If you can't get past the guy with the ragecandy, that means you still have things you need to do first. Make sure you've beat the gym leaders in Olivine City and Cianwood City. After that, fight the red Gyarados in the Lake of Rage, then defeat Team Rocket in Mahogany Town. After you have finished all of that, he will let you pass.
You must buy the ragecandy bar to get past but i did not i dont know how
Defeat team rocket
you have to beat team rocket in mahogany town.
you need to go and stop team rocket at the radio tower
so you can get past the guy in mahogany town
you have to defeat the other seven gyms to pass to the next city next to mahogany.
To get past you need to have: Beat Team Rocket in Mahogany (Lance found at the Lake of Rage will tell you where the entrance is) Beat Team Rocket in Goldenrod Beat the gym leader of Mahogany, Pyrce.
There IS no Radio Tower in Mahogany town
first catch the red gyardos in the lake of rage by swimming up to it directly and then beat team rocket
you give it to your Pokemon
you have to have beat the other 6 gyms. mahogany is the 7th.