CodeFizz
ToolsDemoDocsBlogRoadmapChangelogPricingFAQ
Get the plugin

Getting Started

  • Introduction
  • Quick Start
  • Requirements
  • Installing the CLI
  • License & Machines

Guides

  • Installing the Plugin
  • The AI Skill
  • CLI vs MCP
  • Multiple Editors
  • How It Works
  • Discovering Commands
  • The Editor Chat Panel

Walkthroughs

  • Build a Blueprint with AI
  • Author a Material Graph
  • Create a Niagara System
  • Rig a Character with AI
  • Build an Animation Blueprint
  • Build Sound with AI
  • Build a Modular Character
  • Grow a Tree with AI
  • Build a Gameplay Ability System
  • Generate a Landscape with AI
  • Work with World Partition

Reference

  • Reference
  • Audio
  • Mutable
  • Control Rig
  • Niagara
  • PCG
  • Procedural Vegetation
  • Materials
  • Gameplay Ability System
  • World Building
  • Behavior Trees
  • Environment Queries
  • StateTree
  • Sequencer
  • Level Actors
  • Project Settings
  • Blueprints
  • Blueprint Structs
  • Enhanced Input
  • Asset Management
  • Bulk Asset Ops
  • Data Assets
  • Object Properties
  • UMG Widgets
  • Data Tables
  • Curves
  • Retargeting
  • Skeletal Meshes
  • Animation
  • Console Commands
  • Profiling
  • Core
  • Debug
  • Mass Entity (ECS)

Help

  • FAQ
  • Troubleshooting
  • For AI Agents
  • Fix: Plugin failed to load, module could not be loaded (GetLastError 126)
  • Fix: bridge unreachable, editor not responding
  • Fix: cfa targeted the wrong Unreal editor
  • Fix: the CodeFizz panel does not show Active
  • Fix: Unknown command, or plugin version mismatch after an update
DocsReferenceSkeletal Meshes

Skeletal Meshes

Every Skeletal Meshes command in CodeFizz Editor Agent, with parameters and examples.

Loading…
PreviousRetargetingNextAnimation
CodeFizz

A drop-in Unreal Engine 5 plugin that exposes the entire editor surface (Blueprints, Materials, Niagara, PCG, StateTree, Control Rig, Insights profiling, and more) over the Model Context Protocol. Connect Claude Code, Cursor, VS Code, or any MCP-compatible client and let your AI build inside the engine.

Product

  • Features
  • Docs
  • Tools
  • Blog
  • Demo
  • Roadmap
  • Changelog
  • Pricing
  • FAQ

Resources

  • Install guide
  • Discord
  • YouTube
  • Open-source edition
  • Manage subscription

Legal

  • Refund Policy
  • Privacy Policy
  • Terms of Service

© 2026 CodeFizz. All rights reserved.

CodeFizz Editor Agent is a CodeFizz product. Payments processed by Polar Software, Inc. (Polar), the Merchant of Record.

38 commands. Each shows its parameters and an example, and has a copyable deep link, so you (or an AI agent) can jump straight to one.

get_skeletal_mesh

Read a skeletal mesh or skeleton: bones, LODs, materials, sockets, morph targets, physics asset

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh or skeleton asset path
list_bones

List bones with parents, optionally under one bone, with reference-pose transforms

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh or skeleton asset path
filterstringNoSubstring filter on bone names
understringNoOnly bones under this bone
max_resultsintNoMax bones (0 = all)
transformsboolNoInclude local reference-pose transforms
get_bone

Read one bone: local/global reference transform, children, retarget mode, sockets

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh or skeleton asset path
bone_namestringYesBone name
add_socket

Add a socket on a bone of a skeletal mesh (mesh-only) or skeleton (shared)

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh or skeleton asset path
socket_namestringYesSocket name
bone_namestringYesParent bone
locationjsonNoRelative location [x, y, z]
rotationjsonNoRelative rotation [pitch, yaw, roll]
scalejsonNoRelative scale [x, y, z]
example
  cfa add_socket --asset-path /Game/Characters/SK_Hero --socket-name WeaponGrip --bone-name hand_r --location '[10,0,0]' --rotation '[0,90,0]'
set_socket

Rename a socket, move it to another bone, or change its transform

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh or skeleton asset path
socket_namestringYesSocket name
new_namestringNoRename
bone_namestringNoNew parent bone
locationjsonNoRelative location [x, y, z]
rotationjsonNoRelative rotation [pitch, yaw, roll]
scalejsonNoRelative scale [x, y, z]
force_always_animatedstringNotrue or false
remove_socket

Remove a socket from the mesh or its skeleton

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh or skeleton asset path
socket_namestringYesSocket name
list_sockets

