Prototype/CustomInput
The prototype docs have moved to a new website with an improved format. This documentation page can now be found here: https://lua-api.factorio.com/latest/prototypes/CustomInputPrototype.html
This wiki page is no longer updated and will be removed at some point in the future, so please update your browser bookmarks or other links that sent you here. If you'd like to contribute to the new docs, you can leave your feedback on the forums.
Template:Prototype parent
Used for custom keyboard shortcuts/keybindings in mods. The key associated with the custom input can be changed in the options. This means that key_sequence
is simply the default keybinding.
Mandatory properties
Inherits all properties from PrototypeBase.
name
Inherited from PrototypeBase. It is also the name for the event that is raised when they key (combination) is pressed and action is "lua", see Tutorial:Script interfaces.
Template:Prototype property The default key sequence for this custom input.
- "" (empty string) for unassigned
- "mouse-button-2" etc for mouse buttons, mouse-button-3 for middle mouse button
- "mouse-wheel-up", "mouse-wheel-down", "mouse-wheel-left", "mouse-wheel-right" for mouse wheel
- " + " is used to separate modifier keys from normal keys:
"ALT + G"
- For modifier keys, the following names are used: "CONTROL", "SHIFT", "ALT", "COMMAND"
- A keybinding can contain an unlimited amount of modifier keys (listed above) but only one normal key (listed below).
These names are available for the normal keys
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0 RETURN ESCAPE BACKSPACE TAB SPACE MINUS EQUALS LEFTBRACKET RIGHTBRACKET BACKSLASH NONUSHASH SEMICOLON APOSTROPHE GRAVE COMMA PERIOD SLASH CAPSLOCK F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 PRINTSCREEN SCROLLLOCK PAUSE INSERT HOME PAGEUP DELETE END PAGEDOWN RIGHT LEFT DOWN UP NUMLOCKCLEAR KP_DIVIDE KP_MULTIPLY KP_MINUS KP_PLUS KP_ENTER KP_1 KP_2 KP_3 KP_4 KP_5 KP_6 KP_7 KP_8 KP_9 KP_0 KP_PERIOD NONUSBACKSLASH APPLICATION POWER KP_EQUALS F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 EXECUTE HELP MENU SELECT STOP AGAIN UNDO CUT COPY PASTE FIND MUTE VOLUMEUP VOLUMEDOWN KP_COMMA KP_EQUALSAS400 INTERNATIONAL1 INTERNATIONAL2 INTERNATIONAL3 INTERNATIONAL4 INTERNATIONAL5 INTERNATIONAL6 INTERNATIONAL7 INTERNATIONAL8 INTERNATIONAL9 LANG1 LANG2 LANG3 LANG4 LANG5 LANG6 LANG7 LANG8 LANG9 ALTERASE SYSREQ CANCEL CLEAR PRIOR RETURN2 SEPARATOR OUT OPER CLEARAGAIN CRSEL EXSEL KP_00 KP_000 THOUSANDSSEPARATOR DECIMALSEPARATOR CURRENCYUNIT CURRENCYSUBUNIT KP_LEFTPAREN KP_RIGHTPAREN KP_LEFTBRACE KP_RIGHTBRACE KP_TAB KP_BACKSPACE KP_A KP_B KP_C KP_D KP_E KP_F KP_XOR KP_POWER KP_PERCENT KP_LESS KP_GREATER KP_AMPERSAND KP_DBLAMPERSAND KP_VERTICALBAR KP_DBLVERTICALBAR KP_COLON KP_HASH KP_SPACE KP_AT KP_EXCLAM KP_MEMSTORE KP_MEMRECALL KP_MEMCLEAR KP_MEMADD KP_MEMSUBTRACT KP_MEMMULTIPLY KP_MEMDIVIDE KP_PLUSMINUS KP_CLEAR KP_CLEARENTRY KP_BINARY KP_OCTAL KP_DECIMAL KP_HEXADECIMAL LCTRL LSHIFT LALT LGUI RCTRL RSHIFT RALT RGUI MODE AUDIONEXT AUDIOPREV AUDIOSTOP AUDIOPLAY AUDIOMUTE MEDIASELECT WWW MAIL CALCULATOR COMPUTER AC_SEARCH AC_HOME AC_BACK AC_FORWARD AC_STOP AC_REFRESH AC_BOOKMARKS BRIGHTNESSDOWN BRIGHTNESSUP DISPLAYSWITCH KBDILLUMTOGGLE KBDILLUMDOWN KBDILLUMUP EJECT SLEEP APP1 APP2 AUDIOREWIND AUDIOFASTFORWARD
Optional properties
Template:Prototype property The alternative keybinding for this control. See #key_sequence.
Template:Prototype property The controller (game pad) keybinding for this control. See #key_sequence.
Template:Prototype property The alternative controller (game pad) keybinding for this control. See #key_sequence.
Template:Prototype property When a custom-input is linked to a game control it won't show up in the control-settings GUI and will fire when the linked control is pressed. [1]
List of internal names of game controls
action-bar-select-page-1 action-bar-select-page-10 action-bar-select-page-2 action-bar-select-page-3 action-bar-select-page-4 action-bar-select-page-5 action-bar-select-page-6 action-bar-select-page-7 action-bar-select-page-8 action-bar-select-page-9 activate-tooltip add-station add-temporary-station alt-zoom-in alt-zoom-out build build-ghost build-with-obstacle-avoidance cancel-craft cancel-craft-5 cancel-craft-all clear-cursor confirm-gui confirm-message connect-train controller-gui-crafting-tab controller-gui-logistics-tab copy copy-entity-settings craft craft-5 craft-all cursor-split cut cycle-blueprint-backwards cycle-blueprint-forwards cycle-clipboard-backwards cycle-clipboard-forwards debug-reset-zoom debug-reset-zoom-2x debug-toggle-atlas-gui debug-toggle-basic debug-toggle-debug-settings decrease-ui-scale disconnect-train drag-map drop-cursor editor-clone-item editor-delete-item editor-next-variation editor-previous-variation editor-remove-scripting-object editor-reset-speed editor-set-clone-brush-destination editor-set-clone-brush-source editor-speed-down editor-speed-up editor-switch-to-surface editor-tick-once editor-toggle-pause fast-entity-split fast-entity-transfer flip-blueprint-horizontal flip-blueprint-vertical focus-search increase-ui-scale inventory-split inventory-transfer larger-terrain-building-area logistic-networks mine move-down move-left move-right move-up next-active-quick-bar next-player-in-replay next-weapon open-character-gui open-gui open-item open-prototype-explorer-gui open-prototypes-gui open-technology-gui open-trains-gui order-to-follow paste paste-entity-settings pause-game pick-item pick-items place-in-chat place-ping previous-active-quick-bar previous-mod previous-technology production-statistics quick-bar-button-1 quick-bar-button-1-secondary quick-bar-button-10 quick-bar-button-10-secondary quick-bar-button-2 quick-bar-button-2-secondary quick-bar-button-3 quick-bar-button-3-secondary quick-bar-button-4 quick-bar-button-4-secondary quick-bar-button-5 quick-bar-button-5-secondary quick-bar-button-6 quick-bar-button-6-secondary quick-bar-button-7 quick-bar-button-7-secondary quick-bar-button-8 quick-bar-button-8-secondary quick-bar-button-9 quick-bar-button-9-secondary remove-pole-cables reset-ui-scale reverse-rotate reverse-select rotate rotate-active-quick-bars select-for-blueprint select-for-cancel-deconstruct shoot-enemy shoot-selected show-info smaller-terrain-building-area smart-pipette stack-split stack-transfer toggle-blueprint-library toggle-console toggle-driving toggle-filter toggle-gui-debug toggle-gui-glows toggle-gui-shadows toggle-gui-style-view toggle-map toggle-menu undo zoom-in zoom-out
Example to use the same key sequence as the clear-cursor hotkey:
key_sequence = ""
linked_game_control = "clear-cursor"
Template:Prototype property Sets whether internal game events associated with the same key sequence should be fired or blocked. If they are fired ("none"), then the custom input event will happen before the internal game event.
Template:Prototype property If this custom input is enabled. Disabled custom inputs exist but are not used by the game. If disabled, no event is raised when the input is used.
Template:Prototype property If true, the type and name of the currently selected prototype will be provided as "selected_prototype" in the raised lua event. This also works in GUI's, not just the game world.[2]
This will also return an item in the cursor such as copper-wire or rail-planner, if nothing is beneath the cursor.
Template:Prototype property Name of a Prototype/Item. It will be created when this input is pressed and action is set to "spawn-item". The item must have the "spawnable" flag set.
Template:Prototype property One of "lua", "spawn-item", "toggle-personal-roboport", "toggle-personal-logistic-requests" and "toggle-equipment-movement-bonus".
A lua event is only raised if the action is "lua".