Minecraft:Key codes: Difference between revisions
More actions
Sync: updated from Minecraft |
Sync: updated from Minecraft |
||
| Line 1: | Line 1: | ||
{{for|other uses|Key}} | {{for|other uses|Key}} | ||
{{missing information|Bedrock Edition keycodes for both keyboard and controller}} | {{missing information|Bedrock Edition keycodes for both keyboard and controller}} | ||
This is a list of '''key codes''' used by ''[[Minecraft:Minecraft]]'', which are used in configuration files such as the options.txt file in the [[Minecraft:.minecraft|Minecraft directory]].{{info needed|and where else? if that's the only place, remove "such as"}} | |||
This is a list of '''key codes''' used by ''[[Minecraft:Minecraft]]'', which are used in configuration files such as the options.txt file in the [[Minecraft:.minecraft|Minecraft directory]].{{info needed|and where else?}} | |||
== ''Java Edition'' == | == ''Java Edition'' == | ||
=== | {{For|the codes used prior to [[Minecraft:the Flattening]]|Java Edition pre-flattening data values#Key codes}} | ||
{{ | |||
=== Keyboard codes === | |||
{{for|keys which controls can be bound to, but do not display a proper name|Java Edition untranslated keys}} | |||
{| class="wikitable" width="80%" style="margin-left: auto; margin-right: auto; border: none;" data-description="Key codes" | {| class="wikitable" width="80%" style="margin-left: auto; margin-right: auto; border: none;" data-description="Key codes" | ||
! width="33%" | Value !! width="33%" | In-game name !! width="34%" | Description | ! width="33%" | Value !! width="33%" | In-game name !! width="34%" | Description | ||
|- | |- | ||
|key.keyboard.unknown || Not bound || Key is not bound | |key.keyboard.unknown || Not bound || Key is not bound | ||
|- | |- | ||
|key.keyboard.0 || colspan="2" | 0 | |key.keyboard.0 || colspan="2" | 0 | ||
| Line 51: | Line 33: | ||
|key.keyboard.9 || colspan="2" | 9 | |key.keyboard.9 || colspan="2" | 9 | ||
|- | |- | ||
|key.keyboard.a || colspan="2" | | |key.keyboard.a || colspan="2" | A | ||
|- | |- | ||
|key.keyboard.b || colspan="2" | | |key.keyboard.b || colspan="2" | B | ||
|- | |- | ||
|key.keyboard.c || colspan="2" | | |key.keyboard.c || colspan="2" | C | ||
|- | |- | ||
|key.keyboard.d || colspan="2" | | |key.keyboard.d || colspan="2" | D | ||
|- | |- | ||
|key.keyboard.e || colspan="2" | | |key.keyboard.e || colspan="2" | E | ||
|- | |- | ||
|key.keyboard.f || colspan="2" | | |key.keyboard.f || colspan="2" | F | ||
|- | |- | ||
|key.keyboard.g || colspan="2" | | |key.keyboard.g || colspan="2" | G | ||
|- | |- | ||
|key.keyboard.h || colspan="2" | | |key.keyboard.h || colspan="2" | H | ||
|- | |- | ||
|key.keyboard.i || colspan="2" | | |key.keyboard.i || colspan="2" | I | ||
|- | |- | ||
|key.keyboard.j || colspan="2" | | |key.keyboard.j || colspan="2" | J | ||
|- | |- | ||
|key.keyboard.k || colspan="2" | | |key.keyboard.k || colspan="2" | K | ||
|- | |- | ||
|key.keyboard.l || colspan="2" | | |key.keyboard.l || colspan="2" | L | ||
|- | |- | ||
|key.keyboard.m || colspan="2" | | |key.keyboard.m || colspan="2" | M | ||
|- | |- | ||
|key.keyboard.n || colspan="2" | | |key.keyboard.n || colspan="2" | N | ||
|- | |- | ||
|key.keyboard.o || colspan="2" | | |key.keyboard.o || colspan="2" | O | ||
|- | |- | ||
|key.keyboard.p || colspan="2" | | |key.keyboard.p || colspan="2" | P | ||
|- | |- | ||
|key.keyboard.q || colspan="2" | | |key.keyboard.q || colspan="2" | Q | ||
|- | |- | ||
|key.keyboard.r || colspan="2" | | |key.keyboard.r || colspan="2" | R | ||
|- | |- | ||
|key.keyboard.s || colspan="2" | | |key.keyboard.s || colspan="2" | S | ||
|- | |- | ||
|key.keyboard.t || colspan="2" | | |key.keyboard.t || colspan="2" | T | ||
|- | |- | ||
|key.keyboard.u || colspan="2" | | |key.keyboard.u || colspan="2" | U | ||
|- | |- | ||
|key.keyboard.v || colspan="2" | | |key.keyboard.v || colspan="2" | V | ||
|- | |- | ||
|key.keyboard.w || colspan="2" | | |key.keyboard.w || colspan="2" | W | ||
|- | |- | ||
|key.keyboard.x || colspan="2" | | |key.keyboard.x || colspan="2" | X | ||
|- | |- | ||
|key.keyboard.y || colspan="2" | | |key.keyboard.y || colspan="2" | Y | ||
|- | |- | ||
|key.keyboard.z || colspan="2" | | |key.keyboard.z || colspan="2" | Z | ||
|- | |- | ||
|key.keyboard.f1 || colspan="2" | F1 | |key.keyboard.f1 || colspan="2" | F1 | ||
| Line 151: | Line 133: | ||
|key.keyboard.f24 || colspan="2" | F24 | |key.keyboard.f24 || colspan="2" | F24 | ||
|- | |- | ||
|key.keyboard.f25 || colspan="2" | F25 | |key.keyboard.f25{{until|je 26.3}} || colspan="2" | F25 | ||
|- | |- | ||
|key.keyboard.num.lock || colspan="2" | Num Lock | |key.keyboard.num.lock || colspan="2" | Num Lock | ||
| Line 176: | Line 158: | ||
|- | |- | ||
|key.keyboard.keypad.add || colspan="2" | Keypad + | |key.keyboard.keypad.add || colspan="2" | Keypad + | ||
|- | |||
|key.keyboard.keypad.period{{upcoming|je 26.3}} || colspan="2" | Keypad . | |||
|- | |- | ||
|key.keyboard.keypad.decimal || colspan="2" | Keypad Decimal | |key.keyboard.keypad.decimal || colspan="2" | Keypad Decimal | ||
| Line 182: | Line 166: | ||
|- | |- | ||
|key.keyboard.keypad.equal || colspan="2" | Keypad = | |key.keyboard.keypad.equal || colspan="2" | Keypad = | ||
|- | |||
|key.keyboard.keypad.comma{{upcoming|je 26.3}} || colspan="2" | Keypad , | |||
|- | |- | ||
|key.keyboard.keypad.multiply || colspan="2" | Keypad * | |key.keyboard.keypad.multiply || colspan="2" | Keypad * | ||
| Line 188: | Line 174: | ||
|- | |- | ||
|key.keyboard.keypad.subtract || colspan="2" | Keypad - | |key.keyboard.keypad.subtract || colspan="2" | Keypad - | ||
|- | |||
|key.keyboard.keypad.plus.minus{{upcoming|je 26.3}} || colspan="2" | Keypad ± | |||
|- | |||
|key.keyboard.keypad.left.parenthesis{{upcoming|je 26.3}} || colspan="2" | Keypad ( | |||
|- | |||
|key.keyboard.keypad.right.parenthesis{{upcoming|je 26.3}} || colspan="2" | Keypad ) | |||
|- | |- | ||
|key.keyboard.down || colspan="2" | Down Arrow | |key.keyboard.down || colspan="2" | Down Arrow | ||
| Line 223: | Line 215: | ||
|key.keyboard.tab || colspan="2" | Tab | |key.keyboard.tab || colspan="2" | Tab | ||
|- | |- | ||
|key.keyboard.left.alt || colspan="2" | Left Alt | |key.keyboard.left.alt || colspan="2" | Windows/Linux: Left Alt<br>macOS: Left Option{{upcoming|je 26.3}} | ||
|- | |- | ||
|key.keyboard.left.control || colspan="2" | Left Control | |key.keyboard.left.control || colspan="2" | Left Control | ||
| Line 229: | Line 221: | ||
|key.keyboard.left.shift || colspan="2" | Left Shift | |key.keyboard.left.shift || colspan="2" | Left Shift | ||
|- | |- | ||
|key.keyboard.left.win || colspan="2" | Left Win | |key.keyboard.left.win || colspan="2" | Windows: Left Win<br>Linux: Left Meta{{upcoming|je 26.3}}<br>macOS: Left Command{{upcoming|je 26.3}} | ||
|- | |- | ||
|key.keyboard.right.alt || colspan="2" | Right Alt | |key.keyboard.right.alt || colspan="2" | Windows/Linux: Right Alt<br>macOS: Right Option{{upcoming|je 26.3}} | ||
|- | |- | ||
|key.keyboard.right.control || colspan="2" | Right Control | |key.keyboard.right.control || colspan="2" | Right Control | ||
| Line 237: | Line 229: | ||
|key.keyboard.right.shift || colspan="2" | Right Shift | |key.keyboard.right.shift || colspan="2" | Right Shift | ||
|- | |- | ||
|key.keyboard.right.win || colspan="2" | Right Win | |key.keyboard.right.win || colspan="2" | Windows: Right Win<br>Linux: Right Meta{{upcoming|je 26.3}}<br>macOS: Right Command{{upcoming|je 26.3}} | ||
|- | |- | ||
|key.keyboard.enter || colspan="2" | Enter | |key.keyboard.enter || colspan="2" | Enter | ||
| Line 262: | Line 254: | ||
|- | |- | ||
|key.keyboard.scroll.lock || colspan="2" | Scroll Lock | |key.keyboard.scroll.lock || colspan="2" | Scroll Lock | ||
|- | |||
|key.keyboard.application{{upcoming|je 26.3}} || colspan="2" | Menu | |||
|- | |- | ||
|key.keyboard.menu || colspan="2" | Menu | |key.keyboard.menu || colspan="2" | Menu | ||
| Line 267: | Line 261: | ||
|key.keyboard.print.screen || colspan="2" | Print Screen | |key.keyboard.print.screen || colspan="2" | Print Screen | ||
|- | |- | ||
|key.keyboard.world.1 | | |key.keyboard.world.1 || World 1 || {{info needed}} | ||
| | |||
{{ | |||
|- | |- | ||
| | |key.keyboard.world.2 || World 2 || {{info needed}} | ||
|- | |- | ||
| | |key.keyboard.mute{{upcoming|je 26.3}} || colspan="2" | Mute | ||
|- | |- | ||
| | |key.keyboard.volume.up{{upcoming|je 26.3}} || colspan="2" | Volume Up | ||
|- | |- | ||
| | |key.keyboard.volume.down{{upcoming|je 26.3}} || colspan="2" | Volume Down | ||
|- | |- | ||
| | |key.keyboard.media.play.pause{{upcoming|je 26.3}} || colspan="2" | Play/Pause | ||
|- | |- | ||
| | |key.keyboard.stop{{upcoming|je 26.3}} || colspan="2" | Stop | ||
|- | |- | ||
| | |key.keyboard.again{{upcoming|je 26.3}} || colspan="2" | Again | ||
|- | |- | ||
| | |key.keyboard.undo{{upcoming|je 26.3}} || colspan="2" | Undo | ||
|- | |- | ||
| | |key.keyboard.cut{{upcoming|je 26.3}} || colspan="2" | Cut | ||
|- | |- | ||
| | |key.keyboard.copy{{upcoming|je 26.3}} || colspan="2" | Copy | ||
|- | |- | ||
| | |key.keyboard.paste{{upcoming|je 26.3}} || colspan="2" | Paste | ||
|- | |- | ||
| | |key.keyboard.find{{upcoming|je 26.3}} || colspan="2" | Find | ||
|- | |- | ||
| | |key.keyboard.help{{upcoming|je 26.3}} || colspan="2" | Help | ||
|- | |- | ||
| | |key.keyboard.new{{upcoming|je 26.3}} || colspan="2" | New | ||
|- | |- | ||
| | |key.keyboard.save{{upcoming|je 26.3}} || colspan="2" | Save | ||
|- | |- | ||
| | |scancode.###{{until|java 26.3}} || scancode.### || Untranslated | ||
|- | |- | ||
| | |key.keyboard.###{{upcoming|java 26.3}} || key.keyboard.### || Untranslated | ||
|26 | |||
|} | |} | ||
=== Mouse codes === | |||
Only mouse buttons can have controls be bound to them in the options menu. Mouse movement, vertical scrolling and horizontal scrolling are hardcoded, and their default actions cannot be assigned to other keys or buttons, nor can scrolling or moving the mouse be made to do anything else. | |||
Mouse buttons are handled as a signed 32-bit integer, meaning that through editing options.txt, values from {{code|key.mouse.-2147483648}} to {{code|key.mouse.2147483647}} can be specified without being rejected by the game as invalid.<ref>{{bug|MC-268286}}</ref> However, the USB HID specification only permits mouse buttons from 1 to 65535,<ref>https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf</ref> meaning that all negative values and the vast majority of the positive values can never actually be assigned to in-game actions without file editing. | |||
Only the first eight mouse buttons can have controls assigned to them.{{until|java 26.3}} | |||
On Linux, mouse buttons up to 48{{upcoming|java 26.3}} can be specified (evdev key press events 272 to 319) - it is not known if any supported operating systems support a 49th or higher mouse button as input. The maximum mouse button on macOS is 32, and the maximum mouse button on Windows is 5. | |||
|- | {| class="wikitable" data-description="Mouse button IDs" style="margin-left:auto; margin-right:auto" | ||
! rowspan="2" | ID | |||
! rowspan="2" | Display name | |||
! rowspan="2" | Description | |||
! colspan="3" | Usable on | |||
| | |||
|- | |||
| | |||
|- | |- | ||
! Windows | |||
! macOS | |||
! Linux | |||
|- | |- | ||
| | ! {{code|key.mouse.left}}{{note|{{code|key.mouse.1}} is automatically converted to this{{info needed|I assume upon reading options.txt when the game is started? or at another time?}}}} | ||
| Left Button | |||
| Primary mouse button | |||
! {{tc|Yes}} | |||
! {{tc|Yes}} | |||
! {{tc|Yes}} | |||
|- | |- | ||
| | ! {{code|key.mouse.right}}{{note|{{code|key.mouse.3}} is automatically converted to this}} | ||
| Right Button | |||
| Secondary mouse button | |||
! {{tc|Yes}} | |||
! {{tc|Yes}} | |||
! {{tc|Yes}} | |||
|- | |- | ||
| | ! {{code|key.mouse.middle}}{{note|{{code|key.mouse.2}} is automatically converted to this}} | ||
| Middle Button | |||
| Tertiary mouse button, often the scroll wheel when pressed | |||
! {{tc|Yes}} | |||
! {{tc|Yes}} | |||
! {{tc|Yes}} | |||
|- | |- | ||
| | ! {{code|key.mouse.4}} | ||
| Button 4 | |||
| Fourth mouse button, aka "Back" or XBUTTON1 | |||
! {{tc|Yes}} | |||
! {{tc|Yes}} | |||
! {{tc|Yes}} | |||
|- | |- | ||
| | ! {{code|key.mouse.5}} | ||
| Button 5 | |||
| Fifth mouse button, aka "Forward" or XBUTTON2 | |||
! {{tc|Yes}} | |||
! {{tc|Yes}} | |||
! {{tc|Yes}} | |||
|- | |- | ||
| | ! {{code|key.mouse.6}} | ||
| Button 6 | |||
| Sixth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}} | |||
! {{tc|Yes}} | |||
|- | |- | ||
| | ! {{code|key.mouse.7}} | ||
| Button 7 | |||
| Seventh mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}} | |||
! {{tc|Yes}} | |||
|- | |- | ||
| | ! {{code|key.mouse.8}} | ||
| Button 8 | |||
| Eighth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}} | |||
! {{tc|Yes}} | |||
|- | |- | ||
| | ! {{code|key.mouse.9}} | ||
| Button 9 | |||
| Ninth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.10}} | ||
| Button 10 | |||
| Tenth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.11}} | ||
| Button 11 | |||
| Eleventh mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.12}} | ||
| Button 12 | |||
| Twelfth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.13}} | ||
| Button 13 | |||
| Thirteenth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.14}} | ||
| Button 14 | |||
| Fourteenth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.15}} | ||
| Button 15 | |||
| Fifteenth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.16}} | ||
| Button 16 | |||
| Sixteenth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.17}} | ||
| Button 17 | |||
| Seventeenth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.18}} | ||
| Button 18 | |||
| Eighteenth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.19}} | ||
| Button 19 | |||
| Nineteenth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.20}} | ||
| Button 20 | |||
| Twentieth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.21}} | ||
| Button 21 | |||
| Twenty-first mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.22}} | ||
| Button 22 | |||
| Twenty-second mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.23}} | ||
| Button 23 | |||
| Twenty-third mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.24}} | ||
| Button 24 | |||
| Twenty-fourth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.25}} | ||
| Button 25 | |||
| Twenty-fifth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.26}} | ||
| Button 26 | |||
| Twenty-sixth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.27}} | ||
| Button 27 | |||
| Twenty-seventh mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.28}} | ||
| Button 28 | |||
| Twenty-eighth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.29}} | ||
| Button 29 | |||
| Twenty-ninth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.30}} | ||
|} | | Button 30 | ||
| Thirtieth mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
{| | |||
{| | |||
|- | |- | ||
! | ! {{code|key.mouse.31}} | ||
| Button 31 | |||
| Thirty-first mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.32}} | ||
| Button 32 | |||
| Thirty-second mouse button | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.33}} | ||
| Button 33 | |||
| Thirty-third mouse button | |||
! {{tc|No}} | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.34}} | ||
| Button 34 | |||
| Thirty-fourth mouse button | |||
! {{tc|No}} | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.35}} | ||
| Button 35 | |||
| Thirty-fifth mouse button | |||
! {{tc|No}} | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.36}} | ||
| Button 36 | |||
| Thirty-sixth mouse button | |||
! {{tc|No}} | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.37}} | ||
| Button 37 | |||
| Thirty-seventh mouse button | |||
! {{tc|No}} | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.38}} | ||
| Button 38 | |||
| Thirty-eighth mouse button | |||
! {{tc|No}} | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.39}} | ||
|} | | Button 39 | ||
| Thirty-ninth mouse button | |||
! {{tc|No}} | |||
! {{tc|No}} | |||
{| | ! {{tc|Yes}}{{upcoming|java 26.3}} | ||
! | |||
|- | |- | ||
! | ! {{code|key.mouse.40}} | ||
| Button 40 | |||
| Fortieth mouse button | |||
! {{tc|No}} | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.41}} | ||
| Button 41 | |||
| Forty-first mouse button | |||
! {{tc|No}} | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.42}} | ||
| Button 42 | |||
| Forty-second mouse button | |||
! {{tc|No}} | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.43}} | ||
| Button 43 | |||
| Forty-third mouse button | |||
! {{tc|No}} | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.44}} | ||
| Button 44 | |||
| Forty-fourth mouse button | |||
! {{tc|No}} | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.45}} | ||
| Button 45 | |||
| Forty-fifth mouse button | |||
! {{tc|No}} | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.46}} | ||
| Button 46 | |||
| Forty-sixth mouse button | |||
! {{tc|No}} | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.47}} | ||
| Button 47 | |||
| Forty-seventh mouse button | |||
! {{tc|No}} | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|- | |- | ||
| | ! {{code|key.mouse.48}} | ||
|} | | Button 48 | ||
| Forty-eighth mouse button | |||
! {{tc|No}} | |||
! {{tc|No}} | |||
! {{tc|Yes}}{{upcoming|java 26.3}} | |||
|} | |} | ||
| Line 968: | Line 1,029: | ||
| -95 || Mouse Button 5 | | -95 || Mouse Button 5 | ||
|} | |} | ||
== History == | |||
=== ''Java Edition'' === | |||
{{HistoryTable | |||
|{{HistoryLine|java classic}} | |||
|{{HistoryLine||0.0.23a|Added key codes.}} | |||
|{{HistoryLine|java beta}} | |||
|{{HistoryLine||1.8|dev=Pre-release|Controls can now be bound to mouse buttons; these are handled using negative numbers.}} | |||
|{{HistoryLine|java}} | |||
|{{HistoryLine||1.12|dev=17w16a|The first three mouse buttons are now displayed as "Left Click", "Right Click" and "Middle Click".}} | |||
|{{HistoryLine||1.13|dev=17w43a|With the updating of LWJGL from 2 to 3 key codes have been entirely redone. For the old values, see [[Minecraft:Java Edition pre-flattening data values#Key codes]], and for what each of them was converted to, see [[Minecraft:Java Edition Flattening#Key codes]]. | |||
|The display names of key codes now describes the actual key (e.g. BACKSLASH changed to \). | |||
|The first three mouse buttons are now displayed as "Left Button", "Right Button" and "Middle Button".}} | |||
|{{HistoryLine|java upcoming}} | |||
|{{HistoryLine||26.3|dev=snap4|Valid but undefined key codes have been changed from {{code|scancode.###}} to {{code|key.keyboard.###}}. | |||
|Removed {{code|key.keyboard.f25}}.}} | |||
|{{HistoryLine|||dev=?|The keypad plus-or-minus, keypad opening bracket and keypad closing bracket buttons now display as ±, ( and ) in-game. However, it is unknown what their specific key codes are at this point. Notably, they are not prefixed with "Keypad ", unlike other keypad keys.<ref>{{bug|MC-310109}}, {{bug|MC-310110}}</ref>}} | |||
|{{HistoryLine|||dev=snap7|Several new translatable key codes have been added: | |||
*{{code|key.keyboard.keypad.period}} | |||
*{{code|key.keyboard.keypad.comma}} | |||
*{{code|key.keyboard.keypad.plus.minus}} | |||
*{{code|key.keyboard.keypad.left.parenthesis}} | |||
*{{code|key.keyboard.keypad.right.parenthesis}} | |||
*{{code|key.keyboard.keypad.application}} | |||
*{{code|key.keyboard.keypad.mute}} | |||
*{{code|key.keyboard.keypad.volume.up}} | |||
*{{code|key.keyboard.keypad.volume.down}} | |||
*{{code|key.keyboard.keypad.media.play.pause}} | |||
*{{code|key.keyboard.keypad.stop}} | |||
*{{code|key.keyboard.keypad.again}} | |||
*{{code|key.keyboard.keypad.undo}} | |||
*{{code|key.keyboard.keypad.cut}} | |||
*{{code|key.keyboard.keypad.copy}} | |||
*{{code|key.keyboard.keypad.paste}} | |||
*{{code|key.keyboard.keypad.find}} | |||
*{{code|key.keyboard.keypad.help}} | |||
*{{code|key.keyboard.keypad.new}} | |||
*{{code|key.keyboard.keypad.save}}| | |||
{{code|key.keyboard.left.alt}}, {{code|key.keyboard.right.alt}}, {{code|key.keyboard.left.win}}, and {{code|key.keyboard.right.win}} now have different display names depending on the user's operating system.{{verify|Checking the lang files shows that there are distinct "[left/right].win" and "[left/right].windows" translation strings - investigate}}}} | |||
}} | |||
== Notes == | |||
{{notelist}} | |||
== References == | == References == | ||
Revision as of 11:15, 5 August 2026
Template:For Template:Missing information This is a list of key codes used by Minecraft:Minecraft, which are used in configuration files such as the options.txt file in the Minecraft directory.Template:Info needed
Java Edition
Keyboard codes
| Value | In-game name | Description |
|---|---|---|
| key.keyboard.unknown | Not bound | Key is not bound |
| key.keyboard.0 | 0 | |
| key.keyboard.1 | 1 | |
| key.keyboard.2 | 2 | |
| key.keyboard.3 | 3 | |
| key.keyboard.4 | 4 | |
| key.keyboard.5 | 5 | |
| key.keyboard.6 | 6 | |
| key.keyboard.7 | 7 | |
| key.keyboard.8 | 8 | |
| key.keyboard.9 | 9 | |
| key.keyboard.a | A | |
| key.keyboard.b | B | |
| key.keyboard.c | C | |
| key.keyboard.d | D | |
| key.keyboard.e | E | |
| key.keyboard.f | F | |
| key.keyboard.g | G | |
| key.keyboard.h | H | |
| key.keyboard.i | I | |
| key.keyboard.j | J | |
| key.keyboard.k | K | |
| key.keyboard.l | L | |
| key.keyboard.m | M | |
| key.keyboard.n | N | |
| key.keyboard.o | O | |
| key.keyboard.p | P | |
| key.keyboard.q | Q | |
| key.keyboard.r | R | |
| key.keyboard.s | S | |
| key.keyboard.t | T | |
| key.keyboard.u | U | |
| key.keyboard.v | V | |
| key.keyboard.w | W | |
| key.keyboard.x | X | |
| key.keyboard.y | Y | |
| key.keyboard.z | Z | |
| key.keyboard.f1 | F1 | |
| key.keyboard.f2 | F2 | |
| key.keyboard.f3 | F3 | |
| key.keyboard.f4 | F4 | |
| key.keyboard.f5 | F5 | |
| key.keyboard.f6 | F6 | |
| key.keyboard.f7 | F7 | |
| key.keyboard.f8 | F8 | |
| key.keyboard.f9 | F9 | |
| key.keyboard.f10 | F10 | |
| key.keyboard.f11 | F11 | |
| key.keyboard.f12 | F12 | |
| key.keyboard.f13 | F13 | |
| key.keyboard.f14 | F14 | |
| key.keyboard.f15 | F15 | |
| key.keyboard.f16 | F16 | |
| key.keyboard.f17 | F17 | |
| key.keyboard.f18 | F18 | |
| key.keyboard.f19 | F19 | |
| key.keyboard.f20 | F20 | |
| key.keyboard.f21 | F21 | |
| key.keyboard.f22 | F22 | |
| key.keyboard.f23 | F23 | |
| key.keyboard.f24 | F24 | |
| key.keyboard.f25Template:Until | F25 | |
| key.keyboard.num.lock | Num Lock | |
| key.keyboard.keypad.0 | Keypad 0 | |
| key.keyboard.keypad.1 | Keypad 1 | |
| key.keyboard.keypad.2 | Keypad 2 | |
| key.keyboard.keypad.3 | Keypad 3 | |
| key.keyboard.keypad.4 | Keypad 4 | |
| key.keyboard.keypad.5 | Keypad 5 | |
| key.keyboard.keypad.6 | Keypad 6 | |
| key.keyboard.keypad.7 | Keypad 7 | |
| key.keyboard.keypad.8 | Keypad 8 | |
| key.keyboard.keypad.9 | Keypad 9 | |
| key.keyboard.keypad.add | Keypad + | |
| key.keyboard.keypad.periodTemplate:Upcoming | Keypad . | |
| key.keyboard.keypad.decimal | Keypad Decimal | |
| key.keyboard.keypad.enter | Keypad Enter | |
| key.keyboard.keypad.equal | Keypad = | |
| key.keyboard.keypad.commaTemplate:Upcoming | Keypad , | |
| key.keyboard.keypad.multiply | Keypad * | |
| key.keyboard.keypad.divide | Keypad / | |
| key.keyboard.keypad.subtract | Keypad - | |
| key.keyboard.keypad.plus.minusTemplate:Upcoming | Keypad ± | |
| key.keyboard.keypad.left.parenthesisTemplate:Upcoming | Keypad ( | |
| key.keyboard.keypad.right.parenthesisTemplate:Upcoming | Keypad ) | |
| key.keyboard.down | Down Arrow | |
| key.keyboard.left | Left Arrow | |
| key.keyboard.right | Right Arrow | |
| key.keyboard.up | Up Arrow | |
| key.keyboard.apostrophe | ' | |
| key.keyboard.backslash | \ | |
| key.keyboard.comma | , | |
| key.keyboard.equal | = | |
| key.keyboard.grave.accent | ` | |
| key.keyboard.left.bracket | [ | |
| key.keyboard.minus | - | |
| key.keyboard.period | . | |
| key.keyboard.right.bracket | ] | |
| key.keyboard.semicolon | ; | |
| key.keyboard.slash | / | |
| key.keyboard.space | Space | |
| key.keyboard.tab | Tab | |
| key.keyboard.left.alt | Windows/Linux: Left Alt macOS: Left OptionTemplate:Upcoming | |
| key.keyboard.left.control | Left Control | |
| key.keyboard.left.shift | Left Shift | |
| key.keyboard.left.win | Windows: Left Win Linux: Left MetaTemplate:Upcoming macOS: Left CommandTemplate:Upcoming | |
| key.keyboard.right.alt | Windows/Linux: Right Alt macOS: Right OptionTemplate:Upcoming | |
| key.keyboard.right.control | Right Control | |
| key.keyboard.right.shift | Right Shift | |
| key.keyboard.right.win | Windows: Right Win Linux: Right MetaTemplate:Upcoming macOS: Right CommandTemplate:Upcoming | |
| key.keyboard.enter | Enter | |
| key.keyboard.escape | Escape | |
| key.keyboard.backspace | Backspace | |
| key.keyboard.delete | Delete | |
| key.keyboard.end | End | |
| key.keyboard.home | Home | |
| key.keyboard.insert | Insert | |
| key.keyboard.page.down | Page Down | |
| key.keyboard.page.up | Page Up | |
| key.keyboard.caps.lock | Caps Lock | |
| key.keyboard.pause | Pause | |
| key.keyboard.scroll.lock | Scroll Lock | |
| key.keyboard.applicationTemplate:Upcoming | Menu | |
| key.keyboard.menu | Menu | |
| key.keyboard.print.screen | Print Screen | |
| key.keyboard.world.1 | World 1 | Template:Info needed |
| key.keyboard.world.2 | World 2 | Template:Info needed |
| key.keyboard.muteTemplate:Upcoming | Mute | |
| key.keyboard.volume.upTemplate:Upcoming | Volume Up | |
| key.keyboard.volume.downTemplate:Upcoming | Volume Down | |
| key.keyboard.media.play.pauseTemplate:Upcoming | Play/Pause | |
| key.keyboard.stopTemplate:Upcoming | Stop | |
| key.keyboard.againTemplate:Upcoming | Again | |
| key.keyboard.undoTemplate:Upcoming | Undo | |
| key.keyboard.cutTemplate:Upcoming | Cut | |
| key.keyboard.copyTemplate:Upcoming | Copy | |
| key.keyboard.pasteTemplate:Upcoming | Paste | |
| key.keyboard.findTemplate:Upcoming | Find | |
| key.keyboard.helpTemplate:Upcoming | Help | |
| key.keyboard.newTemplate:Upcoming | New | |
| key.keyboard.saveTemplate:Upcoming | Save | |
| scancode.###Template:Until | scancode.### | Untranslated |
| key.keyboard.###Template:Upcoming | key.keyboard.### | Untranslated |
Mouse codes
Only mouse buttons can have controls be bound to them in the options menu. Mouse movement, vertical scrolling and horizontal scrolling are hardcoded, and their default actions cannot be assigned to other keys or buttons, nor can scrolling or moving the mouse be made to do anything else.
Mouse buttons are handled as a signed 32-bit integer, meaning that through editing options.txt, values from Template:Code to Template:Code can be specified without being rejected by the game as invalid.<ref>Template:Bug</ref> However, the USB HID specification only permits mouse buttons from 1 to 65535,<ref>https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf</ref> meaning that all negative values and the vast majority of the positive values can never actually be assigned to in-game actions without file editing.
Only the first eight mouse buttons can have controls assigned to them.Template:Until
On Linux, mouse buttons up to 48Template:Upcoming can be specified (evdev key press events 272 to 319) - it is not known if any supported operating systems support a 49th or higher mouse button as input. The maximum mouse button on macOS is 32, and the maximum mouse button on Windows is 5.
Bedrock Edition
| Key Code | Key |
|---|---|
| 0 | That key has no keycode |
| 3 | break |
| 8 | backspace / delete |
| 9 | tab |
| 12 | clear |
| 13 | enter |
| 16 | shift |
| 17 | w |
| 18 | alt |
| 19 | pause/break |
| 20 | caps lock |
| 21 | hangul |
| 25 | hanja |
| 27 | escape |
| 28 | conversion |
| 29 | non-conversion |
| 32 | spacebar |
| 33 | page up |
| 34 | page down |
| 35 | end |
| 36 | home |
| 37 | left arrow |
| 38 | up arrow |
| 39 | right arrow |
| 40 | down arrow |
| 41 | select |
| 42 | |
| 43 | execute |
| 44 | Print Screen |
| 45 | insert |
| 46 | delete |
| 47 | help |
| 48 | 0 |
| 49 | 1 |
| 50 | 2 |
| 51 | 3 |
| 52 | 4 |
| 53 | 5 |
| 54 | 6 |
| 55 | 7 |
| 56 | 8 |
| 57 | 9 |
| 58 | : |
| 59 | semicolon (firefox), equals |
| 60 | < |
| 61 | equals (firefox) |
| 63 | ß |
| 64 | @ (firefox) |
| 65 | a |
| 66 | b |
| 67 | c |
| 68 | d |
| 69 | e |
| 70 | f |
| 71 | g |
| 72 | h |
| 73 | i |
| 74 | j |
| 75 | k |
| 76 | l |
| 77 | m |
| 78 | n |
| 79 | o |
| 80 | p |
| 81 | q |
| 82 | r |
| 83 | s |
| 84 | t |
| 85 | u |
| 86 | v |
| 87 | w |
| 88 | x |
| 89 | y |
| 90 | z |
| 91 | Windows Key / Left ⌘ / Chromebook Search key |
| 92 | right window key |
| 93 | Windows Menu / Right ⌘ |
| 95 | sleep |
| 96 | numpad 0 |
| 97 | numpad 1 |
| 98 | numpad 2 |
| 99 | numpad 3 |
| 100 | numpad 4 |
| 101 | numpad 5 |
| 102 | numpad 6 |
| 103 | numpad 7 |
| 104 | numpad 8 |
| 105 | numpad 9 |
| 106 | multiply |
| 107 | add |
| 108 | numpad period (firefox) |
| 109 | subtract |
| 110 | decimal point |
| 111 | divide |
| 112 | f1 |
| 113 | f2 |
| 114 | f3 |
| 115 | f4 |
| 116 | f5 |
| 117 | f6 |
| 118 | f7 |
| 119 | f8 |
| 120 | f9 |
| 121 | f10 |
| 122 | f11 |
| 123 | f12 |
| 124 | f13 |
| 125 | f14 |
| 126 | f15 |
| 127 | f16 |
| 128 | f17 |
| 129 | f18 |
| 130 | f19 |
| 131 | f20 |
| 132 | f21 |
| 133 | f22 |
| 134 | f23 |
| 135 | f24 |
| 136 | f25 |
| 137 | f26 |
| 138 | f27 |
| 139 | f28 |
| 140 | f29 |
| 141 | f30 |
| 142 | f31 |
| 143 | f32 |
| 144 | num lock |
| 145 | scroll lock |
| 151 | airplane mode |
| 160 | ^ |
| 161 | ! |
| 162 | ؛ (arabic semicolon) |
| 163 | # |
| 164 | $ |
| 165 | ù |
| 166 | page backward |
| 167 | page forward |
| 168 | refresh |
| 169 | closing paren (AZERTY) |
| 170 | * |
| 171 | ~ + * key |
| 172 | home key |
| 173 | minus (firefox), mute/unmute |
| 174 | decrease volume level |
| 175 | increase volume level |
| 176 | next |
| 177 | previous |
| 178 | stop |
| 179 | play/pause |
| 180 | |
| 181 | mute/unmute (firefox) |
| 182 | decrease volume level (firefox) |
| 183 | increase volume level (firefox) |
| 186 | semi-colon / ñ |
| 187 | equal sign |
| 188 | comma |
| 189 | dash |
| 190 | period |
| 191 | forward slash / ç |
| 192 | grave accent / ñ / æ / ö |
| 193 | ?, / or ° |
| 194 | numpad period (chrome) |
| 219 | open bracket |
| 220 | back slash |
| 221 | close bracket / å |
| 222 | single quote / ø / ä |
| 223 | ` |
| 224 | left or right ⌘ key (firefox) |
| 225 | altgr |
| 226 | < /git >, left back slash |
| 230 | GNOME Compose Key |
| 231 | ç |
| 233 | XF86Forward |
| 234 | XF86Back |
| 235 | non-conversion |
| 240 | alphanumeric |
| 242 | hiragana/katakana |
| 243 | half-width/full-width |
| 244 | kanji |
| 251 | unlock trackpad (Chrome/Edge) |
| 255 | toggle touchpad |
| -99 | Mouse Left |
| -98 | Mouse Right |
| -97 | Mouse Middle |
| -94 | Mouse Button 6 |
| -95 | Mouse Button 5 |
History
Java Edition
Notes
References
Template:Navbox Java Edition technical Template:Navbox Bedrock Edition
Minecraft:fr:Codes de touche Minecraft:hu:Billentyűkódok Minecraft:ja:キーコード Minecraft:nl:Toetscodes Minecraft:pt:Códigos de teclas Minecraft:ru:Коды клавиш Minecraft:uk:Коди клавіш Minecraft:zh:键控代码