List sockets of a mesh (own + skeleton) or a skeleton

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh or skeleton asset path
filterstringNoSubstring filter on socket and bone names
max_resultsintNoMax sockets (0 = all)
add_virtual_bone

Add a virtual bone from a source bone to a target bone

ParameterTypeRequiredDescription
asset_pathstringYesSkeleton or skeletal mesh asset path
source_bonestringYesSource bone
target_bonestringYesTarget bone
namestringNoVirtual bone name
remove_virtual_bone

Remove virtual bones

ParameterTypeRequiredDescription
asset_pathstringYesSkeleton or skeletal mesh asset path
namesstringlistYesVirtual bone names
set_bone_retarget_mode

Set a bone's translation retargeting mode, optionally for its subtree

ParameterTypeRequiredDescription
asset_pathstringYesSkeleton or skeletal mesh asset path
bone_namestringYesBone name
modestringYesAnimation, Skeleton, AnimationScaled, AnimationRelative or OrientAndScale
children_tooboolNoApply to every descendant
example
  cfa set_bone_retarget_mode --asset-path /Game/Characters/SK_Hero_Skeleton --bone-name pelvis --mode AnimationScaled
  cfa set_bone_retarget_mode --asset-path /Game/Characters/SK_Hero_Skeleton --bone-name spine_01 --mode Skeleton --children-too
edit_skeleton

Add, remove, rename, re-parent or move bones in one committed edit

--ops is a JSON array applied in order, then committed to the mesh and its skeleton once: {"op":"add","bone":"tail_01","parent":"pelvis","location":[0,0,-10],"rotation":[0,0,0]} {"op":"remove","bone":"tail_01","children":true} {"op":"rename","bone":"tail_01","new_name":"tail_base"} {"op":"parent","bone":"tail_01","parent":"spine_01"} {"op":"transform","bone":"tail_01","location":[0,0,-12],"rotation":[0,0,0],"move_children":true} Needs the Modeling Tools plugin (SkeletalMeshModifiers). Animations and physics assets that reference removed bones must be fixed afterwards.

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh asset path
opsjsonYesJSON array of bone edits
example
  cfa edit_skeleton --asset-path /Game/Characters/SK_Hero --ops '[{"op":"add","bone":"tail_01","parent":"pelvis","location":[0,0,-10]}]'
set_skeletal_mesh_lod

Set a LOD's screen size, hysteresis, CPU access, build or reduction settings

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh asset path
lodintYesLOD index
screen_sizefloatNoScreen size (0..1)
hysteresisfloatNoLOD hysteresis
allow_cpu_accessstringNotrue or false
build_settingsjsonNoJSON object of FSkeletalMeshBuildSettings fields
reduction_settingsjsonNoJSON object of FSkeletalMeshOptimizationSettings fields
example
  cfa set_skeletal_mesh_lod --asset-path /Game/Characters/SK_Hero --lod 1 --screen-size 0.4
  cfa set_skeletal_mesh_lod --asset-path /Game/Characters/SK_Hero --lod 0 --build-settings '{"BoneInfluenceLimit":4}'
regenerate_lods

Regenerate generated LODs, optionally to a new count

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh asset path
countintNoTotal LOD count (0 = keep)
regenerate_importedboolNoAlso regenerate imported LODs
remove_lods

Remove LODs (never LOD 0)

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh asset path
lodsjsonYesLOD indices, e.g. [1,2]
set_skeletal_mesh_material

Assign a material to a slot or rename the slot

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh asset path
slotstringYesSlot name or index
materialstringNoMaterial asset path ('None' clears)
slot_namestringNoRename the slot
assign_physics_asset

Assign a Physics Asset to a mesh after a compatibility check

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh asset path
physics_assetstringYesPhysics Asset path ('None' clears)
set_compatible_skeleton

Add or remove a compatible skeleton

ParameterTypeRequiredDescription
asset_pathstringYesSkeleton or skeletal mesh asset path
skeletonstringYesThe other skeleton
removeboolNoRemove instead of add
list_morph_targets

List morph targets with how many vertices each moves

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh asset path
filterstringNoSubstring filter on names
max_resultsintNoMax morph targets (0 = all)
get_morph_target

Read a morph target: moved vertices and its largest deltas

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh asset path
namestringYesMorph target name
lodintNoLOD index
max_deltasintNoMax deltas, largest first (0 = counts only)
set_morph_target

Create or edit a morph target from per-vertex deltas and rebuild

