Description
Changelog
Reviews (10)

Lit

Drop-in 2D lighting for Godot 4 - with no light limit. (Docs)

Reviewing on the Asset Store is the best way to support Lit!

Lit is an alongside replacement for Godot's built-in 2D lights. It keeps the parts you like (add a node, set some values, done) and fixes the part you don't: the hard cap of ~15 lights per object. Light a whole scene with as many lights as you want, get real soft shadows, and stack on a pile of post-processing - all without leaving the node workflow.

Watch the tech demo

Requires Godot 4.4+ on the Forward+ renderer. (Mobile/Compatibility aren't supported.)

Support

Lit is made and maintained by Fading Lantern Games. Questions, bugs, or just want to show off what you built? Come hang out in our Discord:

https://discord.gg/nfqeRGnM7P

Prefer videos? Subscribe on YouTube:

https://www.youtube.com/@FadingLanternGames

Quickstart (Lit Docs)

  1. Enable the plugin. Project → Project Settings → Plugins → turn on Lit. Reload the project if Godot asks.
  2. Make it dark. Add a LitCanvasModulate node to your scene and set its color to something dark. Your world is now in shadow, waiting to be lit. (Use this instead of Godot's CanvasModulate, not alongside it.)
  3. Let your art catch light. Either drop in a LitSprite2D / LitTileMapLayer (ready to go), or select existing Sprite2D / TileMapLayer / other 2D nodes and run Project → Tools → Make Selected Nodes Lit.
  4. Add a light. Drop a LitPointLight2D over your art and watch it light up. Tweak color, energy, and range to taste.
  5. Want shadows? On the light, tick Shadow Enabled. Then give the world something to block the light: add a LightOccluder2D to a sprite, or for tiles enable SDF Collision on your TileSet's occlusion layer. Lit receivers don't shadow themselves - their own occluder's shadow falls behind them (flip Self Shadow to opt back in).
  6. Want a look? Add a LitPostProcess node, then hit Add Effect in its inspector to stack on bloom, color grade, CRT, or any of the other passes.

That's it - everything updates live in the editor as you build.

What you get

  • Uncapped lights & shadows. No 15-light limit. Use as many as your scene needs.
  • Three light types. Point, Directional (a sun), and Spot (a cone).
  • Light textures (cookies). Drop a texture on a point or spot light to shape it - window panes, canopy dapple, blinds.
  • Soft or hard shadows. One slider per light, from razor-sharp to feathery.
  • Three shadow algorithms, per light. Cone Traced (the default: physically driven by a Source Radius, so penumbras widen with distance, umbras taper closed, and an antumbra re-brightens), Raymarched (fastest, stylized), and Stochastic (ground-truth area shadows, correct even where occluders share a penumbra).
  • Normal maps & specular, free. Reads them straight from your CanvasTexture - no wiring.
  • Blinn-Phong or PBR. Pick the lighting model in Project Settings → Lit; PBR adds optional metallic / roughness / AO inputs on the receiver material.
  • Darkness & ambient. One LitCanvasModulate node sets the mood for the whole scene.
  • Light masks. Make a light affect only the things you want it to.
  • Negative lights. Flip a light to subtract to carve pools of extra darkness.
  • Works on any 2D node. Sprites, tilemaps, polygons - if it draws, it can be lit.
  • Live in the editor. See your lighting while you build, no need to hit play.
  • No shader stutter. Lit precompiles its lighting, shadow, and post shaders on first launch, so the hitches happen before your player starts playing. Boot screen, background worker, or your own loading flow - your call, in Project Settings → Lit.
  • 20+ post-processing effects, stacked as nodes. Add a LitPostProcess, then pick from its Add Effect menu: auto exposure (eye adaptation), threshold, bloom, halation, glitch, color grade, LUT presets, pixelate, posterize, edge outline, halftone, dither, letterbox, lens distortion, VHS, CRT, chromatic aberration, light leaks, film grain, vignette, and a focus/blur-to-sharpen dial. Each pass is a child node: reorder them to reorder the chain, hide one to switch it off. New Custom Effect... scaffolds your own.

The nodes

Node What it does
LitPointLight2D A light that shines in all directions from a point.
LitDirectionalLight2D A sun - parallel light across the whole scene.
LitSpotLight2D A cone of light you can aim.
LitCanvasModulate Sets the scene's darkness/ambient color.
LitSprite2D A Sprite2D that's already set up to receive light.
LitTileMapLayer A TileMapLayer that's already set up to receive light.
LitPostProcess Hosts the post-processing chain; its children are the passes.
LitPostEffect One post pass (bloom, grading, CRT, ...); the base class for your own.
LitSplashScreen A drop-in branded splash (glitch-fade logo, skippable).

Good to know

  • A Lit-lit object is lit only by Lit; a normal object is lit only by Godot's built-in Light2D. The two systems live side by side, so you can convert a project piece by piece.
  • For tilemaps to cast shadows, the TileSet's occlusion layer needs SDF Collision turned on (it's off by default).

Contributing

Lit is open source and we'd love the help. Found a bug, have an idea, or want to build out a feature? Open an issue or pull request on GitHub:

https://github.com/shawndeprey/lit

Want to talk an idea through first? The Discord is the quickest way to reach us.

License

Lit is free and open-source under the MIT License - use it in anything, commercial or not, no credit required. See the LICENSE file for the details.

Changelog for version v1.1.2

No changelog provided for this version.

Reviews

Recommended by Sam Lightsey - 26 June 2026

Well made!

Recommended by Derick Ballard - 24 June 2026

This addon is #lit

Recommended by L L - 19 August 2026

The documentation is the clearest ever in my life and the add-on is easy to use.

Recommended by Andallas - 24 June 2026

Really excited about this; especially because of the point light limit increase. Love the shaders too!

Recommended by HlopHLop - 09 July 2026

One of Godot's problems when it comes to 2D graphics is its weird lighting system (it's so strange that there's no Spot Light 2D like in Unity, there's a limit of 15 light sources, etc.). For me, the biggest headache is self-shadowing. And... this plugin solves that problem with a single checkbox. And of course, the fact that it removes the restrictions on light source limits. Great plugin.

Recommended by Momin Qureshi - 10 August 2026

Its crazy that this is not built in to Godot. An essential upgrade in all aspects to any form of 2D game. I was going to switch to Unity for my game before I found this.

Recommended by A S - 12 August 2026

Incredible add-on made by some properly smart people. Does a lot of stuff that Godot should really have built in, and is currently laying a foundation for an essential toolset with long term usability. Focusses on features as well as optimisation equally. Also head to the discord where author is responsive.

Recommended by Arakade - 25 July 2026

Great and the author is super responsive and positive on their Discord! (Used this on GMTK gamejam 2026.)

Recommended by Josh Belanger - 24 June 2026
Recommended by Cc Hh - 24 June 2026

Login to write a review.

Consider supporting the creators!

If you enjoyed this asset consider supporting its creator. Follow the link below.