Difference between revisions of "Config Files"

(Potato.)
 
m (window.vsync)
(78 intermediate revisions by 25 users not shown)
Line 1: Line 1:
 
== Introduction ==
 
== Introduction ==
 
 
If a file called <code>conf.lua</code> 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 <code>love.conf</code> function, which is later called by the LÖVE 'boot' script. Using the <code>love.conf</code> function, you can set some configuration options, and change things like the default size of the window, which modules are loaded, and other stuff.
 
If a file called <code>conf.lua</code> 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 <code>love.conf</code> function, which is later called by the LÖVE 'boot' script. Using the <code>love.conf</code> function, you can set some configuration options, and change things like the default size of the window, which modules are loaded, and other stuff.
  
 
== love.conf ==
 
== love.conf ==
 
+
The <code>love.conf</code> 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:
The <code>love.conf</code> 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 screen size, for instance, do:
 
 
<source lang="lua">
 
<source lang="lua">
 
function love.conf(t)
 
function love.conf(t)
     t.screen.height = 1024
+
     t.window.width = 1024
     t.screen.width = 768
+
     t.window.height = 768
 
end
 
end
 
</source>
 
</source>
Line 21: Line 19:
 
</source>
 
</source>
  
Setting unused modules to false is encouraged when you release your game. It reduces startup time (slightly) and reduces memory usage (slightly). Here is a full list of options and their default values:
+
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).
<source lang="lua">  
+
 
 +
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.
 +
 
 +
In LÖVE version 0.9.2 and earlier, errors in the config file will cause the game to not launch and no error message to appear. If the game doesn't load, check the config file for errors first. In version 0.10.2 and later, errors in the config will now show the blue error screen showing the error in the config file.
 +
 
 +
== Current Configuration File ==
 +
Here is a full list of options and their default values for LÖVE [[11.0]]:
 +
<source lang="lua">
 +
function love.conf(t)
 +
    t.identity = nil                    -- The name of the save directory (string)
 +
    t.appendidentity = false            -- Search files in source directory before save directory (boolean)
 +
    t.version = "11.0"                  -- The LÖVE version this game was made for (string)
 +
    t.console = false                  -- Attach a console (boolean, Windows only)
 +
    t.accelerometerjoystick = true      -- Enable the accelerometer on iOS and Android by exposing it as a Joystick (boolean)
 +
    t.externalstorage = false          -- True to save files (and read from the save directory) in external storage on Android (boolean)
 +
    t.gammacorrect = false              -- Enable gamma-correct rendering, when supported by the system (boolean)
 +
 
 +
    t.audio.mixwithsystem = true        -- Keep background music playing when opening LOVE (boolean, iOS and Android only)
 +
 
 +
    t.window.title = "Untitled"        -- The window title (string)
 +
    t.window.icon = nil                -- Filepath to an image to use as the window's icon (string)
 +
    t.window.width = 800                -- The window width (number)
 +
    t.window.height = 600              -- The window height (number)
 +
    t.window.borderless = false        -- Remove all border visuals from the window (boolean)
 +
    t.window.resizable = false          -- Let the window be user-resizable (boolean)
 +
    t.window.minwidth = 1              -- Minimum window width if the window is resizable (number)
 +
    t.window.minheight = 1              -- Minimum window height if the window is resizable (number)
 +
    t.window.fullscreen = false        -- Enable fullscreen (boolean)
 +
    t.window.fullscreentype = "desktop" -- Choose between "desktop" fullscreen or "exclusive" fullscreen mode (string)
 +
    t.window.vsync = 1                  -- Vertical sync mode (number)
 +
    t.window.msaa = 0                  -- The number of samples to use with multi-sampled antialiasing (number)
 +
    t.window.depth = nil                -- The number of bits per sample in the depth buffer
 +
    t.window.stencil = nil              -- The number of bits per sample in the stencil buffer
 +
    t.window.display = 1                -- Index of the monitor to show the window in (number)
 +
    t.window.highdpi = false            -- Enable high-dpi mode for the window on a Retina display (boolean)
 +
    t.window.x = nil                    -- The x-coordinate of the window's position in the specified display (number)
 +
    t.window.y = nil                    -- The y-coordinate of the window's position in the specified display (number)
 +
 
 +
    t.modules.audio = true              -- Enable the audio module (boolean)
 +
    t.modules.data = true              -- Enable the data module (boolean)
 +
    t.modules.event = true              -- Enable the event module (boolean)
 +
    t.modules.font = true              -- Enable the font module (boolean)
 +
    t.modules.graphics = true          -- Enable the graphics module (boolean)
 +
    t.modules.image = true              -- Enable the image module (boolean)
 +
    t.modules.joystick = true          -- Enable the joystick module (boolean)
 +
    t.modules.keyboard = true          -- Enable the keyboard module (boolean)
 +
    t.modules.math = true              -- Enable the math module (boolean)
 +
    t.modules.mouse = true              -- Enable the mouse module (boolean)
 +
    t.modules.physics = true            -- Enable the physics module (boolean)
 +
    t.modules.sound = true              -- Enable the sound module (boolean)
 +
    t.modules.system = true            -- Enable the system module (boolean)
 +
    t.modules.thread = true            -- Enable the thread module (boolean)
 +
    t.modules.timer = true              -- Enable the timer module (boolean), Disabling it will result 0 delta time in love.update
 +
    t.modules.touch = true              -- Enable the touch module (boolean)
 +
    t.modules.video = true              -- Enable the video module (boolean)
 +
    t.modules.window = true            -- Enable the window module (boolean)
 +
end
 +
</source>
 +
 
 +
== Flags ==
 +
==== 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:
 +
<source lang="lua">
 +
t.identity = "gabe_HL3" -- Correct
 +
t.identity = "c:/Users/gabe/HL3" -- Incorrect
 +
</source>
 +
Alternatively [[love.filesystem.setIdentity]] can be used to set the save directory outside of the config file.
 +
 
 +
==== appendidentity ====
 +
{{newin|[[11.0]]|110|type=flag}}
 +
This flag determines if game directory should be searched first then save directory (<code>true</code>) or otherwise (<code>false</code>)
 +
 
 +
==== version ====
 +
{{newin|[[0.8.0]]|080|type=flag}}
 +
<code>t.version</code> should be a string, representing the version of LÖVE for which your game was made.
 +
 
 +
Before [[11.0]], it should be formatted as <code>"''X.Y.Z''"</code> where <code>''X''</code> is the major release number, <code>''Y''</code> the minor, and <code>''Z''</code> the patch level. Since 11.0, it should be formatted as <code>"''X.Y''"</code> where <code>''X''</code> and <code>''Y''</code> are the major and minor release respectively.
 +
 
 +
If set in the config file of the game, LÖVE will display a warning if the game isn't compatible with the current version of LÖVE being used to run the game. Its default is the version of LÖVE running.
 +
 
 +
==== console ====
 +
Determines whether a console should be opened alongside the game window (Windows only) or not. Note: On OSX you can get console output by running LÖVE through the terminal, or on Windows with LÖVE [[0.10.2]], by running <code>lovec.exe</code> instead of <code>love.exe</code>.
 +
 
 +
