Skip to content

Community funded. No paid power. Never pay-to-win.

Our promise
AshRun
In-game model of Rockruff
← All Pokémon

National Pokédex #0744 · Generation 7

Rockruff

rock

When it rubs the rocks on its neck against you, that's proof of its love for you. However, the rocks are sharp, so the gesture is quite painful!

Natural spawnEvolution chain

Quick answer

How do you get Rockruff?

Rockruff can spawn in Windswept Hills, Windswept Forest, Windswept Gravelly Hills, and 26 other eligible biomes (Outdoors). Check the complete conditions below; these routes reflect AshRun's installed ATMons files.

AshRun ATMons 1.3.0 · Data updated · Sources & limitations

AshRun locations

How to obtain Rockruff

2 places to look

Where to look in the wild

Eligible biomes (29)

Windswept Hills + 28 more

  • Windswept Hills
  • Windswept Forest
  • Windswept Gravelly Hills
  • Fractured Savanna
  • Haze Mountain
  • Stony Spires
  • Windswept Spires
  • Meadow
  • Alpine Highlands
  • Arid Highlands
  • Blooming Plateau
  • Highlands
  • Alpine Grove
  • Ashen Savanna
  • Caldera
  • Savanna Slopes
  • Siberian Grove
  • Snowy Maple Forest
  • Snowy Shield
  • Tropical Jungle
  • Volcanic Crater
  • Blooming Valley
  • Forested Highlands
  • Lavender Valley
  • Lush Valley
  • Moonlight Valley
  • Sakura Valley
  • Temperate Highlands
  • Yosemite Lowlands

Expanded from server category: Hills

Level5-20RarityUncommon
  • Outdoors
Eligible biomes (39)

Badlands + 38 more

  • Badlands
  • Eroded Badlands
  • Wooded Badlands
  • Bryce Canyon
  • Painted Mountains
  • Red Oasis
  • Savanna Badlands
  • White Mesa
  • Snowy Badlands
  • Ashen Savanna
  • Warped Mesa
  • Windswept Hills
  • Windswept Forest
  • Windswept Gravelly Hills
  • Fractured Savanna
  • Haze Mountain
  • Stony Spires
  • Windswept Spires
  • Meadow
  • Alpine Highlands
  • Arid Highlands
  • Blooming Plateau
  • Highlands
  • Alpine Grove
  • Caldera
  • Savanna Slopes
  • Siberian Grove
  • Snowy Maple Forest
  • Snowy Shield
  • Tropical Jungle
  • Volcanic Crater
  • Blooming Valley
  • Forested Highlands
  • Lavender Valley
  • Lush Valley
  • Moonlight Valley
  • Sakura Valley
  • Temperate Highlands
  • Yosemite Lowlands

Expanded from server categories: Badlands, Hills

Level2-27RarityUncommon
  • Light: Bright

Battle profile

Base stats

280 total
Hp45
Attack65
Defence40
Special Attack30
Special Defence40
Speed60

Abilities

  • Keeneye
  • Vitalspirit
  • Steadfast Hidden

Training

Base experience
56
Growth
Medium Fast
EV yield
Hp: 0 · Attack: 1 · Defence: 0 · Special Attack: 0 · Special Defence: 0 · Speed: 0
Friendship
50

Progression

Evolution & forms

Forms

Complete installed learnset

Moves

98 entries
Level moves (14)
Lv. 1 · TackleLv. 1 · LeerLv. 4 · SandattackLv. 8 · DoubleteamLv. 12 · RockthrowLv. 16 · HowlLv. 20 · BiteLv. 24 · RocktombLv. 28 · RoarLv. 32 · RockslideLv. 36 · CrunchLv. 40 · ScaryfaceLv. 44 · StealthrockLv. 48 · Stoneedge
Egg moves (6)
CrushclawEndeavorLastresortOdorsleuthSuckerpunchThrash
Tm moves (46)
BodyslamBulldozeCharmCovetCrunchDigDoubleedgeDoubleteamEarthpowerEchoedvoiceEndeavorEndureFacadeFirefangHelpinghandHypervoiceIrondefenseIronheadIrontailLastresortMudslapPlayroughProtectPsychicfangsRestRoarRockclimbRockpolishRockslideRocktombSandstormScaryfaceSleeptalkSnarlStealthrockStompingtantrumStoneedgeSubstituteSuckerpunchSwordsdanceTakedownTauntTerablastThunderfangTrailblazeZenheadbutt
Tutor moves (23)
BulldozeCovetEarthpowerEndeavorFirefangHelpinghandHypervoiceIrondefenseIronheadIrontailLastresortMudslapPlayroughRestRockslideSleeptalkSnarlStealthrockStompingtantrumStoneedgeSuckerpunchThunderfangZenheadbutt
Legacy moves (9)
AttractConfideFrustrationHiddenpowerReturnRoundSnoreSwaggerToxic