Vertex ids are the mesh data's import vertex ids (as get_skin_weights and get_morph_target report), not render vertex indices. Mode replace zeroes every vertex not listed; merge changes only the listed ones.

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh asset path
namestringYesMorph target name
lodintNoLOD index
deltasjsonYesJSON array of {vertex, delta: [x, y, z]}
modestringNoreplace or merge
buildboolNoRebuild the mesh (default true)
example
  cfa set_morph_target --asset-path /Game/Characters/SK_Hero --name Smile --deltas '[{"vertex":120,"delta":[0,0.5,1.2]},{"vertex":121,"delta":[0,0.4,1.0]}]'
remove_morph_target

Remove a morph target from every LOD and rebuild

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh asset path
namestringYesMorph target name
buildboolNoRebuild the mesh (default true)
get_skin_weights

Read per-vertex bone influences from the mesh data

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh asset path
lodintNoLOD index
profilestringNoSkin weight profile (default: base)
verticesjsonNoVertex ids, e.g. [0,1,2]
bonestringNoOnly vertices this bone influences
max_resultsintNoMax vertices (0 = all)
set_skin_weights

Write per-vertex bone influences (normalised) and rebuild

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh asset path
lodintNoLOD index
profilestringNoSkin weight profile (default: base)
weightsjsonYesJSON array of {vertex, influences: {bone: weight}}
buildboolNoRebuild the mesh (default true)
example
  cfa set_skin_weights --asset-path /Game/Characters/SK_Hero --weights '[{"vertex":120,"influences":{"hand_r":0.7,"lowerarm_r":0.3}}]'
clean_skin_weights

Prune tiny influences, cap the influence count, renormalise, rebuild

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh asset path
lodintNoLOD index
profilestringNoSkin weight profile (default: base)
prune_thresholdfloatNoDrop influences below this weight
max_influencesintNoKeep at most this many per vertex
buildboolNoRebuild the mesh (default true)
validate_skinning

Verdict on a LOD's skin weights: no-influence vertices, unnormalised, over limit, bad bones

ParameterTypeRequiredDescription
asset_pathstringYesSkeletal mesh asset path
lodintNoLOD index
profilestringNoSkin weight profile (default: base)
create_physics_asset

Generate a Physics Asset from a skeletal mesh's skinned vertices

Runs the same generator as the editor's Create Physics Asset: one body per bone above the minimum size, shapes fitted from the vertices skinned to each bone, constraints between neighbouring bodies. --params takes FPhysAssetCreateParams fields: MinBoneSize (20), GeomType (EFG_Sphyl, EFG_Box, EFG_Sphere, EFG_SingleConvexHull, EFG_MultiConvexHull...), VertWeight (EVW_DominantWeight / EVW_AnyWeight), bBodyForAll, bCreateConstraints, bDisableCollisionsByDefault, bWalkPastSmall, HullCount, MaxHullVerts.

ParameterTypeRequiredDescription
asset_pathstringYesAsset path for the new Physics Asset
skeletal_meshstringYesSkeletal mesh to generate for
paramsjsonNoJSON object of FPhysAssetCreateParams fields
assignboolNoAssign the asset to the mesh (default true)
saveboolNoSave (default true)
example
  cfa create_physics_asset --asset-path /Game/Characters/PA_Hero --skeletal-mesh /Game/Characters/SK_Hero
  cfa create_physics_asset --asset-path /Game/Characters/PA_Hero --skeletal-mesh /Game/Characters/SK_Hero --params '{"MinBoneSize":10,"GeomType":"EFG_Box"}'
get_physics_asset

Read bodies, shapes, constraints and collision pairs of a Physics Asset

ParameterTypeRequiredDescription
asset_pathstringYesPhysics Asset path
filterstringNoSubstring filter on bone and constraint names
max_resultsintNoMax bodies and constraints (0 = all)
bonestringNoReturn this body's shapes in full
add_physics_body

Add a body on a bone, fitted from the mesh, with a constraint to its parent body

ParameterTypeRequiredDescription
asset_pathstringYesPhysics Asset path
bone_namestringYesBone to give a body
auto_shapeboolNoFit shapes from the skinned vertices (default true)
geom_typestringNocapsule, sphere, box, tapered_capsule, convex or multi_convex
constraintboolNoConstrain to the parent body (default true)
include_childrenboolNoFold bodiless child bones' skin (twists, helpers) into the fit (default true)
example
  cfa add_physics_body --asset-path /Game/Characters/PA_Hero --bone-name spine_02
  cfa add_physics_body --asset-path /Game/Characters/PA_Hero --bone-name hand_r --geom-type box --constraint=false
remove_physics_body

Remove a body, re-hanging its children's constraints on the next body up

ParameterTypeRequiredDescription
asset_pathstringYesPhysics Asset path
bone_namestringYesBone of the body
set_physics_body

Change a body's physics type, mass scale, or any body setup property

