A categorized community-driven collection of high-quality, awesome LÖVE libraries, projects, and resources.
- 3D
- AI
- Animation
- Camera
- Development
- Drawing
- Entity
- Helper Libraries
- Input
- Lighting
- Math
- Music
- Networking
- Object Orientation
- Performance
- Physics
- Platforms
- Publishing
- Serialization
- Shaders
- Testing
- Tweening
- UI
- Utilities
- Tutorials
- IDEs
- Game Distribution Tools
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.
- model_renderer - a simple 3d model renderer for love2d
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(gird, point, mesh or infinite map) and support path cost.
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!
- 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
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
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 Love2D live reloader with Moonscript support
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
- cindy - Use byte color values in LÖVE 11+
- deep - Adds Z axis; allows you to queue actions and draw calls
- draft - A module for drawing complex shapes
- 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
- 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 and Gameobject Managing Libraries
- adorbs - Minimal, Functional Entity Component System
- Concord - A feature-complete ECS library
- knife.system - Minimalist functional ECS
- nata - Hybrid OOP/ECS entity management
- tiny-ecs - Entity Component System for Lua that's simple, flexible, and useful
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
- hump - Collection of tools for developing games with LÖVE (Gamestates, Timers/Tweens, Vectors, Classes, Signals, Cameras). Repo is inactive but improvements are in the works at this fork (branch temp-master)
- 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
- 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
- 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 Love. A Love2D/lua port of rot.js
- 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
Input & Binding Libraries
- baton - Input library for LÖVE that bridges the gap between keyboard and gamepad controls
- boipushy - A simple and easy to use input handler
- input - Simple and powerful input library. support check operation time, sequence.
- love-microphone - Simple microphone support for LÖVE
- LoveKeys - A simple input handeling library that keeps track of things for you
- tactile - A straightforward and flexible input library
Lighting & Shadow Libraries
- 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 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
- 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
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 & 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]
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
Performance measurement tools
- jprof - Profiling library/tool for LÖVE
- Piefiller - Graphical profiler for LÖVE
- profile.lua - Profile.lua is a small, non-intrusive module for finding bottlenecks in your Lua code
- ProFi - A simple lua profiler that works with LuaJIT and prints a pretty report file in columns
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.
- Strike - 2D collision detection library. Extendable, based on Separating-Axis-Theorem
- Windfield - Physics module wrapper for LÖVE
Ports for Platforms other than Windows, Mac and Linux
- 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
- LovePotion - Unofficial work-in-progress implementation of the LÖVE API for Nintendo 3DS and Nintendo Switch 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
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
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
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.
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
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.
- tick - Lua module for delaying function calls
- tween.lua - Tweening/Easing/Interpolating functions for Lua inspired on jQuery's animate method
User Interface Libraries
- CatUI - A very light-weight GUI library for LÖVE
- GOOi - Android-oriented GUI library
- Gspöt - A stateful GUI lib for LÖVE
- Hanker - Maximalist immediate mode-ish UI elements; gamepad-friendly
- 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
- NLay - Flexible layouting library.
- Patchy - 9patch 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
- ListBox - A dynamic ListBox for LÖVE that supports touch, mouse, and keyboard inputs
- Lynx - Very-lightweight list-based UI library.
- YALG - A very simple, cross-platform, reactive UI for last minute UIs.
- Helium - A modern, customizable, high performance retained UI framework.
Non-Game specific libraries and tools
- ArrayRotation - Rotation of two dimensional arrays (square and non-square)
- 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
- log.lua - Library for configurable log output
- love-loader - Threaded resource loading
- 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 Love2d easier and with Moonscript support
- Lily - Async Asset Loader
- 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
- Optikon - WYSIWYG visual level designer
- 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
- splashy - Splash Screen Library
- ShakeDetectorLua - uses accelerometer data for shake device detection written in Lua
- tick - Useful timing tweaks for LÖVE's run loop
Blogs and tutorials
- adnzzzzZ's - A blog by adnzzzzZ with articles about game development using LÖVE
- 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’s Introduction to Game Development - Harvard College’s CS50 OpenCourseWare
- Building love2d games for the web with love.js and Docker - A tutorial on packaging LÖVE games for the web
Integrated Development Environments and text editor plugins
- Atom - A hackable text editor for the 21st Century
- Love-Atom - Smart autocompletion for the LÖVE framework in Atom.
- Autocomplete GLSL - Adds GLSL autocompletion in Atom
- language-glsl - OpenGL Shading Language support in Atom
- language-lua - Lua language support in Atom
- linter-luacheck - Lint Lua on the fly, using luacheck
- Löve Launcher - Launch LÖVE for the current project without having to leave Atom
- Löve IDE - This package auto-installs several utilities for writing Love2D games in Atom
- Autocomplete Löve - Auto-complete and snippets for LÖVE
- Hyperclick Löve - A Hyperclick provider for LÖVE which shows the wiki
- linter-luaparse - Lua syntax error checking in Atom
- Brackets - A modern, open source text editor by Adobe
- 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
- Lua for IDEA - Lua plugin for IntelliJ-IDEA
- 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
- Visual Studio Code LÖVE Launcher - A Löve Launcher Extension for Visual Studio Code
- Lua for Visual Studio Code - Provides Intellisense and Linting for Lua in VSCode
- Local Lua Debugger - Simple Lua debugger with no dependencies. Löve specific launch.json example provided.
- 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.
Tools that automate game publishing in one way or another
- boon - Multi-platform, easy to use tool supporting Windows, macOS, Linux.
- 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.
- makelove - Advanced multi-platform tool to fuse your game written in Python 3. Supports Windows and Linux with AppImage.
- love-deploy - Build and deploy games on itch.io (supports windows and web exports)
Please see CONTRIBUTING for details.
- 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.