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
3D-centric Libraries
- anim9 - 3D skeletal animation library (design to be used with IQM and IQE)
- bump-3dpd - A 3D collision detection library for Lua.
- IQE - Inter-Quake Export loader (text)
- IQM - Inter-Quake Model loader (binary)
- LÖVE3D - 3D extensions to LÖVE
- Lovox - Pseudo-3D library for working with voxels
- Brinevector3D - FFI-enabled vector library for 3D (x,y,z)
Navigation, Decision-Making and AI Libraries
Animation & Frame-Managing Libraries
- andross - a Lua library for 2D skeletal/bone animations with a Löve backend
- anim8 - Animation library
- 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
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
- STALKER-X - STALKER-X is a camera module for LÖVE
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 TypeScript Definitions - Write LÖVE games with TypeScript
- MakeLove - Automated build creation for your projects, by monitoring changes in real-time (Windows Only)
Drawing specific Libraries, that simplify the Drawing process
- draft - A module for drawing complex shapes
- Artal - A .PSD parsing library for LÖVE
- Autobatch - Small LÖVE module to automate the use of SpriteBatches
- 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
- Sölar - a fairly simple solar system simulator
- svglover - Library to import and display simple SVGs in LÖVE
- Tove2d - Animated vector graphics for LÖVE
- deep - Adds Z axis; allows you to queue actions and draw calls
- center - A simple module to dynamically align and fit content to screens of any size
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
- 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
- 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
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
- love-microphone - Simple microphone support for LÖVE
- tactile - A straightforward and flexible input library
Lighting & Shadow Libraries
- 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
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)
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.
- 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 3DS Homebrew
- 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
- 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
- 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
- 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
- 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
- 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
- SUIT - small immediate mode GUI library
- ListBox - A dynamic ListBox for LÖVE that supports touch, mouse, and keyboard inputs
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
- Classic - A tiny class module for Lua
- 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
- Lily - Async Asset Loader
- luasteam - Lua bindings for the Steamworks API
- Luvent - Simple event-driven programming
- ParticleEditor - An editor of particle for LÖVE
- particle-system-playground - A basic LÖVE particle system editor
- 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
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
-
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.
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.