ParameterTypeRequiredDescription
asset_pathstringYesPhysics Asset path
bone_namestringYesBone of the body
physics_typestringNodefault, kinematic or simulated
mass_scalefloatNoMass scale (> 0)
propertiesjsonNoJSON object of USkeletalBodySetup properties (DefaultInstance.*, PhysMaterial, bConsiderForBounds...)
example
  cfa set_physics_body --asset-path /Game/Characters/PA_Hero --bone-name pelvis --physics-type kinematic
  cfa set_physics_body --asset-path /Game/Characters/PA_Hero --bone-name head --properties '{"DefaultInstance":{"LinearDamping":0.5}}'
add_physics_shape

Add a sphere, box, capsule or tapered capsule to a body

ParameterTypeRequiredDescription
asset_pathstringYesPhysics Asset path
bone_namestringYesBone of the body (created empty if missing)
typestringYessphere, box, capsule or tapered_capsule
namestringNoShape name
centerjsonNoCenter [x, y, z] in bone space
rotationjsonNoRotation [pitch, yaw, roll] degrees
radiusfloatNoRadius (sphere, capsule)
lengthfloatNoCapsule straight length
extentsjsonNoBox full extents [x, y, z]
radiijsonNoTapered capsule radii [r0, r1]
example
  cfa add_physics_shape --asset-path /Game/Characters/PA_Hero --bone-name head --type sphere --radius 12 --center '[0,0,8]'
  cfa add_physics_shape --asset-path /Game/Characters/PA_Hero --bone-name hand_r --type box --extents '[10,6,4]' --rotation '[0,0,90]'
set_physics_shape

Change a shape's placement, size, collision or any field

ParameterTypeRequiredDescription
asset_pathstringYesPhysics Asset path
bone_namestringYesBone of the body
shapestringYesShape name or index (get_physics_asset --bone)
new_namestringNoRename
centerjsonNoCenter [x, y, z]
rotationjsonNoRotation [pitch, yaw, roll]
radiusfloatNoRadius
lengthfloatNoCapsule length
extentsjsonNoBox extents [x, y, z]
collisionstringNoenabled, query_only, physics_only, probe_only or none
contribute_to_massstringNotrue or false
propertiesjsonNoJSON object of shape struct fields (RestOffset...)
remove_physics_shape

Remove a shape from a body

ParameterTypeRequiredDescription
asset_pathstringYesPhysics Asset path
bone_namestringYesBone of the body
shapestringYesShape name or index
add_physics_constraint

Add a constraint between two bodies, frames snapped to the bones

ParameterTypeRequiredDescription
asset_pathstringYesPhysics Asset path
child_bonestringYesChild bone (has a body)
parent_bonestringYesParent bone (has a body)
namestringNoJoint name (default: the child bone)
disable_collisionboolNoDisable collision between the two bodies (default true)
remove_physics_constraint

Remove a constraint by name or bone pair

ParameterTypeRequiredDescription
asset_pathstringYesPhysics Asset path
namestringNoJoint name
child_bonestringNoChild bone
parent_bonestringNoParent bone
set_physics_constraint

Set swing/twist/linear limits, collision, snap frames, or any constraint field

ParameterTypeRequiredDescription
asset_pathstringYesPhysics Asset path
namestringNoJoint name
child_bonestringNoChild bone
parent_bonestringNoParent bone
swing1stringNofree, limited or locked
swing1_limitfloatNoSwing 1 limit degrees
swing2stringNofree, limited or locked
swing2_limitfloatNoSwing 2 limit degrees
twiststringNofree, limited or locked
twist_limitfloatNoTwist limit degrees
linearstringNofree, limited or locked (all axes)
linear_limitfloatNoLinear limit cm
disable_collisionstringNotrue or false
snapboolNoRe-snap frames to the bones
propertiesjsonNoJSON object of FConstraintInstance fields
example
  cfa set_physics_constraint --asset-path /Game/Characters/PA_Hero --name neck_01 --swing1 limited --swing1-limit 30 --twist locked
  cfa set_physics_constraint --asset-path /Game/Characters/PA_Hero --child-bone hand_r --parent-bone lowerarm_r --properties '{"ProfileInstance":{"bLinearBreakable":true}}'
set_physics_collision

Enable or disable collision between two bodies

ParameterTypeRequiredDescription
asset_pathstringYesPhysics Asset path
bone_astringYesFirst body's bone
bone_bstringYesSecond body's bone
enabledboolYesCollide or not
validate_physics_asset

Verdict on a Physics Asset: shapeless bodies, missing bones, colliding overlaps, default frames, mass

ParameterTypeRequiredDescription
asset_pathstringYesPhysics Asset path