==== accelerometerjoystick ====
 +
{{newin|[[0.10.0]]|100|type=flag}}
 +
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.
 +
 
 +
==== externalstorage ====
 +
{{newin|[[0.10.1]]|101|type=flag}}
 +
Sets whether files are saved in external storage (true) or internal storage (false) on Android.
 +
 
 +
==== gammacorrect ====
 +
{{newin|[[0.10.0]]|100|type=flag}}
 +
Determines whether [[love.graphics.isGammaCorrect|gamma-correct rendering]] is enabled, when the system supports it.
 +
 
 +
==== audio.mixwithsystem ====
 +
{{newin|[[11.0]]|110|type=flag}}
 +
Sets whether background audio / music from other apps should play while LÖVE is open. See [[love.system.hasBackgroundMusic]] for more details.
 +
 
 +
==== window ====
 +
{{newin|[[0.9.0]]|090|type=flags|plural='y'}}
 +
It is possible to defer window creation until [[love.window.setMode]] is first called in your code. To do so, set <code>t.window = nil</code> in love.conf (or <code>t.screen = nil</code> 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 <code>t.window</code> table was named <code>t.screen</code> in versions prior to [[0.9.0]]. The <code>t.screen</code> table doesn't exist in love.conf in 0.9.0, and the <code>t.window</code> 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 ====
 +
{{newin|[[0.9.0]]|090|type=flag}}
 +
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.
 +
 
 +
==== window.icon ====
 +
{{newin|[[0.9.0]]|090|type=flag}}
 +
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]].
 +
 
 +
==== window.width & window.height ====
 +
{{newin|[[0.9.0]]|090|type=flags|plural='y'}}
 +
Sets the window's dimensions. If these flags are set to 0 LÖVE automatically uses the user's desktop dimensions.
 +
 
 +
==== window.borderless ====
 +
{{newin|[[0.9.0]]|090|type=flag}}
 +
Removes all border visuals from the window. Note that the effects may wary between operating systems.
 +
 
 +
==== window.resizable ====
 +
{{newin|[[0.9.0]]|090|type=flag}}
 +
If set to true this allows the user to resize the game's window.
 +
 
 +
==== window.minwidth & window.minheight ====
 +
{{newin|[[0.9.0]]|090|type=flags|plural='y'}}
 +
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 <code>window.width</code> and <code>window.height</code> LÖVE will always favor the minimum dimensions set via <code>window.minwidth</code> and <code>window.minheight</code>.
 +
 
 +
==== window.fullscreen ====
 +
{{newin|[[0.9.0]]|090|type=flag}}
 +
Wether to run the game in fullscreen (<code>true</code>) or windowed (<code>false</code>) mode. The fullscreen can also be toggled via [[love.window.setFullscreen]] or [[love.window.setMode]].
 +
 
 +
==== window.fullscreentype ====
 +
{{newin|[[0.9.0]]|090|type=flag}}
 +
Specifies the [[FullscreenType|type of fullscreen]] mode to use (<code>exclusive</code> or <code>desktop</code>). Generally the <code>desktop</code> is recommended, as it is less restrictive than <code>exclusive</code> mode on some operating systems. (Note: In [[0.9.2]] and earlier, use <code>normal</code> instead of <code>exclusive</code>.)
 +
 
 +
==== window.vsync ====
 +
{{newin|[[0.9.0]]|090|type=flag}}
 +
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 (<code>true</code> or <code>false</code>). 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.
 +
 
 +
==== window.depth ====
 +
{{newin|[[11.0]]|110|type=flag}}
 +
The number of bits per sample in the depth buffer (16/24/32, default <code>nil</code>)
 +
 
 +
==== window.stencil ====
 +
{{newin|[[11.0]]|110|type=flag}}
 +
Then number of bits per sample in the depth buffer (generally 8, default <code>nil</code>)
 +
 
 +
==== window.msaa ====
 +
{{newin|[[0.9.2]]|092|type=flag}}
 +
The number of samples to use with multi-sampled antialiasing.
 +
 
 +
==== window.display ====
 +
{{newin|[[0.9.0]]|090|type=flag}}
 +
The index of the display to show the window in, if multiple monitors are available.
 +
 
 +
==== window.highdpi ====
 +
{{newin|[[0.9.1]]|091|type=flag}}
 +
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.
 +
 
 +
Please note that since [[11.0]], high DPI is always enabled in Android regardless of this flag!
 +
 
 +
