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.
- DEEP - Handles draw order by allowing you to specify Z axis when drawing.
- 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
Navigation, Decision-Making and AI Libraries
- Jumper - Grid-based pathfinding library
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
- skeletor - 2D skeletal animation system
- Sodapop - Sprite and animation library
- 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
- Lovecat - Edit your game parameters in a browser and see the changes in the running game in real time
- 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
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
- Möan.lua - Multiple-choice VN-esque messagebox 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
Entity and Gameobject Managing Libraries
- adorbs - Minimal, Functional Entity Component System
- knife.system - Minimalist functional ECS
- 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
- hump - Collection of tools for developing games with LÖVE (Gamestates, Timers/Tweens, Vectors, Classes, Signals, Cameras)
- knife - Collection of useful micro-modules for Lua (Class, State Machines, Bind, Chain, Coroutines, Event, Memoize, Entity, Tests, Timer)
- 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
- 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
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
Music related libraries
- ripple - An audio library for sound effects and music
- wave - A sound manager with audio parsing and rhythm functionalities
- denver - A Löve custom waveform generation library
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]
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
- 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
- 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 - lua-TestMore - Port of Perl's
Test::More
package - 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.
- 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 - 0.10 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 Library bundles, that provide reuseable functions
- ArrayRotation - Rotation of two dimensional arrays (square and non-square)
- cargo - Asset manager
- chance.lua - Library for generating random data
- GifCat - A simple module for saving gifs from LÖVE
- i18n - Internationalization library designed to help localize your game
- log.lua - Library for configurable log output
- love-loader - Threaded resource loading
- love2d-assets-loader - Assets Loader
- Lily - Async Asset Loader
- Luvent - Simple event-driven programming
- splashy - Splash Screen Library
- Talkback - Observer pattern library with two-way communication
- tick - Useful timing tweaks for LÖVE's run loop
Blogs and tutorials
- SSYGEN's - A blog by SSYGEN with articles about game development using LÖVE
- 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
- Introduction to Game Development - Harvard College’s CS50 extension (Spring 2018)
Integrated Development Enviroments 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
-
IntelliJ IDEA - Capable and Ergonomic Java IDE
- 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.