Quick answer: Godot 4 input keys behaving differently across keyboard layouts? physical_keycode and keycode diverge on non-US layouts - pick one and document.

WASD movement works on US layout. AZERTY player presses W; nothing happens because W is at a different physical position.

Use physical keycodes for movement

Movement keys are about position, not letters. physical_keycode binds the QWERTY position regardless of layout.

Use keycode for text

For 'press T to talk', the letter matters. keycode respects the user's layout.

Document per action

Spreadsheet: action, key type (physical/logical), default value. New contributors don't re-derive the convention.

“Position-based vs letter-based input have different APIs. Both are correct; mix them deliberately.”

Test on at least one non-US keyboard layout. AZERTY, QWERTZ, Dvorak. Layout-related bugs are invisible to monolingual testing.

Related reading