
    
      
    
    
      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.