A Lua module that automatically hotswaps changed files in a running LÖVE game engine project.
Lurker is a Lua module that automatically hotswaps changed Lua files in a running LÖVE game project. It solves the problem of having to restart the game engine to see code changes, enabling a faster and more interactive development workflow.
LÖVE game developers who want to streamline their development process with live code reloading without restarting their projects.
Developers choose Lurker for its simplicity, minimal setup, and seamless integration with LÖVE, offering essential hotswapping features with configurable options to enhance productivity.
Auto-swaps changed Lua files in a running LÖVE project
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically detects and swaps changed Lua files in a running LÖVE project without manual restarts, as evidenced by the one-line integration requiring only require("lurker").update() in love.update().
Offers settings like scan interval, error handling modes, and pre/post-swap hooks, providing flexibility as detailed in the README's parameters like lurker.interval and lurker.preswap.
Integration is straightforward with just two files (lurker.lua and lume.lua) and a single line of code, making it easy to adopt in existing LÖVE projects without complex configuration.
Includes protected mode and quiet mode to manage syntax errors and crashes, allowing development to continue even after errors, based on the lurker.protected and lurker.quiet features described in the README.
Depends on the lume.lua library, which must be manually added and maintained separately, introducing potential versioning issues and an extra step in setup.
Exclusively handles hotswapping for Lua files; other asset types like images or sounds are not supported, limiting its usefulness in full-game development workflows.
Default continuous polling with lurker.interval can add CPU usage, and while manual scanning via lurker.scan() is an option, it requires additional code to manage effectively.