MCPInstall

roblox-characters-animation

Characters and animation - Humanoid properties/states, spawning (LoadCharacterAsync), health and damage, HumanoidDescription appearance, Animator/AnimationTrack playback, priorities and markers, default animation replacement, Tools, TweenService, IKControl, Character Controller Library (beta). Use when changing movement, abilities, damage, respawn, avatars, animations, tweens, or tools/weapons.

Installs
459
Last 24h
+23
Trending rank
#5202
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/el4cteo/roblox-skills --skill roblox-characters-animation
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads roblox-characters-animation automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Characters and animation

Character basics

  • A player character is a Model with a Humanoid, HumanoidRootPart (the root; move the character with character:PivotTo(cframe)), R15 body parts, and an Animate LocalScript.
  • Defaults (walk speed, jump, health, R6/R15, collisions, body scaling) are configured in Studio's Avatar Settings window and StarterPlayer (CharacterWalkSpeed, CharacterJumpHeight or CharacterUseJumpPower + CharacterJumpPower).
  • Custom character: put a Model named StarterCharacter in StarterPlayer. Custom per-player spawns: Players.CharacterAutoLoads = false, then player:LoadCharacterAsync() when ready (e.g. after data loads). LoadCharacter (non-Async) is deprecated.
  • Characters are destroyed and recreated on death/respawn: bind per-character logic in CharacterAdded.
  • Client-set WalkSpeed/JumpHeight are trivially exploitable; enforce limits on the server or use server authority (roblox-security, roblox-physics).

Health and damage (server)

--!strict
local Players = game:GetService("Players")

local function damage(target: Model, amount: number, source: Player?)
	local humanoid = target:FindFirstChildOfClass("Humanoid")
	if not humanoid or humanoid.Health <= 0 then
		return
	end
	humanoid:SetAttribute("LastDamagedBy", if source then source.UserId else 0)
	humanoid:TakeDamage(amount) -- respects ForceField; use Health -= amount to bypass
end

Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		local humanoid = character:WaitForChild("Humanoid") :: Humanoid
		humanoid.MaxHealth = 150
		humanoid.Health = 150
		humanoid.Died:Once(function()
			local killerId = humanoid:GetAttribute("LastDamagedBy")
			print(`{player.Name} died (killer {killerId})`)
		end)
	end)
end)

return damage
  • Disable default regen by deleting/replacing the Health script via StarterCharacterScripts.
  • Humanoid.BreakJointsOnDeath = false + ragdoll constraints for ragdolls.
  • States: humanoid:ChangeState(Enum.HumanoidStateType.Jumping), SetStateEnabled(state, false), StateChanged. MoveDirection, FloorMaterial, RootPart, SeatPart are read-only helpers.
  • humanoid:MoveTo(position) walks NPCs (times out after 8 s; re-issue for long paths — see roblox-npc-ai).

Appearance

--!strict
local Players = game:GetService("Players")

local function applyUniform(player: Player)
	local character = player.Character
	local humanoid = character and character:FindFirstChildOfClass("Humanoid")
	if not humanoid then
		return
	end
	local ok, description = pcall(function()
		return Players:GetHumanoidDescriptionFromUserIdAsync(player.UserId)
	end)
	if not ok then
		return
	end
	description.Shirt = 123456 -- asset ids
	description.Pants = 654321
	description.HeightScale = 1.05
	pcall(function()
		humanoid:ApplyDescriptionAsync(description) -- server-side; replicates
	end)
end

return applyUniform

Player:LoadCharacterWithHumanoidDescriptionAsync(description) spawns directly with an outfit. All the non-Async variants (ApplyDescription, GetHumanoidDescriptionFromUserId, ...) are deprecated.

Animation playback

--!strict
local function playAttack(character: Model, animation: Animation): AnimationTrack?
	local humanoid = character:FindFirstChildOfClass("Humanoid")
	local animator = humanoid and humanoid:FindFirstChildOfClass("Animator")
	if not animator then
		return nil
	end
	local track = animator:LoadAnimation(animation) -- Humanoid:LoadAnimation is deprecated
	track.Priority = Enum.AnimationPriority.Action
	track.Looped = false
	track:GetMarkerReachedSignal("Hit"):Connect(function(param)
		print("hit frame reached", param) -- apply damage window, play sound, etc.
	end)
	track:Play(0.1) -- fade time
	return track
end

return playAttack
  • Where to play: the local player's own character → play on the client (replicates automatically via its Animator); NPCs → play on the server (or on clients for purely cosmetic, high-count NPCs).
  • Load each Animation once per Animator and reuse the track; don't call LoadAnimation every time an action happens (there's a per-Animator track limit). Exception: server authority (query live tracks).
  • Priorities: Core < Idle < Movement < Action < Action2 < Action3 < Action4. Blend with AdjustWeight, change speed with AdjustSpeed, stop with Stop(fadeTime).
  • Events: track.Stopped, track.Ended, markers via GetMarkerReachedSignal (KeyframeReached is superseded).
  • Animation assets must be owned by (or shared with, via asset permissions) the experience's owner — otherwise they silently fail to play in live servers.
  • Replace defaults by editing the Animate script's StringValue/Animation children (animate.run.RunAnim.AnimationId) on CharacterAdded, or ship a custom Animate in StarterCharacterScripts.
  • Procedural: IKControl (look-at, foot planting, reaching) instead of hand-written joint math.