Useful extras

Drops & breeding

Bone

Quantity 0-1

Rotten Flesh

Quantity 0-1

Hard Stone

2.5% chance

Babiri Berry

2.5% chance

Egg groups
Field
Egg cycles
15
Catch rate
190
Maximum drops
4
Technical server dataRaw records, internal IDs, source files, presets, and full JSON

Source summary

Base species: Cobblemon-neoforge-1.7.3+1.21.1.jar. Installed additions: complete-cobblemon-collection-myths-and-legends-compat-2.1.0.jar, mega_showdown-neoforge-1.9.9+1.7.3+1.21.1.jar.

Acquisition records

{
  "questGuides": [],
  "structureEncounters": [],
  "naturalSpawns": [
    {
      "id": "ccc-rockruff-1",
      "pokemon": "rockruff",
      "type": "pokemon",
      "context": "grounded",
      "bucket": "uncommon",
      "level": "5-20",
      "weight": 5.8,
      "condition": {
        "canSeeSky": true,
        "biomes": [
          "#cobblemon:is_hills"
        ]
      },
      "source": "complete-cobblemon-collection-myths-and-legends-compat-2.1.0.jar",
      "sourceFile": "data/cobblemon/spawn_pool_world/0744_rockruff.json",
      "resolvedBiomes": [
        "minecraft:windswept_hills",
        "minecraft:windswept_forest",
        "minecraft:windswept_gravelly_hills",
        "terralith:fractured_savanna",
        "terralith:haze_mountain",
        "terralith:stony_spires",
        "terralith:windswept_spires",
        "minecraft:meadow",
        "terralith:alpine_highlands",
        "terralith:arid_highlands",
        "terralith:blooming_plateau",
        "terralith:highlands",
        "terralith:alpine_grove",
        "terralith:ashen_savanna",
        "terralith:caldera",
        "terralith:savanna_slopes",
        "terralith:siberian_grove",
        "terralith:snowy_maple_forest",
        "terralith:snowy_shield",
        "terralith:tropical_jungle",
        "terralith:volcanic_crater",
        "terralith:blooming_valley",
        "terralith:forested_highlands",
        "terralith:lavender_valley",
        "terralith:lush_valley",
        "terralith:moonlight_valley",
        "terralith:sakura_valley",
        "terralith:temperate_highlands",
        "terralith:yosemite_lowlands"
      ]
    },
    {
      "id": "rockruff-1",
      "pokemon": "rockruff",
      "presets": [
        "natural"
      ],
      "type": "pokemon",
      "spawnablePositionType": "grounded",
      "bucket": "uncommon",
      "level": "2-27",
      "weight": 5.04,
      "condition": {
        "minSkyLight": 8,
        "maxSkyLight": 15,
        "biomes": [
          "#cobblemon:is_badlands",
          "#cobblemon:is_hills"
        ]
      },
      "source": "mega_showdown-neoforge-1.9.9+1.7.3+1.21.1.jar",
      "sourceFile": "data/cobblemon/spawn_pool_world/0744_rockruff.json",
      "resolvedBiomes": [
        "minecraft:badlands",
        "minecraft:eroded_badlands",
        "minecraft:wooded_badlands",
        "terralith:bryce_canyon",
        "terralith:painted_mountains",
        "terralith:red_oasis",
        "terralith:savanna_badlands",
        "terralith:white_mesa",
        "terralith:snowy_badlands",
        "terralith:ashen_savanna",
        "terralith:warped_mesa",
        "minecraft:windswept_hills",
        "minecraft:windswept_forest",
        "minecraft:windswept_gravelly_hills",
        "terralith:fractured_savanna",
        "terralith:haze_mountain",
        "terralith:stony_spires",
        "terralith:windswept_spires",
        "minecraft:meadow",
        "terralith:alpine_highlands",
        "terralith:arid_highlands",
        "terralith:blooming_plateau",
        "terralith:highlands",
        "terralith:alpine_grove",
        "terralith:caldera",
        "terralith:savanna_slopes",
        "terralith:siberian_grove",
        "terralith:snowy_maple_forest",
        "terralith:snowy_shield",
        "terralith:tropical_jungle",
        "terralith:volcanic_crater",
        "terralith:blooming_valley",
        "terralith:forested_highlands",
        "terralith:lavender_valley",
        "terralith:lush_valley",
        "terralith:moonlight_valley",
        "terralith:sakura_valley",
        "terralith:temperate_highlands",
        "terralith:yosemite_lowlands"
      ]
    }
  ],
  "raids": [],
  "fossils": []
}

