I think it revolves around fulfilling the player's "Pokemon goals". When someone picks up a hack, they're looking for a certain experience. I think at the core, those are:
1) Building a Pokemon team from a diverse pool of Pokemon (including searching for those Pokemon)
2) Raising Pokemon to be strong -- the feeling of progress (people want longer releases!)
3) A new story, as to not feel like they're replaying a base game
With these points in mind, you can further enhance the experience with:
- QOL changes (makes the required grind repeatable)
- Features which assist with experience goals (i.e Dexnav)
As such, hacks that prevent, or hinder the above will not be successful. Such qualities include:
- Bugs which break immersion, gameplay or cause inconvenience
- Hacks which look and feel like the default game (point #3), could be from maps, music, graphics, to scripts even.
- Hacks with intrusive story lines which hinder goals #1 and #2. Culprits can be excessive dialog, mandatory brickwall-esque battles or even frustrating puzzles in succession.
Things I think people mistakenly think a good hack requires:
- Good gym puzzles (this is something the developer wants. The player is happy with solvable, non-repetitive puzzles)
- Difficulty (Players who want this impose it upon themselves with Nuzlocke and randomizer runs). Unbound did a great job of making this togglable for players who were looking for it.
- Unrelated systems (crafting [i.e DPPT's Poffins], berry growing, ect. very few players care for this. You want to tie your systems into achieving the fundamental goals without trivializing said goals i.e overpowered exp gain)
This is such an articulative post on the given topic; as expected from a Rom-hacking wizard! I don't think there is scope for adding much, as he has covered every aspect of "making a Rom Hack interesting" masterfully. Nevertheless, I would like to add a smidgen of my understanding of the mentioned topic by slightly elaborating / annotating the post of FBI as I find it pretty succinct.
The core of Experience:
1. Variety in pokemon team building- This does not mean that you have to throw in all the 900+ mons in a single region hack, I discourage this practise for obvious reasons. Even if one picks 50 hand-picked pokemons from each generation, the number goes to 450 and that is enough pokemons for a single region hack in my opinion. However, if one also adds 50 something regional variants or neatly designed fakemons, then this diverse pool of pokemon will certainly maximize the variety aspect in pokemon team building.
Disclaimer: I don't endorse betamons and crappily designed fakemons.
2. Making the chosen pokemon even stronger- By giving option for nature changing, IV perfecting, egg moves, ability switching, EV perfecting and move tutors. These options will certainly keep a person glued to a hack for a while, as we all want to maximize the potential of our beloved pokemons.
3. Story- A new region is always interesting, however, if the story of this new region has elements of non-linearity, plot-twists sprinkled with surprises, then I'm really looking forward to this kind of adventure. Additionally, adding genres elements like a murder mystery, horror, slasher, zombie apocalypse etc. to the main story or the side quests might also make a hack some more interesting.
Enhancing the core experience:
1. QoL enhancements.
2. Assisting features in core experience like Dexnav, Dowsing Machine and Stat Scanner items of Unbound.
3. Mechanics enhancements like Nature Changer, Hidden Ability Switching, IV perfecting etc.
4. Graphical enhancements.
I don't want to add anything else now, as I fully agree with FBI's points regarding what not to do with a hack.
The topic of discussion was pretty interesting in itself, by the way. : )