К основному содержанию
скилл CX Codex

roblox-vfx — скилл для Claude Code: эффекты Roblox

Скилл для сборки и оптимизации частиц, лучей, трейлов и подсветок в Roblox. Пригодится, когда эффект тормозит на слабых телефонах.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add nonlooped/roblox-suite --skill roblox-vfx -a claude-code
Открыть на GitHub

Что делает roblox-vfx

Скилл ведёт агента по свойствам ParticleEmitter: текстура, ColorSequence, NumberSequence для размера и прозрачности, время жизни, Rate. Отдельно разобраны формы эмиттера — Box, Sphere, Cylinder, Disc — с режимами ShapeStyle, ShapeInOut и ShapePartial. Есть раздел про флипбуки: сетка кадров, FlipbookMode, FlipbookBlendFrames.

Производительность здесь главная тема. Стоимость эффекта складывается из перекрытия прозрачных слоёв, и в документе прямо сказано: сначала уменьшайте суммарную площадь непрозрачных пикселей, а уже потом Rate. Профилировать советуют через View → Stats → GPU → Fill Rate и Render → Overdraw. Для дальних эффектов предлагают отключать эмиттеры на 100–300 studs и резать Rate вдвое на половине дистанции.

Есть нюанс, на котором легко ошибиться: формы Sphere и Cylinder не отображаются корректно, если эмиттер привязан к Attachment. Их стоит вешать только на BasePart — деталь может быть крошечной и невидимой. EmissionDirection при родителе-Attachment вообще игнорируется, поворачивать нужно сам Attachment. Для разовых вспышек документ советует клиентский спавн: сервер шлёт событие, каждый клиент создаёт вспышку локально.

Какие задачи решает

  • настроить форму и направление эмиссии частиц
  • собрать анимированную текстуру-флипбук для взрыва
  • срезать перерисовку прозрачных эффектов на слабых устройствах
  • отключить дорогие эмиттеры при удалении камеры
  • сделать разовую вспышку от маркера анимации

Примеры запросов агенту

  • Сделай эффект искр от удара: Attachment на оружии, разовый Emit по маркеру анимации
  • У этого ParticleEmitter слишком большой overdraw на мобилке — подскажи, что уменьшить первым
  • Настрой флипбук 4x4 для взрыва в режиме OneShot

Как установить roblox-vfx

1Через Skills CLI (Vercel)

npx skills add nonlooped/roblox-suite --skill roblox-vfx -a claude-code

2Вручную: положить файлы

~/.claude/skills/roblox-vfx/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/roblox-vfx/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о roblox-vfx

Как установить roblox-vfx в Claude?

Выполните npx skills add nonlooped/roblox-suite --skill roblox-vfx -a claude-code. Файл скилла окажется в ~/.claude/skills/roblox-vfx/SKILL.md.

Что делает roblox-vfx?

Помогает агенту собирать и оптимизировать эффекты Roblox: частицы, лучи, трейлы, подсветки. Разбирает формы эмиттеров, флипбуки, отсечение по дистанции и стоимость перерисовки.

Почему сфера или цилиндр не отображаются правильно?

Формы Sphere и Cylinder работают некорректно, когда эмиттер привязан к Attachment. Вешайте такой эмиттер на BasePart, даже если деталь крошечная и невидимая.

Исходный текст

SKILL.md · MIT
---
name: roblox-vfx
description: "Build or optimize Roblox particles, beams, trails, and highlights. Use for emitter shapes, flipbooks, one-shot bursts, animation-marker effects, distance culling, and overdraw."
last_reviewed: 2026-06-17
---

# roblox-vfx

**Main source:** https://create.roblox.com/docs/en-us/effects/particle-emitters + the Effects section of the docs and the ParticleEmitter class reference.

Tune particle lifetime, size, transparency, and rate together. Profile overlapping transparent effects on the lowest target device.

For marker-triggered bursts, read [roblox-animation](../roblox-animation/SKILL.md). For UI particles, read [roblox-user-interfaces](../roblox-user-interfaces/SKILL.md); ParticleEmitters do not render inside ViewportFrame.

## Core creation and parenting