Tweening

--!strict
local TweenService = game:GetService("TweenService")

local door = Instance.new("Part")
door.Anchored = true
door.Parent = workspace

local info = TweenInfo.new(0.6, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local open = TweenService:Create(door, info, { CFrame = door.CFrame * CFrame.new(0, 8, 0) })
open.Completed:Once(function(state)
	print("door tween finished:", state)
end)
open:Play()
  • Tween anchored parts or UI. For unanchored/physics objects use constraints.
  • Tweening on the server replicates every frame and stutters: for visual-only motion, tween on each client (the server sets the final state or an attribute clients react to).
  • Models: tween a CFrameValue and call model:PivotTo(value) in its Changed handler, or tween the primary part with the rest welded to it.
  • TweenService:GetValue(alpha, style, direction) for custom interpolation; SmoothDamp for follow motion.

Tools

Tool in StarterPack/Backpack with a Handle part (or RequiresHandle = false). Equipped, Unequipped, Activated fire on both client and server (Activated comes from the client: validate rate and state on the server). Keep weapon logic in modules and use tags rather than scripts inside every tool clone.

Character Controller Library (beta)

Roblox's CCL (require("@rbx/AvatarAbilities")) replaces the fixed Humanoid state machine with composable abilities (Running, Jumping, Climbing, custom Dash...) coordinated by labels, sensors, conditions (StartsWhen/RunsWhile with All/Any/Not), conflicts (Blocks/Stops/Suspends), and lifecycle callbacks. Enable it via File → Beta Features and Avatar Settings → Movement → Abilities. Only use it when the project has opted in; APIs may change while in beta. Sketch: references/character-controller-library.md.

Related skills

roblox-npc-ai (NPC movement), roblox-physics (ragdolls, knockback), roblox-input (ability inputs), roblox-security (movement/damage validation), roblox-game-systems (combat).

FAQ

What does the roblox-characters-animation skill do?

Characters and animation - Humanoid properties/states, spawning (LoadCharacterAsync), health and damage, HumanoidDescription appearance, Animator/AnimationTrack playback, priorities and markers, default animation replacement, Tools, TweenService, IKControl, Character Controller Library (beta). Use when changing movement, abilities, damage, respawn, avatars, animations, tweens, or tools/weapons.

How do I install roblox-characters-animation?

Run npx skills add https://github.com/el4cteo/roblox-skills --skill roblox-characters-animation in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/roblox-characters-animation/ (personal) or .claude/skills/roblox-characters-animation/ (project).

Which AI agents can use roblox-characters-animation?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is roblox-characters-animation safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains roblox-characters-animation?

It is published by el4cteo in el4cteo/roblox-skills. It has 459 recorded installs.

More from el4cteo/roblox-skills

View all →

roblox-world-building

el4cteo/roblox-skills

Building worlds with code - parts, models and pivots, materials, Lighting (LightingStyle, Atmosphere, post-processing), day/night, Terrain API, in-game CSG and destruction (GeometryService Subtract/Union/Fragment), ProceduralModel, EditableMesh/EditableImage, particles/beams/trails/highlights. Use when creating maps, environments, lighting, destructible objects, procedural levels, or visual effects.

Backend & APIs487 installs

roblox-ui

el4cteo/roblox-skills

Responsive cross-platform UI - ScreenGui and safe areas (ScreenInsets), Scale vs Offset, UIListLayout flex/UIFlexItem, constraints, StyleSheets/tokens/themes, RichText, gamepad/touch navigation, UIDragDetector, CanvasGroup, tweens, BillboardGui/SurfaceGui, React-lua/Fusion/Vide. Use when building HUDs, menus, shops, inventories, or fixing UI that breaks on mobile, console, or other screen sizes.

Frontend & Design482 installs

roblox-luau

el4cteo/roblox-skills

Modern, type-safe Luau for Roblox, covering --!strict and the new type solver, generics, string interpolation, if-expressions, task library, require-by-string, module/OOP patterns, error handling with retries, buffer/vector, and legacy APIs to avoid. Use when writing, refactoring, or explaining any Roblox script, fixing type errors, or modernizing old Lua code.

roblox-testing

el4cteo/roblox-skills

Open the skill to read its SKILL.md instructions.

Testing & QA469 installs

roblox-code-review

el4cteo/roblox-skills

Review Roblox/Luau code for exploits, data loss, memory leaks, performance problems, lifecycle bugs, policy issues, and deprecated or superseded APIs, using a severity-ranked checklist and the full 2026 deprecation map. Use when reviewing a PR or script, auditing a game before launch, modernizing legacy code, or asked what is wrong with some Roblox code.

roblox-performance

el4cteo/roblox-skills

Open the skill to read its SKILL.md instructions.

Popular frontend & design skills

View category →

setup-matt-pocock-skills

mattpocock/skills

Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.

Frontend & Design1.1M installs

frontend-design

anthropics/skills

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

OfficialFrontend & Design1M installs

hyperframes-animation

heygen-com/hyperframes

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.

prototype

mattpocock/skills

Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.

Frontend & Design999.2K installs

hyperframes-core

heygen-com/hyperframes

The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

Frontend & Design930.5K installs

vercel-react-best-practices

vercel-labs/agent-skills

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

OfficialFrontend & Design843.1K installs