This guide was written specifically for users looking to get help with using the Pokemon decompilation projects, but this tutorial can be generally applied to asking for help anywhere on the Internet. Your question does not need to answer ALL of these questions, but generally the more information you provide, the faster and more likely your problem is to be solved. All of the advice in the document leads back to the core principle:
Make it as easy and painless as possible for people to help you.
If somebody has linked you to this page, you probably did not ask a good question. That person is trying to help you, but needs more information in order to do so.
Are You Posting In The Right Place?
Each server has a specific channel designated for people to ask for help. The following tables show the best places in the community for help. As long as the question is relevant to that channel, you can ask for help in multiple places. Not everybody is in every server!
| Server | Channel | Notes |
|---|---|---|
| RH Hideout | #expansion-get-help | Only for questions about pokeemerald-expansion |
| RH Hideout | #decomps | |
| pret | #pokeemerald | |
| pret | #pokefirered | |
| Team Aqua's Hideout | #romhacking-help |
Don't Ask to Ask!
If you have a question, just ask it! Don't ask for permission to do so.
What's Your Problem Summary?
Dumping a wall of text in a channel can be daunting for other participants. Lots of people will skip over the message entirely.
To prevent this, write a short (and bold) summary, and place it somewhere visible in your question (the top, the middle surrounded by line breaks, etc). Doing so can help others quickly gauge:
Am I able to help here?
And if they can, they are more likely to read the rest of your question.
Are You Using Version Control?
It is assumed that users are using git with their repository. Git is how changes are tracked and saved within a project. It is extremely difficult to help users that are not using git, as much of the advice involves rolling back to a previous commit, or using git's tools to track down where a problem is occurring.
If you are not using git, it is imperative that you start doing so as soon as possible. If you're new to git, Team Aqua's Asset Repo has a guide to the basics.
Keep Commits Small
When using git, it is recommended that your commits are small with descriptive commit messages. When sharing a commit, very few people will be willing to scroll through 100 files of changes to figure out what may have broken in your project. Being able to link to a single commit where something may have broken or something is being changed will better enable people to help.
What's Your Specific Problem?
What is your exact problem? What's your exact end goal?
Be specific as possible. Being specific will get you the answer you want - being vague requires people to guess how they should help, which will make people not want to help you.
Example
How do I clear a flag?
A valid answer to this question is:
FlagClear(FLAG);
But most users asking this actually want:
How do I clear a flag in a script? I want an object to appear on the map again.
which is solved in a totally different way.
Avoid XY Problem
Is it important that you should describe your PROBLEM or GOAL here, NOT your attempted solution. This helps you avoid the XY Problem, which is extremely common in these communities.
Focusing on the problem or goal means that somebody can offer simpler or more reliable approaches than your current method.
XY Problem Example
- User wants to do X.
- User doesn't know how to do X, but thinks they can fumble their way to a solution if they can just manage to do Y.
- User doesn't know how to do Y either.
- User asks for help with Y.
- Others try to help user with Y, but are confused because Y seems like a strange problem to want to solve.
- After much interaction and wasted time, it finally becomes clear that the user really wants help with X, and that Y wasn't even a suitable solution for X.
Can You Show A Visual?
To best help others help you, provide a video or images of the problem and/or the desired end state. mGBA can take screenshots or record videos, which can be uploaded to services like catbox, imgur, or YouTube.
What Did You Already Try?
People will be more willing to help you if you have shown some initiative in trying to solve the problem. It will also help others to figure out what else should be tried to solve the problem.
Describe what changes you've already made to solve your problem with as much detail as possible. It is important to show those changes as well, via a commit or a diff. Commit links can be shared via GitHub. Files can be shared via services like Github Gists or catbox. Diffs can be shared via DiffChecker or pastebin.
How Can People Try On Their Machine?
Sometimes, a problem cannot be solved unless another users looks at the problem on their machine. Provide a link to the branch where people can clone your repository and try to fix the problem themselves.
How Does Somebody Reproduce Your Problem?
People are not going to want to hunt around your game just to see the problem happening - if people are helping you, it is important to make it as easy as possible for people to help you.
If somebody does clone your repository, what is the shortest number of exact steps required to encounter your problem? If you cannot consistently reproduce the problem following these steps, keep working to get those steps, or make it clear that the problem cannot be consistently reproduced.
Is This A Good Time?
Asking a question in the middle of an existing discussion can result in your question getting lost in the conversation. This is the nature of online chat rooms! If your question hasn't gotten enough traction in the last 48 hours, you should ask it again!
NOTES
Be Prepared to Learn
Sometimes, users will give you advice or ask questions that you do not understand. That's okay! While you can ask follow up questions or clarifications, it is a better use of everybody's time for you to try to learn (via an online search engine, not a large language model) what they're talking about.
Saying "I'm not good at this" or "I don't know how to code" isn't helpful or useful information. This is a game development community, game developers are programmers, and if you want to complete a programming project, you will need to understand programming concepts.
Follow the Given Advice And Be Polite
When a user takes the time to try to help you or give advice, you should at least try what was advised. When people offer to help and are ignored, other users notice, and will be less willing to help you in the future.
Remember that anybody helping you is volunteering their time - be respectful, patient, and receptive. Nobody likes having their time wasted!
A note on LLMs
A significant part of troubleshooting is getting you to a known, and it can become incredibly difficult to help you if you've followed instructions from an LLM or used generated code you don't understand. While it is true that some people successfully use LLMs for enhancing their workflows, there is a world of difference between delegating mundane tasks to one and using one to do things you don't understand. No one wants to deal with messy generated code so keep this in mind when asking for help.
Conclusion
This community exists and has made such great progress because people enjoy collaborating, building, and solving hard problems. People are happy to help you, but make sure you're doing everything to help them help you!