Evolution and forms

{
  "evolutions": [
    {
      "id": "rockruff_lycanroc",
      "variant": "level_up",
      "result": "lycanroc wolf_form=midday",
      "consumeHeldItem": false,
      "learnableMoves": [
        "accelerock",
        "suckerpunch"
      ],
      "requirements": [
        {
          "variant": "level",
          "minLevel": 25
        },
        {
          "variant": "time_range",
          "range": "day"
        }
      ]
    },
    {
      "id": "rockruff_lycanrocmidnight",
      "variant": "level_up",
      "result": "lycanroc wolf_form=midnight",
      "consumeHeldItem": false,
      "learnableMoves": [
        "counter"
      ],
      "requirements": [
        {
          "variant": "level",
          "minLevel": 25
        },
        {
          "variant": "time_range",
          "range": "night"
        }
      ]
    }
  ],
  "forms": [
    {
      "name": "Dusk",
      "aspects": [
        "dusk-form"
      ],
      "types": [
        "rock"
      ],
      "abilities": [
        "owntempo",
        "h:owntempo"
      ],
      "stats": {
        "hp": 45,
        "attack": 65,
        "defence": 40,
        "special_attack": 30,
        "special_defence": 40,
        "speed": 60
      },
      "moves": [
        {
          "method": "level",
          "move": "tackle",
          "level": 1
        },
        {
          "method": "level",
          "move": "leer",
          "level": 1
        },
        {
          "method": "level",
          "move": "sandattack",
          "level": 4
        },
        {
          "method": "level",
          "move": "doubleteam",
          "level": 8
        },
        {
          "method": "level",
          "move": "rockthrow",
          "level": 12
        },
        {
          "method": "level",
          "move": "howl",
          "level": 16
        },
        {
          "method": "level",
          "move": "bite",
          "level": 20
        },
        {
          "method": "level",
          "move": "rocktomb",
          "level": 24
        },
        {
          "method": "level",
          "move": "roar",
          "level": 28
        },
        {
          "method": "level",
          "move": "rockslide",
          "level": 32
        },
        {
          "method": "level",
          "move": "crunch",
          "level": 36
        },
        {
          "method": "level",
          "move": "scaryface",
          "level": 40
        },
        {
          "method": "level",
          "move": "stealthrock",
          "level": 44
        },
        {
          "method": "level",
          "move": "stoneedge",
          "level": 48
        },
        {
          "method": "egg",
          "move": "endeavor"
        },
        {
          "method": "egg",
          "move": "lastresort"
        },
        {
          "method": "egg",
          "move": "odorsleuth"
        },
        {
          "method": "egg",
          "move": "suckerpunch"
        },
        {
          "method": "egg",
          "move": "thrash"
        },
        {
          "method": "tm",
          "move": "bodyslam"
        },
        {
          "method": "tm",
          "move": "bulldoze"
        },
        {
          "method": "tm",
          "move": "charm"
        },
        {
          "method": "tm",
          "move": "covet"
        },
        {
          "method": "tm",
          "move": "crunch"
        },
        {
          "method": "tm",
          "move": "crushclaw"
        },
        {
          "method": "tm",
          "move": "dig"
        },
        {
          "method": "tm",
          "move": "doubleedge"
        },
        {
          "method": "tm",
          "move": "doubleteam"
        },
        {
          "method": "tm",
          "move": "earthpower"
        },
        {
          "method": "tm",
          "move": "echoedvoice"
        },
        {
          "method": "tm",
          "move": "endeavor"
        },
        {
          "method": "tm",
          "move": "endure"
        },
        {
          "method": "tm",
          "move": "facade"
        },
        {
          "method": "tm",
          "move": "firefang"
        },
        {
          "method": "tm",
          "move": "helpinghand"
        },
        {
          "method": "tm",
          "move": "hypervoice"
        },
        {
          "method": "tm",
          "move": "irondefense"
        },
        {
          "method": "tm",
          "move": "ironhead"
        },
        {
          "method": "tm",
          "move": "irontail"
        },
        {
          "method": "tm",
          "move": "lastresort"
        },
        {
          "method": "tm",
          "move": "mudslap"
        },
        {
          "method": "tm",
          "move": "playrough"
        },
        {
          "method": "tm",
          "move": "protect"
        },
        {
          "method": "tm",
          "move": "psychicfangs"
        },
        {
          "method": "tm",
          "move": "rest"
        },
        {
          "method": "tm",
          "move": "roar"
        },
        {
          "method": "tm",
          "move": "rockclimb"
        },
        {
          "method": "tm",
          "move": "rockpolish"
        },
        {
          "method": "tm",
          "move": "rockslide"
        },
        {
          "method": "tm",
          "move": "rocktomb"
        },
        {
          "method": "tm",
          "move": "sandstorm"
        },
        {
          "method": "tm",
          "move": "scaryface"
        },
        {
          "method": "tm",
          "move": "sleeptalk"
        },
        {
          "method": "tm",
          "move": "snarl"
        },
        {
          "method": "tm",
          "move": "stealthrock"
        },
        {
          "method": "tm",
          "move": "stompingtantrum"
        },
        {
          "method": "tm",
          "move": "stoneedge"
        },
        {
          "method": "tm",
          "move": "substitute"
        },
        {
          "method": "tm",
          "move": "suckerpunch"
        },
        {
          "method": "tm",
          "move": "swordsdance"
        },
        {
          "method": "tm",
          "move": "takedown"
        },
        {
          "method": "tm",
          "move": "taunt"
        },
        {
          "method": "tm",
          "move": "terablast"
        },
        {
          "method": "tm",
          "move": "thunderfang"
        },
        {
          "method": "tm",
          "move": "trailblaze"
        },
        {
          "method": "tm",
          "move": "zenheadbutt"
        },
        {
          "method": "tutor",
          "move": "bulldoze"
        },
        {
          "method": "tutor",
          "move": "covet"
        },
        {
          "method": "tutor",
          "move": "earthpower"
        },
        {
          "method": "tutor",
          "move": "endeavor"
        },
        {
          "method": "tutor",
          "move": "firefang"
        },
        {
          "method": "tutor",
          "move": "helpinghand"
        },
        {
          "method": "tutor",
          "move": "hypervoice"
        },
        {
          "method": "tutor",
          "move": "irondefense"
        },
        {
          "method": "tutor",
          "move": "ironhead"
        },
        {
          "method": "tutor",
          "move": "irontail"
        },
        {
          "method": "tutor",
          "move": "lastresort"
        },
        {
          "method": "tutor",
          "move": "mudslap"
        },
        {
          "method": "tutor",
          "move": "playrough"
        },
        {
          "method": "tutor",
          "move": "rest"
        },
        {
          "method": "tutor",
          "move": "rockslide"
        },
        {
          "method": "tutor",
          "move": "sleeptalk"
        },
        {
          "method": "tutor",
          "move": "snarl"
        },
        {
          "method": "tutor",
          "move": "stealthrock"
        },
        {
          "method": "tutor",
          "move": "stompingtantrum"
        },
        {
          "method": "tutor",
          "move": "stoneedge"
        },
        {
          "method": "tutor",
          "move": "suckerpunch"
        },
        {
          "method": "tutor",
          "move": "thunderfang"
        },
        {
          "method": "tutor",
          "move": "zenheadbutt"
        },
        {
          "method": "legacy",
          "move": "attract"
        },
        {
          "method": "legacy",
          "move": "confide"
        },
        {
          "method": "legacy",
          "move": "frustration"
        },
        {
          "method": "legacy",
          "move": "hiddenpower"
        },
        {
          "method": "legacy",
          "move": "return"
        },
        {
          "method": "legacy",
          "move": "round"
        },
        {
          "method": "legacy",
          "move": "snore"
        },
        {
          "method": "legacy",
          "move": "swagger"
        },
        {
          "method": "legacy",
          "move": "toxic"
        },
        {
          "method": "special",
          "move": "happyhour"
        }
      ],
      "evolutions": [
        {
          "id": "rockruff_lycanrocdusk",
          "variant": "level_up",
          "result": "lycanroc wolf_form=dusk",
          "consumeHeldItem": false,
          "learnableMoves": [
            "thrash",
            "crushclaw"
          ],
          "requirements": [
            {
              "variant": "level",
              "minLevel": 25
            },
            {
              "variant": "time_range",
              "range": "dusk"
            }
          ]
        }
      ],
      "description": [
        "This Pokémon can bond very strongly with its Trainer, but it also has a habit of biting. Raising a Rockruff for a long time can be challenging."
      ]
    }
  ]
}

