Install Asset
Install via Godot
To maintain one source of truth, Godot Asset Library is just a mirror of the old asset library so you can download directly on Godot via the integrated asset library browser

Quick Information

Adds support for flickering lights in both 2D and 3D using lightstyle patterns inspired by Quake and Half-Life.Easily simulate broken or erratic lights with simple pattern strings ("mmamammmmammamamaaamammma") and adjustable speed.Supports OmniLight3D, DirectionalLight3D, SpotLight3D, and PointLight2D.Great for horror, industrial, sci-fi or retro FPS-style environments.Includes:- 3D Lights: OmniLight3D, DirectionalLight3D, SpotLight3D- 2D Lights: PointLight2D, FlickeringDirectionalLight2D, FlickeringLightOccluder2D- Built-in lightstyle pattern parserSimple, drop-in usageNo external dependencies. MIT licensed.
Flickering Light for Godot
This plugin adds flickering behavior to both 2D and 3D lights in Godot Engine using lightstyle patterns inspired by Quake and Half-Life.
Features
- Supports OmniLight3D and PointLight2D
- Flicker patterns are defined as strings (e.g. "mmamammmmammamamaaamammma")
- Adjustable speed and pattern
- Lightweight and editor-friendly
- Compatible with Godot 4.x
- Fully runtime-animated (
_process()
-based). - Ideal for torches, faulty bulbs, or horror scenes.
Installation
- Install via AssetLib, or copy the
addons/flickering_light
folder into your project. - In the Godot Editor, go to Project > Project Settings > Plugins and enable Flickering Light.
Usage
For 3D
- Add a
FlickeringLight3D
node to your scene. - Adjust the
pattern
andspeed
properties in the Inspector.
Or you can use it via code
func _ready() -> void:
var flicker_light = FlickeringLight3D.new()
flicker_light.max_energy = 2.0
flicker_light.pattern = 'mmaammzmaamamzzmaam'
flicker_light.position = Vector3(0, 1, 1.5)
add_child(flicker_light)
For 2D
- Add a
FlickeringLight2D
node to your scene. - Adjust the
pattern
andspeed
properties in the Inspector.
Pattern Format
Each character in the pattern represents a brightness level:
- 'a' is darkest
- 'm' is medium light
- 'z' is brightest
The brightness is calculated using:intensity = (char - 'a') / 25.0
Examples:
"mmamammmmammamamaaamammma"
: erratic flicker"abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba"
: smooth pulse
License
This plugin is distributed under the MIT License. See the LICENSE file for details.
Compatibility
- Tested with Godot 4.4.
- Only PointLight2D and OmniLight3D are currently supported.
Adds support for flickering lights in both 2D and 3D using lightstyle patterns inspired by Quake and Half-Life.
Easily simulate broken or erratic lights with simple pattern strings ("mmamammmmammamamaaamammma") and adjustable speed.
Supports OmniLight3D, DirectionalLight3D, SpotLight3D, and PointLight2D.
Great for horror, industrial, sci-fi or retro FPS-style environments.
Includes:
- 3D Lights: OmniLight3D, DirectionalLight3D, SpotLight3D
- 2D Lights: PointLight2D, FlickeringDirectionalLight2D, FlickeringLightOccluder2D
- Built-in lightstyle pattern parser
Simple, drop-in usage
No external dependencies. MIT licensed.
Reviews
Quick Information

Adds support for flickering lights in both 2D and 3D using lightstyle patterns inspired by Quake and Half-Life.Easily simulate broken or erratic lights with simple pattern strings ("mmamammmmammamamaaamammma") and adjustable speed.Supports OmniLight3D, DirectionalLight3D, SpotLight3D, and PointLight2D.Great for horror, industrial, sci-fi or retro FPS-style environments.Includes:- 3D Lights: OmniLight3D, DirectionalLight3D, SpotLight3D- 2D Lights: PointLight2D, FlickeringDirectionalLight2D, FlickeringLightOccluder2D- Built-in lightstyle pattern parserSimple, drop-in usageNo external dependencies. MIT licensed.