![Awesome Löve](logo.png)
![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)
A categorized community-driven collection of high-quality, awesome
LÖVE libraries, projects, and resources.
Table of 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.
-
model_renderer
- a simple 3d model renderer for love2d
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(gird, point, mesh or infinite map) and support path
cost.
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!
-
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
-
Editgrid - Gamera and
HUMP compatible scaling grid
-
gamera - Camera system
-
hump.camera
- Camera library with window locking and smooth camera movement
interpolation
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 Love2D
live reloader with Moonscript support
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
-
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
Entity
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
Helper Libraries
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
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]
Object Orientation
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
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.
-
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
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.
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.
-
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
-
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.
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 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
-
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
-
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
-
Brackets - A modern, open source text
editor by Adobe
-
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
-
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
-
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.
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)
Contributing
Please see
CONTRIBUTING
for details.
Other Awesome Lists
-
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.