Rock smashing is the earliest method to find heart scales, with an approximately 11% drop rate (when an item is found). The optimal method to do it is either Helios Sewers (requires seed flare to cross dirty water to a fan, in front of the Meloetta puzzle) or a cave in the Whirl Islands. However, the earliest position to find rocks is Midna Mine.
x2: Suntouched City ground level: reward for showing a girl southwest of the statue of Jaern a Jigglypuff (Friend Safari Only: Jesusml)
x3: Secret Base: from finding 10 flags for the Flag Guy
Go to Vipik, with 25+ pokemon caught in your pokedex, and go to the house next to the pokecenter. Go upstairs and talk to the boy, and he will give you a Good Rod.
Next, go to Midna Mine, with a pokemon with Covet, Thief, Trick, etc, any of the moves that steal a foe’s held item. Use the Good Rod to find Luvdisc (20%), and steal their heart scales.
Note 1 - Technically item-stealing moves are unneeded, but if you don’t have them you need to catch the luvdisc to take their scales, which requires more time and money.
Note 2 - Pokemon in Friend Safaris cannot hold items, so don’t bother using this method in one.
This method can be optimized in a few ways.
- Have a pokemon with Compoundeyes first, fainted preferred, as it increases the chance of wild pokemon holding an item.
- Have a pokemon with both Frisk and Covet/Thief/whichever switching move you want in the second position. (There are a few that work - Frisk Shuppet/Banette learns Thief, however, it is the only one that I know of). Covet can also be tutored by a man in the Utira Library center wing, somewhere to the left.
Note - Frisk is a less important part, as you can simply thief/covet without caring for whether they hold an item or not - you lose virtually no time for doing so.
Pokepon has about 8% chance to give Heart Scales - however, do not use it on good pokemon (usually) as it might change their nature. It can also give Shinyness, though, so take it as you will. Pokepon is the slower method, as you require 20 minutes of time between runs, and 1500 steps.
Diving in Holon Lake allows you to find Luvdisc in the grass. The same things as above apply when catching Luvdisc, but this does not require a fishing rod, and has a higher chance to find it (25% encounter chance).
Pokemon with Pick Up from the levels 71 - 100 have a 10% chance to find a Heart Scale. Levels 51 - 70 have a 4% chance to find a Heart Scale.
x1: Prion Town: from a blonde lady outside of the house with Delta Doduo