lovr is the single global table that is exposed to every LÖVR app. It contains a set of modules and a set of callbacks.


Modules are the what of your app; you can use the functions in modules to tell LÖVR to do things. For example, you can draw things on the screen, figure out what buttons on a controller are pressed, or load a 3D model from a file. Each module does what it says on the tin, so the lovr.graphics module deals with rendering graphics and lovr.headset allows you to interact with VR hardware.

lovr.audioPlays sound.
lovr.dataExposes low level functions for working with data.
lovr.eventHandles events from the operating system.
lovr.filesystemProvides access to the filesystem.
lovr.graphicsRenders graphics.
lovr.headsetConnects to VR hardware.
lovr.mathContains useful math helpers.
lovr.physicsSimulates 3D physics.
lovr.threadAllows you to work with background threads.
lovr.timerExposes a high resolution timer.


Callbacks are the when of the application; you write code inside callbacks which LÖVR then calls at certain points in time. For example, the lovr.load callback is called once at startup, and lovr.focus is called when the VR application gains or loses input focus.

lovr.confCalled to read configuration settings at startup.
lovr.drawCalled continuously to render frames to the display.
lovr.errhandCalled when an error occurs.
lovr.focusCalled when the application gets or loses focus.
lovr.keypressedCalled when a key is pressed.
lovr.keyreleasedCalled when a key is released.
lovr.loadCalled once at startup.
lovr.logCalled when a message is logged.
lovr.mirrorCalled to render content to the desktop window.
lovr.quitCalled before quitting.
lovr.resizeCalled when the window is resized.
lovr.restartCalled when restarting.
lovr.runThe main entry point.
lovr.textinputCalled when text has been entered.
lovr.threaderrorCalled when an error occurs in a thread.
lovr.updateCalled every frame to update the application logic.


The lovr module also exposes some functions for retrieving information about the system.

lovr.getOSGet the current operating system.
lovr.getVersionGet the current version.


A few helpful third-party libraries are included with LÖVR for convenience.

enetMultiplayer utilities.
jsonEncodes and decodes JSON.