LÖVE
Awesome Löve
¶

A categorized community-driven collection of high-quality, awesome LÖVE libraries, projects, and resources.
3D¶
3D-centric Libraries
- 3DreamEngine - An awesome 3D engine for LÖVE.
- anim9 - 3D skeletal animation library (design to be used with IQM and IQE).
- Brinevector3D - FFI-enabled vector library for 3D (x,y,z).
- bump-3dpd - A 3D collision detection library for Lua.
- g3d - Simple and easy 3D engine for LÖVE.
- IQE - Inter-Quake Export loader (text).
- IQM - Inter-Quake Model loader (binary).
- love-gltf - Gltf asset loader and test renderer; Supports skeletal animations and morph targets.
- Lovox - Pseudo-3D library for working with voxels.
- Menori - Library for 3D rendering with LÖVE.
AI¶
Navigation, Decision-Making and AI Libraries
- astar - An other A* library. Any map (grid, point, mesh or infinite map) and support path cost.
- beehive.lua - A functional behavior tree implementation.
- FluadHTN - A powerful hierarchical task network for AI planning.
- Jumper - Grid-based pathfinding library.
- LÖVElyTrees - Fully featured behaviour tree implementation with tree rendering.
- Lua-star - Easy and pure Lua A* path finding.
- Luafinding - Class-based A* implementation written purely in Lua.
- pathfun - Pure Lua library for 2D pathfinding using the funnel algorithm.
Animation¶
Animation & Frame-Managing Libraries
- andross - A Lua library for 2D skeletal/bone animations with a Löve backend.
- anim8 - Animation library.
- animx - A featureful Animation library for loading animations from XML files!.
- Aseprite loader - Complete ase/aseprite file loader (no json).
- chiro - Convenience wrapper around Spine.
- lovanim - A minimal stateful animation library.
- Lump - Adobe Flash animation runtime.
- Peachy - A parser/renderer for Aseprite animations in LÖVE.
- skeletor - 2D skeletal animation system.
- SYSL-Text - Text animation and automatic wrapping library based on tags.
- Walt - Animation library.
Camera¶
Viewport & Camera Libraries
- Brady - Camera library with parallax scrolling.
- Editgrid - Gamera and HUMP compatible scaling grid.
- gamera - Camera system.
- hump.camera - Camera library with window locking and smooth camera movement interpolation.
- parallax - Scrolling library for any camera system; seamlessly tile background images.
- roomshift - Room-based camera with smooth transitions.
Development¶
Development assisting Libraries, that enrich your development experience
- debugGraph - Small OO FPS graphing utillity based on FPSGraph.
- feather - Extensible Development Toolkit for LÖVE. Step by step debugger, hot reloading, remote log inspection, easy android and ios development builds, assisted release and upload, shader graph, particle system playground, and more!
- FPSGraph - Small FPS graphing utility.
- LÖVE API - The complete API documentation of LÖVE in a Lua table.
- LÖVE Build - GitHub Action for automated cross-platform builds.
- LÖVE TypeScript Definitions - Write LÖVE games with TypeScript.
- Lovebird - Browser-based debug console.
- LoveDebug - Inline console-like debugger utility.
- lovelier - A LÖVE live reloader with Moonscript support.
- loveprofiler - An extremely simple logger and profiler.
- lurker - Auto-swaps changed Lua files in a running game.
- vudu - Broad in-game debugging gui with a console, variable browser/editor, speed controls, and more.
Drawing¶
Drawing specific Libraries, that simplify the Drawing process
- Artal - A .PSD parsing library for LÖVE.
- Autobatch - Small LÖVE module to automate the use of SpriteBatches.
- deep - Adds Z axis; allows you to queue actions and draw calls.
- draft - A module for drawing complex shapes.
- Export-TextureAtlas - Extends Runtime-TextureAtlas as a commandline tool to export an atlas.
- grove.draworder - Similar to deep, but you can set a custom sorting method and create multiple, nestable instances.
- Hot particles - "Hot Particles is a particle editor for the LÖVE game framework."
- HSLUV - Lua implementation of HSLuv (a human-friendly alternative to HSL).
- Maid64 - Low resolution scaler for LÖVE.
- Push - A simple resolution-handling library for LÖVE.
- renderplanet - Realistic orthographic planet rendering.
- Resolution Solution - Scale library, that help you add resolution support to your games!
- Runtime-TextureAtlas - Texture atlas packer and renderer at runtime; no external tools.
- Shöve - A powerful resolution-handler and rendering library for LÖVE.
- Sölar - A fairly simple solar system simulator.
- svglover - Library to import and display simple SVGs in LÖVE.
- SYSL-Pixel - Pixel art focused scaler for graphics, position, screen-captures and shaders.
- turtle.lua - Turtle graphics library for LÖVE.
Entity¶
Entity and Gameobject Managing Libraries
- adorbs - Minimal, Functional Entity Component System.
- Concord - A feature-complete ECS library.
- ecs-lua - ECS Lua is a fast and easy to use ECS (Entity Component System) engine for game development.
- evolved.lua - Evolved ECS (Entity-Component-System) for Lua.
- knife.system - Minimalist functional ECS.
- nata - Hybrid OOP/ECS entity management.
- tiny-ecs - Entity Component System for Lua that's simple, flexible, and useful.
Helpers¶
Game specific Library bundles, that provide reuseable functions
- astray - A Lua-based maze, room and dungeon generation library for dungeon crawlers and roguelike video games.
- batteries - Fills out lua's sparse standard library and provides implementations of common algorithms and data structures useful for games.
- cartographer - Small Tiled map loader and drawer.
- clove - A helper library which allows you to quickly loads huge amount of assets.
- GameStateManager - A lightweight, optimized, and easy-to-implement solution for efficient game state management.
- grove.color - Blend, convert and interpolate colors using 'color objects'.
- hump - Collection of tools for developing games with LÖVE (Gamestates, Timers/Tweens, Vectors, Classes, Signals, Cameras).
- iffy - A SpriteSheet and Tileset helper library for LÖVE.
- knife - Collection of useful micro-modules for Lua (Class, State Machines, Bind, Chain, Coroutines, Event, Memoize, Entity, Tests, Timer).
- Love dialogue - Simple to use Dialogue Library for Love2d with custom scripting language for dialogues .
- love-state-switcher - State switcher class for Lua LÖVE Engine.
- lovely-windows - A Window/Screen Manager Module for virtual windows.
- lua-state-machine - Lua Finite State Machine.
- lue - A LÖVE library that allows you to display hue color effects in your game.
- lume - Collection of functions for Lua, geared towards game development.
- Manami - An improved "reflowprint" with UTF-8, multicolor, and justify support.
- narrator - An Ink narrative scripting language parser and runtime implementation.
- prism - A comprehensive traditional roguelike engine.
- reflowprint - A library designed for alignment of text that is shown one character at a time.
- roomy - Screen management library for LÖVE.
- rotLove - Roguelike Toolkit in LÖVE. A LÖVE/lua port of rot.js.
- SceneMan - A simple, but powerful scene/gamestate manager that uses a stack, allowing you to run multiple scenes at once.
- Scenery - A dead simple scene/state management system.
- ScreenManager - Screen/State Management for the LÖVE framework.
- shack - A LÖVE library that lets you easily add screen effects such as shake and rotation.
- shard - Collection of useful mini modules.
- Simple Tiled Implementation - Tiled map loader and renderer.
- Vivid - Color math, manipulation and conversion library.
Input¶
Input & Binding Libraries
- baton - Input library for LÖVE that bridges the gap between keyboard and gamepad controls.
- GamepadGuesser - Get the right button icons for gamepads; load updated gamepad db.
- input - Simple and powerful input library. support check operation time, sequence.
- Kazari - Multitouch gesture and input library.
- love-microphone - Simple microphone support for LÖVE.
- LoveKeys - A simple input handeling library that keeps track of things for you.
- Swipe - A simple radial keyboard library.
- tactile - A straightforward and flexible input library.
Lighting¶
Lighting & Shadow Libraries
- bitumbra - GPU accelerated many lights 2D shadows.
- Light - A simple dynamic light implementation.
- Light World - A lighting model.
- lighter - A performant dynamic light implementation with a simple API.
- Shädows - A Shadows & Lights engine for LÖVE.
- Simple Love Lights - A very simple raycasting light implementation.
Math¶
Math specific Libraries
- Bresenham - Bresenham's line algorithm written in Lua.
- brinevector - Standalone lightweight luajit ffi-accelerated 2D vector library for great performance.
- Cirno's Perfect Math Library - Math/intersection library designed for games.
- delaunay - Triangulation library for convex polygons.
- hump.vector - Powerful 2D vector class.
- loaded_dice - Walker-Vose alias method implementation (loaded dice-like RNG) useful for rolling loot tables, etc.
- MLib - Math and shape-intersection detection library written in Lua. It's aim is to be robust and easy to use.
- nvec - Hump.vector-compatible LuaJIT FFI-accelerated 2D vector library.
- polysec - A performant and lightweight library to detect polygon and rectangle intersections.
- shash - A simple, lightweight spatial hash for Lua.
- vector.lua - A simple vector library based on the PVector class from processing.
- Vornmath - The most comprehensive small vector & matrix, complex number, and quaternion library for Lua.
Music¶
Music related libraries
- denver - A Löve custom waveform generation library.
- lovebpm - A LÖVE library for syncing events to the BPM of an audio track.
- ripple - An audio manager with tagging support.
- wave - A sound manager with audio parsing and rhythm functionalities.
- Lua-Opus - A module for streaming and decoding Ogg Opus audio files with queueable playback and PCM integration.
Networking¶
Networking & Online-Play Libraries
- fetch-lua - An HTTPS/HTTP requests library made only with luajjit.
- Grease - Networking library intended to make networking easy for lovers (TCP, UDP, Enet). (IPv6)
- löve-ws - A WebSocket client and server library.
- love2d-lua-websocket - A simple event-driven WebSocket client library. (IPv4)
- LoverNet - A networking library that leverages bitser and enet. (IPv4)
- NoobHub - OpenSource multiplayer and network messaging. (IPv6)
- Sock.lua - A Lua networking library for LÖVE games. (IPv4)
OO¶
Object Orientation Libraries that support Class-Commons
- 30log - Minified framework for object-orientation in Lua. It features named (and unnamed) classes, single inheritance and a basic support for mixins.
- classic - Tiny class module for Lua. Attempts to stay simple and provide decent performance by avoiding unnecessary over-abstraction.
- hump.class - Small, fast class/prototype implementation with multiple inheritance (class-commons).
- knife.base - Extremely minimal base class providing single inheritance and constructors.
- LowerClass - A MiddleClass Inspired library with extended features.
- middleclass - Simple OOP library for Lua; has inheritance, metamethods (operators), class variables and weak mixin support (class-commons).
- muun - Moonscript compatible class implementation.
- Object-Library - ObjectLibrary is a simple library for the LÖVE2D game engine that allows users to create objects with collision detection and optional textures.
- selene - Project template for writing games in Moonscript instead of Lua without precompiling.
Performance¶
Performance measurement tools
- AppleCake - Profiling library for LÖVE, with detailed profiling and thread support.
- jprof - Profiling library/tool for LÖVE.
- Piefiller - Graphical profiler for LÖVE.
Physics¶
Collision Detection & Physics Wrappers
- breezefield - A lightweight and easy love.physics wrapper (windfield alternative).
- Bump - Collision detection library for Lua.
- HC - Collision detection with arbitrary polygons; allows rotation of objects.
- loveblobs - A softbody library with support for both dynamic and static arbitrary softbodies.
- slick - A simple to use polygon collision library inspired by bump.lua.
- Strike - 2D collision detection library. Extendable, based on Separating-Axis-Theorem.
Platforms¶
Ports for Platforms other than the ones officially supported by LÖVE
- LÖVE Potion - Unofficial implementation of the LÖVE for Nintendo (3DS, Switch and Wii U) Homebrew.
- LOVE-WrapLua - A small and simple wrapper for OneLua, lpp-vita, and Lua Player PS3.
- lovejs-player - LÖVE ported to the web using Emscripten.
- LoveDos - A Lua framework for 2D DOS games, implementing a subset of the LÖVE API.
- LoveFTW - Work-in-progress port to Windows phone 8.1.
- LÖVR - LÖVE for virtual reality devices.
- Lutro - Portable game engine implementing a subset of the LÖVE API for retro games, runnable through RetroArch on many platforms.
Serialization¶
Save Game & Storage Libraries
- arson - Companion library for registering custom data types that can be encoded and decoded by json.lua.
- binser - Customizable Lua Serializer.
- bitser - Serializes and deserializes Lua values with LuaJIT.
- cdata - Serialize between Lua data and C data using LuaJIT's FFI.
- knife.serialize - Serialize data as a Lua script.
- Lady - Saving and loading savegames; based on Ser.
- moonblob - Binary serialization and data parsing library.
- Ser - Fast, robust, richly-featured table serialization library for Lua.
- Smallfolk - A fast, robust, secure, richly-featured table serialization library for Lua.
- trickle - A bitstream library focused on high compression for use in networking.
Shaders¶
GLSL related Libraries
- LoveShaderConverter - Convert Shadertoy Shader files to LÖVE GLSL Files with handy utilities for infinite purposes.
- Moonshine - Repository of common post-processing effects like blur, vignette, color-grading, etc.
- ngrading - Simple color grading library.
- ShaderScan - Adds hot reload, includes, and better error messages for faster shader iteration.
Testing¶
Libraries and Tools for Unit Testing
- busted - Simple unit-testing framework with customizable assertions.
- knife.test - Fixture-free test framework.
- Luassert - Extends
assert()with additional, customizable tests. - Lunatest - xUnit-style randomized unit testing framework.
- lust - Minimal test framework.
- Specl - Behavior Driven Development (BDD) tool.
- Telescope - Highly-customizable BDD-style testing library.
Tweening¶
Smoothing & Timer Libraries
- Flux - A fast, lightweight tweening library for Lua.
- hump.timer - Timer and tweening library with flexible tweening methods.
- knife.timer - Create timers and tweens with ease.
- NAniTe - Timeline-based animation system that supports forward and backward update.
- tick - Lua module for delaying function calls.
- tween.lua - Tweening/Easing/Interpolating functions for Lua inspired on jQuery's animate method.
UI¶
User Interface Libraries
- Badar 🌕 - Simple custom UI syntax for easy components compositions.
- CatUI - A very light-weight GUI library for LÖVE.
- cimgui-love - LÖVE module for Dear ImGui obtained by wrapping cimgui (programmatically generated C-api) using LuaJIT FFI, easy to update to the latest Dear Imgui version.
- FlexLöve - A fully featured GUI library, supporting flexbox/grid/absolute layouts, both immediate and retained mode, 9patch theming and advanced event support.
- GOOi - Android-oriented GUI library.
- Hanker - Maximalist immediate mode-ish UI elements; gamepad-friendly.
- Helium - A modern, customizable, high performance retained UI framework.
- Inky - Any-purpose GUI framework.
- Layouter - A simple UI grid layout library for LÖVE 2D game engine.
- ListBox - A dynamic ListBox for LÖVE that supports touch, mouse, and keyboard inputs.
- Love Imgui - Imgui module for the LÖVE game engine.
- Löve-Nuklear - Lightweight immediate mode GUI for LÖVE games.
- LoveFrames Fork - 11.2 Fork of a GUI library.
- LOVELi - Retained mode layout and GUI library inspired by .NET's MAUI controls with StackLayout, AbsoluteLayout, Grid, Label, Button, Image, CheckBox, RadioButton, Switch, ProgressBar, Slider, TextBox and Border.
- Lovely Toasts - Floating speech bubbles with text of your choice.
- lovepatch - A simple 9-patch library for LÖVE.
- lovr-ui2d - An immediate mode GUI library for LÖVR and LÖVE.
- LuaJIT-ImGui - LuaJIT bindings for Dear ImGui with a LÖVE module; supports all cimgui widgets using cpp names for easy example copying.
- Luis - Love UI System - A retained mode UI framework for LÖVE with input processing (mouse, keyboard, touch, gamepad), layer-, grid-, state-, theming-system, UI editor, 16+ widgets (for desktop & mobile).
- Lynx - Very-lightweight list-based UI library.
- MeowUI - Extensible library written in MoonScript that enables you to create your own GUI controls based on provided core modules for Löve2D.
- NLay - Flexible layouting library.
- Patchy - 9patch library.
- Plan - A super simple Rule-based layout library.
- Polywell - A highly-configurable text editor / coding tool written in Lua that runs on the LÖVE game engine.
- ProdUI - A user interface library for the LÖVE Framework.
- SafeWord - An overscan detection library for LÖVE.
- Slab - An immediate mode GUI toolkit for the LÖVE framework.
- Slicy - A newer 9patch/9slice library fixing some issues with Patchy.
- SUIT - Small immediate mode GUI library.
- TuxRedux - An immediate-mode UI system for LOVE2D inspired by SUIT.
- YALG - A very simple, cross-platform, reactive UI for last minute UIs.
Utilities¶
Non-Game specific libraries and tools
- andromeda - Asset database and loader for love.
- ArrayRotation - Rotation of two dimensional arrays (square and non-square).
- bar128-love - Barcode rendering library for LÖVE.
- cargo - Asset manager.
- chance.lua - Library for generating random data.
- colorchanger - Change the colors in your LÖVE game.
- Flirt - LÖVE version manager; allows to switch between multiple versions of engine on same machine.
- GifCat - A simple module for saving gifs from LÖVE.
- hex2color - A single function to use HEX color values.
- i18n - Internationalization library designed to help localize your game.
- Ini Parser - General purpose ini configuration parser.
- KeyedArray - A special data structure where items can be found by their position or key. Similar to an ordered dictionary.
- Lily - Async Asset Loader.
- log.lua - Library for configurable log output.
- love-loader - Threaded resource loading.
- love-pe - A tool made in LÖVE for changing LÖVE icon itself.
- love-qrcode - QR Code rendering library for LÖVE.
- love2d-assets-loader - Assets Loader.
- lovely-engine - A tool that makes setting up and using LÖVE easier and with Moonscript support.
- LuaRequireExtended - A Lua module that lets you require files with input parameters and multiple output values.
- luasteam - Lua bindings for the Steamworks API.
- Luvent - Simple event-driven programming.
- nativefiledialog - Open a file picker on Windows/Mac/Linux.
- nativefs - Read and write files outside of LÖVE's allowed paths.
- particle-system-playground - A basic LÖVE particle system editor.
- ParticleEditor - An editor of particle for LÖVE.
- require.lua - Require all files in a folder.
- servelove - A web server library that runs on love.
- ShakeDetectorLua - Uses accelerometer data for shake device detection written in Lua.
- smiti18n - A very complete internationalization library for Lua with LÖVE support.
- splashy - Splash Screen Library.
- text2.love - Full-featured text editor for prose (not code).
- tick - Useful timing tweaks for LÖVE's run loop.
- LUA-SNG-Parser - A Lua library for parsing and extracting custom .sng song package files, supporting metadata reading, file listing, and batch extraction. Ideal for rhythm games, audio-based projects.
Tutorials¶
Blogs and tutorials
- Building love2d games for the web with love.js and Docker - A tutorial on packaging LÖVE games for the web.
- CS50 Introduction to Game Development - Harvard Colleges CS50 OpenCourseWare.
- learn2love - Book for learning programming with Lua and LÖVE (Version 11.0+).
- Simple Game Tutorials - Tutorials for making simple games with LÖVE (Snake, Sokoban, Tetris, etc.).
- Tutorial on making an Arkanoid-type game - A complete tutorial on how to make a breakout clone by nooowaay.
- Using Tiled Maps in LÖVE (archived) - An article about using maps created with Tiled in your LÖVE game.
IDEs¶
Integrated Development Environments and text editor plugins
- Brackets - A modern, open source text editor by Adobe (obsolete).
- Lua Syntax Highlighter - Add Lua syntax highlighting in Brackets.
- LÖVE Hints for Brackets.io - Provides LÖVE code hints.
- Run LÖVE - Launch LÖVE projects with a hotkey.
- ZeroBrane Studio - A lightweight Lua IDE with code completion, syntax highlighting, live coding, code analyzer, and debugging support.
- API Syntax Hightlight - Script to add LOVE API syntax highlighting to ZBS.
- IntelliJ IDEA - Capable and Ergonomic Java IDE.
- Vim - A highly configurable text editor built to make creating and changing any kind of text very efficient.
- Vim LOVE Docs - Syntax highlighting for Vim.
- Notepad++ - A free source code editor and Notepad replacement that supports several languages.
- LÖVE API for Notepad++ - Code completion and documentation for Notepad++.
- Visual Studio Code - VS Code is a new type of tool that combines the simplicity of a code editor with what developers need for their core edit-build-debug cycle.
- Local Lua Debugger - Simple Lua debugger with no dependencies. Löve specific launch.json example provided.
- Lua for Visual Studio Code - Provides Intellisense and Linting for Lua in VSCode.
- Lua Language Server - Various language features for Lua to make development easier and faster; includes LÖVE code completion and documentation.
- Visual Studio Code LÖVE Launcher - A Löve Launcher Extension for Visual Studio Code.
- Sublime Text - A sophisticated text editor for code, markup and prose. You'll love the slick user interface, extraordinary features and amazing performance.
- Package Manager - The Sublime Text package manager that makes it exceedingly simple to find, install and keep packages up-to-date.
- SublimeLove - Supports syntax highlighting, auto-completion, and build system.
- SublimeLinter-luacheck - Provides linting and static analysis of your Lua code.
- Pulsar - Hackable text editor based on the extinct Atom; Has great support and auto-completion works nicely, but for now lacks error highlighting.
- autocomplete-love - Auto-complete and snippets for LÖVE.
- love-ide - Auto-installs several utilities for writing Love2D games in Pulsar.
- language-lua - Add syntax highlighting and snippets to lua files.
- atom-autocomplete-lua - Autocomplete for Lua.
- Zed - A next-generation code editor designed for high-performance collaboration, written in Rust.
- love2z - Alejandro's Beta typing hints for Zed.
- love2d - LuaCATS typing hints for the lua language server.
- Lua extension - Syntax highlighting, file outline, code formatting, completion and documentation for Lua and LÖVE; to configure with the instructions given on the Lua Language Support page.
- Love2D WebIDE - Completely web based IDE for writing Love2D games.
Distribution¶
Tools and templates for distributing LÖVE games
* AppImageKit - Using AppImageKit you can package LÖVE games as AppImages that run on common Linux-based operating systems, such as RHEL, CentOS, Ubuntu, Fedora, Debian and derivatives; one game = one file.
* boon - Multi-platform, easy to use tool supporting Windows, macOS, Linux.
* LÖVE Actions - Build & deploy cross-platform game packages on ALL popular platforms. Supports Android, iOS, Linux, macOS, Windows.
* LÖVE Game Development & Automated Build System - Preconfigured VSCode/Codium. Build for Android, iOS, HTML5, Linux, macOS and Windows and automatically publish to Itch.io.
* love-build - Downloadable application (made in LÖVE!) that can build games for Windows, macOS, and Linux regardless of your own OS.
* love-deploy - Build and deploy games on itch.io (supports windows and web exports).
* love-export - Fast and simple command-line tool that builds binaries for you. Supports Windows, macOS, and Linux.
* love-fuser - Packages LÖVE Games using GitHub Actions. Supports Windows, Linux, and Android.
* love-packager - Simple CLI to package your LÖVE Game in seconds.
* love-release - A Lua script that automates game distribution. Supports Windows, macOS, Debian, Linux.
* Love-Snap-Template - A template for packaging LÖVE games for distribution in the Snappy Store.
* lover - Bringing the joys of rust's package manager (Cargo) to love.
* lovesfx - Packs love games in a single file for windows.
* makelove - Advanced multi-platform tool to fuse your game written in Python 3. Supports Windows and Linux with AppImage.
Related¶
- awesome-love-shaders - A collection of shaders designed to work in LÖVE.
- awesome-lua - A list like this one, but more general and encompassing all of Lua's uses.
- awesome-pico8 - A curated list of PICO-8 resources, tutorials, tools and more.
Other awesome lists can be found in the awesome-awesomeness list.