blushneybusiness-glitch/roblox-omniskills/rbx-anim-procedural
Claude Code and agent skill by blushneybusiness-glitch/roblox-omniskills
- community
Checking that the SKILL.md file is still in the repository.
Endless CFrame-driven life — pickup bobbing, tree sway, pet hop, weapon recoil, breathing idles — phase-offset per instance and run from one registry loop so a field of movers never marches in lockstep. Use when the user says "make it bob", "add idle motion", "add recoil", "make it float/spin/sway/breathe", or when a scene looks frozen, dead, or every coin moves in perfect sync. Do not use for one-shot choreography (doors, chests, spawns) — load rbx-anim-tween — or for anything with Motor6D joints — load rbx-anim-rigs instead.
Install
npx vskill@latest install blushneybusiness-glitch/roblox-omniskills/rbx-anim-proceduralSKILL.md
rbx-anim-procedural
Laws
- Phase offset or lockstep. Every mover samples
t + phasewhere phase derives from the
instance ((pos.X * 0.7 + pos.Z * 1.3) % (2 * math.pi) is enough). Twenty coins bobbing in perfect sync is the single loudest procedural-motion AI-tell; the offset costs one addition.
- One loop, many movers. One
RenderSteppedconnection per system iterating a registry
table — never one connection per coin. Register on spawn, remove on despawn; a mover left in the registry after Destroy() is a leak that errors every frame.
- Clock time, never frame counts. Drive everything from
os.clock()deltas. Accumulating
per-frame increments makes motion run at half speed on a 30fps phone and desyncs anything the server also tracks.
- Offset from a stored base, never accumulate. Cache
basePoseat registration and write
basePose * offset(t) each frame. Repeated cf = cf * delta multiplication drifts — objects creep across the map over a 20-minute session.
- Cosmetic and client-side. Procedural motion decorates; it never moves the truth. The
pickup's server hitbox sits at basePose; recoil never displaces the server's weapon; collection, hits, and rewards validate against server state, not the animated position.
Recipes
Pickup idle — Y bob 0.35 * math.sin(t * 2), spin 30–45°/s, phase-offset per law 1. Collection hands off to rbx-anim-tween for the despawn shrink.
Ambient life — trees rock ±1.5° over 4–6s; hanging signs take random wind impulses (interval math.random(4, 12)s, swing amplitude decaying ×0.9/frame); 2–3 ambient movers per scene is the difference between a diorama and a place.
Pet hop — bob 0.25 * math.abs(math.sin(t * speed)) (abs turns a wave into a hop), 8° lean into turns, squash-stretch on landing (Size Y ×0.85, X/Z ×1.1, held 0.08s). Position itself comes from rbx-pets-follow; this layer only decorates it.
Recoil — impulse-decay, never tweened: on fire, add a kick offset (viewmodel back 0.15 studs, up 2–4°), then amp *= 0.85 per frame until < 0.001, then snap to zero exactly. Camera kick and shake pair from rbx-camera-shake; the shot itself is server-validated.
Breathing idle — torso rock ±0.8° plus Y drift ±0.05 studs over 3–4s per NPC, phase-offset across a crowd. Reads as alive from 10 studs; costs nothing.
IK-ish reach — lerp a turret/head/arm CFrame toward the target each frame with a max-turn clamp (90–180°/s). The clamp is the craft: instant snapping reads robotic, unclamped lerp never arrives.
Performance budget
One connection per system; registry iteration must be allocation-free (no table.insert per frame). Cull by distance: skip movers beyond 150 studs of the camera — check every 10th frame, not every frame. 200 active movers on a phone is the ceiling; past that, promote decoration to static. Movers on RenderStepped (visual, client); anything gameplay-adjacent on Heartbeat. After each execute_luau build chunk read get_console_output; verify motion and phase variety with screen_capture per quality-bars.md.
Load with
rbx-anim-tween — the two layers ship together: choreography for the moment, this skill for the life before and after. rbx-camera-shake whenever recoil is in scope. rbx-audio-sfx for wind gusts and mechanical hums under ambient movers — don't ask, include it.
AI-tells
- ☐ Synchronized idle motion — every instance sampling the same
twith no phase offset - ☐ One RenderStepped connection per mover instead of one registry loop
- ☐ Frame-count timing that runs slow on 20fps devices
- ☐ Accumulated CFrame multiplication drifting objects off their base over time
- ☐ Recoil done as a smooth tween instead of impulse-decay
- ☐ Movers still iterating after their instance was destroyed (per-frame errors)
- ☐ Server hitbox or reward logic reading the animated position instead of the base
Memory
Read: preferences.md for motion taste ([stated] "subtler"/"bouncier" notes become amplitude multipliers); the game's projects.md block for the existing mover-registry module and container paths. Write: the shipped mover module (registry API + recipe params) into module-library.md with its API line; per-game amplitude/speed choices into the game's projects.md block so the next asset matches.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/rbx-anim-procedural/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/blushneybusiness-glitch/roblox-omniskills/rbx-anim-procedural)