########### ISteamInput ########### .. note:: This documentation is auto-generated. Methods marked with 🤖 are automatically generated bindings. Methods marked with ✍️ are manually implemented and methods marked with ✋ are currently not implemented. List of Functions ----------------- * :func:`Input.ActivateActionSet` * :func:`Input.ActivateActionSetLayer` * :func:`Input.BNewDataAvailable` * :func:`Input.BWaitForData` * :func:`Input.DeactivateActionSetLayer` * :func:`Input.DeactivateAllActionSetLayers` * :func:`Input.EnableDeviceCallbacks` * :func:`Input.GetActionOriginFromXboxOrigin` * :func:`Input.GetActionSetHandle` * :func:`Input.GetActiveActionSetLayers` * :func:`Input.GetAnalogActionData` * :func:`Input.GetAnalogActionHandle` * :func:`Input.GetAnalogActionOrigins` * :func:`Input.GetConnectedControllers` * :func:`Input.GetControllerForGamepadIndex` * :func:`Input.GetCurrentActionSet` * :func:`Input.GetDeviceBindingRevision` * :func:`Input.GetDigitalActionData` * :func:`Input.GetDigitalActionHandle` * :func:`Input.GetDigitalActionOrigins` * :func:`Input.GetGamepadIndexForController` * :func:`Input.GetGlyphForActionOrigin_Legacy` * :func:`Input.GetGlyphForXboxOrigin` * :func:`Input.GetGlyphPNGForActionOrigin` * :func:`Input.GetGlyphSVGForActionOrigin` * :func:`Input.GetInputTypeForHandle` * :func:`Input.GetMotionData` * :func:`Input.GetRemotePlaySessionID` * :func:`Input.GetSessionInputConfigurationSettings` * :func:`Input.GetStringForActionOrigin` * :func:`Input.GetStringForAnalogActionName` * :func:`Input.GetStringForDigitalActionName` * :func:`Input.GetStringForXboxOrigin` * :func:`Input.Init` * :func:`Input.Legacy_TriggerHapticPulse` * :func:`Input.Legacy_TriggerRepeatedHapticPulse` * :func:`Input.RunFrame` * :func:`Input.SetInputActionManifestFilePath` * :func:`Input.SetLEDColor` * :func:`Input.ShowBindingPanel` * :func:`Input.Shutdown` * :func:`Input.StopAnalogActionMomentum` * :func:`Input.TranslateActionOrigin` * :func:`Input.TriggerSimpleHapticEvent` * :func:`Input.TriggerVibration` * :func:`Input.TriggerVibrationExtended` List of Callbacks ----------------- * :func:`Input.OnSteamInputDeviceConnected` * :func:`Input.OnSteamInputDeviceDisconnected` * :func:`Input.OnSteamInputConfigurationLoaded` * :func:`Input.OnSteamInputGamepadSlotChange` Function Reference ------------------ .. function:: Input.ActivateActionSet(inputHandle, actionSetHandle) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :param uint64 - InputActionSetHandle_t actionSetHandle: :SteamWorks: `ActivateActionSet `_ **Example**:: local menuActionSet = Steam.Input.GetActionSetHandle('MenuControls') Steam.Input.ActivateActionSet(Steam.STEAM_INPUT_HANDLE_ALL_CONTROLLERS, menuActionSet) .. function:: Input.ActivateActionSetLayer(inputHandle, actionSetLayerHandle) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :param uint64 - InputActionSetHandle_t actionSetLayerHandle: :SteamWorks: `ActivateActionSetLayer `_ .. function:: Input.BNewDataAvailable() 🤖 **Auto-generated binding** :returns: (bool) Return value :SteamWorks: `BNewDataAvailable `_ .. function:: Input.BWaitForData(bWaitForever, unTimeout) 🤖 **Auto-generated binding** :param bool bWaitForever: :param int unTimeout: :returns: (bool) Return value :SteamWorks: `BWaitForData `_ .. function:: Input.DeactivateActionSetLayer(inputHandle, actionSetLayerHandle) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :param uint64 - InputActionSetHandle_t actionSetLayerHandle: :SteamWorks: `DeactivateActionSetLayer `_ .. function:: Input.DeactivateAllActionSetLayers(inputHandle) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :SteamWorks: `DeactivateAllActionSetLayers `_ .. function:: Input.EnableDeviceCallbacks() 🤖 **Auto-generated binding** :SteamWorks: `EnableDeviceCallbacks `_ .. function:: Input.GetActionOriginFromXboxOrigin(inputHandle, eOrigin) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :param int - EXboxOrigin eOrigin: :returns: (int - EInputActionOrigin) Return value :SteamWorks: `GetActionOriginFromXboxOrigin `_ .. function:: Input.GetActionSetHandle(pszActionSetName) 🤖 **Auto-generated binding** :param str? pszActionSetName: :returns: (uint64 - InputActionSetHandle_t) Return value :SteamWorks: `GetActionSetHandle `_ **Example**:: local menuActionSet = Steam.Input.GetActionSetHandle('MenuControls') local gameActionSet = Steam.Input.GetActionSetHandle('GameControls') .. function:: Input.GetActiveActionSetLayers(inputHandle) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :returns: (int) Return value :returns: (uint64[]) ``handlesOut`` :SteamWorks: `GetActiveActionSetLayers `_ **Signature differences from C++ API:** * Parameter ``handlesOut`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. .. function:: Input.GetAnalogActionData(inputHandle, analogActionHandle) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :param uint64 - InputAnalogActionHandle_t analogActionHandle: :returns: (:ref:`InputAnalogActionData_t `) Return value :SteamWorks: `GetAnalogActionData `_ **Example**:: local data = Steam.Input.GetAnalogActionData(controllerHandle, moveActionHandle) player.move(data.x, data.y) .. function:: Input.GetAnalogActionHandle(pszActionName) 🤖 **Auto-generated binding** :param str? pszActionName: :returns: (uint64 - InputAnalogActionHandle_t) Return value :SteamWorks: `GetAnalogActionHandle `_ **Example**:: local moveAction = Steam.Input.GetAnalogActionHandle('Move') local aimAction = Steam.Input.GetAnalogActionHandle('Aim') .. function:: Input.GetAnalogActionOrigins(inputHandle, actionSetHandle, analogActionHandle) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :param uint64 - InputActionSetHandle_t actionSetHandle: :param uint64 - InputAnalogActionHandle_t analogActionHandle: :returns: (int) Return value :returns: (int[]) ``originsOut`` :SteamWorks: `GetAnalogActionOrigins `_ **Signature differences from C++ API:** * Parameter ``originsOut`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. .. function:: Input.GetConnectedControllers() 🤖 **Auto-generated binding** :returns: (int) Return value :returns: (uint64[]) ``handlesOut`` :SteamWorks: `GetConnectedControllers `_ **Signature differences from C++ API:** * Parameter ``handlesOut`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. **Example**:: local _, controllers = Steam.Input.GetConnectedControllers() for _, handle in ipairs(controllers) do local inputType = Steam.Input.GetInputTypeForHandle(handle) print('Controller type:', inputType) end .. function:: Input.GetControllerForGamepadIndex(nIndex) 🤖 **Auto-generated binding** :param int nIndex: :returns: (uint64 - InputHandle_t) Return value :SteamWorks: `GetControllerForGamepadIndex `_ .. function:: Input.GetCurrentActionSet(inputHandle) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :returns: (uint64 - InputActionSetHandle_t) Return value :SteamWorks: `GetCurrentActionSet `_ **Example**:: local currentSet = Steam.Input.GetCurrentActionSet(controllerHandle) .. function:: Input.GetDeviceBindingRevision(inputHandle) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :returns: (bool) Return value :returns: (int) ``pMajor`` :returns: (int) ``pMinor`` :SteamWorks: `GetDeviceBindingRevision `_ **Signature differences from C++ API:** * Parameter ``pMajor`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. * Parameter ``pMinor`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. .. function:: Input.GetDigitalActionData(inputHandle, digitalActionHandle) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :param uint64 - InputDigitalActionHandle_t digitalActionHandle: :returns: (:ref:`InputDigitalActionData_t `) Return value :SteamWorks: `GetDigitalActionData `_ **Example**:: local actionData = Steam.Input.GetDigitalActionData(controllerHandle, jumpActionHandle) if actionData.bState then player.jump() end .. function:: Input.GetDigitalActionHandle(pszActionName) 🤖 **Auto-generated binding** :param str? pszActionName: :returns: (uint64 - InputDigitalActionHandle_t) Return value :SteamWorks: `GetDigitalActionHandle `_ **Example**:: local jumpAction = Steam.Input.GetDigitalActionHandle('Jump') local attackAction = Steam.Input.GetDigitalActionHandle('Attack') .. function:: Input.GetDigitalActionOrigins(inputHandle, actionSetHandle, digitalActionHandle) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :param uint64 - InputActionSetHandle_t actionSetHandle: :param uint64 - InputDigitalActionHandle_t digitalActionHandle: :returns: (int) Return value :returns: (int[]) ``originsOut`` :SteamWorks: `GetDigitalActionOrigins `_ **Signature differences from C++ API:** * Parameter ``originsOut`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. .. function:: Input.GetGamepadIndexForController(ulinputHandle) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t ulinputHandle: :returns: (int) Return value :SteamWorks: `GetGamepadIndexForController `_ .. function:: Input.GetGlyphForActionOrigin_Legacy(eOrigin) 🤖 **Auto-generated binding** :param int - EInputActionOrigin eOrigin: :returns: (str) Return value :SteamWorks: `GetGlyphForActionOrigin_Legacy `_ .. function:: Input.GetGlyphForXboxOrigin(eOrigin) 🤖 **Auto-generated binding** :param int - EXboxOrigin eOrigin: :returns: (str) Return value :SteamWorks: `GetGlyphForXboxOrigin `_ .. function:: Input.GetGlyphPNGForActionOrigin(eOrigin, eSize, unFlags) 🤖 **Auto-generated binding** :param int - EInputActionOrigin eOrigin: :param int - ESteamInputGlyphSize eSize: :param int unFlags: :returns: (str) Return value :SteamWorks: `GetGlyphPNGForActionOrigin `_ **Example**:: local _, origins = Steam.Input.GetDigitalActionOrigins(controllerHandle, actionSetHandle, attackActionHandle) if #origins > 0 then local glyphPath = Steam.Input.GetGlyphPNGForActionOrigin(origins[1], Steam.k_ESteamInputGlyphSize_Medium, 0) loadButtonIcon(glyphPath) end .. function:: Input.GetGlyphSVGForActionOrigin(eOrigin, unFlags) 🤖 **Auto-generated binding** :param int - EInputActionOrigin eOrigin: :param int unFlags: :returns: (str) Return value :SteamWorks: `GetGlyphSVGForActionOrigin `_ .. function:: Input.GetInputTypeForHandle(inputHandle) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :returns: (int - ESteamInputType) Return value :SteamWorks: `GetInputTypeForHandle `_ **Notes:** * See :func:`Input.GetConnectedControllers`'s example. .. function:: Input.GetMotionData(inputHandle) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :returns: (:ref:`InputMotionData_t `) Return value :SteamWorks: `GetMotionData `_ **Example**:: local data = Steam.Input.GetMotionData(controllerHandle) -- Use quaternion fields for gyro aiming updateGyroAiming(data.rotQuatX, data.rotQuatY, data.rotQuatZ, data.rotQuatW) .. function:: Input.GetRemotePlaySessionID(inputHandle) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :returns: (int) Return value :SteamWorks: `GetRemotePlaySessionID `_ .. function:: Input.GetSessionInputConfigurationSettings() 🤖 **Auto-generated binding** :returns: (int) Return value :SteamWorks: `GetSessionInputConfigurationSettings `_ .. function:: Input.GetStringForActionOrigin(eOrigin) 🤖 **Auto-generated binding** :param int - EInputActionOrigin eOrigin: :returns: (str) Return value :SteamWorks: `GetStringForActionOrigin `_ **Example**:: local _, origins = Steam.Input.GetDigitalActionOrigins(controllerHandle, actionSetHandle, jumpActionHandle) if #origins > 0 then local label = Steam.Input.GetStringForActionOrigin(origins[1]) print('Press ' .. label .. ' to jump') end .. function:: Input.GetStringForAnalogActionName(eActionHandle) 🤖 **Auto-generated binding** :param uint64 - InputAnalogActionHandle_t eActionHandle: :returns: (str) Return value :SteamWorks: `GetStringForAnalogActionName `_ .. function:: Input.GetStringForDigitalActionName(eActionHandle) 🤖 **Auto-generated binding** :param uint64 - InputDigitalActionHandle_t eActionHandle: :returns: (str) Return value :SteamWorks: `GetStringForDigitalActionName `_ .. function:: Input.GetStringForXboxOrigin(eOrigin) 🤖 **Auto-generated binding** :param int - EXboxOrigin eOrigin: :returns: (str) Return value :SteamWorks: `GetStringForXboxOrigin `_ .. function:: Input.Init(bExplicitlyCallRunFrame) 🤖 **Auto-generated binding** :param bool bExplicitlyCallRunFrame: :returns: (bool) Return value :SteamWorks: `Init `_ **Example**:: Steam.Input.Init(false) .. function:: Input.Legacy_TriggerHapticPulse(inputHandle, eTargetPad, usDurationMicroSec) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :param int - ESteamControllerPad eTargetPad: :param int - unsigned short usDurationMicroSec: :SteamWorks: `Legacy_TriggerHapticPulse `_ .. function:: Input.Legacy_TriggerRepeatedHapticPulse(inputHandle, eTargetPad, usDurationMicroSec, usOffMicroSec, unRepeat, nFlags) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :param int - ESteamControllerPad eTargetPad: :param int - unsigned short usDurationMicroSec: :param int - unsigned short usOffMicroSec: :param int - unsigned short unRepeat: :param int - unsigned int nFlags: :SteamWorks: `Legacy_TriggerRepeatedHapticPulse `_ .. function:: Input.RunFrame(bReservedValue) 🤖 **Auto-generated binding** :param bool bReservedValue: :SteamWorks: `RunFrame `_ **Example**:: Steam.Input.RunFrame(false) .. function:: Input.SetInputActionManifestFilePath(pchInputActionManifestAbsolutePath) 🤖 **Auto-generated binding** :param str? pchInputActionManifestAbsolutePath: :returns: (bool) Return value :SteamWorks: `SetInputActionManifestFilePath `_ .. function:: Input.SetLEDColor(inputHandle, nColorR, nColorG, nColorB, nFlags) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :param int nColorR: :param int nColorG: :param int nColorB: :param int - unsigned int nFlags: :SteamWorks: `SetLEDColor `_ **Example**:: -- Set controller LED to red when player is low on health Steam.Input.SetLEDColor(controllerHandle, 255, 0, 0, 0) .. function:: Input.ShowBindingPanel(inputHandle) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :returns: (bool) Return value :SteamWorks: `ShowBindingPanel `_ **Example**:: Steam.Input.ShowBindingPanel(controllerHandle) .. function:: Input.Shutdown() 🤖 **Auto-generated binding** :returns: (bool) Return value :SteamWorks: `Shutdown `_ .. function:: Input.StopAnalogActionMomentum(inputHandle, eAction) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :param uint64 - InputAnalogActionHandle_t eAction: :SteamWorks: `StopAnalogActionMomentum `_ .. function:: Input.TranslateActionOrigin(eDestinationInputType, eSourceOrigin) 🤖 **Auto-generated binding** :param int - ESteamInputType eDestinationInputType: :param int - EInputActionOrigin eSourceOrigin: :returns: (int - EInputActionOrigin) Return value :SteamWorks: `TranslateActionOrigin `_ .. function:: Input.TriggerSimpleHapticEvent(inputHandle, eHapticLocation, nIntensity, nGainDB, nOtherIntensity, nOtherGainDB) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :param int - EControllerHapticLocation eHapticLocation: :param int nIntensity: :param str - char nGainDB: :param int nOtherIntensity: :param str - char nOtherGainDB: :SteamWorks: `TriggerSimpleHapticEvent `_ .. function:: Input.TriggerVibration(inputHandle, usLeftSpeed, usRightSpeed) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :param int - unsigned short usLeftSpeed: :param int - unsigned short usRightSpeed: :SteamWorks: `TriggerVibration `_ **Example**:: -- Brief vibration feedback on hit Steam.Input.TriggerVibration(controllerHandle, 32000, 32000) .. function:: Input.TriggerVibrationExtended(inputHandle, usLeftSpeed, usRightSpeed, usLeftTriggerSpeed, usRightTriggerSpeed) 🤖 **Auto-generated binding** :param uint64 - InputHandle_t inputHandle: :param int - unsigned short usLeftSpeed: :param int - unsigned short usRightSpeed: :param int - unsigned short usLeftTriggerSpeed: :param int - unsigned short usRightTriggerSpeed: :SteamWorks: `TriggerVibrationExtended `_ Unimplemented Methods --------------------- .. function:: Input.EnableActionEventCallbacks ✋ **Not implemented** - unsupported type: SteamInputActionEventCallbackPointer :SteamWorks: `EnableActionEventCallbacks `_ .. function:: Input.SetDualSenseTriggerEffect ✋ **Not implemented** - unsupported type: const ScePadTriggerEffectParam * :SteamWorks: `SetDualSenseTriggerEffect `_ Callbacks --------- .. function:: Input.OnSteamInputDeviceConnected Callback for `SteamInputDeviceConnected_t `_ **callback(data)** receives: * **data.m_ulConnectedDeviceHandle** *(uint64 - InputHandle_t)* **Example**:: function Steam.Input.OnSteamInputDeviceConnected(data) print('Controller connected:', data.m_ulConnectedDeviceHandle) rebuildControllerList() end .. function:: Input.OnSteamInputDeviceDisconnected Callback for `SteamInputDeviceDisconnected_t `_ **callback(data)** receives: * **data.m_ulDisconnectedDeviceHandle** *(uint64 - InputHandle_t)* **Example**:: function Steam.Input.OnSteamInputDeviceDisconnected(data) print('Controller disconnected:', data.m_ulDisconnectedDeviceHandle) rebuildControllerList() end .. function:: Input.OnSteamInputConfigurationLoaded Callback for `SteamInputConfigurationLoaded_t `_ **callback(data)** receives: * **data.m_unAppID** *(int - AppId_t)* * **data.m_ulDeviceHandle** *(uint64 - InputHandle_t)* * **data.m_ulMappingCreator** *(uint64 - CSteamID)* * **data.m_unMajorRevision** *(int)* * **data.m_unMinorRevision** *(int)* * **data.m_bUsesSteamInputAPI** *(bool)* * **data.m_bUsesGamepadAPI** *(bool)* .. function:: Input.OnSteamInputGamepadSlotChange Callback for `SteamInputGamepadSlotChange_t `_ **callback(data)** receives: * **data.m_unAppID** *(int - AppId_t)* * **data.m_ulDeviceHandle** *(uint64 - InputHandle_t)* * **data.m_eDeviceType** *(int - ESteamInputType)* * **data.m_nOldGamepadSlot** *(int)* * **data.m_nNewGamepadSlot** *(int)*