Game modules or plugins are the way to go then you can take your code to other projects. Also when a new version of the engine comes out you’re not having to redo your changes if you wish to upgrade to that new version.
Feature request is also a good option in some cases. Then you will have experienced programmers working on your feature if it is taken up by Epic.