- Parent ParticleEmitter to a BasePart (emission fills bounds or chosen EmissionDirection face) **or** (strongly preferred for control) to an Attachment.
- Rotate the parent or the attachment to steer emission. EmissionDirection is ignored when parented to an Attachment; rotate the Attachment itself to aim particles.
- EmissionDirection only matters when parented to a part.

## Tune particle appearance

1. Texture (prefer .png with alpha; grayscale + LightEmission=1 to hide dark areas).
2. Color (ColorSequence; even a single Color3 in Studio is stored as a one-keypoint ColorSequence; use it for gradients over lifetime).
3. Size (NumberSequence, often with envelope for natural variation). **Warning:** Large sizes = high GPU fill-rate cost.
4. Transparency (NumberSequence). Fade particles in or out to avoid popping.
5. Lifetime (or NumberRange for per-particle random).
6. Rate (particles per second; hard caps ~400 desktop / 100 mobile per emitter; keep low and achieve density with other properties).

Then motion (Speed at birth, SpreadAngle, Acceleration for gravity/wind, Drag + WindAffectsDrag when global wind is enabled, VelocityInheritance, LockedToPart, TimeScale).

## Emitter shapes

Shape = Box / Sphere / Cylinder / Disc.
- ShapeStyle = Volume (everywhere inside) or Surface (only the skin).
- ShapeInOut = Inward / Outward / InAndOut.
- ShapePartial further modulates the shape. Cylinder: radius on the emission side. Disc: inner-radius proportion (`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).

## Flipbooks (animated textures over particle life)

Prepare a grid sheet (2x2, 4x4, 8x8, Custom) with transparent spacing between frames (to prevent mip filtering from sampling adjacent frames).
- FlipbookLayout, FlipbookSizeX/Y.
- FlipbookFramerate (or random range, max 30).
- FlipbookMode: Loop, OneShot (explosions; ignores `FlipbookFramerate` and plays exactly once over the particle Lifetime), PingPong, Random (with crossfade; great for organic variation).
- FlipbookBlendFrames: crossfade between adjacent frames in Loop/OneShot/PingPong for smoother animation.
- FlipbookStartRandom: each particle starts at a random frame (useful when framerate is 0 for static but varied look).

**Memory warning:** Flipbooks are heavier. Reuse textures, keep resolution reasonable, limit unique animated emitters on low-memory clients (older phones will auto-disable flipbooks).

## Lighting and rendering controls

- LightEmission: 0 normal, 1 additive/glow (works even in dark scenes).
- LightInfluence: 0 = ignore world light, 1 = fully affected.
- Brightness: scales the light the emitter contributes when `LightInfluence` is 0. No effect when `LightInfluence` is 1.
- Orientation: FacingCamera (classic billboard), FacingCameraWorldUp, VelocityParallel, VelocityPerpendicular.
- ZOffset: render layer offset in studs (layer multiple emitters without moving them in 3D).

## Performance across devices

- Fill rate (pixels covered by overlapping transparent layers) and overdraw are the main GPU costs.
- Rate × Size × average opacity × how many overlap on screen = cost.
- Always test at both lowest and highest Studio Editor Quality Level.
- Mobile rate is capped lower.
- Use .Enabled = false to pause (existing particles continue until they die or you call :Clear()).
- Many simultaneous high-rate/large/transparent emitters will cause the engine to throttle or drop effects on low-end clients.
- Measure overdraw in Studio with **View → Stats → GPU → Fill Rate** and **Render → Overdraw**. Reduce total opaque pixel area before lowering Rate.

## Replication and client-authoritative emission

- ParticleEmitter state replicates, but individual particles do not. A server-owned emitter will spawn the same particles on every client automatically.
- For one-shot bursts, prefer **client-authoritative emission**: the server signals an event, each affected client spawns the burst locally. This avoids network replication of per-burst timing and respects each client's quality settings.
- Use `RemoteEvent:FireClient` or a local signal so clients own transient visuals; keep gameplay logic authoritative on the server.

## LOD and distance culling

- Stop or reduce expensive emitters when the camera is far away. Common thresholds: disable at 100–300 studs, reduce Rate by half at half-distance.
- Use `workspace.CurrentCamera` distance checks or zone systems. Avoid per-frame `Magnitude` checks for many emitters; instead use a tagged culling heartbeat or spatial partition.
- For ambient weather/large crowds, spawn emitters only in the near-camera region rather than globally.

## Preloading textures

- Call `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.

## Patterns

- Continuous ambient (fire, smoke, rain): Rate + Lifetime + Size tuned so density looks right at normal camera distances.
- One-shot bursts (explosion, impact, muzzle flash): Set Rate low or 0, then call emitter:Emit(num) from an animation marker or event.
- Attached effects (foot dust, weapon trail, aura): Parent emitter or its attachment to the moving part/bone. Use LockedToPart or VelocityInheritance as appropriate.
- Wind-reactive: Enable global wind in the environment, set Drag > 0 and WindAffectsDrag = true on the emitter.
- Combined with animation: Marker "FootStep" → find foot Attachment → Emit or play a short one-shot emitter.

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).

