Attention to detail goes a long way. I prefer decapitalised hacks, but I can tolerate hacks that don't decapitalise everything—just don't half-arse it. If the Pokémon and item names are decapitalised, the rest of the game should be. Look up the offsets for the plural suffixes used in lines like "[player] put the [item]s in the Items Pocket".
Professionalism counts. Write like your work will be graded by your English teacher. Spellcheck it. Get someone with good language skills to proofread it. Don't be
this guy. Don't use memes. (Gamefreak do it, sure. It's tacky; you can do better.) Series injokes, like a Youngster who really likes shorts, get a little more leeway, but one is enough—don't overegg the pudding.
There's a stereotype that all hacks are obnoxiously hard because they're made by people who can already complete the original in their sleep; don't do that. At no point should ingame trainers (outside dedicated areas like the Battle Frontier or specially gated superbosses like Collector Yagsata in Touhoumon Purple) go within twenty levels of the level cap. Learn the difference between good and bad difficulty. (Vega tends to be a lesson in the former; Dark Rising and Ruby Destiny are lessons in the latter.)
Ignore people on this site who say "NO FAKEMON"—there's a ton of people who have never played a good Pokémon hack in their life and assume all hacks with fakemon are Dark Rising or Quartz. If fakemon are good, they're good. Don't hamstring yourself by not using them out of some misguided sense of principle.
Don't stack your game full of legendaries. Pokémon is better when the legendaries are fewer in number. (I used to think it was better they be kept out of the storyline and relegated to postgame prize, but I don't care about that so much anymore.)