Your starter Pokémon should know how to Fly, and another that knows how to Surf. These are the best HM's for a moveset. You will also need more Pokémon to create a "party".;
, For example: if a Gym Leader trains Bug-types, sent out a Flying, Fire, or Rock type out.
 Your party should be strong at all times unless you're training weak Pokémon or hatching eggs.


Note that there are weaknesses to other Pokémon that you might not have. Try teaching your Pokémon moves that are not their type. They might not be as strong, but at least you can counter other trainers' attacks!

, Also, it might not be best to have all legendaries. Use good Pokémon that you like.
Pick your starter.
Decide what your line up should be.
Learn about your party.
Practice different move sets on all the Pokémon.
{"src": "wikihow-all_test", "title": "How to Make a Great Pokemon Team on Pokemon Diamond"}