Behavior and drops

{
  "behaviour": {
    "entityInteract": {
      "avoidedBySkeleton": true
    },
    "herd": {
      "maxSize": "6",
      "toleratedLeaders": [
        {
          "pokemon": "rockruff",
          "tier": 1
        },
        {
          "pokemon": "lycanroc midnight",
          "tier": 2
        },
        {
          "pokemon": "lycanroc wolf_form=midday",
          "tier": 3
        },
        {
          "pokemon": "lycanroc dusk",
          "tier": 4
        }
      ]
    },
    "resting": {
      "willSleepOnBed": true,
      "drowsyChance": 0.0333,
      "rouseChance": 0.0042
    },
    "moving": {
      "swim": {
        "avoidsWater": true
      }
    },
    "combat": {
      "willDefendOwner": true
    }
  },
  "drops": {
    "amount": 4,
    "entries": [
      {
        "item": "minecraft:bone",
        "quantityRange": "0-1"
      },
      {
        "item": "minecraft:rotten_flesh",
        "quantityRange": "0-1"
      },
      {
        "item": "cobblemon:hard_stone",
        "percentage": 2.5
      },
      {
        "item": "cobblemon:babiri_berry",
        "percentage": 2.5
      }
    ]
  },
  "labels": [
    "gen7"
  ]
}

