Complete Guide to HM Locations in Pokémon Ruby, Sapphire & Emerald

Hidden Machines (HMs) are special moves that can be used both in battle and to overcome obstacles in the overworld. This guide will help you find all eight HMs available in Pokémon Ruby, Sapphire & Emerald.

HM01 Cut

Location: Rustboro City

How to get: After defeating Roxanne at the Rustboro Gym, head to the Cutter's house (near the Pokémon Center). Talk to the man inside and he'll give you HM01 Cut.

Required Gym Badge: Stone Badge (Rustboro City - Roxanne)

Field Use: Cut down small trees that block your path. Essential for progressing through the main story and accessing many optional areas.

HM02 Fly

Location: Route 119

How to get: On Route 119, you'll encounter your rival. After defeating them in battle, they'll give you HM02 Fly.

Required Gym Badge: Feather Badge (Fortree City - Winona)

Field Use: Instantly fly to any Pokémon Center you've previously visited. An essential HM for quick travel across the Hoenn region.

HM03 Surf

Location: Petalburg City

How to get: After defeating your father Norman at the Petalburg Gym (5th Gym), talk to Wally's father in the house west of the Gym. He'll give you HM03 Surf as a thank you for helping his son.

Required Gym Badge: Balance Badge (Petalburg City - Norman)

Field Use: Travel across water. Essential for accessing roughly half of the Hoenn region and progressing through the main story.

HM04 Strength

Location: Rusturf Tunnel

How to get: After obtaining Rock Smash, go to Rusturf Tunnel (east of Rustboro City). Use Rock Smash to break the rocks blocking the path. Help the man reunite with his girlfriend by clearing the tunnel. He'll give you HM04 Strength as a reward.

Required Gym Badge: Heat Badge (Lavaridge Town - Flannery)

Field Use: Push heavy boulders to solve puzzles and access new areas. Required for several dungeons and caves.

HM05 Flash

Location: Granite Cave

How to get: In Granite Cave (west of Dewford Town), find the hiker on the first basement floor. Talk to him and he'll give you HM05 Flash.

Required Gym Badge: Knuckle Badge (Dewford Town - Brawly)

Field Use: Illuminate dark caves. Very helpful for navigating Granite Cave and Victory Road.

💡 Tip

Flash is useful for lighting up dark caves, but it's not strictly required to complete the game. You can navigate caves without it if you prefer.

HM06 Rock Smash

Location: Mauville City

How to get: In Mauville City, enter the house next to the Poké Mart. Talk to the man inside and he'll give you HM06 Rock Smash.

Required Gym Badge: Dynamo Badge (Mauville City - Wattson)

Field Use: Smash cracked rocks to clear paths and find hidden items. Essential for accessing certain areas and progressing through the story.

HM07 Waterfall

Location: Cave of Origin / Sootopolis City

How to get:

  • Ruby/Sapphire: Found on the ground at B3F of the Cave of Origin after calming Kyogre/Groudon.
  • Emerald: After the Rayquaza event and defeating/capturing Kyogre/Groudon, talk to Steven outside the Cave of Origin in Sootopolis City. He'll give you HM07 Waterfall.

Required Gym Badge: Rain Badge (Sootopolis City - Wallace/Juan)

Field Use: Climb waterfalls to reach higher elevations. Required to access Ever Grande City and challenge the Pokémon League.

HM08 Dive

Location: Mossdeep City

How to get: In Mossdeep City, enter Steven's house (the house with the striped awning in the northwest). Steven will give you HM08 Dive.

Required Gym Badge: Mind Badge (Mossdeep City - Tate & Liza)

Field Use: Dive underwater in deep water areas. Required to access the Seafloor Cavern and progress through the main story.

Best Pokémon for HM Coverage

Instead of teaching HMs to your main battling team, many players prefer to have dedicated Pokémon that can learn multiple HMs. Here are some excellent options for the Hoenn region. In Hoenn, no non-legendary Pokémon can learn both Fly and Dive, so an optimal setup uses one Fly user and one Dive user to cover all 8 HMs.

