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
HM Compatibility Chart
| # | Name | Type | Power | Accuracy | PP | Location |
|---|---|---|---|---|---|---|
| HM1 | Cut | | 50 | 95 | 30 |
|
| HM2 | Fly | | 70 | 95 | 15 |
|
| HM3 | Surf | | 95 | 100 | 15 |
|
| HM4 | Strength | | 80 | 100 | 15 |
|
| HM5 | Flash | | — | 70 | 20 |
|
| HM6 | Rock Smash | | 20 | 100 | 15 |
|
| HM7 | Waterfall | | 80 | 100 | 15 |
|
| HM8 | Dive | | 60 | 100 | 10 |
|