Skip to content

Publish a LÖVE game

All engines

LÖVE games run in the browser with love.js. ThrunGames does not detect LÖVE, so set the engine yourself.

Build with love.js

  1. Zip your game into a .love file, with main.lua at the root of the zip.
  2. Run love.js on it: npx love.js game.love output-folder.
  3. The default build uses threads, and that works here because game pages are cross-origin isolated.

If the game will not start, build again with -c (compatibility mode, no threads). It can make audio choppy.

love.js writes an index.html and the game files to the output folder.

What to zip

Zip the contents of the output folder, so index.html is at the root.

Zip and upload

Zip the contents of the export folder, so that index.html is at the root of the zip. Do not zip the folder itself. If index.html ends up inside a folder, the upload fails and tells you so.

Your game has to exist before you upload. If you have not made it yet, sign in, open My games and choose "Add new game". (You need a developer account: see Become a developer.) Note the game's slug, the last part of its address.

Then upload with the ThrunGames CLI:

thrungames login
thrungames upload path/to/export-folder --game <your-game-slug> --version 1.0.0 --width 960 --height 600 --submit

--width and --height are the size of the game's play area in pixels on a Classic game page; an Immersive game fills the screen and ignores them.

The CLI zips the folder for you. You can also point upload at a .zip file you made yourself. Leave out --submit to keep the upload as a draft with a preview link. To skip the flags next time, put a game.json with name, version, width and height in the folder (see the CLI page).

The limits are 450 MB for the zip through the CLI (100 MB on the website), 500 MB unpacked, and 5000 files.

Engine and layout

ThrunGames detects the engine when you upload and sets it on your game if you have not set one. ThrunGames does not detect this engine on its own, so set it yourself. To change it later, use the game settings, or:

thrungames games edit <game> --engine love
thrungames games edit <game> --layout classic