==== window.x & window.y ====
 +
{{newin|[[0.9.2]]|092|type=flags|plural='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.
 +
 
 +
==== window.fsaa ====
 +
{{newinoldin|[[0.9.0]]|090|[[0.10.0]]|100|type=flag|text=This flag has been replaced by the window.msaa flag}}
 +
The number of samples to use with multi-sampled antialiasing.
 +
 
 +
==== window.srgb ====
 +
{{newinoldin|[[0.9.1]]|091|[[0.10.0]]|100|type=flag|text=This flag has been replaced by the gammacorrect flag}}
 +
Enabling this window flag will automatically convert the colors of everything drawn to the main screen from the linear RGB colorspace to the sRGB colorspace - the window's surface is treated as gamma-space sRGB. This is only one component of gamma-correct rendering, an advanced topic which is easy to mess up, so it's recommended to keep this option disabled if you're not sure about its implications.
 +
 
 +
==== Release Mode ====
 +
{{newinoldin|[[0.8.0]]|080|[[0.9.0]]|090|type=flag}}
 +
 
 +
If <code>t.release</code> is enabled, LÖVE uses the [[love.releaseerrhand|release error handler]], which is sparse on information by default, and can, of course, be overridden.
 +
 
 +
The default release mode error handler also outputs a message to the player informing them to contact the author using the values <i>title, author and url</i> as specified in conf.lua.
 +
 
 +
When a fused game in release mode is run it will not save in the love save dir, but rather one for itself, whereas previously it would be %APPDATA%\\LOVE\\game on Windows, it now is %APPDATA%\\game. This concept applies to other platforms as well.
 +
 
 +
== Older Versions ==
 +
Here is a full list of options and their default values for LÖVE [[0.10.1]] and [[0.10.2]]:
 +
<source lang="lua">
 +
function love.conf(t)
 +
    t.identity = nil                    -- The name of the save directory (string)
 +
    t.version = "0.10.2"                -- The LÖVE version this game was made for (string)
 +
    t.console = false                  -- Attach a console (boolean, Windows only)
 +
    t.accelerometerjoystick = true      -- Enable the accelerometer on iOS and Android by exposing it as a Joystick (boolean)
 +
    t.externalstorage = false          -- True to save files (and read from the save directory) in external storage on Android (boolean)
 +
    t.gammacorrect = false              -- Enable gamma-correct rendering, when supported by the system (boolean)
 +
 
 +
    t.window.title = "Untitled"        -- The window title (string)
 +
    t.window.icon = nil                -- Filepath to an image to use as the window's icon (string)
 +
    t.window.width = 800                -- The window width (number)
 +
    t.window.height = 600              -- The window height (number)
 +
    t.window.borderless = false        -- Remove all border visuals from the window (boolean)
 +
    t.window.resizable = false          -- Let the window be user-resizable (boolean)
 +
    t.window.minwidth = 1              -- Minimum window width if the window is resizable (number)
 +
    t.window.minheight = 1              -- Minimum window height if the window is resizable (number)
 +
    t.window.fullscreen = false        -- Enable fullscreen (boolean)
 +
    t.window.fullscreentype = "desktop" -- Choose between "desktop" fullscreen or "exclusive" fullscreen mode (string)
 +
    t.window.vsync = true              -- Enable vertical sync (boolean)
 +
    t.window.msaa = 0                  -- The number of samples to use with multi-sampled antialiasing (number)
 +
    t.window.display = 1                -- Index of the monitor to show the window in (number)
 +
    t.window.highdpi = false            -- Enable high-dpi mode for the window on a Retina display (boolean)
 +
    t.window.x = nil                    -- The x-coordinate of the window's position in the specified display (number)
 +
    t.window.y = nil                    -- The y-coordinate of the window's position in the specified display (number)
 +
 
 +
    t.modules.audio = true              -- Enable the audio module (boolean)
 +
    t.modules.event = true              -- Enable the event module (boolean)
 +
    t.modules.graphics = true          -- Enable the graphics module (boolean)
 +
    t.modules.image = true              -- Enable the image module (boolean)
 +
    t.modules.joystick = true          -- Enable the joystick module (boolean)
 +
    t.modules.keyboard = true          -- Enable the keyboard module (boolean)
 +
    t.modules.math = true              -- Enable the math module (boolean)
 +
    t.modules.mouse = true              -- Enable the mouse module (boolean)
 +
    t.modules.physics = true            -- Enable the physics module (boolean)
 +
    t.modules.sound = true              -- Enable the sound module (boolean)
 +
    t.modules.system = true            -- Enable the system module (boolean)
 +
    t.modules.timer = true              -- Enable the timer module (boolean), Disabling it will result 0 delta time in love.update
 +
    t.modules.touch = true              -- Enable the touch module (boolean)
 +
    t.modules.video = true              -- Enable the video module (boolean)
 +
    t.modules.window = true            -- Enable the window module (boolean)
 +
    t.modules.thread = true            -- Enable the thread module (boolean)
 +
end
 +
</source>
 +
Here is a full list of options and their default values for LÖVE [[0.10.0]]:
 +
<source lang="lua">
 +
function love.conf(t)
 +
    t.identity = nil                    -- The name of the save directory (string)
 +
    t.version = "0.10.0"                -- The LÖVE version this game was made for (string)
 +
    t.console = false                  -- Attach a console (boolean, Windows only)
 +
    t.accelerometerjoystick = true      -- Enable the accelerometer on iOS and Android by exposing it as a Joystick (boolean)
 +
    t.gammacorrect = false              -- Enable gamma-correct rendering, when supported by the system (boolean)
 +
 
 +
    t.window.title = "Untitled"        -- The window title (string)
 +
    t.window.icon = nil                -- Filepath to an image to use as the window's icon (string)
 +
    t.window.width = 800                -- The window width (number)
 +
    t.window.height = 600              -- The window height (number)
 +
    t.window.borderless = false        -- Remove all border visuals from the window (boolean)
 +
    t.window.resizable = false          -- Let the window be user-resizable (boolean)
 +
    t.window.minwidth = 1              -- Minimum window width if the window is resizable (number)
 +
    t.window.minheight = 1              -- Minimum window height if the window is resizable (number)
 +
    t.window.fullscreen = false        -- Enable fullscreen (boolean)
 +
    t.window.fullscreentype = "desktop" -- Choose between "desktop" fullscreen or "exclusive" fullscreen mode (string)
 +
    t.window.vsync = true              -- Enable vertical sync (boolean)
 +
    t.window.msaa = 0                  -- The number of samples to use with multi-sampled antialiasing (number)
 +
    t.window.display = 1                -- Index of the monitor to show the window in (number)
 +
    t.window.highdpi = false            -- Enable high-dpi mode for the window on a Retina display (boolean)
 +
    t.window.x = nil                    -- The x-coordinate of the window's position in the specified display (number)
 +
    t.window.y = nil                    -- The y-coordinate of the window's position in the specified display (number)
 +
 
 +
    t.modules.audio = true              -- Enable the audio module (boolean)
 +
    t.modules.event = true              -- Enable the event module (boolean)
 +
    t.modules.graphics = true          -- Enable the graphics module (boolean)
 +
    t.modules.image = true              -- Enable the image module (boolean)
 +
    t.modules.joystick = true          -- Enable the joystick module (boolean)
 +
    t.modules.keyboard = true          -- Enable the keyboard module (boolean)
 +
    t.modules.math = true              -- Enable the math module (boolean)
 +
    t.modules.mouse = true              -- Enable the mouse module (boolean)
 +
    t.modules.physics = true            -- Enable the physics module (boolean)
 +
    t.modules.sound = true              -- Enable the sound module (boolean)
 +
    t.modules.system = true            -- Enable the system module (boolean)
 +
    t.modules.timer = true              -- Enable the timer module (boolean), Disabling it will result 0 delta time in love.update
 +
    t.modules.touch = true              -- Enable the touch module (boolean)
 +
    t.modules.video = true              -- Enable the video module (boolean)
 +
    t.modules.window = true            -- Enable the window module (boolean)
 +
    t.modules.thread = true            -- Enable the thread module (boolean)
 +
end
 +
</source>
 +
Here is a full list of options and their default values for LÖVE [[0.9.2]]:
 +
<source lang="lua">
 +
function love.conf(t)
 +
    t.identity = nil                  -- The name of the save directory (string)
 +
    t.version = "0.9.2"                -- The LÖVE version this game was made for (string)
 +
    t.console = false                  -- Attach a console (boolean, Windows only)
 +
 
 +
    t.window.title = "Untitled"        -- The window title (string)
 +
    t.window.icon = nil                -- Filepath to an image to use as the window's icon (string)
 +
    t.window.width = 800              -- The window width (number)
 +
    t.window.height = 600              -- The window height (number)
 +
    t.window.borderless = false        -- Remove all border visuals from the window (boolean)
 +
    t.window.resizable = false        -- Let the window be user-resizable (boolean)
 +
    t.window.minwidth = 1              -- Minimum window width if the window is resizable (number)
 +
    t.window.minheight = 1            -- Minimum window height if the window is resizable (number)
 +
    t.window.fullscreen = false        -- Enable fullscreen (boolean)
 +
    t.window.fullscreentype = "normal" -- Choose between "normal" fullscreen or "desktop" fullscreen mode (string)
 +
    t.window.vsync = true              -- Enable vertical sync (boolean)
 +
    t.window.fsaa = 0                  -- The number of samples to use with multi-sampled antialiasing (number)
 +
    t.window.display = 1              -- Index of the monitor to show the window in (number)
 +
    t.window.highdpi = false          -- Enable high-dpi mode for the window on a Retina display (boolean)
 +
    t.window.srgb = false              -- Enable sRGB gamma correction when drawing to the screen (boolean)
 +
    t.window.x = nil                  -- The x-coordinate of the window's position in the specified display (number)
 +
    t.window.y = nil                  -- The y-coordinate of the window's position in the specified display (number)
 +
 
 +
    t.modules.audio = true            -- Enable the audio module (boolean)
 +
    t.modules.event = true            -- Enable the event module (boolean)
 +
    t.modules.graphics = true          -- Enable the graphics module (boolean)
 +
    t.modules.image = true            -- Enable the image module (boolean)
 +
    t.modules.joystick = true          -- Enable the joystick module (boolean)
 +
    t.modules.keyboard = true          -- Enable the keyboard module (boolean)
 +
    t.modules.math = true              -- Enable the math module (boolean)
 +
    t.modules.mouse = true            -- Enable the mouse module (boolean)
 +
    t.modules.physics = true          -- Enable the physics module (boolean)
 +
    t.modules.sound = true            -- Enable the sound module (boolean)
 +
    t.modules.system = true            -- Enable the system module (boolean)
 +
    t.modules.timer = true            -- Enable the timer module (boolean), Disabling it will result 0 delta time in love.update
 +
    t.modules.window = true            -- Enable the window module (boolean)
 +
    t.modules.thread = true            -- Enable the thread module (boolean)
 +
end
 +
</source>
 +
 
 +
Here is a full list of options and their default values for LÖVE [[0.9.1]]:
 +
<source lang="lua">
 +
function love.conf(t)
 +
    t.identity = nil                  -- The name of the save directory (string)
 +
    t.version = "0.9.1"                -- The LÖVE version this game was made for (string)
 +
    t.console = false                  -- Attach a console (boolean, Windows only)
 +
 
 +
    t.window.title = "Untitled"        -- The window title (string)
 +
    t.window.icon = nil                -- Filepath to an image to use as the window's icon (string)
 +
    t.window.width = 800              -- The window width (number)
 +
    t.window.height = 600              -- The window height (number)
 +
    t.window.borderless = false        -- Remove all border visuals from the window (boolean)
 +
    t.window.resizable = false        -- Let the window be user-resizable (boolean)
 +
    t.window.minwidth = 1              -- Minimum window width if the window is resizable (number)
 +
    t.window.minheight = 1            -- Minimum window height if the window is resizable (number)
 +
    t.window.fullscreen = false        -- Enable fullscreen (boolean)
 +
    t.window.fullscreentype = "normal" -- Standard fullscreen or desktop fullscreen mode (string)
 +
    t.window.vsync = true              -- Enable vertical sync (boolean)
 +
    t.window.fsaa = 0                  -- The number of samples to use with multi-sampled antialiasing (number)
 +
    t.window.display = 1              -- Index of the monitor to show the window in (number)
 +
    t.window.highdpi = false          -- Enable high-dpi mode for the window on a Retina display (boolean)
 +
    t.window.srgb = false              -- Enable sRGB gamma correction when drawing to the screen (boolean)
 +
 
 +
    t.modules.audio = true            -- Enable the audio module (boolean)
 +
    t.modules.event = true            -- Enable the event module (boolean)
 +
    t.modules.graphics = true          -- Enable the graphics module (boolean)
 +
    t.modules.image = true            -- Enable the image module (boolean)
 +
    t.modules.joystick = true          -- Enable the joystick module (boolean)
 +
    t.modules.keyboard = true          -- Enable the keyboard module (boolean)
 +
    t.modules.math = true              -- Enable the math module (boolean)
 +
    t.modules.mouse = true            -- Enable the mouse module (boolean)
 +
    t.modules.physics = true          -- Enable the physics module (boolean)
 +
    t.modules.sound = true            -- Enable the sound module (boolean)
 +
    t.modules.system = true            -- Enable the system module (boolean)
 +
    t.modules.timer = true            -- Enable the timer module (boolean)
 +
    t.modules.window = true            -- Enable the window module (boolean)
 +
    t.modules.thread = true            -- Enable the thread module (boolean)
 +
end
 +
</source>
 +
 
 +
Here is a full list of options and their default values for LÖVE [[0.9.0]]:
 +
<source lang="lua">
 +
function love.conf(t)
 +
    t.identity = nil                  -- The name of the save directory (string)
 +
    t.version = "0.9.0"                -- The LÖVE version this game was made for (string)
 +
    t.console = false                  -- Attach a console (boolean, Windows only)
 +
 
 +
    t.window.title = "Untitled"        -- The window title (string)
 +
    t.window.icon = nil                -- Filepath to an image to use as the window's icon (string)
 +
    t.window.width = 800              -- The window width (number)
 +
    t.window.height = 600              -- The window height (number)
 +
    t.window.borderless = false        -- Remove all border visuals from the window (boolean)
 +
    t.window.resizable = false        -- Let the window be user-resizable (boolean)
 +
    t.window.minwidth = 1              -- Minimum window width if the window is resizable (number)
 +
    t.window.minheight = 1            -- Minimum window height if the window is resizable (number)
 +
    t.window.fullscreen = false        -- Enable fullscreen (boolean)
 +
    t.window.fullscreentype = "normal" -- Standard fullscreen or desktop fullscreen mode (string)
 +
    t.window.vsync = true              -- Enable vertical sync (boolean)
 +
    t.window.fsaa = 0                  -- The number of samples to use with multi-sampled antialiasing (number)
 +
    t.window.display = 1              -- Index of the monitor to show the window in (number)
 +
 
 +
    t.modules.audio = true            -- Enable the audio module (boolean)
 +
    t.modules.event = true            -- Enable the event module (boolean)
 +
    t.modules.graphics = true          -- Enable the graphics module (boolean)
 +
    t.modules.image = true            -- Enable the image module (boolean)
 +
    t.modules.joystick = true          -- Enable the joystick module (boolean)
 +
    t.modules.keyboard = true          -- Enable the keyboard module (boolean)
 +
    t.modules.math = true              -- Enable the math module (boolean)
 +
    t.modules.mouse = true            -- Enable the mouse module (boolean)
 +
    t.modules.physics = true          -- Enable the physics module (boolean)
 +
    t.modules.sound = true            -- Enable the sound module (boolean)
 +
    t.modules.system = true            -- Enable the system module (boolean)
 +
    t.modules.timer = true            -- Enable the timer module (boolean)
 +
    t.modules.window = true            -- Enable the window module (boolean)
 +
    t.modules.thread = true            -- Enable the thread module (boolean)
 +
end
 +
</source>
 +
 
 +
Here is a full list of options and their default values for LÖVE [[0.8.0]]:
 +
<source lang="lua">
 
function love.conf(t)
 
function love.conf(t)
 +
    t.title = "Untitled"        -- The title of the window the game is in (string)
 +
    t.author = "Unnamed"        -- The author of the game (string)
 +
    t.url = nil                -- The website of the game (string)
 +
    t.identity = nil            -- The name of the save directory (string)
 +
    t.version = "0.8.0"        -- The LÖVE version this game was made for (string)
 +
    t.console = false          -- Attach a console (boolean, Windows only)
 +
    t.release = false          -- Enable release mode (boolean)
 +
    t.screen.width = 800        -- The window width (number)
 +
    t.screen.height = 600      -- The window height (number)
 +
    t.screen.fullscreen = false -- Enable fullscreen (boolean)
 +
    t.screen.vsync = true      -- Enable vertical sync (boolean)
 +
    t.screen.fsaa = 0          -- The number of MSAA samples (number)
 
     t.modules.joystick = true  -- Enable the joystick module (boolean)
 
     t.modules.joystick = true  -- Enable the joystick module (boolean)
 
     t.modules.audio = true      -- Enable the audio module (boolean)
 
     t.modules.audio = true      -- Enable the audio module (boolean)
Line 34: Line 441:
 
     t.modules.sound = true      -- Enable the sound module (boolean)
 
     t.modules.sound = true      -- Enable the sound module (boolean)
 
     t.modules.physics = true    -- Enable the physics module (boolean)
 
     t.modules.physics = true    -- Enable the physics module (boolean)
     t.console = false          -- Attach a console (boolean, Windows only)
+
     t.modules.thread = true    -- Enable the thread module (boolean)
 +
end
 +
</source>
 +
 
 +
Here is a full list of options and their default values for LÖVE [[0.7.2]] and earlier:
 +
<source lang="lua">
 +
function love.conf(t)
 
     t.title = "Untitled"        -- The title of the window the game is in (string)
 
     t.title = "Untitled"        -- The title of the window the game is in (string)
 
     t.author = "Unnamed"        -- The author of the game (string)
 
     t.author = "Unnamed"        -- The author of the game (string)
 +
    t.identity = nil            -- The name of the save directory (string)
 +
    t.version = 0              -- The LÖVE version this game was made for (number)
 +
    t.console = false          -- Attach a console (boolean, Windows only)
 +
    t.screen.width = 800        -- The window width (number)
 +
    t.screen.height = 600      -- The window height (number)
 
     t.screen.fullscreen = false -- Enable fullscreen (boolean)
 
     t.screen.fullscreen = false -- Enable fullscreen (boolean)
 
     t.screen.vsync = true      -- Enable vertical sync (boolean)
 
     t.screen.vsync = true      -- Enable vertical sync (boolean)
     t.screen.fsaa = 0          -- The number of FSAA-buffers (number)
+
     t.screen.fsaa = 0          -- The number of MSAA samples (number)
     t.screen.height = 600      -- The window height (number)
+
    t.modules.joystick = true  -- Enable the joystick module (boolean)
     t.screen.width = 800        -- The window width (number)
+
    t.modules.audio = true      -- Enable the audio module (boolean)
     t.version = 0              -- The L�VE version this game was made for (number)
+
    t.modules.keyboard = true  -- Enable the keyboard module (boolean)
 +
    t.modules.event = true      -- Enable the event module (boolean)
 +
    t.modules.image = true      -- Enable the image module (boolean)
 +
    t.modules.graphics = true  -- Enable the graphics module (boolean)
 +
    t.modules.timer = true      -- Enable the timer module (boolean)
 +
     t.modules.mouse = true      -- Enable the mouse module (boolean)
 +
     t.modules.sound = true      -- Enable the sound module (boolean)
 +
     t.modules.physics = true    -- Enable the physics module (boolean)
 
end
 
end
 
</source>
 
</source>
  
Note that you can't disable [[love.filesystem]]; it's mandatory. The same goes for the [[love]] module itself.
+
== See Also ==
 +
* [[parent::love]]
 +
[[Category:LÖVE]]
 +
[[Category:Callbacks]]
 +
{{#set:Subcategory=General}}
 +
{{#set:Description=Game configuration settings.}}
 +
{{#set:Since=000}}
 +
== Other Languages ==
 +
{{i18n|Config_Files}}

Revision as of 13:02, 26 December 2018

Introduction

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.

love.conf

The 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.

In LÖVE version 0.9.2 and earlier, errors in the config file will cause the game to not launch and no error message to appear. If the game doesn't load, check the config file for errors first. In version 0.10.2 and later, errors in the config will now show the blue error screen showing the error in the config file.

Current Configuration File

Here is a full list of options and their default values for LÖVE 11.0:

function love.conf(t)
    t.identity = nil                    -- The name of the save directory (string)
    t.appendidentity = false            -- Search files in source directory before save directory (boolean)
    t.version = "11.0"                  -- The LÖVE version this game was made for (string)
    t.console = false                   -- Attach a console (boolean, Windows only)
    t.accelerometerjoystick = true      -- Enable the accelerometer on iOS and Android by exposing it as a Joystick (boolean)
    t.externalstorage = false           -- True to save files (and read from the save directory) in external storage on Android (boolean) 
    t.gammacorrect = false              -- Enable gamma-correct rendering, when supported by the system (boolean)

    t.audio.mixwithsystem = true        -- Keep background music playing when opening LOVE (boolean, iOS and Android only)

    t.window.title = "Untitled"         -- The window title (string)
    t.window.icon = nil                 -- Filepath to an image to use as the window's icon (string)
    t.window.width = 800                -- The window width (number)
    t.window.height = 600               -- The window height (number)
    t.window.borderless = false         -- Remove all border visuals from the window (boolean)
    t.window.resizable = false          -- Let the window be user-resizable (boolean)
    t.window.minwidth = 1               -- Minimum window width if the window is resizable (number)
    t.window.minheight = 1              -- Minimum window height if the window is resizable (number)
    t.window.fullscreen = false         -- Enable fullscreen (boolean)
    t.window.fullscreentype = "desktop" -- Choose between "desktop" fullscreen or "exclusive" fullscreen mode (string)
    t.window.vsync = 1                  -- Vertical sync mode (number)
    t.window.msaa = 0                   -- The number of samples to use with multi-sampled antialiasing (number)
    t.window.depth = nil                -- The number of bits per sample in the depth buffer
    t.window.stencil = nil              -- The number of bits per sample in the stencil buffer
    t.window.display = 1                -- Index of the monitor to show the window in (number)
    t.window.highdpi = false            -- Enable high-dpi mode for the window on a Retina display (boolean)
    t.window.x = nil                    -- The x-coordinate of the window's position in the specified display (number)
    t.window.y = nil                    -- The y-coordinate of the window's position in the specified display (number)

    t.modules.audio = true              -- Enable the audio module (boolean)
    t.modules.data = true               -- Enable the data module (boolean)
    t.modules.event = true              -- Enable the event module (boolean)
    t.modules.font = true               -- Enable the font module (boolean)
    t.modules.graphics = true           -- Enable the graphics module (boolean)
    t.modules.image = true              -- Enable the image module (boolean)
    t.modules.joystick = true           -- Enable the joystick module (boolean)
    t.modules.keyboard = true           -- Enable the keyboard module (boolean)
    t.modules.math = true               -- Enable the math module (boolean)
    t.modules.mouse = true              -- Enable the mouse module (boolean)
    t.modules.physics = true            -- Enable the physics module (boolean)
    t.modules.sound = true              -- Enable the sound module (boolean)
    t.modules.system = true             -- Enable the system module (boolean)
    t.modules.thread = true             -- Enable the thread module (boolean)
    t.modules.timer = true              -- Enable the timer module (boolean), Disabling it will result 0 delta time in love.update
    t.modules.touch = true              -- Enable the touch module (boolean)
    t.modules.video = true              -- Enable the video module (boolean)
    t.modules.window = true             -- Enable the window module (boolean)
end

Flags

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.

appendidentity

Available since LÖVE 11.0
This flag is not supported in earlier versions.

This flag determines if game directory should be searched first then save directory (true) or otherwise (false)

version

Available since LÖVE 0.8.0
This flag is not supported in earlier versions.

t.version should be a string, representing the version of LÖVE for which your game was made.

Before 11.0, it should be formatted as "X.Y.Z" where X is the major release number, Y the minor, and Z the patch level. Since 11.0, it should be formatted as "X.Y" where X and Y are the major and minor release respectively.

If set in the config file of the game, LÖVE will display a warning if the game isn't compatible with the current version of LÖVE being used to run the game. Its default is the version of LÖVE running.

console

Determines whether a console should be opened alongside the game window (Windows only) or not. Note: On OSX you can get console output by running LÖVE through the terminal, or on Windows with LÖVE 0.10.2, by running lovec.exe instead of love.exe.

accelerometerjoystick

Available since LÖVE 0.10.0
This flag is not supported in earlier versions.

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.

externalstorage

Available since LÖVE 0.10.1
This flag is not supported in earlier versions.

Sets whether files are saved in external storage (true) or internal storage (false) on Android.

gammacorrect

Available since LÖVE 0.10.0
This flag is not supported in earlier versions.

Determines whether gamma-correct rendering is enabled, when the system supports it.

audio.mixwithsystem

Available since LÖVE 11.0
This flag is not supported in earlier versions.

Sets whether background audio / music from other apps should play while LÖVE is open. See love.system.hasBackgroundMusic for more details.

window

Available since LÖVE 0.9.0
These flags are not supported in earlier versions.

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

Available since LÖVE 0.9.0
This flag is not supported in earlier versions.

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.

window.icon

Available since LÖVE 0.9.0
This flag is not supported in earlier versions.

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.

window.width & window.height

Available since LÖVE 0.9.0
These flags are not supported in earlier versions.

Sets the window's dimensions. If these flags are set to 0 LÖVE automatically uses the user's desktop dimensions.

window.borderless

Available since LÖVE 0.9.0
This flag is not supported in earlier versions.

Removes all border visuals from the window. Note that the effects may wary between operating systems.

window.resizable

Available since LÖVE 0.9.0
This flag is not supported in earlier versions.

If set to true this allows the user to resize the game's window.

window.minwidth & window.minheight

Available since LÖVE 0.9.0
These flags are not supported in earlier versions.

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.

window.fullscreen

Available since LÖVE 0.9.0
This flag is not supported in earlier versions.

Wether 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.

window.fullscreentype

Available since LÖVE 0.9.0
This flag is not supported in earlier versions.

Specifies the type of fullscreen mode to use (exclusive or desktop). Generally the desktop is recommended, as it is less restrictive than exclusive mode on some operating systems. (Note: In 0.9.2 and earlier, use normal instead of exclusive.)

window.vsync

Available since LÖVE 0.9.0
This flag is not supported in earlier versions.

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.

window.depth

Available since LÖVE 11.0
This flag is not supported in earlier versions.

The number of bits per sample in the depth buffer (16/24/32, default nil)

window.stencil

Available since LÖVE 11.0
This flag is not supported in earlier versions.

Then number of bits per sample in the depth buffer (generally 8, default nil)

window.msaa

Available since LÖVE 0.9.2
This flag is not supported in earlier versions.

The number of samples to use with multi-sampled antialiasing.

window.display

Available since LÖVE 0.9.0
This flag is not supported in earlier versions.

The index of the display to show the window in, if multiple monitors are available.

window.highdpi

Available since LÖVE 0.9.1
This flag is not supported in earlier versions.

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.

Please note that since 11.0, high DPI is always enabled in Android regardless of this flag!

window.x & window.y

Available since LÖVE 0.9.2
These flags are not supported in earlier versions.

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.

window.fsaa

Available since LÖVE 0.9.0 and removed in LÖVE 0.10.0
This flag has been replaced by the window.msaa flag.

The number of samples to use with multi-sampled antialiasing.

window.srgb

Available since LÖVE 0.9.1 and removed in LÖVE 0.10.0
This flag has been replaced by the gammacorrect flag.

Enabling this window flag will automatically convert the colors of everything drawn to the main screen from the linear RGB colorspace to the sRGB colorspace - the window's surface is treated as gamma-space sRGB. This is only one component of gamma-correct rendering, an advanced topic which is easy to mess up, so it's recommended to keep this option disabled if you're not sure about its implications.

Release Mode

Available since LÖVE 0.8.0 and removed in LÖVE 0.9.0
This flag is not supported in earlier or later versions.


If t.release is enabled, LÖVE uses the release error handler, which is sparse on information by default, and can, of course, be overridden.

The default release mode error handler also outputs a message to the player informing them to contact the author using the values title, author and url as specified in conf.lua.

When a fused game in release mode is run it will not save in the love save dir, but rather one for itself, whereas previously it would be %APPDATA%\\LOVE\\game on Windows, it now is %APPDATA%\\game. This concept applies to other platforms as well.

Older Versions

Here is a full list of options and their default values for LÖVE 0.10.1 and 0.10.2:

function love.conf(t)
    t.identity = nil                    -- The name of the save directory (string)
    t.version = "0.10.2"                -- The LÖVE version this game was made for (string)
    t.console = false                   -- Attach a console (boolean, Windows only)
    t.accelerometerjoystick = true      -- Enable the accelerometer on iOS and Android by exposing it as a Joystick (boolean)
    t.externalstorage = false           -- True to save files (and read from the save directory) in external storage on Android (boolean) 
    t.gammacorrect = false              -- Enable gamma-correct rendering, when supported by the system (boolean)

    t.window.title = "Untitled"         -- The window title (string)
    t.window.icon = nil                 -- Filepath to an image to use as the window's icon (string)
    t.window.width = 800                -- The window width (number)
    t.window.height = 600               -- The window height (number)
    t.window.borderless = false         -- Remove all border visuals from the window (boolean)
    t.window.resizable = false          -- Let the window be user-resizable (boolean)
    t.window.minwidth = 1               -- Minimum window width if the window is resizable (number)
    t.window.minheight = 1              -- Minimum window height if the window is resizable (number)
    t.window.fullscreen = false         -- Enable fullscreen (boolean)
    t.window.fullscreentype = "desktop" -- Choose between "desktop" fullscreen or "exclusive" fullscreen mode (string)
    t.window.vsync = true               -- Enable vertical sync (boolean)
    t.window.msaa = 0                   -- The number of samples to use with multi-sampled antialiasing (number)
    t.window.display = 1                -- Index of the monitor to show the window in (number)
    t.window.highdpi = false            -- Enable high-dpi mode for the window on a Retina display (boolean)
    t.window.x = nil                    -- The x-coordinate of the window's position in the specified display (number)
    t.window.y = nil                    -- The y-coordinate of the window's position in the specified display (number)

    t.modules.audio = true              -- Enable the audio module (boolean)
    t.modules.event = true              -- Enable the event module (boolean)
    t.modules.graphics = true           -- Enable the graphics module (boolean)
    t.modules.image = true              -- Enable the image module (boolean)
    t.modules.joystick = true           -- Enable the joystick module (boolean)
    t.modules.keyboard = true           -- Enable the keyboard module (boolean)
    t.modules.math = true               -- Enable the math module (boolean)
    t.modules.mouse = true              -- Enable the mouse module (boolean)
    t.modules.physics = true            -- Enable the physics module (boolean)
    t.modules.sound = true              -- Enable the sound module (boolean)
    t.modules.system = true             -- Enable the system module (boolean)
    t.modules.timer = true              -- Enable the timer module (boolean), Disabling it will result 0 delta time in love.update
    t.modules.touch = true              -- Enable the touch module (boolean)
    t.modules.video = true              -- Enable the video module (boolean)
    t.modules.window = true             -- Enable the window module (boolean)
    t.modules.thread = true             -- Enable the thread module (boolean)
end

Here is a full list of options and their default values for LÖVE 0.10.0:

function love.conf(t)
    t.identity = nil                    -- The name of the save directory (string)
    t.version = "0.10.0"                -- The LÖVE version this game was made for (string)
    t.console = false                   -- Attach a console (boolean, Windows only)
    t.accelerometerjoystick = true      -- Enable the accelerometer on iOS and Android by exposing it as a Joystick (boolean)
    t.gammacorrect = false              -- Enable gamma-correct rendering, when supported by the system (boolean)

    t.window.title = "Untitled"         -- The window title (string)
    t.window.icon = nil                 -- Filepath to an image to use as the window's icon (string)
    t.window.width = 800                -- The window width (number)
    t.window.height = 600               -- The window height (number)
    t.window.borderless = false         -- Remove all border visuals from the window (boolean)
    t.window.resizable = false          -- Let the window be user-resizable (boolean)
    t.window.minwidth = 1               -- Minimum window width if the window is resizable (number)
    t.window.minheight = 1              -- Minimum window height if the window is resizable (number)
    t.window.fullscreen = false         -- Enable fullscreen (boolean)
    t.window.fullscreentype = "desktop" -- Choose between "desktop" fullscreen or "exclusive" fullscreen mode (string)
    t.window.vsync = true               -- Enable vertical sync (boolean)
    t.window.msaa = 0                   -- The number of samples to use with multi-sampled antialiasing (number)
    t.window.display = 1                -- Index of the monitor to show the window in (number)
    t.window.highdpi = false            -- Enable high-dpi mode for the window on a Retina display (boolean)
    t.window.x = nil                    -- The x-coordinate of the window's position in the specified display (number)
    t.window.y = nil                    -- The y-coordinate of the window's position in the specified display (number)

    t.modules.audio = true              -- Enable the audio module (boolean)
    t.modules.event = true              -- Enable the event module (boolean)
    t.modules.graphics = true           -- Enable the graphics module (boolean)
    t.modules.image = true              -- Enable the image module (boolean)
    t.modules.joystick = true           -- Enable the joystick module (boolean)
    t.modules.keyboard = true           -- Enable the keyboard module (boolean)
    t.modules.math = true               -- Enable the math module (boolean)
    t.modules.mouse = true              -- Enable the mouse module (boolean)
    t.modules.physics = true            -- Enable the physics module (boolean)
    t.modules.sound = true              -- Enable the sound module (boolean)
    t.modules.system = true             -- Enable the system module (boolean)
    t.modules.timer = true              -- Enable the timer module (boolean), Disabling it will result 0 delta time in love.update
    t.modules.touch = true              -- Enable the touch module (boolean)
    t.modules.video = true              -- Enable the video module (boolean)
    t.modules.window = true             -- Enable the window module (boolean)
    t.modules.thread = true             -- Enable the thread module (boolean)
end

Here is a full list of options and their default values for LÖVE 0.9.2:

function love.conf(t)
    t.identity = nil                   -- The name of the save directory (string)
    t.version = "0.9.2"                -- The LÖVE version this game was made for (string)
    t.console = false                  -- Attach a console (boolean, Windows only)

    t.window.title = "Untitled"        -- The window title (string)
    t.window.icon = nil                -- Filepath to an image to use as the window's icon (string)
    t.window.width = 800               -- The window width (number)
    t.window.height = 600              -- The window height (number)
    t.window.borderless = false        -- Remove all border visuals from the window (boolean)
    t.window.resizable = false         -- Let the window be user-resizable (boolean)
    t.window.minwidth = 1              -- Minimum window width if the window is resizable (number)
    t.window.minheight = 1             -- Minimum window height if the window is resizable (number)
    t.window.fullscreen = false        -- Enable fullscreen (boolean)
    t.window.fullscreentype = "normal" -- Choose between "normal" fullscreen or "desktop" fullscreen mode (string)
    t.window.vsync = true              -- Enable vertical sync (boolean)
    t.window.fsaa = 0                  -- The number of samples to use with multi-sampled antialiasing (number)
    t.window.display = 1               -- Index of the monitor to show the window in (number)
    t.window.highdpi = false           -- Enable high-dpi mode for the window on a Retina display (boolean)
    t.window.srgb = false              -- Enable sRGB gamma correction when drawing to the screen (boolean)
    t.window.x = nil                   -- The x-coordinate of the window's position in the specified display (number)
    t.window.y = nil                   -- The y-coordinate of the window's position in the specified display (number)

    t.modules.audio = true             -- Enable the audio module (boolean)
    t.modules.event = true             -- Enable the event module (boolean)
    t.modules.graphics = true          -- Enable the graphics module (boolean)
    t.modules.image = true             -- Enable the image module (boolean)
    t.modules.joystick = true          -- Enable the joystick module (boolean)
    t.modules.keyboard = true          -- Enable the keyboard module (boolean)
    t.modules.math = true              -- Enable the math module (boolean)
    t.modules.mouse = true             -- Enable the mouse module (boolean)
    t.modules.physics = true           -- Enable the physics module (boolean)
    t.modules.sound = true             -- Enable the sound module (boolean)
    t.modules.system = true            -- Enable the system module (boolean)
    t.modules.timer = true             -- Enable the timer module (boolean), Disabling it will result 0 delta time in love.update
    t.modules.window = true            -- Enable the window module (boolean)
    t.modules.thread = true            -- Enable the thread module (boolean)
end

Here is a full list of options and their default values for LÖVE 0.9.1:

function love.conf(t)
    t.identity = nil                   -- The name of the save directory (string)
    t.version = "0.9.1"                -- The LÖVE version this game was made for (string)
    t.console = false                  -- Attach a console (boolean, Windows only)

    t.window.title = "Untitled"        -- The window title (string)
    t.window.icon = nil                -- Filepath to an image to use as the window's icon (string)
    t.window.width = 800               -- The window width (number)
    t.window.height = 600              -- The window height (number)
    t.window.borderless = false        -- Remove all border visuals from the window (boolean)
    t.window.resizable = false         -- Let the window be user-resizable (boolean)
    t.window.minwidth = 1              -- Minimum window width if the window is resizable (number)
    t.window.minheight = 1             -- Minimum window height if the window is resizable (number)
    t.window.fullscreen = false        -- Enable fullscreen (boolean)
    t.window.fullscreentype = "normal" -- Standard fullscreen or desktop fullscreen mode (string)
    t.window.vsync = true              -- Enable vertical sync (boolean)
    t.window.fsaa = 0                  -- The number of samples to use with multi-sampled antialiasing (number)
    t.window.display = 1               -- Index of the monitor to show the window in (number)
    t.window.highdpi = false           -- Enable high-dpi mode for the window on a Retina display (boolean)
    t.window.srgb = false              -- Enable sRGB gamma correction when drawing to the screen (boolean)

    t.modules.audio = true             -- Enable the audio module (boolean)
    t.modules.event = true             -- Enable the event module (boolean)
    t.modules.graphics = true          -- Enable the graphics module (boolean)
    t.modules.image = true             -- Enable the image module (boolean)
    t.modules.joystick = true          -- Enable the joystick module (boolean)
    t.modules.keyboard = true          -- Enable the keyboard module (boolean)
    t.modules.math = true              -- Enable the math module (boolean)
    t.modules.mouse = true             -- Enable the mouse module (boolean)
    t.modules.physics = true           -- Enable the physics module (boolean)
    t.modules.sound = true             -- Enable the sound module (boolean)
    t.modules.system = true            -- Enable the system module (boolean)
    t.modules.timer = true             -- Enable the timer module (boolean)
    t.modules.window = true            -- Enable the window module (boolean)
    t.modules.thread = true            -- Enable the thread module (boolean)
end

Here is a full list of options and their default values for LÖVE 0.9.0:

function love.conf(t)
    t.identity = nil                   -- The name of the save directory (string)
    t.version = "0.9.0"                -- The LÖVE version this game was made for (string)
    t.console = false                  -- Attach a console (boolean, Windows only)

    t.window.title = "Untitled"        -- The window title (string)
    t.window.icon = nil                -- Filepath to an image to use as the window's icon (string)
    t.window.width = 800               -- The window width (number)
    t.window.height = 600              -- The window height (number)
    t.window.borderless = false        -- Remove all border visuals from the window (boolean)
    t.window.resizable = false         -- Let the window be user-resizable (boolean)
    t.window.minwidth = 1              -- Minimum window width if the window is resizable (number)
    t.window.minheight = 1             -- Minimum window height if the window is resizable (number)
    t.window.fullscreen = false        -- Enable fullscreen (boolean)
    t.window.fullscreentype = "normal" -- Standard fullscreen or desktop fullscreen mode (string)
    t.window.vsync = true              -- Enable vertical sync (boolean)
    t.window.fsaa = 0                  -- The number of samples to use with multi-sampled antialiasing (number)
    t.window.display = 1               -- Index of the monitor to show the window in (number)

    t.modules.audio = true             -- Enable the audio module (boolean)
    t.modules.event = true             -- Enable the event module (boolean)
    t.modules.graphics = true          -- Enable the graphics module (boolean)
    t.modules.image = true             -- Enable the image module (boolean)
    t.modules.joystick = true          -- Enable the joystick module (boolean)
    t.modules.keyboard = true          -- Enable the keyboard module (boolean)
    t.modules.math = true              -- Enable the math module (boolean)
    t.modules.mouse = true             -- Enable the mouse module (boolean)
    t.modules.physics = true           -- Enable the physics module (boolean)
    t.modules.sound = true             -- Enable the sound module (boolean)
    t.modules.system = true            -- Enable the system module (boolean)
    t.modules.timer = true             -- Enable the timer module (boolean)
    t.modules.window = true            -- Enable the window module (boolean)
    t.modules.thread = true            -- Enable the thread module (boolean)
end

Here is a full list of options and their default values for LÖVE 0.8.0:

function love.conf(t)
    t.title = "Untitled"        -- The title of the window the game is in (string)
    t.author = "Unnamed"        -- The author of the game (string)
    t.url = nil                 -- The website of the game (string)
    t.identity = nil            -- The name of the save directory (string)
    t.version = "0.8.0"         -- The LÖVE version this game was made for (string)
    t.console = false           -- Attach a console (boolean, Windows only)
    t.release = false           -- Enable release mode (boolean)
    t.screen.width = 800        -- The window width (number)
    t.screen.height = 600       -- The window height (number)
    t.screen.fullscreen = false -- Enable fullscreen (boolean)
    t.screen.vsync = true       -- Enable vertical sync (boolean)
    t.screen.fsaa = 0           -- The number of MSAA samples (number)
    t.modules.joystick = true   -- Enable the joystick module (boolean)
    t.modules.audio = true      -- Enable the audio module (boolean)
    t.modules.keyboard = true   -- Enable the keyboard module (boolean)
    t.modules.event = true      -- Enable the event module (boolean)
    t.modules.image = true      -- Enable the image module (boolean)
    t.modules.graphics = true   -- Enable the graphics module (boolean)
    t.modules.timer = true      -- Enable the timer module (boolean)
    t.modules.mouse = true      -- Enable the mouse module (boolean)
    t.modules.sound = true      -- Enable the sound module (boolean)
    t.modules.physics = true    -- Enable the physics module (boolean)
    t.modules.thread = true     -- Enable the thread module (boolean)
end

Here is a full list of options and their default values for LÖVE 0.7.2 and earlier:

function love.conf(t)
    t.title = "Untitled"        -- The title of the window the game is in (string)
    t.author = "Unnamed"        -- The author of the game (string)
    t.identity = nil            -- The name of the save directory (string)
    t.version = 0               -- The LÖVE version this game was made for (number)
    t.console = false           -- Attach a console (boolean, Windows only)
    t.screen.width = 800        -- The window width (number)
    t.screen.height = 600       -- The window height (number)
    t.screen.fullscreen = false -- Enable fullscreen (boolean)
    t.screen.vsync = true       -- Enable vertical sync (boolean)
    t.screen.fsaa = 0           -- The number of MSAA samples (number)
    t.modules.joystick = true   -- Enable the joystick module (boolean)
    t.modules.audio = true      -- Enable the audio module (boolean)
    t.modules.keyboard = true   -- Enable the keyboard module (boolean)
    t.modules.event = true      -- Enable the event module (boolean)
    t.modules.image = true      -- Enable the image module (boolean)
    t.modules.graphics = true   -- Enable the graphics module (boolean)
    t.modules.timer = true      -- Enable the timer module (boolean)
    t.modules.mouse = true      -- Enable the mouse module (boolean)
    t.modules.sound = true      -- Enable the sound module (boolean)
    t.modules.physics = true    -- Enable the physics module (boolean)
end

See Also


Other Languages