🌟 Top Recommendation: Tropius

Where to find: Catch Tropius on Route 119 (before Fortree City). This is the same route where you get the Fly HM!

HMs it can learn (5/8):

  • HM01 Cut
  • HM02 Fly
  • HM04 Strength
  • HM05 Flash
  • HM06 Rock Smash

Missing: Surf, Waterfall, and Dive - Tropius is the best non-legendary Fly user because it learns 5 HMs! Pair it with any water-type below.

💧 Alternative: Lombre (Most Flexible)

Where to find: Catch Lotad on Route 102 (very early game). Evolves into Lombre at Level 14.

HMs it can learn (6/8):

  • HM03 Surf
  • HM04 Strength
  • HM05 Flash
  • HM06 Rock Smash
  • HM07 Waterfall
  • HM08 Dive

Missing: Cut and Fly - This is the only early-game water type that can learn Flash, making it the most flexible option!

🌊 Alternative: Marill

Where to find: Catch Marill on Route 117 (just west of Mauville City). Available before you need most HMs.

HMs it can learn (5/8):

  • HM03 Surf
  • HM04 Strength
  • HM06 Rock Smash
  • HM07 Waterfall
  • HM08 Dive

Missing: Cut, Fly, and Flash - Easy to obtain and covers all water-based HMs!

🔰 Early Game Helper: Nincada

Where to find: Catch Nincada on Route 116 (near Rustboro City).

HMs it can learn (2/8):

  • HM01 Cut
  • HM05 Flash

Missing: Fly, Surf, Strength, Rock Smash, Waterfall, and Dive - The only early-game Pokémon that can learn both Cut and Flash! Can also learn Dig and Secret Power.

🦝 Utility Option: Linoone

Where to find: Catch Zigzagoon on early routes. Evolves into Linoone at Level 20.

HMs it can learn (4/8):

  • HM01 Cut
  • HM03 Surf
  • HM04 Strength
  • HM06 Rock Smash

Missing: Fly, Flash, Waterfall, and Dive - The Pickup ability can find rare items like Rare Candies and Full Restores while you explore!

HM Compatibility Chart

# Name Type Power Accuracy PP Location
HM1 Cut Normal type 50 95 30
  • Rustboro City (from Cutter near the Pokémon Center)
HM2 Fly Flying type 70 95 15
  • Route 119 (defeating your rival)