## Related effects (often used alongside particles)

- Beam: textured ribbon between two Attachments (lasers, energy, ropes). Key properties: `Texture`, `TextureMode`/`TextureLength`/`TextureSpeed`, `Color`, `Transparency` (NumberSequence along the beam), `Width0`/`Width1`, `CurveSize0`/`CurveSize1`, `FaceCamera`, `LightEmission`, `LightInfluence`, `ZOffset`.
- Trail: ribbon left behind two Attachments as their parent part moves (sword trails, projectile paths, after-images). Key properties: `Color`, `Transparency`, `Texture`, `TextureMode`, `TextureLength`, `MinLength`, `MaxLength`, `WidthScale`, `LightEmission`, `LightInfluence`, `FaceCamera`, `Lifetime`.
- Highlight: cheap, effective outlines (selection, targeting, "powered up"). Has both an outline and a solid interior fill (`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).
- PointLight / SpotLight / SurfaceLight + Atmosphere + PostProcessing for overall mood that makes particles read correctly.

## Cleanup for transient emitters

- Always destroy cloned one-shot emitters after their maximum lifetime (`Debris:AddItem` or `task.delay`). Do not leave disabled emitter instances accumulating in the workspace.
- For attached continuous emitters, set `Enabled = false` and `:Clear()` before reparenting or destroying to avoid orphaned particles.
- When pooling emitters, reset Rate, Lifetime, Size, and Transparency to known defaults before reuse so stale state does not leak into the next burst.

## Scripts

- `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.

<!-- catalog:references:start -->
## Reference index

- [particle-emitter-properties.md](references/particle-emitter-properties.md): Tune particle appearance, motion, emission, or rendering cost.
- [shapes-flipbooks-and-advanced.md](references/shapes-flipbooks-and-advanced.md): Configure emitter shapes, animated textures, bursts, or distance culling.
<!-- catalog:references:end -->

© nonlooped · MIT · nonlooped/roblox-suite

Похожие скиллы

Всё по теме «Геймдев и 3D: Unity, Unreal, Godot, Blender» →
roblox-animation-vfx TabooHarmony Скилл для ИИ-агента, который помогает писать и чинить анимации, партиклы, лучи, трейлы и твины в Roblox. CX Codex +1 2 300установок create-game-vfx MengTo Скилл для ИИ-агента, который помогает делать визуальные эффекты в Three.js: атаки, попадания, статусы, телеграфы. Полезен, когда эффект должен читаться в бою и не ронять кадры. CX Codex +1 1 300установок roblox-characters gamedev-skills Помогает строить системы персонажей в Roblox так, чтобы скрипты не ломались после респавна и не держали устаревшие ссылки на Humanoid. CX Codex +1 3 600установок roblox-physics gamedev-skills Скилл для работы с физикой Roblox: сборки, ограничения, группы столкновений, рейкасты и владение по сети. Пригодится, когда .Touched врёт или механизм дрожит. CX Codex +1 3 500установок roblox-building TabooHarmony Скилл для сборки геометрии, карт и пропов в Roblox Studio через MCP или Luau. Помогает не угадывать координаты и доводить модель до проверяемого результата. CX Codex +1 2 400установок mm2-roblox-analytics-toolkit reason-machines Скилл для аналитики Murder Mystery 2: инвентарь, статистика матчей и разбор стратегий через ИИ-рекомендации. Пригодится, если ведёте учёт скинов и хотите видеть винрейт по ролям. CX Codex +1 2 400установок

Из того же набора4

Спонсоры проекта

Компании, которые помогают держать аналитику открытой