Skip to content

Highlight

A Highlight isn’t a particle in the usual sense. It’s an overlay — an outline plus a fill — that Roblox renders on top of a chosen BasePart or Model, optionally drawn through walls. Damage flashes that pulse red over a character; selection rings for a quest objective; an aura that highlights an interactable when the player gets close. Visually grounded on something else.

So a Highlight emitter is a different shape of emitter from the spatial ones. There’s no EmissionDirection, no Speed, no Position, no Acceleration. The highlight doesn’t move because the target it adorns is what moves. The properties it does have are colour and transparency, animated over each particle’s lifetime, plus an Adornee picker that decides which instance to wrap.

Any Highlight instance.

Use it for any effect where the visual is bound to a target’s silhouette:

  • Damage flashes. Player takes a hit — a red fill swells across their character for half a second and fades. The highlight follows the character regardless of how they move.
  • Selection rings. An interactable object pulses with an outline when the player is close enough to interact. The highlight adorns the object itself; you don’t author its motion.
  • Status indicators. A poisoned character glows green; a buffed character glows gold. Each effect is a Highlight emitter targeting the character with a coloured fill graph.
  • UI-style highlights in the 3D scene. Quest markers, objective callouts, anything you’d otherwise draw with a Roblox BillboardGui but which should outline the geometry rather than overlay a 2D image.

The trade-off versus a Part emitter: you don’t get geometry, motion, or spatial spread. The trade-off you gain: a visual that’s always exactly aligned with whatever it’s adorning, and that renders through walls when you want it to.

Eight panel rows total, grouped into Appearance and Emission.

Panel labelData attributeTypeDefaultWhat it does
Fill ColorHLFillColorColorSequencewhiteTint of the fill overlay, animated over each particle’s life
Fill TransparencyHLFillTransparencyNumberSequence0Opacity of the fill, animated over each particle’s life
Outline ColorHLOutlineColorColorSequencewhiteTint of the outline stroke
Outline TransparencyHLOutlineTransparencyNumberSequence0Opacity of the outline stroke
Depth ModeHLDepthModeenumAlwaysOnTopWhether the highlight renders through walls or respects scene depth
Panel labelData attributeTypeDefaultWhat it does
AdorneeAdornee (ObjectValue)instance(uses source’s .Parent)The BasePart or Model to highlight
LifetimeLifetimeNumberRange1Seconds each emitted Highlight lives
RateRatenumber10Particles per second
EmitCountEmitCountnumber0One-shot burst count
EmitDelayEmitDelaynumber0Wait before first particle
EmitDurationEmitDurationnumber0Seconds of continuous loop after the initial bursts
Panel labelData attributeTypeDefaultWhat it does
TimescaleHLTimescaleNumberSequence1Per-frame time scaling on the appearance graphs
Anim. StepsTotalKeyFramesnumber100Graph sample resolution
LingerPartLifenumber0Seconds the Highlight stays visible past Lifetime end
Emit IntoEmitParent (ObjectValue)instance(source’s parent)Where emitted Highlights parent

No Movement section, no Shape section, no Flipbook section. Highlights don’t move and don’t have textures — those panel groups don’t apply.

A ColorSequence graph for the fill tint over each particle’s life. Roblox’s native Highlight.FillColor is a single Color3, not a sequence — but the plugin samples this graph each frame and writes the result back to the emitted Highlight clone’s FillColor, giving you a colour that animates as the particle ages.

A flat graph (constant colour) holds a single hue throughout the particle’s lifetime. A ramp from red to white gives you a hot flash that fades to a cooler tone before dying. The graph behaves like every other ColorSequence graph in the plugin — same editor, same keypoints, same envelope mode.

A NumberSequence graph for fill opacity, animated over each particle’s life. 0 is fully opaque, 1 is fully invisible. The classic damage-flash shape is 1 → 0 → 1 — invisible at birth, fully visible mid-life, invisible by death.

Combined with Fill Color, this gives you the full appearance of the fill overlay frame by frame. Roblox handles the rendering through its native Highlight instance; the plugin just animates the values.

A ColorSequence graph for the outline stroke tint. Same authoring model as Fill Color. The outline is the thin stroke around the silhouette; the fill is the volume inside it. The two are independent — you can fade the outline while the fill stays solid, or vice versa, useful for “selection ring” effects where the outline pulses while the fill is constant.

