I want to put all the HMs on as few pokemon as possible, so I could carry them with me at all times.
I want them to be readily available. (So those requiring special events etc. are out of question - '3 Mews' might work, but I won't be able to get them without cheating.)

1 Answer 1


You can do it with two Pokemon.

Bibarel learns every HM in HeartGold, except Fly. Use him with Tropius, who can learn Fly and three other HMs. The exact setup is this:

Bibarel (catch Bidoof in the Johto Safari Zone, forest area, with at least 10 Waterside objects placed; Bidoof is also very common in Diamond/Pearl/Platinum)

  • Surf
  • Whirlpool
  • Waterfall
  • Rock Climb

Tropius (catch on the Big Forest Pokéwalker route with 6,000 steps, or 4,500 steps if walking with a Fire, Ice or Flying Pokémon; or trade from Diamond/Pearl/Platinum, where it appears in the Great Marsh, areas 1 and 2 during the day)

  • Cut
  • Fly
  • Strength
  • Rock Smash

If Tropius is too difficult to acquire, a more convenient three-Pokemon solution is as follows: Put Surf on your team's water type (e.g. Vaporeon), as it's a good attack. Use Ho-Oh or Aerodactyl as a HM slave with Fly, Strength and Rock Smash. Teach Cut, Waterfall, Whirlpool and Rock Climb to Bibarel, Kabutops, or to multiple more easily-acquired Pokémon, since you never need all four of those HMs on the same route. You can often leave this Pokémon behind to free up a slot on your team, so that most of the time you only need one "HM slave".

In SoulSilver, Lugia makes an excellent HM slave as it can learn all HMs except Cut and Rock Climb. Kabutops is also easier to acquire as the Dome Fossil is found in SoulSilver.

  • What about Flash?
    – mcandre
    Nov 4, 2013 at 2:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .