Love2D APILoveOn this pageLove Description: Love 11.5 root module. This file only declares the currently implemented subset. conf Type: Function. Description: If a file called conf.lua is present in your game folder (or .love file), it is run before the LÖVE modules are loaded. You can use this file to overwrite the love.conf function, which is later called by the LÖVE 'boot' script. Using the love.conf function, you can set some configuration options, and change things like the default size of the window, which modules are loaded, and other stuff. Signature: conf: function(config: Config) | nil Parameters: ParameterTypeDescriptionconfigConfigThe love.conf function takes one argument: a table filled with all the default values which you can overwrite to your liking. If you want to change the default window size, for instance, do: function love.conf(t) t.window.width = 1024 t.window.height = 768 end If you don't need the physics module or joystick module, do the following. function love.conf(t) t.modules.joystick = false t.modules.physics = false end Setting unused modules to false is encouraged when you release your game. It reduces startup time slightly (especially if the joystick module is disabled) and reduces memory usage (slightly). Note that you can't disable love.filesystem; it's mandatory. The same goes for the love module itself. love.graphics needs love.window to be enabled. identity: This flag determines the name of the save directory for your game. Note that you can only specify the name, not the location where it will be created: t.identity = "gabe_HL3" -- Correct t.identity = "c:/Users/gabe/HL3" -- Incorrect Alternatively love.filesystem.setIdentity can be used to set the save directory outside of the config file. (Default: nil.) appendidentity: This flag determines if game directory should be searched first then save directory (true) or otherwise (false) (Default: false.) version: t.version should be a string, representing the version of LÖVE for which your game was made. It should be formatted as "X.Y.Z" where X is the major release number, Y the minor, and Z the patch level. It allows LÖVE to display a warning if it isn't compatible. Its default is the version of LÖVE running. (Default: "11.5".) console: Determines whether a console should be opened alongside the game window (Windows only) or not. accelerometerjoystick: Sets whether the device accelerometer on iOS and Android should be exposed as a 3-axis Joystick. Disabling the accelerometer when it's not used may reduce CPU usage. (Default: true.) externalstorage: Sets whether files are saved in external storage (true) or internal storage (false) on Android. (Default: false.) gammacorrect: Determines whether gamma-correct rendering is enabled, when the system supports it. (Default: false.) audio: Audio options. audio.mic: Request microphone permission from the user. When user allows it, love.audio.getRecordingDevices will lists recording devices available. Otherwise, love.audio.getRecordingDevices returns empty table and a message is shown to inform user when called. (Default: false.) audio.mixwithsystem: Sets whether background audio / music from other apps should play while LÖVE is open. See love.system.hasBackgroundMusic for more details. (Default: true.) window: It is possible to defer window creation until love.window.setMode is first called in your code. To do so, set t.window = nil in love.conf (or t.screen = nil in older versions.) If this is done, LÖVE may crash if any function from love.graphics is called before the first love.window.setMode in your code. The t.window table was named t.screen in versions prior to 0.9.0. The t.screen table doesn't exist in love.conf in 0.9.0, and the t.window table doesn't exist in love.conf in 0.8.0. This means love.conf will fail to execute (therefore it will fall back to default values) if care is not taken to use the correct table for the LÖVE version being used. window.title: Sets the title of the window the game is in. Alternatively love.window.setTitle can be used to change the window title outside of the config file. (Default: "Untitled".) window.icon: A filepath to an image to use as the window's icon. Not all operating systems support very large icon images. The icon can also be changed with love.window.setIcon. (Default: nil.) window.width: Sets the window's dimensions. If these flags are set to 0 LÖVE automatically uses the user's desktop dimensions. (Default: 800.) window.height: Sets the window's dimensions. If these flags are set to 0 LÖVE automatically uses the user's desktop dimensions. (Default: 600.) window.borderless: Removes all border visuals from the window. Note that the effects may wary between operating systems. (Default: false.) window.resizable: If set to true this allows the user to resize the game's window. (Default: false.) window.minwidth: Sets the minimum width and height for the game's window if it can be resized by the user. If you set lower values to window.width and window.height LÖVE will always favor the minimum dimensions set via window.minwidth and window.minheight. (Default: 1.) window.minheight: Sets the minimum width and height for the game's window if it can be resized by the user. If you set lower values to window.width and window.height LÖVE will always favor the minimum dimensions set via window.minwidth and window.minheight. (Default: 1.) window.fullscreen: Whether to run the game in fullscreen (true) or windowed (false) mode. The fullscreen can also be toggled via love.window.setFullscreen or love.window.setMode. (Default: false.) window.fullscreentype: Specifies the type of fullscreen mode to use (normal or desktop). Generally the desktop is recommended, as it is less restrictive than normal mode on some operating systems. (Default: "desktop".) window.usedpiscale: Sets whetever to enable or disable automatic DPI scaling. (Default: true.) window.vsync: Enables or deactivates vertical synchronization. Vsync tries to keep the game at a steady framerate and can prevent issues like screen tearing. It is recommended to keep vsync activated if you don't know about the possible implications of turning it off. Before LÖVE 11.0, this value was boolean (true or false). Since LÖVE 11.0, this value is number (1 to enable vsync, 0 to disable vsync, -1 to use adaptive vsync when supported). Note that in iOS, vertical synchronization is always enabled and cannot be changed. (Default: true.) window.depth: The number of bits per sample in the depth buffer (16/24/32, default nil) (Default: nil.) window.stencil: Then number of bits per sample in the depth buffer (generally 8, default nil) (Default: nil.) window.msaa: The number of samples to use with multi-sampled antialiasing. (Default: 0.) window.display: The index of the display to show the window in, if multiple monitors are available. (Default: 1.) window.highdpi: See love.window.getPixelScale, love.window.toPixels, and love.window.fromPixels. It is recommended to keep this option disabled if you can't test your game on a Mac or iOS system with a Retina display, because code will need tweaking to make sure things look correct. (Default: false.) window.x: Determines the position of the window on the user's screen. Alternatively love.window.setPosition can be used to change the position on the fly. (Default: nil.) window.y: Determines the position of the window on the user's screen. Alternatively love.window.setPosition can be used to change the position on the fly. (Default: nil.) modules: Module options. modules.audio: Enable the audio module. (Default: true.) modules.event: Enable the event module. (Default: true.) modules.graphics: Enable the graphics module. (Default: true.) modules.image: Enable the image module. (Default: true.) modules.joystick: Enable the joystick module. (Default: true.) modules.keyboard: Enable the keyboard module. (Default: true.) modules.math: Enable the math module. (Default: true.) modules.mouse: Enable the mouse module. (Default: true.) modules.physics: Enable the physics module. (Default: true.) modules.sound: Enable the sound module. (Default: true.) modules.system: Enable the system module. (Default: true.) modules.timer: Enable the timer module. (Default: true.) modules.touch: Enable the touch module. (Default: true.) modules.video: Enable the video module. (Default: true.) modules.window: Enable the window module. (Default: true.) modules.thread: Enable the thread module. (Default: true.) load Type: Function. Description: This function is called exactly once at the beginning of the game. Overload details: In LÖVE 11.0, the passed arguments excludes the game name and the fused command-line flag (if exist) when runs from non-fused LÖVE executable. Previous version pass the argument as-is without any filtering. Signature: load: function() | nil update Type: Function. Description: Callback function used to update the state of the game every frame. Signature: update: function(deltaTime: number) | nil Parameters: ParameterTypeDescriptiondeltaTimenumberTime since the last update in seconds. draw Type: Function. Description: Callback function used to draw on the screen every frame. Signature: draw: function() | nil quit Type: Field. Description: Callback function triggered when the game is closed. Signature: quit: QuitCallback | nil keypressed Type: Function. Description: Callback function triggered when a key is pressed. Overload details: Scancodes are keyboard layout-independent, so the scancode 'w' will be generated if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are. Key repeat needs to be enabled with love.keyboard.setKeyRepeat for repeat keypress events to be received. This does not affect love.textinput. Key repeat needs to be enabled with love.keyboard.setKeyRepeat for repeat keypress events to be received. Signature: keypressed: function(key: string, scancode: string, is_repeat: boolean) | nil Parameters: ParameterTypeDescriptionkeystringCharacter of the pressed key. Depending on the overload: Character of the key pressed.scancodestringThe scancode representing the pressed key.is_repeatbooleanWhether this keypress event is a repeat. The delay between key repeats depends on the user's system settings. keyreleased Type: Function. Description: Callback function triggered when a keyboard key is released. Overload details: Scancodes are keyboard layout-independent, so the scancode 'w' will be used if the key in the same place as the 'w' key on an American keyboard is pressed, no matter what the key is labelled or what the user's operating system settings are. Signature: keyreleased: function(key: string, scancode: string) | nil Parameters: ParameterTypeDescriptionkeystringCharacter of the released key.scancodestringThe scancode representing the released key. textinput Type: Function. Description: Called when text has been entered by the user. For example if shift-2 is pressed on an American keyboard layout, the text '@' will be generated. Overload details: Although Lua strings can store UTF-8 encoded unicode text just fine, many functions in Lua's string library will not treat the text as you might expect. For example, #text (and string.len(text)) will give the number of ''bytes'' in the string, rather than the number of unicode characters. The Lua wiki and a presentation by one of Lua's creators give more in-depth explanations, with some tips. The utf8 library can be used to operate on UTF-8 encoded unicode text (such as the text argument given in this function.) On Android and iOS, textinput is disabled by default; call love.keyboard.setTextInput to enable it. Signature: textinput: function(text: string) | nil Parameters: ParameterTypeDescriptiontextstringThe UTF-8 encoded unicode text. textedited Type: Function. Description: Called when the candidate text for an IME (Input Method Editor) has changed. The candidate text is not the final text that the user will eventually choose. Use love.textinput for that. Signature: textedited: function(text: string, start: integer, length: integer) | nil Parameters: ParameterTypeDescriptiontextstringThe UTF-8 encoded unicode candidate text.startintegerThe start cursor of the selected candidate text.lengthintegerThe length of the selected candidate text. May be 0. mousepressed Type: Function. Description: Callback function triggered when a mouse button is pressed. Overload details: Use love.wheelmoved to detect mouse wheel motion. It will not register as a button press in version 0.10.0 and newer. Signature: mousepressed: function(x: number, y: number, button: integer, is_touch: boolean, presses: integer) | nil Parameters: ParameterTypeDescriptionxnumberMouse x position, in pixels.ynumberMouse y position, in pixels.buttonintegerThe button index that was pressed. 1 is the primary mouse button, 2 is the secondary mouse button and 3 is the middle button. Further buttons are mouse dependent.is_touchbooleanTrue if the mouse button press originated from a touchscreen touch-press.pressesintegerThe number of presses in a short time frame and small area, used to simulate double, triple clicks mousereleased Type: Function. Description: Callback function triggered when a mouse button is released. Signature: mousereleased: function(x: number, y: number, button: integer, is_touch: boolean, presses: integer) | nil Parameters: ParameterTypeDescriptionxnumberMouse x position, in pixels.ynumberMouse y position, in pixels.buttonintegerThe button index that was released. 1 is the primary mouse button, 2 is the secondary mouse button and 3 is the middle button. Further buttons are mouse dependent.is_touchbooleanTrue if the mouse button release originated from a touchscreen touch-release.pressesintegerThe number of presses in a short time frame and small area, used to simulate double, triple clicks mousemoved Type: Function. Description: Callback function triggered when the mouse is moved. Overload details: If Relative Mode is enabled for the mouse, the '''dx''' and '''dy''' arguments of this callback will update but '''x''' and '''y''' are not guaranteed to. Signature: mousemoved: function(x: number, y: number, delta_x: number, delta_y: number, is_touch: boolean) | nil Parameters: ParameterTypeDescriptionxnumberThe mouse position on the x-axis.ynumberThe mouse position on the y-axis.delta_xnumberThe amount moved along the x-axis since the last time love.mousemoved was called.delta_ynumberThe amount moved along the y-axis since the last time love.mousemoved was called.is_touchbooleanTrue if the mouse button press originated from a touchscreen touch-press. wheelmoved Type: Function. Description: Callback function triggered when the mouse wheel is moved. Signature: wheelmoved: function(x: number, y: number) | nil Parameters: ParameterTypeDescriptionxnumberAmount of horizontal mouse wheel movement. Positive values indicate movement to the right.ynumberAmount of vertical mouse wheel movement. Positive values indicate upward movement. touchpressed Type: Function. Description: Callback function triggered when the touch screen is touched. Overload details: The identifier is only guaranteed to be unique for the specific touch press until love.touchreleased is called with that identifier, at which point it may be reused for new touch presses. The unofficial Android and iOS ports of LÖVE 0.9.2 reported touch positions as normalized values in the range of 1, whereas this API reports positions in pixels. Signature: touchpressed: function(id: TouchID, x: number, y: number, delta_x: number, delta_y: number, pressure: number) | nil Parameters: ParameterTypeDescriptionidTouchIDThe identifier for the touch press.xnumberThe x-axis position of the touch press inside the window, in pixels.ynumberThe y-axis position of the touch press inside the window, in pixels.delta_xnumberThe x-axis movement of the touch press inside the window, in pixels. This should always be zero.delta_ynumberThe y-axis movement of the touch press inside the window, in pixels. This should always be zero.pressurenumberThe amount of pressure being applied. Most touch screens aren't pressure sensitive, in which case the pressure will be 1. touchreleased Type: Function. Description: Callback function triggered when the touch screen stops being touched. Overload details: The identifier is only guaranteed to be unique for the specific touch press until love.touchreleased is called with that identifier, at which point it may be reused for new touch presses. The unofficial Android and iOS ports of LÖVE 0.9.2 reported touch positions as normalized values in the range of 1, whereas this API reports positions in pixels. Signature: touchreleased: function(id: TouchID, x: number, y: number, delta_x: number, delta_y: number, pressure: number) | nil Parameters: ParameterTypeDescriptionidTouchIDThe identifier for the touch press.xnumberThe x-axis position of the touch inside the window, in pixels.ynumberThe y-axis position of the touch inside the window, in pixels.delta_xnumberThe x-axis movement of the touch inside the window, in pixels.delta_ynumberThe y-axis movement of the touch inside the window, in pixels.pressurenumberThe amount of pressure being applied. Most touch screens aren't pressure sensitive, in which case the pressure will be 1. touchmoved Type: Function. Description: Callback function triggered when a touch press moves inside the touch screen. Overload details: The identifier is only guaranteed to be unique for the specific touch press until love.touchreleased is called with that identifier, at which point it may be reused for new touch presses. The unofficial Android and iOS ports of LÖVE 0.9.2 reported touch positions as normalized values in the range of 1, whereas this API reports positions in pixels. Signature: touchmoved: function(id: TouchID, x: number, y: number, delta_x: number, delta_y: number, pressure: number) | nil Parameters: ParameterTypeDescriptionidTouchIDThe identifier for the touch press.xnumberThe x-axis position of the touch inside the window, in pixels.ynumberThe y-axis position of the touch inside the window, in pixels.delta_xnumberThe x-axis movement of the touch inside the window, in pixels.delta_ynumberThe y-axis movement of the touch inside the window, in pixels.pressurenumberThe amount of pressure being applied. Most touch screens aren't pressure sensitive, in which case the pressure will be 1. threaderror Type: Function. Description: Callback function triggered when a Thread encounters an error. Signature: threaderror: function(thread: Thread, error: string) | nil Parameters: ParameterTypeDescriptionthreadThreadThe thread which produced the error.errorstringThe error message. joystickadded Type: Function. Description: Called when a Joystick is connected. Overload details: This callback is also triggered after love.load for every Joystick which was already connected when the game started up. Signature: joystickadded: function(joystick: Joystick) | nil Parameters: ParameterTypeDescriptionjoystickJoystickThe newly connected Joystick object. joystickremoved Type: Function. Description: Called when a Joystick is disconnected. Signature: joystickremoved: function(joystick: Joystick) | nil Parameters: ParameterTypeDescriptionjoystickJoystickThe now-disconnected Joystick object. joystickpressed Type: Function. Description: Called when a joystick button is pressed. Signature: joystickpressed: function(joystick: Joystick, button: integer) | nil Parameters: ParameterTypeDescriptionjoystickJoystickThe joystick object.buttonintegerThe button number. joystickreleased Type: Function. Description: Called when a joystick button is released. Signature: joystickreleased: function(joystick: Joystick, button: integer) | nil Parameters: ParameterTypeDescriptionjoystickJoystickThe joystick object.buttonintegerThe button number. joystickaxis Type: Function. Description: Called when a joystick axis moves. Signature: joystickaxis: function(joystick: Joystick, axis: integer, value: number) | nil Parameters: ParameterTypeDescriptionjoystickJoystickThe joystick object.axisintegerThe axis number.valuenumberThe new axis value. joystickhat Type: Function. Description: Called when a joystick hat direction changes. Signature: joystickhat: function(joystick: Joystick, hat: integer, direction: string) | nil Parameters: ParameterTypeDescriptionjoystickJoystickThe joystick object.hatintegerThe hat number.directionstringThe new hat direction. gamepadpressed Type: Function. Description: Called when a Joystick's virtual gamepad button is pressed. Signature: gamepadpressed: function(joystick: Joystick, button: string) | nil Parameters: ParameterTypeDescriptionjoystickJoystickThe joystick object.buttonstringThe virtual gamepad button. gamepadreleased Type: Function. Description: Called when a Joystick's virtual gamepad button is released. Signature: gamepadreleased: function(joystick: Joystick, button: string) | nil Parameters: ParameterTypeDescriptionjoystickJoystickThe joystick object.buttonstringThe virtual gamepad button. gamepadaxis Type: Function. Description: Called when a Joystick's virtual gamepad axis is moved. Signature: gamepadaxis: function(joystick: Joystick, axis: string, value: number) | nil Parameters: ParameterTypeDescriptionjoystickJoystickThe joystick object.axisstringThe virtual gamepad axis.valuenumberThe new axis value. run Type: Function. Description: Compatibility entry point; Dora remains the application loop owner. The main function, containing the main loop. A sensible default is used when left out. Signature: run: function() Love.DrawMode Type: Enumeration. Description: Available values for DrawMode. Signature: enum DrawMode "fill" "line"end Love.ArcMode Type: Enumeration. Description: Available values for ArcMode. Signature: enum ArcMode "open" "closed" "pie"end Love.LineStyle Type: Enumeration. Description: Available values for LineStyle. Signature: enum LineStyle "rough" "smooth"end Love.LineJoin Type: Enumeration. Description: Available values for LineJoin. Signature: enum LineJoin "none" "miter" "bevel"end Love.BlendMode Type: Enumeration. Description: Available values for BlendMode. Signature: enum BlendMode "alpha" "add" "subtract" "multiply" "replace" "screen" "premultiplied"end Love.BlendAlphaMode Type: Enumeration. Description: Available values for BlendAlphaMode. Signature: enum BlendAlphaMode "alphamultiply" "premultiplied"end Love.AlignMode Type: Enumeration. Description: Available values for AlignMode. Signature: enum AlignMode "left" "center" "right" "justify"end Love.FilterMode Type: Enumeration. Description: Available values for FilterMode. Signature: enum FilterMode "linear" "nearest"end Love.WrapMode Type: Enumeration. Description: Available values for WrapMode. Signature: enum WrapMode "clamp" "clampzero" "repeat" "mirroredrepeat"end Love.TextureType Type: Enumeration. Description: Available values for TextureType. Signature: enum TextureType "2d" "array" "cube" "volume"end Love.StencilAction Type: Enumeration. Description: Available values for StencilAction. Signature: enum StencilAction "replace" "increment" "decrement" "incrementwrap" "decrementwrap" "invert"end Love.StencilMode Type: Enumeration. Description: Available high-level stencil states. Signature: enum StencilMode "off" "draw" "test" "custom"end Love.CompareMode Type: Enumeration. Description: Available values for CompareMode. Signature: enum CompareMode "less" "lequal" "equal" "gequal" "greater" "notequal" "always" "never"end Love.MeshDrawMode Type: Enumeration. Description: Available values for MeshDrawMode. Signature: enum MeshDrawMode "fan" "strip" "triangles" "points"end Love.MeshUsage Type: Enumeration. Description: Available values for MeshUsage. Signature: enum MeshUsage "stream" "dynamic" "static"end Love.VertexDataType Type: Enumeration. Description: Available values for VertexDataType. Signature: enum VertexDataType "float" "byte" "unorm16"end Love.AttributeStep Type: Enumeration. Description: Available values for AttributeStep. Signature: enum AttributeStep "pervertex" "perinstance"end Love.IndexDataType Type: Enumeration. Description: Available values for IndexDataType. Signature: enum IndexDataType "uint16" "uint32"end Love.MeshCullMode Type: Enumeration. Description: Available values for MeshCullMode. Signature: enum MeshCullMode "none" "back" "front"end Love.Winding Type: Enumeration. Description: Available values for Winding. Signature: enum Winding "cw" "ccw"end Love.ParticleInsertMode Type: Enumeration. Description: Available values for ParticleInsertMode. Signature: enum ParticleInsertMode "top" "bottom" "random"end Love.ParticleAreaSpreadDistribution Type: Enumeration. Description: Available values for ParticleAreaSpreadDistribution. Signature: enum ParticleAreaSpreadDistribution "none" "uniform" "normal" "ellipse" "borderellipse" "borderrectangle"end Love.CanvasFormat Type: Enumeration. Description: Available values for CanvasFormat. Signature: enum CanvasFormat "normal" "hdr" "r8" "rg8" "rgba8" "srgba8" "r16" "rg16" "rgba16" "r16f" "rg16f" "rgba16f" "r32f" "rg32f" "rgba32f" "la8" "rgba4" "rgb5a1" "rgb565" "rgb10a2" "rg11b10f" "stencil8" "depth16" "depth24" "depth32f" "depth24stencil8" "depth32fstencil8"end Love.ImagePixelFormat Type: Enumeration. Description: Available values for ImagePixelFormat. Signature: enum ImagePixelFormat "r8" "rg8" "rgba8" "r16" "rg16" "rgba16" "r16f" "rg16f" "rgba16f" "r32f" "rg32f" "rgba32f" "rgba4" "rgb5a1" "rgb565" "rgb10a2" "rg11b10f"end Love.CompressedPixelFormat Type: Enumeration. Description: Available values for CompressedPixelFormat. Signature: enum CompressedPixelFormat "DXT1" "DXT3" "DXT5" "BC4" "BC4s" "BC5" "BC5s" "BC6h" "BC6hs" "BC7" "PVR1rgb2" "PVR1rgb4" "PVR1rgba2" "PVR1rgba4" "ETC1" "ETC2rgb" "ETC2rgba" "ETC2rgba1" "EACr" "EACrs" "EACrg" "EACrgs" "ASTC4x4" "ASTC5x4" "ASTC5x5" "ASTC6x5" "ASTC6x6" "ASTC8x5" "ASTC8x6" "ASTC8x8" "ASTC10x5" "ASTC10x6" "ASTC10x8" "ASTC10x10" "ASTC12x10" "ASTC12x12"end Love.MatrixLayout Type: Enumeration. Description: Available values for MatrixLayout. Signature: enum MatrixLayout "row" "column"end Love.FileType Type: Enumeration. Description: Available values for FileType. Signature: enum FileType "file" "directory"end Love.FileMode Type: Enumeration. Description: Available values for FileMode. Signature: enum FileMode "c" "r" "w" "a"end Love.OpenFileMode Type: Enumeration. Description: Available values for OpenFileMode. Signature: enum OpenFileMode "r" "w" "a"end Love.BufferMode Type: Enumeration. Description: Available values for BufferMode. Signature: enum BufferMode "none" "line" "full"end Love.DataContainer Type: Enumeration. Description: Available values for DataContainer. Signature: enum DataContainer "data" "string"end Love.EncodeFormat Type: Enumeration. Description: Available values for EncodeFormat. Signature: enum EncodeFormat "hex" "base64"end Love.CompressionFormat Type: Enumeration. Description: Available values for CompressionFormat. Signature: enum CompressionFormat "zlib" "gzip" "deflate" "lz4"end Love.HashFunction Type: Enumeration. Description: Available values for HashFunction. Signature: enum HashFunction "md5" "sha1" "sha224" "sha256" "sha384" "sha512"end Love.SystemCursor Type: Enumeration. Description: Available values for SystemCursor. Signature: enum SystemCursor "arrow" "ibeam" "wait" "crosshair" "waitarrow" "sizenwse" "sizenesw" "sizewe" "sizens" "sizeall" "no" "hand"end Love.GamepadButton Type: Enumeration. Description: Available values for GamepadButton. Signature: enum GamepadButton "a" "b" "x" "y" "back" "guide" "start" "leftstick" "rightstick" "leftshoulder" "rightshoulder" "dpup" "dpdown" "dpleft" "dpright" "misc1" "paddle1" "paddle2" "paddle3" "paddle4" "touchpad"end Love.GamepadAxis Type: Enumeration. Description: Available values for GamepadAxis. Signature: enum GamepadAxis "leftx" "lefty" "rightx" "righty" "triggerleft" "triggerright"end Love.JoystickHat Type: Enumeration. Description: Available values for JoystickHat. Signature: enum JoystickHat "c" "u" "r" "d" "l" "ru" "rd" "lu" "ld"end Love.JoystickInputType Type: Enumeration. Description: Available values for JoystickInputType. Signature: enum JoystickInputType "axis" "button" "hat"end Love.OS Type: Enumeration. Description: Available values for OS. Signature: enum OS "OS X" "Windows" "Linux" "Android" "iOS" "UWP" "Unknown"end Love.PowerState Type: Enumeration. Description: Available values for PowerState. Signature: enum PowerState "unknown" "battery" "nobattery" "charging" "charged"end Love.SourceType Type: Enumeration. Description: Available values for SourceType. Signature: enum SourceType "static" "stream" "queue"end Love.TimeUnit Type: Enumeration. Description: Available values for TimeUnit. Signature: enum TimeUnit "seconds" "samples"end Love.DistanceModel Type: Enumeration. Description: Available values for DistanceModel. Signature: enum DistanceModel "none" "inverse" "inverseclamped" "linear" "linearclamped" "exponent" "exponentclamped"end Love.AudioFilterType Type: Enumeration. Description: Available values for AudioFilterType. Signature: enum AudioFilterType "lowpass" "highpass" "bandpass"end Love.AudioEffectType Type: Enumeration. Description: Available values for AudioEffectType. Signature: enum AudioEffectType "reverb" "chorus" "distortion" "echo" "flanger" "ringmodulator" "compressor" "equalizer"end Love.BodyType Type: Enumeration. Description: Available values for BodyType. Signature: enum BodyType "static" "dynamic" "kinematic"end