roblox-vfx — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited roblox-vfx (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Main source: https://create.roblox.com/docs/en-us/effects/particle-emitters + the Effects section of the docs and the ParticleEmitter class reference.
This skill exists because surface-level "add a ParticleEmitter and tweak Rate and Size" implementations look bad, perform terribly, or both. Real effects require understanding sequences, shapes, flipbooks, lighting interaction, and strict performance discipline.
See roblox-animation for driving emitters from markers, roblox-user-interfaces for UI-based particle illusion techniques (real ParticleEmitters do not render inside ViewportFrame), and roblox-vfx references/ for property-by-property deep dives.
Then motion (Speed at birth, SpreadAngle, Acceleration for gravity/wind, Drag + WindAffectsDrag when global wind is enabled, VelocityInheritance, LockedToPart, TimeScale).
Shape = Box / Sphere / Cylinder / Disc.
0 = fully closed disc, 1 = emission only on the outer rim). Sphere: hemispherical angle (1 = full sphere, 0.5 = half-dome, 0 = point).Sphere/Cylinder shapes do not display correctly when the emitter is parented to an Attachment. Only use them with a BasePart parent (the part can be tiny and invisible).
Prepare a grid sheet (2x2, 4x4, 8x8, Custom) with transparent spacing between frames (mip filtering is hungry).
FlipbookFramerate and plays exactly once over the particle Lifetime), PingPong, Random (with crossfade — great for organic variation).Memory warning: Flipbooks are heavier. Reuse textures, keep resolution reasonable, limit unique animated emitters on low-memory clients (older phones will auto-disable flipbooks).
LightInfluence is 0. No effect when LightInfluence is 1.RemoteEvent:FireClient or a local signal so clients own transient visuals; keep gameplay logic authoritative on the server.workspace.CurrentCamera distance checks or zone systems. Avoid per-frame Magnitude checks for many emitters; instead use a tagged culling heartbeat or spatial partition.ContentProvider:PreloadAsync({texture}) for flipbook atlases and prominent effect textures before they are needed (e.g., during loading screens or before a combat sequence). This prevents mid-burst pop-in on lower-end devices.See the references/ folder (particle-emitter-properties.md, shapes-flipbooks-and-advanced.md) for the exhaustive property reference, visual examples, optimization checklists, and concrete code for common effects (integration covered in SKILL and cross-skill notes).
Texture, TextureMode/TextureLength/TextureSpeed, Color, Transparency (NumberSequence along the beam), Width0/Width1, CurveSize0/CurveSize1, FaceCamera, LightEmission, LightInfluence, ZOffset.Color, Transparency, Texture, TextureMode, TextureLength, MinLength, MaxLength, WidthScale, LightEmission, LightInfluence, FaceCamera, Lifetime.FillColor/FillTransparency, OutlineColor/OutlineTransparency). DepthMode controls whether the highlight is visible through walls (AlwaysOnTop) or only when not occluded (Occluded). There is a client-side cap of 255 simultaneous Highlight instances (disabled instances still count toward the cap).Use these together with the roblox-animation skill's marker system and the roblox-user-interfaces skill's ViewportFrame embedding to create cohesive, high-production visual language.
Debris:AddItem or task.delay). Do not leave disabled emitter instances accumulating in the workspace.Enabled = false and :Clear() before reparenting or destroying to avoid orphaned particles.scripts/EffectBurst.lua — clone-and-destroy helper for one-shot particle bursts. Clones every ParticleEmitter under a template Attachment/BasePart, emits a burst locally, and schedules cleanup after the maximum lifetime. Safe for continuous emitters because the original emitters are never mutated.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.