How to make aurora borealis (northern lights) using ONE particle emitter!

Today I will teach you all my way of making aurora borealis, this is my first tutorial and I hope you enjoy and most importantly learn something new!

Expected final product:

I would recommend starting with a 1x1x1 part, at 0, 0, 0. Name it something appropriate, anchor it and tick CanCollide false.

Note: This looks wayy cooler at night! Especially with more stars.

Now, let’s insert and customize a particle emitter.

Step 1: Insert a particle emitter inside the part.

Step 2: Put THIS ID into the texture property: rbxassetid://110170832236629
image

Step 3: Let’s move onto the properties:

First of all, make sure your emitter emits like THIS:


It can be done with proper SpreadAngle (180, 0) and proper part rotation.

Now, go scroll down and set drag to 9.


It should make all the parts stuck into one place like this.

Now, increase the Speed to 100 for now (we’ll change that later), and shorten Lifetime to something like 3, or you can do something like 2, 4 for more variety.

It may not look like it, but we are really close!
Next, click the three dots on the Transparency and do something like this:

Set the Orientation property to VelocityPerpendicular.
Set LightInfluence to 0 (or up to 0.2) and set LightEmission to 1.
Set Squash to 2 or more.

This is where the magic happens!
Set Speed to 10000 or an appropriate value depending on your map’s size.
Set Rate to 200 or more.
Finally, set Size to 600 or less.


Wow! Now you’ve got yourself a magical atmosphere. Looks a bit bland, though. Let’s add some colors!

Choose an elegant color in the white rectangle. I chose green, you can choose any color you want.

Now, mess around with the color gradient like this:

Notice how I mixed in colors like cyan and yellow? That will add more variety, you should do it too.

Congratulations! You have created a nice-looking aurora borealis in roblox!
You can also mess with the Timescale.

Pro tip: Decrease the rate or light emission to get a darker look!
Example 1: 0.5 Light emission, 100 Rate.


Example 2: 1 Light emission, 100 Rate.

Here are some great examples of this (200 rate, 1 light emission):






Note: The particles may disappear after you get further away, you’ll need a script for the particles not to disappear.

I hope you learned something new with this and enjoyed! You shouldn’t stop here, though. This post may have come to an end, but I bet your creativity won’t! You can definitely tweak the properties much more. Until next time!

59 Likes

For the people needing a script: I made it work using camera updates:

-- CAMERA --
local camera = workspace.CurrentCamera

local polarLightsPart = Instance.new("Part")
polarLightsPart.Name = "polarLightsPart"
polarLightsPart.Transparency = 1
polarLightsPart.Anchored = true
polarLightsPart.CanCollide = false
polarLightsPart.CanQuery = false
polarLightsPart.CanTouch = false
polarLightsPart.Size = Vector3.new(1,1,1)
polarLightsPart.Orientation = Vector3.new(0, 0, -90)
polarLightsPart.Parent = workspace

local polarLightsEmitter = Instance.new("ParticleEmitter")
polarLightsEmitter.Name = "polarLightsEmitter"
polarLightsEmitter.Brightness = 1
polarLightsEmitter.Color = ColorSequence.new({
	ColorSequenceKeypoint.new(0, Color3.fromRGB(141,255,133)),
	ColorSequenceKeypoint.new(0.25, Color3.fromRGB(233,255,241)),
	ColorSequenceKeypoint.new(0.5, Color3.fromRGB(165,243,255)),
	ColorSequenceKeypoint.new(0.75, Color3.fromRGB(108,255,120)),
	ColorSequenceKeypoint.new(1, Color3.fromRGB(247,255,174))
})
polarLightsEmitter.LightEmission = 0.2
polarLightsEmitter.LightInfluence = 0
polarLightsEmitter.Orientation = Enum.ParticleOrientation.VelocityPerpendicular
polarLightsEmitter.Size = NumberSequence.new(700)
polarLightsEmitter.Squash = NumberSequence.new(2, 2)
polarLightsEmitter.Texture = "rbxassetid://110170832236629"
polarLightsEmitter.Transparency = NumberSequence.new({
	NumberSequenceKeypoint.new(0, 1),
	NumberSequenceKeypoint.new(0.167, 1),
	NumberSequenceKeypoint.new(0.552, 0.2),
	NumberSequenceKeypoint.new(1, 1)
})
polarLightsEmitter.Lifetime = NumberRange.new(2, 4)
polarLightsEmitter.Rate = 200
polarLightsEmitter.Speed = NumberRange.new(10000)
polarLightsEmitter.SpreadAngle = Vector2.new(180, 0)
polarLightsEmitter.Drag = 9
polarLightsEmitter.Parent = polarLightsPart
polarLightsEmitter.Enabled = true

while task.wait(2) do	
	polarLightsPart.Position = camera.CFrame.Position + Vector3.new(0, -5, 0)
	polarLightsPart.Orientation = Vector3.new(0, 0, -90)
end

This has my settings for the emitter obviously. You should change it however you want.

Note:
It´s a local script since the part is created for each player and the position is set to the cameras position.

5 Likes

yo idk if this look like aurora borealis

edit: wait this is kinda cool

6 Likes

My bad, the speed wasnt set to 10000 :sweat_smile:

I changed it on top now.

2 Likes

Ah, ok lol that makes more sense.

Aurora Borealis!? At this time of year, at this time of day, in this part of the country, localized entirely within one particle emitter!?

9 Likes

It’s a reference to Steamed Hams’ calm down :sweat_smile:

2 Likes

Looks like a shining star lol. Love it :sparkles:

would’ve been way funnier if i knew the reference

yes‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

Ignoring that, this is genuinely a pretty good tutorial ! I look forward to seeing more from ya

Thanks lol, not sure what else to make though lol. I’ll probably come up with something else

I dont know why but when I tried this it became a circle of light rather? i kept trying it idk why it doesnt look like said images? :<

Hi,
can you share how you made it a circle of light? I would also like to check that out.
Thanks