Dragonfly Cloud is now available in the AWS Marketplace - learn more

Question: How do you include files in Love2D?

Answer

Including files in Love2D is essential for organizing your code into multiple files, which can make your project cleaner and easier to maintain. You can include Lua files in your Love2D projects using the require function, which loads and runs the specified module. Here's how to use it:

  1. Basic Usage: Place your Lua file in the same directory as your main.lua or within a sub-directory. For instance, if you have a file named player.lua, you would include it like this:

    local Player = require("player")

    Note that you do not include the '.lua' extension.

  2. Sub-directories: If your file lies within a sub-directory, include the path using dots to separate directories. For example, if player.lua is within a folder named entities, you should require it as follows:

    local Player = require("entities.player")
  3. The Module File: In your player.lua file, make sure you return a table, function, or any other Lua object at the end of the file so that the require function can return it when included in another file.

    -- player.lua local Player = {} function Player.new() local self = {} -- initialization code here return self end return Player
  4. Handling Multiple Inclusions: Love2D automatically handles multiple inclusions by caching the result of the first call to require. Subsequent calls to require with the same file path will return the cached result without reloading the file.

  5. Global vs Local: It is a good practice to include files locally within each file where they are needed rather than declaring them globally. This helps avoid global namespace pollution and potential conflicts.

Here's an example of using included modules in main.lua:

-- main.lua local Player = require("entities.player") function love.load() playerInstance = Player.new() end function love.update(dt) -- Update player instance end function love.draw() -- Draw player instance end

Make sure all your paths are correct and that you're adhering to the proper structure expected by the require function. If you're having trouble including a file, check for typos and ensure that the file exists in the specified path.

Was this content helpful?

White Paper

Free System Design on AWS E-Book

Download this early release of O'Reilly's latest cloud infrastructure e-book: System Design on AWS.

Free System Design on AWS E-Book

Switch & save up to 80% 

Dragonfly is fully compatible with the Redis ecosystem and requires no code changes to implement. Instantly experience up to a 25X boost in performance and 80% reduction in cost