Awesome Löve
Awesome Löve
A categorized community-driven collection of high-quality, awesome LÖVE libraries, projects, and
resources.
Contents
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.
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.
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!
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.
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.
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.
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
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.
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
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)
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.
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.
Strike - 2D
collision detection library. Extendable, based on
Separating-Axis-Theorem.
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.
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.
YALG - A very simple,
cross-platform, reactive UI for last minute UIs.
YUI - Declarative
UI library for LÖVE.
Inky - Any-purpose GUI
framework.
Utilities
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 LÖVE 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.
Tutorials
Blogs and tutorials
IDEs
Integrated Development Environments and text editor
plugins
Brackets - A modern, open source
text editor by Adobe (obsolete).
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.
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.
Notepad++ - Notepad++ is
a free source code editor and Notepad replacement that supports several
languages.
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.
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.
Distribution
Tools that automate game publishing in one way or another *
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. * 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). * love-fuser -
Packages LÖVE Games using GitHub Actions. Supports Windows, Linux, and
Android.
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.