# Awesome Löve

Awesome Löve

A categorized community-driven collection of high-quality, awesome LÖVE libraries, projects, and resources.

## Contents

- 3D
- AI
- Animation
- Camera
- Development
- Drawing
- Entity
- Helpers
- Input
- Lighting
- Math
- Music
- Networking
- OO
- Performance
- Physics
- Platforms
- Publishing
- Serialization
- Shaders
- Testing
- Tweening
- UI
- Utilities
- Tutorials
- IDEs
- Distribution
- Related

## 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.
- 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.
- g3d - Simple and easy 3D engine for LÖVE.
- Menori - Library for 3D rendering with LÖVE.

## AI

Navigation, Decision-Making and AI Libraries

- Jumper - Grid-based pathfinding library.
- Lua-star - Easy and pure Lua A* path finding.
- astar - An other A* library. Any map (grid, point, mesh or infinite map) and support path cost.
- pathfun - Pure Lua library for 2D pathfinding using the funnel algorithm.
- beehive.lua - A functional behavior tree implementation.
- Luafinding - Class-based A* implementation written purely in Lua.
- LÖVElyTrees - Fully featured behaviour tree implementation with tree rendering.

## 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.
- Peachy - A parser/renderer for Aseprite animations in LÖVE.
- skeletor - 2D skeletal animation system.
- Walt - Animation library.
- Lump - Adobe Flash animation runtime.
- lovanim - A minimal stateful animation library.
- SYSL-Text - Text animation and automatic wrapping library based on tags.

## Camera

Viewport & Camera Libraries

- Brady - Camera library with parallax scrolling.
- cam11 - Camera library that leverages the Transform object introduced in love2d 11.0+.
- Editgrid - Gamera and HUMP compatible scaling grid.
- gamera - Camera system.
- hump.camera - Camera library with window locking and smooth camera movement interpolation.
- parallax - Parallax scrolling with any camera system; seamlessly tile background images.

## Development

Development assisting Libraries, that enrich your development experience

- FPSGraph - Small FPS graphing utility.
- debugGraph - Small OO FPS graphing utillity based on FPSGraph.
- Lovebird - Browser-based debug console.
- LoveDebug - Inline console-like debugger utility.
- lurker - Auto-swaps changed Lua files in a running game.
- 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.
- lovelier - A LÖVE live reloader with Moonscript support.
- loveprofiler - LoveProfiler is an extremely simple logger and profiler.
- 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.
- center - A simple module to dynamically align and fit content to screens of any size.
- deep - Adds Z axis; allows you to queue actions and draw calls.
- draft - A module for drawing complex shapes.
- 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!
- Shöve - A powerful resolution-handler and rendering library for LÖVE.
- svglover - Library to import and display simple SVGs in LÖVE.
- SYSL-Pixel - Pixel art focused scaler for graphics, position, screen-captures and shaders.
- Sölar - A fairly simple solar system simulator.
- Tove2d - Animated vector graphics for LÖVE.
- turtle.lua - Turtle graphics library for LÖVE.
- Runtime-TextureAtlas - Texture atlas packer and renderer at runtime; no external tools.
- Export-TextureAtlas - Extends Runtime-TextureAtlas as a commandline tool to export an atlas.

## 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 - Astray is 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.
- 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).
- shard - Collection of useful mini modules.
- lovely-windows - A Window/Screen Manager Module for virtual windows.
- love-state-switcher - State switcher class for Lua LÖVE Engine.
- lua-state-machine - Lua Finite State Machine.
- lue - Lue is 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.
- 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.
- YAS - Yet Another Screen manager.
- 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 - Shack is a LÖVE library that lets you easily add screen effects such as shake and rotation.
- Simple Tiled Implementation - Tiled map loader and renderer.
- Vivid - Color math, manipulation and conversion library.
- Yonder - A ridiculously easy to use game state management library for LOVE2D.
- GameStateManager - A lightweight, optimized, and easy-to-implement solution for efficient game state management.
- Love dialogue - Simple to use Dialogue Library for Love2d with custom scripting language for dialogues .

## 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.
- lighter - A performant dynamic light implementation with a simple API.
- Shädows - A Shadows & Lights engine for LÖVE.
- Light World - A lighting model.
- Simple Love Lights - A very simple raycasting light implementation.
- Light - A simple dynamic 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 - Delaunay triangulation 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.
- 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.
- polysec - A performant and lightweight library to detect polygon and rectangle intersections.

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

## Networking

Networking & Online-Play Libraries

- Grease - Networking library intended to make networking easy for lovers (TCP, UDP, Enet). (IPv6)
- 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)
- löve-ws - A websocket client and server library.
- love2d-lua-websocket - A simple event-driven websocket client library. (IPv4)
- fetch-lua - An HTTPS/HTTP requests library made only with luajjit.

## 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.
- middleclass - Simple OOP library for Lua; has inheritance, metamethods (operators), class variables and weak mixin support (class-commons).
- muun - Moonscript compatible class implementation.
- selene - Project template for writing games in Moonscript instead of Lua without precompiling.
- 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.
- LowerClass - A MiddleClass Inspired library with extended features.