A NumberSequence graph for outline opacity. Same shape as Fill Transparency.

How the highlight composes with the scene’s depth buffer. An enum: AlwaysOnTop or Occluded.

AlwaysOnTop (the default) — the highlight draws through walls. A character behind a wall is still outlined; the outline floats over the wall as if the wall weren’t there. This is the right pick for UI-style highlights — quest markers, damage indicators, selection rings — where the player needs to see the highlight regardless of what’s between them and the target.

Occluded — the highlight respects depth. A character behind a wall has no visible outline until the player sees them directly. This is the right pick for environmental highlights — a glowing aura on a creature, a status overlay on a visible enemy — where the highlight should follow the scene’s natural sight lines.

The instance the highlight wraps. A BasePart adornee outlines that one part; a Model adornee outlines every visible part inside the model as a single silhouette.

If Adornee is left empty, the plugin falls back to the source Highlight’s .Parent — useful for Highlights that live inside the character or object they should adorn. Set the picker explicitly when you want the source decoupled from the adornee (a Highlight stored in ReplicatedStorage that gets cloned to follow each player, for example).

If the adornee is nil at emit time, the emission still fires but no visible highlight appears — Roblox’s Highlight instance silently does nothing when its Adornee is missing.

Highlight supports both emission modes.

Emit clones the Render Template’s Highlight per particle. Each clone parents to EmitParent (or the source’s parent), runs through its Lifetime worth of animation, then gets destroyed. Multiple concurrent clones can adorn different targets — useful for a status effect that pulses repeatedly, or for a multi-character damage flash where each player’s character is its own Adornee.

Animate plays the appearance graphs directly on the source Highlight in place — no clones. The source’s FillColor, FillTransparency, OutlineColor, OutlineTransparency are driven by the graphs each frame, then restored when the cycle ends. Best for single-target effects with one continuous animation: a slow fade-in on level load, a constant gentle pulse that loops with AnimateLoop = true.

For repeated bursts on the same target, both modes work — pick Emit when you want each burst to be independent (so a second damage flash mid-flash doesn’t interrupt the first), or Animate when you want the latest call to win and reset the cycle.

A few Highlight-specific quirks.

No spatial properties. Position, Rotation, Speed, Acceleration, Drag, SpreadAngle, Shape — none of those apply. Highlights adorn a target; they don’t have a position of their own. The panel hides those rows.

Render Template just holds the Highlight. When you Transform a Highlight, the plugin creates a RenderTemplate child as a clone of the source Highlight (with Enabled = false so it doesn’t render directly). On each emit, that clone is duplicated, the Adornee is resolved, and the duplicate is parented under your EmitParent. There’s no per-emit geometry to populate — the visual is the highlighted target’s outline + fill, which Roblox handles.

The four appearance graphs animate independently. Fill Color, Fill Transparency, Outline Color, Outline Transparency each have their own graph. You can fade the outline while the fill brightens, or vary the fill colour while the outline stays a fixed hue. Mix and match to taste.

AlwaysOnTop is the default, but consider Occluded for in-world aesthetics. UI-style flashes feel right with AlwaysOnTop — you always see them. But environmental highlights (an aura on a creature behind a tree) feel more natural with Occluded — the aura disappears with the creature, then reappears when the creature does. The default is biased toward UI, since that’s the more common Highlight use; flip when the effect should live in the world.

Linger holds the final-frame appearance past Lifetime. A damage flash that ends on fully-opaque red, with Linger = 0.3, will hold that red for an extra third of a second before the Highlight disappears. Useful for “punch” — gives the eye a beat to register the effect before it fades.

Highlight is the last per-type chapter. That’s all twelve types. Workspace, screen-space, UI, adornee — twelve different ways to turn a Roblox instance into a custom particle emitter:

  • Workspace 3D: Part, Attachment, Beam, Trail, PointLight, Model.
  • Screen-space post-process: Blur, Bloom, ColorCorrection, Atmosphere.
  • UI 2D: ImageLabel.
  • Adornee overlay: Highlight.

You’ve now seen the architectural surface of every emitter the plugin supports. The next chapter shifts back from the type catalogue to broader plugin features, starting with Textures and Flipbooks — how textures and flipbooks land on a transformed emitter, and how the Dissect tool slices any public Roblox spritesheet into a flipbook at full resolution.