Complete installed species record

{
  "nationalPokedexNumber": 744,
  "name": "Rockruff",
  "primaryType": "rock",
  "maleRatio": 0.5,
  "height": 5,
  "weight": 92,
  "pokedex": [
    "cobblemon.species.rockruff.desc"
  ],
  "labels": [
    "gen7"
  ],
  "aspects": [],
  "abilities": [
    "keeneye",
    "vitalspirit",
    "h:steadfast"
  ],
  "eggGroups": [
    "field"
  ],
  "baseStats": {
    "hp": 45,
    "attack": 65,
    "defence": 40,
    "special_attack": 30,
    "special_defence": 40,
    "speed": 60
  },
  "evYield": {
    "hp": 0,
    "attack": 1,
    "defence": 0,
    "special_attack": 0,
    "special_defence": 0,
    "speed": 0
  },
  "baseExperienceYield": 56,
  "experienceGroup": "medium_fast",
  "catchRate": 190,
  "eggCycles": 15,
  "baseFriendship": 50,
  "baseScale": 1,
  "hitbox": {
    "width": 1,
    "height": 1,
    "fixed": false
  },
  "behaviour": {
    "entityInteract": {
      "avoidedBySkeleton": true
    },
    "herd": {
      "maxSize": "6",
      "toleratedLeaders": [
        {
          "pokemon": "rockruff",
          "tier": 1
        },
        {
          "pokemon": "lycanroc midnight",
          "tier": 2
        },
        {
          "pokemon": "lycanroc wolf_form=midday",
          "tier": 3
        },
        {
          "pokemon": "lycanroc dusk",
          "tier": 4
        }
      ]
    },
    "resting": {
      "willSleepOnBed": true,
      "drowsyChance": 0.0333,
      "rouseChance": 0.0042
    },
    "moving": {
      "swim": {
        "avoidsWater": true
      }
    },
    "combat": {
      "willDefendOwner": true
    }
  },
  "drops": {
    "amount": 4,
    "entries": [
      {
        "item": "minecraft:bone",
        "quantityRange": "0-1"
      },
      {
        "item": "minecraft:rotten_flesh",
        "quantityRange": "0-1"
      },
      {
        "item": "cobblemon:hard_stone",
        "percentage": 2.5
      },
      {
        "item": "cobblemon:babiri_berry",
        "percentage": 2.5
      }
    ]
  },
  "moves": [
    "1:tackle",
    "1:leer",
    "4:sandattack",
    "8:doubleteam",
    "12:rockthrow",
    "16:howl",
    "20:bite",
    "24:rocktomb",
    "28:roar",
    "32:rockslide",
    "36:crunch",
    "40:scaryface",
    "44:stealthrock",
    "48:stoneedge",
    "egg:crushclaw",
    "egg:endeavor",
    "egg:lastresort",
    "egg:odorsleuth",
    "egg:suckerpunch",
    "egg:thrash",
    "tm:bodyslam",
    "tm:bulldoze",
    "tm:charm",
    "tm:covet",
    "tm:crunch",
    "tm:dig",
    "tm:doubleedge",
    "tm:doubleteam",
    "tm:earthpower",
    "tm:echoedvoice",
    "tm:endeavor",
    "tm:endure",
    "tm:facade",
    "tm:firefang",
    "tm:helpinghand",
    "tm:hypervoice",
    "tm:irondefense",
    "tm:ironhead",
    "tm:irontail",
    "tm:lastresort",
    "tm:mudslap",
    "tm:playrough",
    "tm:protect",
    "tm:psychicfangs",
    "tm:rest",
    "tm:roar",
    "tm:rockclimb",
    "tm:rockpolish",
    "tm:rockslide",
    "tm:rocktomb",
    "tm:sandstorm",
    "tm:scaryface",
    "tm:sleeptalk",
    "tm:snarl",
    "tm:stealthrock",
    "tm:stompingtantrum",
    "tm:stoneedge",
    "tm:substitute",
    "tm:suckerpunch",
    "tm:swordsdance",
    "tm:takedown",
    "tm:taunt",
    "tm:terablast",
    "tm:thunderfang",
    "tm:trailblaze",
    "tm:zenheadbutt",
    "tutor:bulldoze",
    "tutor:covet",
    "tutor:earthpower",
    "tutor:endeavor",
    "tutor:firefang",
    "tutor:helpinghand",
    "tutor:hypervoice",
    "tutor:irondefense",
    "tutor:ironhead",
    "tutor:irontail",
    "tutor:lastresort",
    "tutor:mudslap",
    "tutor:playrough",
    "tutor:rest",
    "tutor:rockslide",
    "tutor:sleeptalk",
    "tutor:snarl",
    "tutor:stealthrock",
    "tutor:stompingtantrum",
    "tutor:stoneedge",
    "tutor:suckerpunch",
    "tutor:thunderfang",
    "tutor:zenheadbutt",
    "legacy:attract",
    "legacy:confide",
    "legacy:frustration",
    "legacy:hiddenpower",
    "legacy:return",
    "legacy:round",
    "legacy:snore",
    "legacy:swagger",
    "legacy:toxic"
  ],
  "evolutions": [
    {
      "id": "rockruff_lycanroc",
      "variant": "level_up",
      "result": "lycanroc wolf_form=midday",
      "consumeHeldItem": false,
      "learnableMoves": [
        "accelerock",
        "suckerpunch"
      ],
      "requirements": [
        {
          "variant": "level",
          "minLevel": 25
        },
        {
          "variant": "time_range",
          "range": "day"
        }
      ]
    },
    {
      "id": "rockruff_lycanrocmidnight",
      "variant": "level_up",
      "result": "lycanroc wolf_form=midnight",
      "consumeHeldItem": false,
      "learnableMoves": [
        "counter"
      ],
      "requirements": [
        {
          "variant": "level",
          "minLevel": 25
        },
        {
          "variant": "time_range",
          "range": "night"
        }
      ]
    }
  ],
  "forms": [
    {
      "name": "Dusk",
      "primaryType": "rock",
      "maleRatio": 0.5,
      "height": 5,
      "weight": 92,
      "pokedex": [
        "cobblemon.species.rockruff-dusk.desc"
      ],
      "labels": [
        "gen7"
      ],
      "aspects": [
        "dusk-form"
      ],
      "abilities": [
        "owntempo",
        "h:owntempo"
      ],
      "moves": [
        "1:tackle",
        "1:leer",
        "4:sandattack",
        "8:doubleteam",
        "12:rockthrow",
        "16:howl",
        "20:bite",
        "24:rocktomb",
        "28:roar",
        "32:rockslide",
        "36:crunch",
        "40:scaryface",
        "44:stealthrock",
        "48:stoneedge",
        "egg:endeavor",
        "egg:lastresort",
        "egg:odorsleuth",
        "egg:suckerpunch",
        "egg:thrash",
        "tm:bodyslam",
        "tm:bulldoze",
        "tm:charm",
        "tm:covet",
        "tm:crunch",
        "tm:crushclaw",
        "tm:dig",
        "tm:doubleedge",
        "tm:doubleteam",
        "tm:earthpower",
        "tm:echoedvoice",
        "tm:endeavor",
        "tm:endure",
        "tm:facade",
        "tm:firefang",
        "tm:helpinghand",
        "tm:hypervoice",
        "tm:irondefense",
        "tm:ironhead",
        "tm:irontail",
        "tm:lastresort",
        "tm:mudslap",
        "tm:playrough",
        "tm:protect",
        "tm:psychicfangs",
        "tm:rest",
        "tm:roar",
        "tm:rockclimb",
        "tm:rockpolish",
        "tm:rockslide",
        "tm:rocktomb",
        "tm:sandstorm",
        "tm:scaryface",
        "tm:sleeptalk",
        "tm:snarl",
        "tm:stealthrock",
        "tm:stompingtantrum",
        "tm:stoneedge",
        "tm:substitute",
        "tm:suckerpunch",
        "tm:swordsdance",
        "tm:takedown",
        "tm:taunt",
        "tm:terablast",
        "tm:thunderfang",
        "tm:trailblaze",
        "tm:zenheadbutt",
        "tutor:bulldoze",
        "tutor:covet",
        "tutor:earthpower",
        "tutor:endeavor",
        "tutor:firefang",
        "tutor:helpinghand",
        "tutor:hypervoice",
        "tutor:irondefense",
        "tutor:ironhead",
        "tutor:irontail",
        "tutor:lastresort",
        "tutor:mudslap",
        "tutor:playrough",
        "tutor:rest",
        "tutor:rockslide",
        "tutor:sleeptalk",
        "tutor:snarl",
        "tutor:stealthrock",
        "tutor:stompingtantrum",
        "tutor:stoneedge",
        "tutor:suckerpunch",
        "tutor:thunderfang",
        "tutor:zenheadbutt",
        "legacy:attract",
        "legacy:confide",
        "legacy:frustration",
        "legacy:hiddenpower",
        "legacy:return",
        "legacy:round",
        "legacy:snore",
        "legacy:swagger",
        "legacy:toxic",
        "special:happyhour"
      ],
      "evolutions": [
        {
          "id": "rockruff_lycanrocdusk",
          "variant": "level_up",
          "result": "lycanroc wolf_form=dusk",
          "consumeHeldItem": false,
          "learnableMoves": [
            "thrash",
            "crushclaw"
          ],
          "requirements": [
            {
              "variant": "level",
              "minLevel": 25
            },
            {
              "variant": "time_range",
              "range": "dusk"
            }
          ]
        }
      ],
      "battleOnly": false
    }
  ],
  "implemented": true
}