love

When beginning to write games using LÖVE, the most important parts of the API are the callbacks: love.load to do one-time setup of your game, love.update which is used to manage your game's state frame-to-frame, and love.draw which is used to render the game state onto the screen.

More interactive games will override additional callbacks in order to handle input from the user, and other aspects of a full-featured game.

LÖVE provides default placeholders for these callbacks, which you can override inside your own code by creating your own function with the same name as the callback:

-- Load some default values for our rectangle.
function love.load()
    x, y, w, h = 20, 20, 60, 20
end

-- Increase the size of the rectangle every frame.
function love.update(dt)
    w = w + 1
    h = h + 1
end

-- Draw a coloured rectangle.
function love.draw()
    love.graphics.setColor(0, 0.4, 0.4)
    love.graphics.rectangle("fill", x, y, w, h)
end

Modules

love.audio Provides of audio interface for playback/recording sound.
love.data Provides functionality for creating and transforming data. Added since 11.0
love.event Manages events, like keypresses. Added since 0.6.0
love.filesystem Provides an interface to the user's filesystem.
love.font Allows you to work with fonts. Added since 0.7.0
love.graphics Drawing of shapes and images, management of screen geometry.
love.image Provides an interface to decode encoded image data.
love.joystick Provides an interface to connected joysticks. Added since 0.5.0
love.keyboard Provides an interface to the user's keyboard.
love.math Provides system-independent mathematical functions. Added since 0.9.0
love.mouse Provides an interface to the user's mouse.
love.physics Can simulate 2D rigid body physics in a realistic manner. Added since 0.4.0
love.sound This module is responsible for decoding sound files.
love.system Provides access to information about the user's system. Added since 0.9.0
love.thread Allows you to work with threads. Added since 0.7.0
love.timer Provides high-resolution timing functionality.
love.touch Provides an interface to touch-screen presses. Added since 0.10.0
love.video This module is responsible for decoding and streaming video files. Added since 0.10.0
love.window Provides an interface for the program's window. Added since 0.9.0

Third-party modules

lua-enet Multiplayer networking module for games. Added since 0.9.0
socket Module for HTTP, TCP, and UDP networking. Added since 0.5.0
utf8 Provides basic support for manipulating UTF-8 strings. Added since 0.9.2

Functions

love.getVersion Gets the current running version of LÖVE. Added since 0.9.1
love.hasDeprecationOutput Gets whether LÖVE displays warnings when using deprecated functionality. Added since 11.0
love.isVersionCompatible Gets whether the given version is compatible with the current running version of LÖVE. Added since 0.10.0
love.setDeprecationOutput Sets whether LÖVE displays warnings when using deprecated functionality. Added since 11.0

Types

Data The superclass of all data.
Object The superclass of all LÖVE types.
Variant The types supported by love.thread and love.event.

Callbacks

General

Config Files Game configuration settings.
love.draw Callback function used to draw on the screen every frame.
love.errhand The error handler, used to display error messages. Deprecated in 11.0
love.errorhandler The error handler, used to display error messages. Added since 11.0
love.load This function is called exactly once at the beginning of the game.
love.lowmemory Callback function triggered when the system is running out of memory on mobile devices. Added since 0.10.0
love.quit Callback function triggered when the game is closed. Added since 0.7.0
love.run The main function, containing the main loop. A sensible default is used when left out.
love.threaderror Callback function triggered when a Thread encounters an error. Added since 0.9.0
love.update Callback function used to update the state of the game every frame.

Joystick

love.gamepadaxis Called when a Joystick's virtual gamepad axis is moved. Added since 0.9.0
love.gamepadpressed Called when a Joystick's virtual gamepad button is pressed. Added since 0.9.0
love.gamepadreleased Called when a Joystick's virtual gamepad button is released. Added since 0.9.0
love.joystickadded Called when a Joystick is connected. Added since 0.9.0
love.joystickaxis Called when a joystick axis moves. Added since 0.9.0
love.joystickhat Called when a joystick hat direction changes. Added since 0.9.0
love.joystickpressed Called when a joystick button is pressed.
love.joystickreleased Called when a joystick button is released.
love.joystickremoved Called when a Joystick is disconnected. Added since 0.9.0


Other Languages