Skip to content
InputBooster
TroubleshootingFix it

Diagnosing input

A systematic way to find out where an input is being lost, from the counters down to the source.

4 min readInputBooster 4.1.2-alphaMinecraft 26.2 / 26.3

When an input does not arrive, the problem is always in one of five places. This page walks them in order, from the cheapest check to the deepest.

The five places an input can be lost

Each stage has its own counter or log line. Start at the top.

Stage 1 — is the press even reaching the game?

Open the settings screen, go to Overview, and read the Keys and Mouse counters.

SymptomConclusion
Both counters stay at zeroNo event is arriving. Check the log for All client hooks present. and whether the client is running the mod at all
The counters rise when you press keysEvents are arriving. Move to stage 2

Stage 2 — which source is live?

The Compatibility tab shows whether the event hooks applied and which mode the engine resolved.

Engine modeWhat it means
eventThe hooks are live and dispatching
pollThe poller is the source

If the mode is poll and you expected event, one of these is true:

CauseCheck
The hooks never firedThe log line Keyboard/mouse event hooks are live. is missing
An input mod is installedThe Compatibility tab lists it. The fallback downgrades to polling
engine_mode is 1 but the hooks are not liveEvent mode falls back to polling until the first event proves the hooks work

Stage 3 — is the edge being detected?

The Overview tab's Engine row shows the mode. The overlay's counter line shows the action count:

text
Keys 1.2k  Mouse 430  Actions 880

Actions is the number of actions that were submitted to the dispatcher.

ComparisonConclusion
Keys and mouse rise, actions do notThe event is not reaching a tracked slot
Actions rise, the queue stays at 0The actions are being drained immediately
Actions rise, the queue sits at 128The drainer is not running

Stage 4 — is the queue full?

ReadingMeaning
Queue 0/128Empty. Nothing is waiting
Queue 127/128 or 128/128The drainer is not keeping up, or it is not running
Queue growing steadilyThe drainer is not running at all

A full queue means new actions are rejected. The physical press is lost. Look for the drainer's failure lines in the log.

Stage 5 — did the drainer execute it?

The drainer runs at the head of the tick. It refuses to execute when:

ConditionHow to confirm
A screen is openThe screen hook line in the log
There is no playerObvious
The mod is not active or not initialisedThe Fatal init error! line
Safe Mode disabled the input moduleThe [SafeMode] Module 'input' disabled line

The per-action conditions

Even when an action reaches the drainer, it may do nothing. Check the condition for that action:

ActionFails when
ATTACK_PRESSEDThe hit result is not a living entity within 36 squared units
USE_PRESSEDThe hit result is not MISS
JUMP_PRESSEDThe player is not grounded, in water, in lava or climbing
FORWARD_RELEASEDThe forward key is still down
PICK_BLOCK_PRESSEDThe crosshair is not on a block, or the accessor did not apply

The action reference has the exact rule for each.

The systematic checklist

Read the log

Ready! present? Any Fatal init error!? Any Missing vanilla method(s)? Any [SafeMode] line?

Check the mixin hooks

All client hooks present. and at least one screen hook true?

Read the counters

Do the key and mouse counters move when you press?

Read the engine mode

Is it the mode you expected? If it fell back, why?

Read the queue

Is it empty? Is it full? Both are informative.

Check the action condition

Is the action's precondition actually satisfied in the situation where it fails?

Rule out other mods

Disable the other input mods one at a time. The detector only knows six of them.

A quick self-test

The clearest test of the whole path:

  1. Join a world.
  2. Open the settings screen and note the Keys and Actions counters.
  3. Tap the attack key five times quickly.
  4. Watch the counters.
ResultWhere the problem is
Keys did not riseStage 1 — the event never arrived
Keys rose, Actions did notStage 3 — the edge was not detected
Actions rose, the queue stayed fullStage 4 — the drainer is not running
Actions rose, the queue emptied, no attack happenedStage 5 — the action condition failed