Skeletal Meshes
Every Skeletal Meshes command in CodeFizz Editor Agent, with parameters and examples.
Every Skeletal Meshes command in CodeFizz Editor Agent, with parameters and examples.
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_meshRead a skeletal mesh or skeleton: bones, LODs, materials, sockets, morph targets, physics asset
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh or skeleton asset path |
list_bonesList bones with parents, optionally under one bone, with reference-pose transforms
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh or skeleton asset path |
| filter | string | No | Substring filter on bone names |
| under | string | No | Only bones under this bone |
| max_results | int | No | Max bones (0 = all) |
| transforms | bool | No | Include local reference-pose transforms |
get_boneRead one bone: local/global reference transform, children, retarget mode, sockets
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh or skeleton asset path |
| bone_name | string | Yes | Bone name |
add_socketAdd a socket on a bone of a skeletal mesh (mesh-only) or skeleton (shared)
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh or skeleton asset path |
| socket_name | string | Yes | Socket name |
| bone_name | string | Yes | Parent bone |
| location | json | No | Relative location [x, y, z] |
| rotation | json | No | Relative rotation [pitch, yaw, roll] |
| scale | json | No | Relative scale [x, y, z] |
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_socketRename a socket, move it to another bone, or change its transform
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh or skeleton asset path |
| socket_name | string | Yes | Socket name |
| new_name | string | No | Rename |
| bone_name | string | No | New parent bone |
| location | json | No | Relative location [x, y, z] |
| rotation | json | No | Relative rotation [pitch, yaw, roll] |
| scale | json | No | Relative scale [x, y, z] |
| force_always_animated | string | No | true or false |
remove_socketRemove a socket from the mesh or its skeleton
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh or skeleton asset path |
| socket_name | string | Yes | Socket name |
list_socketsList sockets of a mesh (own + skeleton) or a skeleton
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh or skeleton asset path |
| filter | string | No | Substring filter on socket and bone names |
| max_results | int | No | Max sockets (0 = all) |
add_virtual_boneAdd a virtual bone from a source bone to a target bone
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeleton or skeletal mesh asset path |
| source_bone | string | Yes | Source bone |
| target_bone | string | Yes | Target bone |
| name | string | No | Virtual bone name |
remove_virtual_boneRemove virtual bones
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeleton or skeletal mesh asset path |
| names | stringlist | Yes | Virtual bone names |
set_bone_retarget_modeSet a bone's translation retargeting mode, optionally for its subtree
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeleton or skeletal mesh asset path |
| bone_name | string | Yes | Bone name |
| mode | string | Yes | Animation, Skeleton, AnimationScaled, AnimationRelative or OrientAndScale |
| children_too | bool | No | Apply to every descendant |
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-tooedit_skeletonAdd, 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh asset path |
| ops | json | Yes | JSON array of bone edits |
cfa edit_skeleton --asset-path /Game/Characters/SK_Hero --ops '[{"op":"add","bone":"tail_01","parent":"pelvis","location":[0,0,-10]}]'set_skeletal_mesh_lodSet a LOD's screen size, hysteresis, CPU access, build or reduction settings
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh asset path |
| lod | int | Yes | LOD index |
| screen_size | float | No | Screen size (0..1) |
| hysteresis | float | No | LOD hysteresis |
| allow_cpu_access | string | No | true or false |
| build_settings | json | No | JSON object of FSkeletalMeshBuildSettings fields |
| reduction_settings | json | No | JSON object of FSkeletalMeshOptimizationSettings fields |
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_lodsRegenerate generated LODs, optionally to a new count
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh asset path |
| count | int | No | Total LOD count (0 = keep) |
| regenerate_imported | bool | No | Also regenerate imported LODs |
remove_lodsRemove LODs (never LOD 0)
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh asset path |
| lods | json | Yes | LOD indices, e.g. [1,2] |
set_skeletal_mesh_materialAssign a material to a slot or rename the slot
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh asset path |
| slot | string | Yes | Slot name or index |
| material | string | No | Material asset path ('None' clears) |
| slot_name | string | No | Rename the slot |
assign_physics_assetAssign a Physics Asset to a mesh after a compatibility check
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh asset path |
| physics_asset | string | Yes | Physics Asset path ('None' clears) |
set_compatible_skeletonAdd or remove a compatible skeleton
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeleton or skeletal mesh asset path |
| skeleton | string | Yes | The other skeleton |
| remove | bool | No | Remove instead of add |
list_morph_targetsList morph targets with how many vertices each moves
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh asset path |
| filter | string | No | Substring filter on names |
| max_results | int | No | Max morph targets (0 = all) |
get_morph_targetRead a morph target: moved vertices and its largest deltas
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh asset path |
| name | string | Yes | Morph target name |
| lod | int | No | LOD index |
| max_deltas | int | No | Max deltas, largest first (0 = counts only) |
set_morph_targetCreate 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh asset path |
| name | string | Yes | Morph target name |
| lod | int | No | LOD index |
| deltas | json | Yes | JSON array of {vertex, delta: [x, y, z]} |
| mode | string | No | replace or merge |
| build | bool | No | Rebuild the mesh (default true) |
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_targetRemove a morph target from every LOD and rebuild
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh asset path |
| name | string | Yes | Morph target name |
| build | bool | No | Rebuild the mesh (default true) |
get_skin_weightsRead per-vertex bone influences from the mesh data
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh asset path |
| lod | int | No | LOD index |
| profile | string | No | Skin weight profile (default: base) |
| vertices | json | No | Vertex ids, e.g. [0,1,2] |
| bone | string | No | Only vertices this bone influences |
| max_results | int | No | Max vertices (0 = all) |
set_skin_weightsWrite per-vertex bone influences (normalised) and rebuild
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh asset path |
| lod | int | No | LOD index |
| profile | string | No | Skin weight profile (default: base) |
| weights | json | Yes | JSON array of {vertex, influences: {bone: weight}} |
| build | bool | No | Rebuild the mesh (default true) |
cfa set_skin_weights --asset-path /Game/Characters/SK_Hero --weights '[{"vertex":120,"influences":{"hand_r":0.7,"lowerarm_r":0.3}}]'clean_skin_weightsPrune tiny influences, cap the influence count, renormalise, rebuild
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh asset path |
| lod | int | No | LOD index |
| profile | string | No | Skin weight profile (default: base) |
| prune_threshold | float | No | Drop influences below this weight |
| max_influences | int | No | Keep at most this many per vertex |
| build | bool | No | Rebuild the mesh (default true) |
validate_skinningVerdict on a LOD's skin weights: no-influence vertices, unnormalised, over limit, bad bones
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Skeletal mesh asset path |
| lod | int | No | LOD index |
| profile | string | No | Skin weight profile (default: base) |
create_physics_assetGenerate 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Asset path for the new Physics Asset |
| skeletal_mesh | string | Yes | Skeletal mesh to generate for |
| params | json | No | JSON object of FPhysAssetCreateParams fields |
| assign | bool | No | Assign the asset to the mesh (default true) |
| save | bool | No | Save (default true) |
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_assetRead bodies, shapes, constraints and collision pairs of a Physics Asset
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Physics Asset path |
| filter | string | No | Substring filter on bone and constraint names |
| max_results | int | No | Max bodies and constraints (0 = all) |
| bone | string | No | Return this body's shapes in full |
add_physics_bodyAdd a body on a bone, fitted from the mesh, with a constraint to its parent body
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Physics Asset path |
| bone_name | string | Yes | Bone to give a body |
| auto_shape | bool | No | Fit shapes from the skinned vertices (default true) |
| geom_type | string | No | capsule, sphere, box, tapered_capsule, convex or multi_convex |
| constraint | bool | No | Constrain to the parent body (default true) |
| include_children | bool | No | Fold bodiless child bones' skin (twists, helpers) into the fit (default true) |
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=falseremove_physics_bodyRemove a body, re-hanging its children's constraints on the next body up
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Physics Asset path |
| bone_name | string | Yes | Bone of the body |
set_physics_bodyChange a body's physics type, mass scale, or any body setup property
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Physics Asset path |
| bone_name | string | Yes | Bone of the body |
| physics_type | string | No | default, kinematic or simulated |
| mass_scale | float | No | Mass scale (> 0) |
| properties | json | No | JSON object of USkeletalBodySetup properties (DefaultInstance.*, PhysMaterial, bConsiderForBounds...) |
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_shapeAdd a sphere, box, capsule or tapered capsule to a body
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Physics Asset path |
| bone_name | string | Yes | Bone of the body (created empty if missing) |
| type | string | Yes | sphere, box, capsule or tapered_capsule |
| name | string | No | Shape name |
| center | json | No | Center [x, y, z] in bone space |
| rotation | json | No | Rotation [pitch, yaw, roll] degrees |
| radius | float | No | Radius (sphere, capsule) |
| length | float | No | Capsule straight length |
| extents | json | No | Box full extents [x, y, z] |
| radii | json | No | Tapered capsule radii [r0, r1] |
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_shapeChange a shape's placement, size, collision or any field
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Physics Asset path |
| bone_name | string | Yes | Bone of the body |
| shape | string | Yes | Shape name or index (get_physics_asset --bone) |
| new_name | string | No | Rename |
| center | json | No | Center [x, y, z] |
| rotation | json | No | Rotation [pitch, yaw, roll] |
| radius | float | No | Radius |
| length | float | No | Capsule length |
| extents | json | No | Box extents [x, y, z] |
| collision | string | No | enabled, query_only, physics_only, probe_only or none |
| contribute_to_mass | string | No | true or false |
| properties | json | No | JSON object of shape struct fields (RestOffset...) |
remove_physics_shapeRemove a shape from a body
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Physics Asset path |
| bone_name | string | Yes | Bone of the body |
| shape | string | Yes | Shape name or index |
add_physics_constraintAdd a constraint between two bodies, frames snapped to the bones
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Physics Asset path |
| child_bone | string | Yes | Child bone (has a body) |
| parent_bone | string | Yes | Parent bone (has a body) |
| name | string | No | Joint name (default: the child bone) |
| disable_collision | bool | No | Disable collision between the two bodies (default true) |
remove_physics_constraintRemove a constraint by name or bone pair
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Physics Asset path |
| name | string | No | Joint name |
| child_bone | string | No | Child bone |
| parent_bone | string | No | Parent bone |
set_physics_constraintSet swing/twist/linear limits, collision, snap frames, or any constraint field
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Physics Asset path |
| name | string | No | Joint name |
| child_bone | string | No | Child bone |
| parent_bone | string | No | Parent bone |
| swing1 | string | No | free, limited or locked |
| swing1_limit | float | No | Swing 1 limit degrees |
| swing2 | string | No | free, limited or locked |
| swing2_limit | float | No | Swing 2 limit degrees |
| twist | string | No | free, limited or locked |
| twist_limit | float | No | Twist limit degrees |
| linear | string | No | free, limited or locked (all axes) |
| linear_limit | float | No | Linear limit cm |
| disable_collision | string | No | true or false |
| snap | bool | No | Re-snap frames to the bones |
| properties | json | No | JSON object of FConstraintInstance fields |
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_collisionEnable or disable collision between two bodies
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Physics Asset path |
| bone_a | string | Yes | First body's bone |
| bone_b | string | Yes | Second body's bone |
| enabled | bool | Yes | Collide or not |
validate_physics_assetVerdict on a Physics Asset: shapeless bodies, missing bones, colliding overlaps, default frames, mass
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Physics Asset path |