Ask a good question
Being stuck is not the problem. Being stuck quietly is. Four lines get you a real answer instead of four rounds of “what does it say?”
Ask after fifteen minutes
Fifteen minutes of trying things is enough to learn something. Forty-five is enough to decide you are bad at this. Veterans would much rather answer early than unpick an hour of guessing.
The four things
- 1
What were you trying to do?
One sentence about the feature, not the line. Somebody who knows the codebase can often answer from this alone.
I am adding a reverse button for the intake on B.
- 2
What did you expect to happen?
Say the exact behaviour. This is also the moment you find out you were expecting the wrong thing.
Holding B should run the roller backwards, and letting go should stop it.
- 3
What actually happened?
The whole error, copied and pasted. Not a summary of it, not a photo of it — the text.
Nothing happens at all. A still works, B does nothing, and there is no error.
- 4
What have you already tried?
Stops somebody spending their evening suggesting the thing you did twenty minutes ago.
Printed inside outtakeCommand and the line never ran. Checked the port, it is 2 like the intake.
Copy this, fill it in, post it
Paste it in the team channel and fill the four lines. The three backticks around the code are what stop chat apps mangling your indentation.
Trying to:Expected:Got:Already tried:Code:```java```Half of these never get posted
Writing down what you expected and what actually happened, side by side, is the same thing as debugging. A lot of people get to line three, see the difference, and fix it themselves. That still counts — it is why the template is worth filling in even when nobody is around to read it.
The same question, twice
What gets posted at 9pm
my intake doesnt work can someone helpNobody can answer this. The best a veteran can do is ask the four questions back, which costs you a whole evening of waiting. It is not rude, it is just empty.
The same problem, answerable
Trying to: add a reverse button for the intake on B.Expected: holding B runs the roller at -0.7, letting go stops it.Got: nothing happens. A still works. No error, no red squiggles, deploys fine.Already tried: put a println inside outtakeCommand and it never prints, so thecommand is never running. Checked the motor port, it is 2, same as intakeCommand.Code:```javapublic Command outtakeCommand() { return startEnd(() -> setSpeed(-0.7), () -> setSpeed(0.0)).withName("Outtake");}```A veteran reads “the command is never running” and knows the answer before they finish the message: the command exists but nothing is bound to B. One reply, driver.b().whileTrue(intake.outtakeCommand());, and you are unstuck.
Four more things that help
- Paste the whole error, from the first red line down. The first error is the real one; the rest are usually it echoing.
- Paste code as text, never as a photo of your screen. Nobody can copy a photo into a compiler.
- Say which file and which line.
IntakeSubsystem.javaline 34 beats "in the intake bit". - Come back and say what fixed it. The next person to hit it searches the channel, and that is who you are helping.