LunarEngine (formerly Librebox) is an open-source game engine powered by Luau. It delivers a sandbox-style API and development model inspired by popular sandbox engines, so existing Luau code runs with minimal changes.
Lunar gives developers full agency over their games - from the code to the engine. Build immersive experiences with a familiar interface while maintaining complete ownership of your platform.
Create a part in the Workspace, while rotating and cycling its color.
-- examples/part_example.lua
local part = Instance.new("Part") -- Create a part
part.Anchored = true -- compat
part.Color = Color3.new(1,0,0) -- Make the part red
part.Position = Vector3.new(0,2.5,0) -- Position it
part.Parent = workspace -- Put it into workspace
local rs = game:GetService("RunService")
local t = 0
rs.RenderStepped:Connect(function(dt)
t += dt
part.CFrame = CFrame.new(part.Position) * CFrame.Angles(0, t, 0) -- rotate in place with CFrame
part.Color = Color3.fromHSV((t*0.2 % 1), 1, 1) -- set part color
end)
> ./LunarApp.exe examples/part_example.lua
Lunar Engine is currently in demo stage (it implements a limited subset of its planned API), but here is what is supported:
- Basic scene rendering
- Lighting, shadows, ambient, skybox
- Parts render within
game.Workspace
- Parts render within
- Basic camera movement
- Based on 'Libre-1' (to change in the future)
- Lighting, shadows, ambient, skybox
- Standard data types
CFrame
,Vector3
,Color3
,Random
game
,script
,workspace
- Instance System
- Nearly complete Instance API (missing
:WaitForChild()
) <instance>.Parent
:Destroy()
,:Clone()
- Nearly complete Instance API (missing
- Parts
- Implements
BasePart
Instance.new("Part")
Part.Color
,Part.Transparency
,Part.Size
Part.Position
,Part.CFrame
- More support in the future
- Implements
- Client-sided services
Workspace
workspace.CurrentCamera
- Default rendering stage
RunService
- All five standard stages, including
RenderStep
andHeartBeat
game.RunService.RenderStepped:Wait()
,:Connect()
- All five standard stages, including
Lighting
game.Lighting.Ambient
game.Lighting.ShadowSoftness
game.Lighting.ClockTime
game.Lighting.Brightness
game:GetService()
- Luau script support
- Highly capable 'Hyperball' task scheduler
RTScriptSignal
, Event binding, connections- Coroutines, Scripts, LocalScripts
task.spawn
,task.wait
,task.delay
- Luau optimization enabled by default
- Window handling and fullscreen optimization
Of course, this is just a rendering demo. Lunar Engine is extensible and easily supports the additions of new services and features.
In the next release, we will incorporate UserInputService
and StarterPlayer
, turning LunarApp into an actual interactive engine.
Lunar Engine currently supports Windows, but can easily be ported anywhere. The only dependencies are 'raylib' -- and raylib is already cross-platform.
- Windows 7+ (
.exe
)- Standalone executable (LunarApp.exe)
- Linux support immediate priority
Right now, Lunar Engine compatibility is limited. This is currently a demo (not even a release!). In future releases, you can expect the following:
- Physics
- Collision events, aspects
- Mesh support
- game.Players, Player
- UserInputService, ContextActionService
- Image rendering, decals
- Onscreen GUIs
- Materials, stronger rendering
And, in the future.
- Replication support (and Servers)
Lunar Engine is on its way to becoming a fully fledged dev platform -- just like Godot, or Unity, you can transfer your current Lua skills into Lunar, and create games you own.
In future releases, it could be entirely possible to:
- Create a game within the Lunar Editor (assets and scripts)
- Deploy a Lunar server (just like a "Minecraft" server)
- Implement your own monetization
- Get the full user experience, and professional game development
- No platform dependency
- Use your own APIs or rewrite the source code
This is entirely feasible, and, in fact, a good point for the existence of Lunar Engine. However, what we'd like to implement first is full client compatiblity (proper rendering, APIs). Then, this makes it easier to move on to servers.
And best of all, it is copyright free and open source (Lunar Engine is just an environment.)
I'll add this ASAP. For building dependencies, use the 'build_dependencies.bat' script, and for building the engine, build_engine.bat
For the .exe, you can specify a path either as the first argument (lua script only), or as --path
(script or folder).
LunarApp.exe includes three arguments: --no-place
, --target-fps
, and --path
.
--no-place
: (FLAG) Does not execute the default place initialization script (this includes the Baseplate.)
--target-fps
: Restrict the FPS to a certain value (default monitor refresh rate)
--path
: Path to script
This project uses:
- Luau, licensed under the MIT License.
Copyright (c) 2025 Roblox Corporation. - raylib, licensed under the zlib/libpng License.
Copyright (c) 2013-2025 Ramon Santamaria and contributors.
Lunar Engine is an independent open-source project. It is not affiliated with or sponsored by any commercial platform. All names and references are for interoperability only. Lunar Engine uses no third-party source code, assets, or proprietary materials.
You can send requests or questions at [email protected]
.