Home Unreal Engine

Documentation: String Lights for Unreal Engine

polycounter lvl 4
Offline / Send Message
ElKaWeh polycounter lvl 4

Available on the Unreal Engine Marketplace 


  1. Overview
  2. Initial Setup
  3. Settings & Features
    1. Light Color (1,2,3)
    2. Brightness
    3. Multi Colored Lights
    4. Enable Blinking Lights
    5. Blinking Speed
    6. Collision Enabled
    7. Spawn Point Lights
    8. Point Light Settings
    9. WPO At Distance
  4. Additional Info & Advanced Usage

1. Overview

String Lights is a blueprint tool for Unreal Engine that allows you to quickly create string lights as spline meshes in your scene. There are 6 unique types of String Lights, which can all be easily adjusted to your needs.

2. Initial Setup

After importing the package into your Unreal Project, go to Content > StringLights > Blueprints > Presets and simply drag and drop one of the "BP_StringLights[...]" Child Blueprint Classes into your level. You are now ready to go.

There are three presets for each type of String Light, which can be adjusted freely and used simultaneously. However, if you need more than three different versions of the same String Light type, a description on how to create additional presets can be found below under "Additional Info & Advanced Usage".

3. Settings & Features

Keep in mind, that some of the settings below affect the emissive materials applied to the String Light meshes. This applies to: Light Color (1,2,3), Brightness, Multi Colored Lights and WPO at Distance.

Emissive materials are shared between each instance of the same blueprint / child blueprint class, therefore having the same BP / CBC multiple times with different material settings is not possible. To still use the same type of String Light multiple times, with different material settings, either use some of the existing presets ( e.g. BP_StringLights01_pr1, BP_StringLights01_pr2 & BP_StringLights01_pr3) or create additional presets by using the description below.

Be careful, changing these settings will impact the emissive materials of all copies of the same blueprint, in all levels. Therefore, it is advised to change them only in the related child blueprint class (StringLights/Blueprints/presets/...) directly, and not in the Details Panel of the already placed blueprint.

These settings will be marked with --affects materials-- in this documentation. They are also marked with a tool tip in Unreal.

3.1. Light Color (1,2,3)

--affects materials--
Changes the color of the String Light's emissive material(s) and, if they are activated, of its point lights.

StringLights01, StringLights02 and StringLights05 have multicolor options. Only if "Multi Colored Lights" or "Enable Blinking Lights" is turned on, "Light Color 2" and "Light Color 3" will take effect.

3.2. Brightness

--affects materials--
Changes the brightness of the String Light's emissive material(s) and, if they are activated, of its point lights.

3.3. Multi Colored Lights

--affects materials--

Only StringLights01, StringLights02 and StringLights05 have multicolor options.
When activated, the first light on the string will have Light Color 1, the second one Light Color 2, the third one Light Color 3, the fourth one Light Color 1 and so on.

3.4. Enable Blinking Lights

If activated, the lights will switch between Light Color 1, 2 & 3. If "Multi Colored Lights" is selected, all three colors will be visible at the same time. If "Multi Colored Lights" is not selected, all lights will cycle between Light Color 1,2, & 3 simultaneously.

3.5. Blinking Speed

Delay between each color change in seconds.

3.6. Collision Enabled

Enables collision for the spline mesh. 

3.7. Spawn Point Lights

This option spawns Point Lights, with adjustable spacing along the spline (NOT at each point where a light sits). This option is especially useful, if you are not using Lumen, but it can still make sense to use both in combination. It is very performance heavy, so I recommend enabling it very selectively and to increase the spacing between each Point Light for longer splines, so you have less Point Lights overall.

Sometimes it makes sense to disable the option, and set your own Point Lights instead, as it is also partially done in the overview level.

3.8. Point Light Settings

You have the ability to change Mobility, Intensity Units, Source Radius and Attenuation Radius, as well as enabling or disabling Cast Shadows for the spawned Point Lights. Those are the same options, you would also have when manually creating a Point Light in Unreal. For more information, please check the official Unreal Engine Documentation.

One additional setting here is the Point Light Spacing. This is the interval, at which the Point Lights are spawned along the spline. Increase the value to save performance. When spacing is increased, the source length of each Point Light will automatically adjust to the spacing, so there are no gaps between each light. However, with more spacing, the emitted light will look jagged on strong curves.

3.9. WPO at Distance

--affects materials--

WPO at Distance stands for World Position Offset at distance, along the local normals. Since the String Lights are thin in nature, they become invisible at distance, when they get too small to fill in a single pixel. This feature works around this issue, by increasing the thickness of the mesh when the camera is further away. It can be deactivated, by setting the value to 0 or exaggerated by putting in a value greater than 1.

4. Additional Info & Advanced Usage

Having multiple string lights of the same type, with different color settings

create a copy/preset:
  1. right click the blueprint in the parents folder, you want to create an additional version of, and click "Create Child Blueprint Class"
  2. move the child into the presets folder or a location of your choice
  3. you are free to follow the existing naming convention or give it a new name entirely
  4. copy it's related MPC from the blueprints > parents folder and paste it into the presets folder (or another location of your choice)
  5. rename the MPC accordingly
  6. copy all M_Emissive materials from StringLights > Materials > StringLights01/02/03/...
    and paste it into the presets folder under the same location (they need to be unique copies, creating material instances instead, won't work)
  7. rename it accordingly
  8. open the copied BP & Material(s) in the Editor
  9. for the Blueprints:
    - open the new child blueprint
    - replace the assinged MPC and all Materials in the slots with the newly created copies
    - compile & save
  10. for the Materials:
    - in the Material Editor, replace all MPCs with the copied MPC
    - save
  11. in the copied MPCs nothing has to be changed

Sign In or Register to comment.