(Open Source) ActiveVignette system using Particles

I made a quick vignette system that takes advantage of ParticleEmitters to create moving and dynamic Vignettes for a variety of reasons.


Added distance and auto update support.

Current usage:

local ActiveVignette = require(script:WaitForChild("ActiveVignette"))

local Vignette = ActiveVignette:CreateVignette({ Table of ParticleEmitters }) --// creates a new vignette

Vignette:Enabled(false/true) --// disables the particle effects associated with this vignette

Vignette:Destroy() --// completely destroys the vignette

Vignette:SetDistance(5) --// Set's the distance from the camera (Larger can result in phasing)

Vignette:UpdateEnabled(true/false) --// Determines whether or not the vignette will auto adjust to new FOV's and AspectRatio changes.

Please leave feedback as well as suggested features! I’ll be building on this in my free time.


This topic was automatically closed after 1 minute. New replies are no longer allowed.

This is pretty cool! Well done.


Oh nice, I’ll try to create a portal effect with this :slight_smile:


Does this support all kind of decals that you put into that folder or just certain ones? Other than that, a really cool module you made there!

I was literally just looking for an effect like this some time ago, though my question was formed somewhat differently: I was looking to attach parts to the edge of the screen and move them around or create a screen cover using them. I wonder if I’ll be able to salvage code out from this.

This is looking real neat. Is the code transferrable between systems? I haven’t looked through the module and won’t have that time for a bit, but I’d like to incorporate this into my framework raw and I don’t know if I’ll have to make some changes to accomodate for that or not.

Cheers for the contribution.


the :CreateVignette() method simply accepts a table of ParticleEmitters. I’m sorry for not clarifying. You could do


if you wanted to

1 Like

The only dependency is the Physics module that is a descendant of the base module. I imported that purely for welding purposes, but if you are willing to replace the “physics.joint.new()” stuff inside the main module, you can remove it and use it somewhere else just fine.


That’s sick! Can’t wait to see many cool effects done with this


Awesome. This is gonna help out Roblox games a long way.


This is pretty cool. So many cool things could be done with this.


Wow, this is awesome. Thanks!

1 Like

This would be useful for power-up effects.