## 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.
- ProFi - A simple lua profiler that works with LuaJIT and prints a pretty report file in columns.

## 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

- 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Ö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.
- Love.js - LÖVE ported to the web using Emscripten.
- LÖVR - LÖVE for virtual reality devices.

## Publishing

Guides to distributing LÖVE games in 3rd party stores

- Love-Snap-Template - A template for packaging LÖVE games for distribution in the Snappy Store.
- 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.

## 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.
- ngrading - Simple color grading library.
- Shadertoy viewer - Run code copied from shadertoy directly or output the converted code to a LÖVE shader.
- Moonshine - Repository of common post-processing effects like blur, vignette, color-grading, etc.
- 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

- 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.
- GOOi - Android-oriented GUI library.
- Gspöt - A stateful GUI lib for LÖVE.
- Hanker - Maximalist immediate mode-ish UI elements; gamepad-friendly.
- Helium - A modern, customizable, high performance retained UI 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.
- LoveFrames Fork - 11.2 Fork of a GUI library.
- Love Imgui - Imgui module for the LÖVE game engine.
- Löve-Nuklear - Lightweight immediate mode GUI for LÖVE games.
- Lovely Toasts - Floating speech bubbles with text of your choice.
- lovr-ui2d - An immediate mode GUI library for LÖVR and LÖVE.
- Luis - 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.
- NLay - Flexible layouting library.
- Patchy - 9patch library.
- Slicy - A newer 9patch/9slice library fixing some issues with Patchy.
- 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.
- SafeWord - An overscan detection library for LÖVE.
- Slab - Slab is an immediate mode GUI toolkit for the LÖVE framework.
- 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.
- YUI - Declarative UI library for LÖVE.
- Inky - Any-purpose GUI framework.
- Badar 🌕 - Simple custom UI syntax for easy components compositions.
- MeowUI - Extensible library written in MoonScript that enables you to create your own GUI controls based on provided core modules for Löve2D.

## 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.
- log.lua - Library for configurable log output.
- love-loader - Threaded resource loading.
- love-qrcode - QR Code rendering library for LÖVE.
- love2d-assets-loader - Assets Loader.
- love-pe - A tool made in LÖVE for changing LÖVE icon itself.
- lovely-engine - A tool that makes setting up and using LÖVE easier and with Moonscript support.
- Lily - Async Asset Loader.
- 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.
- ParticleEditor - An editor of particle for LÖVE.
- particle-system-playground - A basic LÖVE particle system editor.
- require.lua - Require all files in a folder.
- smiti18n - A very complete internationalization library for Lua with LÖVE support.
- splashy - Splash Screen Library.
- ShakeDetectorLua - Uses accelerometer data for shake device detection written in Lua.
- text2.love - Full-featured text editor for prose (not code).
- tick - Useful timing tweaks for LÖVE’s run loop.
- servelove - A web server library that runs on love.

## Tutorials

Blogs and tutorials

- learn2love - Book for learning programming with Lua and LÖVE (Version 11.0+).
- Using Tiled Maps in LÖVE - An article about using maps created with Tiled in your LÖVE game.
- Tutorial on making an Arkanoid-type game - A complete tutorial on how to make a breakout clone by nooowaay.
- Simple Game Tutorials - Tutorials for making simple games with LÖVE (Snake, Sokoban, Tetris, etc.).
- How to LÖVE - A book by Sheepolution teaching LÖVE from the ground up.
- CS50 Introduction to Game Development - Harvard Colleges CS50 OpenCourseWare.
- Building love2d games for the web with love.js and Docker - A tutorial on packaging LÖVE games for the web.

## 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 - Run LÖVE projects with a hotkey.
- ZeroBrane Studio - ZeroBrane Studio is 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.
  - EmmyLua - Lua IDE/Debugger Plugin for VSCode.
  - LÖVE IDEA - Snippets and code completion for IntelliJ-IDEA.
- Vim - Vim is 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++ - Notepad++ is 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 - Sublime Text is 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 - Zed is a next-generation code editor designed for high-performance written in rust.
  - love2z - Alejandro’s Beta typing hints for Zed.
  - love2d - LuaCATS typing hints for the lua language server.

## Distribution

Tools that automate game publishing in one way or another * lover - Bringing the joys of rust’s package manager (`Cargo`) to love. * LÖVE Actions - Build & deploy cross-platform game packages on ALL popular platforms. Supports Android, iOS, Linux, maxOS, Windows. * love-packager - Simple CLI to package your LÖVE Game in seconds. * boon - Multi-platform, easy to use tool supporting Windows, macOS, Linux. * 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-export - Fast and simple command-line tool that builds binaries for you. Supports Windows, macOS, and Linux. * love-release - A Lua script that automates game distribution. Supports Windows, macOS, Debian, Linux. * 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. * 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-fuser - Packages LÖVE Games using GitHub Actions. Supports Windows, Linux, and Android.

## Related

- awesome-lua - A list like this one, but more general and encompassing all of Lua’s uses.
- awesome-love-shaders - A collection of shaders designed to work in LÖVE.
- awesome-pico8 - A curated list of PICO-8 resources, tutorials, tools and more.

Other awesome lists can be found in the awesome-awesomeness list.

love2d.md Github