HM3 Surf Water type 95 100 15
  • Petalburg City (after defeating the Gym Leader, from Wally's father)
HM4 Strength Normal type 80 100 15
  • Rusturf Tunnel (after breaking the rocks)
HM5 Flash Electric type 70 20
  • Granite Cave (1F)
HM6 Rock Smash Fighting type 20 100 15
  • Mauville City (man in a house)
HM7 Waterfall Water type 80 100 15
  • Ruby/Sapphire: Cave of Origin (B3F)
  • Emerald: Sootopolis City (after defeating Groudon/Kyogre)
HM8 Dive Water type 60 100 10
  • Mossdeep City (from Steven)
Pokémon CutFlySurfStrengthFlashRock SmashWaterfallDive
Venusaur Venusaur
Charizard Charizard
Blastoise Blastoise
Butterfree Butterfree
Beedrill Beedrill
Pidgeot Pidgeot
Raticate Raticate
Fearow Fearow
Arbok Arbok
Raichu Raichu
Sandslash Sandslash
Nidoqueen Nidoqueen
Nidoking Nidoking
Clefable Clefable
Wigglytuff Wigglytuff
Vileplume Vileplume
Parasect Parasect
Venomoth Venomoth
Dugtrio Dugtrio
Persian Persian
Golduck Golduck
Arcanine Arcanine
Poliwrath Poliwrath
Alakazam Alakazam
Machamp Machamp
Victreebel Victreebel
Tentacruel Tentacruel
Golem Golem
Rapidash Rapidash
Slowbro Slowbro
Farfetch’d Farfetch’d
Dodrio Dodrio
Dewgong Dewgong
Muk Muk
Cloyster Cloyster
Gengar Gengar
Hypno Hypno
Kingler Kingler
Electrode Electrode
Exeggutor Exeggutor
Marowak Marowak
Hitmonlee Hitmonlee
Hitmonchan Hitmonchan
Weezing Weezing
Kangaskhan Kangaskhan
Seaking Seaking
Starmie Starmie
Mr. Mime Mr. Mime
Jynx Jynx
Pinsir Pinsir
Tauros Tauros
Gyarados Gyarados
Lapras Lapras
Vaporeon Vaporeon
Jolteon Jolteon
Omastar Omastar
Kabutops Kabutops
Aerodactyl Aerodactyl
Snorlax Snorlax
Articuno Articuno
Zapdos Zapdos
Moltres Moltres
Dragonite Dragonite
Mewtwo Mewtwo
Mew Mew
Meganium Meganium
Typhlosion Typhlosion
Feraligatr Feraligatr
Furret Furret
Noctowl Noctowl
Ledian Ledian
Ariados Ariados
Crobat Crobat
Lanturn Lanturn
Xatu Xatu
Ampharos Ampharos
Bellossom Bellossom
Azumarill Azumarill
Sudowoodo Sudowoodo
Politoed Politoed
Jumpluff Jumpluff
Sunflora Sunflora
Quagsire Quagsire
Espeon Espeon
Umbreon Umbreon
Slowking Slowking
Forretress Forretress
Steelix Steelix
Granbull Granbull
Qwilfish Qwilfish
Scizor Scizor
Shuckle Shuckle
Heracross Heracross
Magcargo Magcargo
Corsola Corsola
Octillery Octillery
Delibird Delibird
Mantine Mantine
Skarmory Skarmory
Houndoom Houndoom
Kingdra Kingdra
Donphan Donphan
Hitmontop Hitmontop
Miltank Miltank
Blissey Blissey
Raikou Raikou
Entei Entei
Suicune Suicune
Tyranitar Tyranitar
Lugia Lugia
Ho-Oh Ho-Oh
Celebi Celebi
Sceptile Sceptile
Blaziken Blaziken
Swampert Swampert
Mightyena Mightyena
Linoone Linoone
Beautifly Beautifly
Dustox Dustox
Ludicolo Ludicolo
Shiftry Shiftry
Swellow Swellow
Pelipper Pelipper
Gardevoir Gardevoir
Masquerain Masquerain
Breloom Breloom
Slaking Slaking
Ninjask Ninjask
Shedinja Shedinja
Exploud Exploud
Hariyama Hariyama
Delcatty Delcatty
Sableye Sableye
Mawile Mawile
Aggron Aggron
Medicham Medicham
Manectric Manectric
Plusle Plusle
Minun Minun
Volbeat Volbeat
Illumise Illumise
Swalot Swalot
Sharpedo Sharpedo
Wailord Wailord
Camerupt Camerupt
Torkoal Torkoal
Grumpig Grumpig
Spinda Spinda
Flygon Flygon
Cacturne Cacturne
Altaria Altaria
Zangoose Zangoose
Seviper Seviper
Lunatone Lunatone
Solrock Solrock
Whiscash Whiscash
Crawdaunt Crawdaunt
Claydol Claydol
Cradily Cradily
Armaldo Armaldo
Milotic Milotic
Castform Castform
Kecleon Kecleon
Banette Banette
Tropius Tropius
Chimecho Chimecho
Absol Absol
Glalie Glalie
Walrein Walrein
Huntail Huntail
Gorebyss Gorebyss
Relicanth Relicanth
Luvdisc Luvdisc
Salamence Salamence
Metagross Metagross
Regirock Regirock
Regice Regice
Registeel Registeel
Latias Latias
Latios Latios
Kyogre Kyogre
Groudon Groudon
Rayquaza Rayquaza
Jirachi Jirachi
Deoxys Deoxys

More Ruby/Sapphire/Emerald Guides