Skip to main content

skel kit

158 tools. Generated from the plugin source; do not edit by hand.

Guide​

Everything about the skeletal side of assets: the skeleton itself (bone tree, virtual bones, skeleton sockets, animation slot groups, curve metadata, blend profiles, per-bone translation retargeting, notify names, compatible skeletons), the deeper parts of a skeletal mesh (LOD info, reduction and build settings, sections, morph targets, skin weight profiles, reference pose, bounds, Niagara sampling, ray tracing, mesh merge, FBX export, import settings), physics assets (bodies, shapes, constraints, profiles, collision pairs) and clothing.

Works on UE 4.27 through 5.8 (~150 tools on 5.8, ~145 on 4.27). The 5.x-only tools are the compatible-skeleton list, the skin weight profile removal and the default mesh deformer; they are hidden from tools/list on 4.27 and refused with E_NOT_SUPPORTED if called anyway. The skel.cloth_* tools require the ChaosCloth plugin and disappear when it is not enabled.

The kit is split over five classes that all expose the skel. namespace:

ClassPrefixWhat
UUeaKit_Skeletonskel.bone tree queries, virtual bones, skeleton sockets, slot groups, curve metadata, blend profiles, retargeting modes, notify names, preview mesh, compatible skeletons, bone-tree merge/recreate
UUeaKit_SkelMeshskel.LOD info / reduction / build settings, sections, material slots, morph targets, skin weight profiles, reference pose, bounds, sampling, ray tracing, merge, export, import settings
UUeaKit_SkelPhysicsskel.pa_bodies and shapes, constraints with limits and motors, constraint and physical-animation profiles, collision pairs, mirroring, auto-generation
UUeaKit_SkelClothskel.cloth_clothing assets: create from a section, bind/unbind, configs, weight maps
UUeaKit_SkelBatchskel.folder-wide audits and bulk edits

This kit does not replace the basic mesh.sk_* tools (info, LOD screen size, materials, mesh-local sockets, bone list, morph target names, physics asset assignment). Those stay in the mesh kit; skel.* goes deeper and never duplicates a mesh.sk_* name.

Not here: animation assets (anim kit), placing skeletal meshes in a level (actor kit), skeletal mesh component settings (component kit), importing a new mesh from FBX (asset kit).

Start here​

  1. skel.get_skeleton {"skeleton":"/Game/Characters/SK_Hero_Skeleton"} — bone count, root, virtual bones, sockets, slot groups, curves, blend profiles, preview mesh, compatible skeletons, notify names, retarget sources.
  2. skel.get_mesh {"mesh":"/Game/Characters/SK_Hero"} — LOD infos, sections per LOD, material slots, morph targets, skin weight profiles, cloth, physics assets, bounds, sampling, ray tracing and the source files.
  3. skel.pa_get {"physicsAsset":"/Game/Characters/PA_Hero"} — bodies with their shapes and physics settings, constraints with limits and drives, profiles, disabled collision pairs, solver settings.
  4. skel.audit_meshes {"folder":"/Game/Characters","requireLods":true,"requirePhysicsAsset":true} — the whole folder in one table.

Everything that changes an asset is transactional (edit.undo works) but nothing is written to disk until you call skel.save_mesh, skel.save_skeleton, skel.pa_save or asset.save_all.

No skeletal mesh of your own to try this on? skel.create_test_mesh {"folder":"/Game/Tmp", "name":"SK_Test"} duplicates the engine's SkeletalCube (bones Bone01, Bone02) and its skeleton into your folder; that is exactly what the self-test uses.

Recipes​

Ragdoll from scratch​

skel.pa_create {"mesh":"/Game/Characters/SK_Hero","folder":"/Game/Characters",
"name":"PA_Hero","geomType":"sphyl","minBoneSize":8,"createConstraints":true}
skel.pa_list_bodies {"physicsAsset":"/Game/Characters/PA_Hero"}
skel.pa_set_body_physics {"physicsAsset":"/Game/Characters/PA_Hero","bone":"pelvis",
"physicsType":"simulated","massScale":1.0}
skel.pa_set_constraint_limits {"physicsAsset":"/Game/Characters/PA_Hero","name":"spine_02",
"swing1Motion":"limited","swing1Limit":25,
"swing2Motion":"limited","swing2Limit":25,
"twistMotion":"limited","twistLimit":10}
skel.pa_disable_collision_below {"physicsAsset":"/Game/Characters/PA_Hero","bone":"spine_01"}
skel.pa_validate {"physicsAsset":"/Game/Characters/PA_Hero"}

skel.pa_create needs the mesh to have skin weights on the bones you want bodies on; bones shorter than minBoneSize are skipped unless bodyForAll is true. Start with sphyl (capsules) — the convex types are much slower and only pay off for hands and props.

For a driven ragdoll, add a physical animation profile:

skel.pa_add_profile {"physicsAsset":"...","name":"Hit","kind":"physicalAnimation"}
skel.pa_set_physical_animation_profile {"physicsAsset":"...","profile":"Hit","bone":"spine_02",
"orientationStrength":2000,"angularVelocityStrength":100,
"isLocalSimulation":true}

Mirroring a half-built physics asset​

Build the left side only, then:

skel.pa_mirror {"physicsAsset":"/Game/Characters/PA_Hero","fromSuffix":"_l","toSuffix":"_r"}

Every body whose bone ends with _l is copied onto the matching _r bone with its shapes mirrored across the YZ plane (X negated, yaw and roll flipped). Use skel.pa_copy_body for a single bone.

Retarget-ready skeleton​

skel.apply_retarget_preset {"skeleton":"/Game/Characters/SK_Hero_Skeleton","preset":"humanoid"}
skel.add_virtual_bone {"skeleton":"...","source":"hand_l","target":"foot_l"}
skel.add_compatible_skeleton {"skeleton":"...","other":"/Game/Mannequin/UE4_Mannequin_Skeleton"}

The humanoid preset puts the root and every IK/virtual bone on Animation, the pelvis on AnimationScaled and everything else on Skeleton, which is what a proportion-independent retarget needs. Pass pelvisBone when the pelvis is not called pelvis/hips/spine_01. skel.add_compatible_skeleton is UE 5 only and lets an animation authored on the other skeleton play directly on this one.

LOD chain and section cleanup​

skel.generate_lods {"mesh":"/Game/Characters/SK_Hero","count":4,
"percents":[0.5,0.25,0.1],"screenSizes":[0.5,0.25,0.1]}
skel.set_lod_info {"mesh":"...","lod":3,"bonesToRemove":["index_03_l","index_03_r"],
"rebuild":true}
skel.list_sections {"mesh":"...","lod":0}
skel.set_section {"mesh":"...","lod":0,"section":2,"generateUpToLod":1}

skel.generate_lods needs a mesh reduction plugin (SkeletalReduction ships with the engine but has to be enabled); it fails with E_INTERNAL otherwise. generateUpToLod on a section makes that section disappear past the given LOD — the cheapest way to drop buckles and buttons at distance. skel.set_lod_reduction and skel.set_lod_build_settings tune the same LOD without rebuilding unless you pass rebuild: true.

Morph target management​

skel.list_morph_targets {"mesh":"/Game/Characters/SK_Hero"}
skel.rename_morph_target {"mesh":"...","name":"blendShape1","newName":"JawOpen"}
skel.copy_morph_targets {"mesh":"/Game/Characters/SK_HeroLod","from":"/Game/Characters/SK_Hero"}
skel.remove_all_morph_targets {"mesh":"/Game/Characters/SK_HeroProxy"}

copy_morph_targets refuses meshes whose LOD 0 vertex counts differ: morph deltas are indexed by vertex, so the topology must match exactly.

Mesh merge for modular characters​

skel.merge_meshes {"meshes":["/Game/Mod/SK_Torso","/Game/Mod/SK_Legs","/Game/Mod/SK_Head"],
"folder":"/Game/Mod","name":"SK_Merged","stripTopLods":0}

Every source must be bound to a compatible skeleton; the merged asset gets the first source's skeleton unless you pass skeleton. Merging is an editor-time bake — for runtime swapping use leader-pose components from the component kit instead.

Cloth​

skel.cloth_create_from_section {"mesh":"...","lod":0,"section":3,"name":"Cloak",
"removeSection":false,"physicsAsset":"/Game/Characters/PA_Hero"}
skel.cloth_set_config {"mesh":"...","name":"Cloak",
"values":[{"key":"BendingStiffness","value":"0.7"}]}
skel.cloth_set_weight_map_value {"mesh":"...","name":"Cloak","lod":0,"map":0,"value":10.0}

skel.cloth_set_config writes by reflection, so it works with any simulator config the enabled cloth plugin exposes; call skel.cloth_get_config first to see the property names. Weight map target 0 is MaxDistance, 1 BackstopDistance, 2 BackstopRadius.

Folder-wide work​

skel.audit_skeletons {"folder":"/Game/Characters"}
skel.batch_set_physics_asset {"folder":"/Game/Crowd","physicsAsset":"/Game/Crowd/PA_Shared",
"onlyMissing":true}
skel.batch_retarget_modes {"folder":"/Game/Characters","preset":"humanoid"}

skel.audit_skeletons scans the registry once and reports how many meshes and animations use each skeleton, so orphaned skeletons stand out immediately.

Gotchas​

  • 4.27 vs 5.x accessors. The kit hides every difference behind its own shim, but the tools that simply do not exist below UE 5 are hidden from tools/list: skel.list_compatible_skeletons, skel.add_compatible_skeleton, skel.remove_compatible_skeleton, skel.remove_skin_weight_profile (5.0+) and skel.set_default_mesh_deformer (5.1+).
  • Reduction needs a plugin. skel.generate_lods, skel.regenerate_lod, skel.remove_lod and skel.batch_regenerate_lods all go through the engine's skeletal reduction path. Without a mesh reduction plugin they fail instead of silently doing nothing.
  • Rebuild costs. set_lod_info, set_lod_reduction, set_lod_build_settings and set_ref_pose_bone take rebuild; leave it false while you make several changes, then call skel.rebuild_mesh once. Rebuilding a character mesh takes seconds, not milliseconds.
  • Reference pose edits are dangerous. skel.set_ref_pose_bone changes the bind pose, which breaks existing animations and invalidates the physics asset. Regenerate the physics asset with skel.pa_regenerate afterwards, and use skel.reset_ref_pose to go back to the skeleton's pose.
  • Virtual bone names. The engine names virtual bones VB <source>_<target>. add_virtual_bone returns the actual name in createdName; rename_virtual_bone and remove_virtual_bones accept the name with or without the VB prefix (it is added for you).
  • Curve metadata moved. UE 5.7 removed smart names; the kit uses the new FCurveMetaData API there and the smart-name container below it. The tool shapes are identical, but skel.rename_curve fails on a name that is already taken on both paths.
  • Cloth plugin. Every skel.cloth_* tool declares RequiresPlugin="ChaosCloth". The plugin is off by default; enable it in the project before the tools become callable. The kit never links against the plugin, so its module rename between 4.27 (Chaos) and 5.x (ChaosCloth) does not matter.
  • Material slot removal. skel.remove_material_slot refuses a slot a section still uses; point the sections elsewhere with skel.set_section first. Removing a slot shifts every higher section material index down by one, which the tool does for you.
  • Physics asset deletion. skel.pa_delete fails while a mesh still references the asset; clear it with skel.set_physics_assets {"mesh":"...","physicsAsset":""} first.

Tools​

Legend. risk 0 = read-only, 1 = harmless editor op, 2 = modifies asset, 3 = deletes/replaces asset, 4 = project/config/build op, 5 = potentially destructive (calls above MaxAutoRisk need "_confirm": true). mutates = runs in a transaction (edit.undo reverts). requires PIE / requires world = refused without a PIE session / an open level. requires plugin = unavailable while the plugin is disabled. dryRun = honours the dryRun argument. smoke = covered by edit.self_test.

skel.add_compatible_skeleton (risk 2, mutates, UE 5.0+, smoke)​

Declares another skeleton compatible with this one (UE 5 only).

ArgumentTypeDescription
otherstringrequired. The other skeleton asset path or unique name.

Returns: skeleton, names, count, message, notes.

skel.add_curve (risk 2, mutates, smoke)​

Registers a curve name on the skeleton (metadata only; it does not create animation data).

ArgumentTypeDescription
namestringrequired. Curve name.
morphTargetbooleanMark the curve as driving a morph target. Default false.
materialbooleanMark the curve as driving a material parameter. Default false.
maxLodintegerLowest-detail LOD the curve is still evaluated on; -1 leaves it unchanged, 255 = always. Default -1.
linkedBonesarray of stringBones the curve is linked to (skel.set_curve_metadata only; empty leaves them unchanged).

Returns: skeleton, curves, count, message, notes.

skel.add_material_slot (risk 2, mutates, smoke)​

Adds a material slot to a skeletal mesh.

ArgumentTypeDescription
materialstringMaterial asset path; the slot stays empty when omitted.
slotNamestringSlot name; generated when omitted.

Returns: mesh, materials, count, message, notes.

skel.add_notify_name (risk 2, mutates, smoke)​

Adds a notify name to the skeleton's cached list (so it shows up in the notify pickers).

ArgumentTypeDescription
namestringrequired. Name to operate on.

Returns: skeleton, names, count, message, notes.

skel.add_skeleton_socket (risk 2, mutates, smoke)​

Adds a socket attached to a bone of the skeleton.

ArgumentTypeDescription
namestringrequired. Socket name.
bonestringBone the socket is attached to (required when adding).
location{x,y,z}Offset from the bone.
rotation{x,y,z}Rotation as pitch/yaw/roll.
scale{x,y,z}Scale; (0,0,0) means 1,1,1.
forceAlwaysAnimatedbooleanKeep the socket's bone animated even when it is not otherwise required. Default false.
newNamestringNew socket name (skel.set_skeleton_socket only).

Returns: skeleton, sockets, count, message, notes.

skel.add_slot (risk 2, mutates, smoke)​

Adds an animation slot to a group (DefaultGroup when 'group' is empty).

ArgumentTypeDescription
slotstringSlot name (skel.add_slot, skel.set_slot_group, skel.remove_slot).
groupstringSlot group name (defaults to DefaultGroup for skel.add_slot).

Returns: skeleton, groups, count, message, notes.

skel.add_slot_group (risk 2, mutates, smoke)​

Adds a slot group.

ArgumentTypeDescription
slotstringSlot name (skel.add_slot, skel.set_slot_group, skel.remove_slot).
groupstringSlot group name (defaults to DefaultGroup for skel.add_slot).

Returns: skeleton, groups, count, message, notes.

skel.add_virtual_bone (risk 2, mutates, smoke)​

Adds a virtual bone parented to 'source' and following 'target'; returns the generated name.

ArgumentTypeDescription
sourcestringrequired. Bone the virtual bone is parented to.
targetstringrequired. Bone the virtual bone follows.
namestringExplicit virtual bone name (UE 5 only; the engine generates one when empty).

Returns: skeleton, virtualBones, count, createdName, message, notes.

skel.apply_retarget_preset (risk 2, mutates, smoke)​

Applies a retargeting preset to the whole bone tree ('humanoid' keeps the root and the IK bones on Animation and scales the pelvis).

ArgumentTypeDescription
presetstringrequired. humanoid (root=Animation, pelvis=AnimationScaled, IK bones=Animation, rest=Skeleton) or animation / skeleton (everything).
pelvisBonestringName of the pelvis/hips bone; auto-detected when empty.

Returns: skeleton, modes, count, changed, message, notes.

skel.audit_meshes (risk 0, smoke)​

Audits the skeletal meshes of a folder: triangle budget, LOD count, physics asset, morph targets.

ArgumentTypeDescription
folderstringrequired. Content folder to audit.
maxTrianglesintegerFlag meshes whose LOD 0 has more triangles than this; 0 disables the check. Default 0.
requireLodsbooleanFlag meshes with a single LOD. Default false.
requirePhysicsAssetbooleanFlag meshes without a physics asset. Default false.
requireMorphsbooleanFlag meshes without morph targets. Default false.
offendersOnlybooleanOnly report the meshes that failed a check. Default false.
limitintegerMaximum number of meshes inspected. Default 200.

Returns: folder, meshes, count, offenders, totalTriangles, message.

skel.audit_physics_assets (risk 0, smoke)​

Audits the physics assets of a folder: bodies without shapes, constraints, disabled collision pairs.

ArgumentTypeDescription
folderstringrequired. Content folder to audit.
limitintegerMaximum number of assets inspected. Default 200.

Returns: folder, physicsAssets, count, offenders, message.

skel.audit_skeletons (risk 0, smoke)​

Audits the skeletons of a folder: bones, virtual bones, sockets, and how many meshes and animations use each one.

ArgumentTypeDescription
folderstringrequired. Content folder to audit.
limitintegerMaximum number of assets inspected. Default 200.

Returns: folder, skeletons, count, orphaned, message.

skel.batch_regenerate_lods (risk 3, mutates, destructive)​

Regenerates the LOD chain of every skeletal mesh of a folder. Not smoke-tested: skeletal reduction needs a mesh reduction plugin.

ArgumentTypeDescription
countintegerTotal number of LODs including LOD0. Default 3.

Returns: folder, changed, skipped, count, message.

skel.batch_retarget_modes (risk 3, mutates, smoke)​

Applies a retargeting preset to every skeleton of a folder.

ArgumentTypeDescription
presetstringrequired. humanoid, animation or skeleton.

Returns: folder, changed, skipped, count, message.

skel.batch_set_lod_settings (risk 3, mutates, smoke)​

Assigns one SkeletalMeshLODSettings asset to every skeletal mesh of a folder.

ArgumentTypeDescription
settingsstringrequired. SkeletalMeshLODSettings asset path.
applybooleanImmediately copy the settings into the LOD infos. Default true.

Returns: folder, changed, skipped, count, message.

skel.batch_set_physics_asset (risk 3, mutates, smoke)​

Assigns one physics asset to every skeletal mesh of a folder (optionally only to those without one).

ArgumentTypeDescription
physicsAssetstringrequired. Physics asset path.
onlyMissingbooleanOnly touch the meshes that have no physics asset yet. Default false.

Returns: folder, changed, skipped, count, message.

skel.batch_set_skeleton (risk 3, mutates, destructive, smoke)​

Rebinds every skeletal mesh of a folder to one skeleton (refused when the hierarchies differ unless 'force').

ArgumentTypeDescription
skeletonstringrequired. Skeleton asset path.
forcebooleanRebind even when the bone hierarchies do not match. Default false.

Returns: folder, changed, skipped, count, message.

skel.cloth_bind (risk 2, mutates, requires plugin ChaosCloth)​

Binds an existing clothing asset to a mesh section. Not smoke-tested: needs the ChaosCloth plugin.

ArgumentTypeDescription
namestringrequired. Clothing asset name.
lodintegerrequired. LOD of the section to drive.
sectionintegerrequired. Section to drive.
clothLodintegerCloth LOD used for the binding. Default 0.

Returns: mesh, lod, section, clothingAsset, clothLod, bound, message.

skel.cloth_create_from_section (risk 3, mutates, requires plugin ChaosCloth)​

Creates a clothing asset from a mesh section and binds it to that section. Not smoke-tested: needs the ChaosCloth plugin.

ArgumentTypeDescription
lodintegerrequired. LOD the source section lives in.
sectionintegerrequired. Section index to turn into cloth.
namestringrequired. Name of the new clothing asset.
removeSectionbooleanLeave the source section out of the rendered mesh. Default false.
physicsAssetstringPhysics asset the cloth collisions are taken from.

Returns: mesh, clothingAssets, count, message, notes.

skel.cloth_get (risk 0, requires plugin ChaosCloth)​

One clothing asset in detail. Not smoke-tested: needs the ChaosCloth plugin.

ArgumentTypeDescription
namestringrequired. Clothing asset name (or index as text).

Returns: mesh, clothingAssets, count, message, notes.

skel.cloth_get_config (risk 0, requires plugin ChaosCloth)​

Every property of a cloth simulator config, read by reflection. Not smoke-tested: needs the ChaosCloth plugin.

ArgumentTypeDescription
namestringrequired. Clothing asset name.
configstringConfig object name (ChaosClothConfig by default).
valuesarray of UeaKeyValueProperties to set, as "PropertyName=Value" pairs (skel.cloth_set_config only).

Returns: mesh, clothingAsset, config, values, failed, message.

skel.cloth_get_section_binding (risk 0, requires plugin ChaosCloth)​

Which clothing asset (if any) drives a mesh section. Not smoke-tested: needs the ChaosCloth plugin.

ArgumentTypeDescription
lodintegerrequired. LOD index.
sectionintegerrequired. Section index.

Returns: mesh, lod, section, clothingAsset, clothLod, bound, message.

skel.cloth_list (risk 0, requires plugin ChaosCloth)​

Clothing assets bound to a skeletal mesh, with their LOD count, reference bone and configs. Not smoke-tested: needs the ChaosCloth plugin.

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.

Returns: mesh, clothingAssets, count, message, notes.

skel.cloth_list_weight_maps (risk 0, requires plugin ChaosCloth)​

Weight maps (max distance, backstop, ...) of a cloth LOD with their value ranges. Not smoke-tested: needs the ChaosCloth plugin.

ArgumentTypeDescription
namestringrequired. Clothing asset name.
lodintegerCloth LOD index; -1 lists every LOD. Default -1.

Returns: mesh, clothingAsset, weightMaps, count, message.

skel.cloth_rebuild (risk 2, mutates, requires plugin ChaosCloth)​

Rebuilds the cached simulation data of a clothing asset after a config or weight map change. Not smoke-tested: needs the ChaosCloth plugin.

ArgumentTypeDescription
namestringrequired. Clothing asset name (or index as text).

Returns: mesh, clothingAssets, count, message, notes.

skel.cloth_remove (risk 3, mutates, destructive, requires plugin ChaosCloth)​

Removes a clothing asset from the mesh (and unbinds every section it drove). Not smoke-tested: needs the ChaosCloth plugin.

ArgumentTypeDescription
namestringrequired. Clothing asset name (or index as text).

Returns: mesh, clothingAssets, count, message, notes.

skel.cloth_set_config (risk 2, mutates, requires plugin ChaosCloth)​

Writes properties of a cloth simulator config by name (reflection, so it works with any simulator). Not smoke-tested: needs the ChaosCloth plugin.

ArgumentTypeDescription
namestringrequired. Clothing asset name.
configstringConfig object name (ChaosClothConfig by default).
valuesarray of UeaKeyValueProperties to set, as "PropertyName=Value" pairs (skel.cloth_set_config only).

Returns: mesh, clothingAsset, config, values, failed, message.

skel.cloth_set_weight_map_value (risk 3, mutates, requires plugin ChaosCloth)​

Fills a whole weight map of a cloth LOD with one value. Not smoke-tested: needs the ChaosCloth plugin.

ArgumentTypeDescription
namestringrequired. Clothing asset name.
lodintegerrequired. Cloth LOD index.
mapintegerrequired. Weight map target (numeric id, e.g. 0 = MaxDistance).
valuenumberrequired. Value written into every vertex of the map.

Returns: mesh, clothingAsset, weightMaps, count, message.

skel.cloth_unbind (risk 2, mutates, requires plugin ChaosCloth)​

Removes the cloth simulation from a mesh section. Not smoke-tested: needs the ChaosCloth plugin.

ArgumentTypeDescription
lodintegerrequired. LOD index.
sectionintegerrequired. Section index.

Returns: mesh, lod, section, clothingAsset, clothLod, bound, message.

skel.copy_lod_settings (risk 2, mutates, smoke)​

Copies every LOD info (screen sizes, reduction, bake poses) from another skeletal mesh.

ArgumentTypeDescription
fromstringrequired. Source skeletal mesh asset path or unique name.

Returns: mesh, lods, count, message, notes.

skel.copy_morph_targets (risk 2, mutates, smoke)​

Copies the morph targets of another mesh (both meshes must have the same vertex count).

ArgumentTypeDescription
fromstringrequired. Source skeletal mesh asset path or unique name.

Returns: mesh, morphTargets, count, message, notes.

skel.create_blend_profile (risk 2, mutates, smoke)​

Creates a blend profile (mode TimeFactor / WeightFactor / BlendMask; UE 4.27 has no modes).

ArgumentTypeDescription
namestringrequired. Blend profile name.
modestringTimeFactor (default), WeightFactor or BlendMask. Ignored on UE 4.27, which has no modes.

Returns: skeleton, profiles, count, message, notes.

skel.create_test_mesh (risk 2, mutates, smoke)​

Duplicates the engine's SkeletalCube (and its skeleton) into a folder; the fixture every other skel tool can be tried on.

ArgumentTypeDescription
folderstringrequired. Destination content folder.
namestringrequired. Name of the new skeletal mesh (its skeleton gets "_Skeleton" appended).

Returns: mesh, name, folder, skeleton, bones, message, notes.

skel.duplicate_mesh (risk 2, mutates, smoke)​

Duplicates a skeletal mesh into another folder or under another name.

ArgumentTypeDescription
folderstringDestination content folder; the source folder when empty.
namestringrequired. Name of the copy.

Returns: mesh, name, folder, skeleton, bones, message, notes.

skel.export_fbx (risk 1)​

Exports a skeletal mesh to an FBX file. Not smoke-tested: it writes outside the content folder.

ArgumentTypeDescription
filestringrequired. Destination file path (absolute, or relative to the project directory).
asciibooleanWrite ASCII FBX instead of binary. Default false.
exportMorphTargetsbooleanInclude morph targets in the export. Default true.
lodintegerLOD to export; negative exports the whole chain. Default -1.

Returns: mesh, message, lods, notes.

skel.find_bones (risk 0, smoke)​

Finds bones by wildcard pattern ("hand_", "_l"); a plain word matches as a substring.

ArgumentTypeDescription
patternstringrequired. Wildcard pattern ("hand_", "_l"); a plain word matches as a substring.
limitintegerMaximum number of bones returned. Default 200.

Returns: skeleton, bones, count, total, message.

skel.generate_lods (risk 3, mutates)​

Builds a whole LOD chain by reduction. Not smoke-tested: skeletal reduction needs a mesh reduction plugin the smoke project does not enable.

ArgumentTypeDescription
countintegerrequired. Total number of LODs including LOD0.
percentsarray of numberTriangle fraction per generated LOD (default 0.5, 0.25, 0.125...).
screenSizesarray of numberScreen size per generated LOD.

Returns: mesh, lods, count, message, notes.

skel.get_bone (risk 0, smoke)​

One bone in detail: local and component-space reference transform, children and retargeting mode.

ArgumentTypeDescription
bonestringrequired. Bone name (case-insensitive).

Returns: skeleton, bone, componentLocation, componentRotation, componentScale, children, message.

skel.get_bone_chain (risk 0, smoke)​

Bone path between two bones (walks up from 'to' until it reaches 'from').

ArgumentTypeDescription
fromstringrequired. First bone of the chain.
tostringrequired. Last bone of the chain.

Returns: skeleton, bones, count, message.

skel.get_bone_influences (risk 0, smoke)​

How many vertices of a LOD a bone influences, and the strongest weight found.

ArgumentTypeDescription
bonestringrequired. Bone name.
lodintegerLOD index (0 when omitted). Default 0.

Returns: mesh, bone, lod, influencedVertices, maxWeight, sections, message.

skel.get_import_settings (risk 0, smoke)​

FBX import settings stored on the mesh (they apply to the next reimport).

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.

Returns: mesh, importDataClass, settings, sourceFiles, canReimport, message, notes.

skel.get_lod_build_settings (risk 0, smoke)​

Build settings of one LOD (normals, tangents, MikkTSpace, welding thresholds).

ArgumentTypeDescription
lodintegerrequired. LOD index (0-based).

Returns: mesh, importDataClass, settings, sourceFiles, canReimport, message, notes.

skel.get_lod_info (risk 0, smoke)​

LOD info of one LOD (-1 returns every LOD): screen size, hysteresis, reduction, bake pose, bones to remove.

ArgumentTypeDescription
lodintegerLOD index (0-based); -1 means every LOD. Default -1.

Returns: mesh, lods, count, message, notes.

skel.get_mesh (risk 0, smoke)​

Deep information about a skeletal mesh: LOD infos, sections, materials, morph targets, skin weight profiles, cloth, physics, bounds, sampling, ray tracing and import settings.

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.

Returns: mesh, name, skeleton, boneCount, lods, sections, materials, morphTargets, skinWeightProfiles, clothingAssets, physicsAsset, shadowPhysicsAsset, lodSettings, postProcessAnimBlueprint, defaultMeshDeformer, minLod, boundsOrigin, boundsExtent, positiveBoundsExtension, negativeBoundsExtension, samplingRegions, supportRayTracing, rayTracingMinLod, sourceFiles, message.

skel.get_ref_pose (risk 0, smoke)​

Reference pose of a skeletal mesh, in local (default) or component space.

ArgumentTypeDescription
bonesarray of stringBones to report; empty reports every bone.
spacestringlocal (relative to the parent, default) or component.
limitintegerMaximum number of bones returned. Default 300.

Returns: mesh, space, bones, count, message, notes.

skel.get_required_bones (risk 0, smoke)​

Bones required to render a LOD, and the bones that actually have weights on it.

ArgumentTypeDescription
lodintegerrequired. LOD index (0-based).

Returns: mesh, lod, requiredBones, activeBones, count, message.

skel.get_retarget_modes (risk 0, smoke)​

Translation retargeting mode of every bone of the skeleton.

ArgumentTypeDescription
skeletonstringrequired. Skeleton asset path or unique name.

Returns: skeleton, modes, count, changed, message, notes.

skel.get_skeleton (risk 0, smoke)​

Everything about a skeleton: bone count, root, virtual bones, sockets, slot groups, curves, blend profiles, preview mesh, compatible skeletons, notify names and retarget sources.

ArgumentTypeDescription
skeletonstringrequired. Skeleton asset path or unique name.

Returns: skeleton, name, boneCount, rootBone, virtualBones, sockets, slotGroups, curves, blendProfiles, previewMesh, compatibleSkeletons, notifyNames, retargetSources, message.

skel.get_vertex_info (risk 0, smoke)​

Position, normal, first UV and bone weights of one vertex of a LOD.

ArgumentTypeDescription
vertexintegerrequired. Vertex index inside the LOD.
lodintegerLOD index (0 when omitted). Default 0.

Returns: mesh, lod, vertex, position, normal, uv, influences, message.

skel.import_lod (risk 3, mutates)​

Imports (or reimports) a LOD from an FBX file. Not smoke-tested: it needs an FBX file on disk.

ArgumentTypeDescription
lodintegerrequired. LOD index to import into.
filestringrequired. Absolute path of the FBX file.

Returns: mesh, lods, count, message, notes.

skel.is_mesh_compatible (risk 0, smoke)​

Whether a skeletal mesh's bone hierarchy matches this skeleton.

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.

Returns: skeleton, other, compatible, message.

skel.list_animations_using_skeleton (risk 0, smoke)​

Animation assets bound to a skeleton (asset registry query, nothing is loaded).

ArgumentTypeDescription
classFilterstringKeep only assets of this class (AnimSequence, AnimMontage, BlendSpace...); empty = every animation asset.
limitintegerMaximum number of assets returned. Default 200.

Returns: skeleton, assets, count, message, notes.

skel.list_blend_profiles (risk 0, smoke)​

Blend profiles of a skeleton with their mode and per-bone scales.

ArgumentTypeDescription
skeletonstringrequired. Skeleton asset path or unique name.

Returns: skeleton, profiles, count, message, notes.

skel.list_bones (risk 0, smoke)​

Bones of a skeleton with index, parent, depth, reference-pose local transform and retargeting mode.

ArgumentTypeDescription
parentstringOnly list this bone and its descendants.
depthintegerMaximum hierarchy depth returned relative to the root (-1 = no limit). Default -1.
nameContainsstringKeep only bones whose name contains this text.
limitintegerMaximum number of bones returned. Default 300.

Returns: skeleton, bones, count, total, message.

skel.list_compatible_skeletons (risk 0, UE 5.0+, smoke)​

Skeletons declared compatible with this one (UE 5 only; animations of a compatible skeleton can be played directly).

ArgumentTypeDescription
skeletonstringrequired. Skeleton asset path or unique name.

Returns: skeleton, names, count, message, notes.

skel.list_curves (risk 0, smoke)​

Curve metadata of a skeleton: name, morph target / material flags, max LOD and linked bones.

ArgumentTypeDescription
skeletonstringrequired. Skeleton asset path or unique name.

Returns: skeleton, curves, count, message, notes.

skel.list_material_slots (risk 0, smoke)​

Material slots of a skeletal mesh, with the slot names and whether a section uses them.

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.

Returns: mesh, materials, count, message, notes.

skel.list_meshes_using_skeleton (risk 0, smoke)​

Skeletal meshes bound to a skeleton (asset registry query, nothing is loaded).

ArgumentTypeDescription
skeletonstringrequired. Skeleton asset path or unique name.

Returns: skeleton, assets, count, message, notes.

skel.list_morph_targets (risk 0, smoke)​

Morph targets of a skeletal mesh with the number of vertex deltas per LOD.

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.

Returns: mesh, morphTargets, count, message, notes.

skel.list_notify_names (risk 0, smoke)​

Animation notify names cached on the skeleton.

ArgumentTypeDescription
skeletonstringrequired. Skeleton asset path or unique name.

Returns: skeleton, names, count, message, notes.

skel.list_sections (risk 0, smoke)​

Sections of a LOD (-1 = every LOD) with material slot, counts and per-section flags.

ArgumentTypeDescription
lodintegerLOD index (0-based); -1 means every LOD. Default -1.

Returns: mesh, sections, count, message, notes.

skel.list_skeleton_sockets (risk 0, smoke)​

Sockets stored on the skeleton (shared by every mesh bound to it).

ArgumentTypeDescription
skeletonstringrequired. Skeleton asset path or unique name.

Returns: skeleton, sockets, count, message, notes.

skel.list_skeletons (risk 0, smoke)​

Lists skeleton assets under a content folder.

ArgumentTypeDescription
folderstringContent folder to search ("/Game" when empty).
nameContainsstringKeep only skeletons whose name contains this text.
limitintegerMaximum number of skeletons returned. Default 100.

Returns: skeletons, count, message.

skel.list_skin_weight_profiles (risk 0, smoke)​

Skin weight profiles of a skeletal mesh.

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.

Returns: mesh, profiles, count, message, notes.

skel.list_slot_groups (risk 0, smoke)​

Animation slot groups of a skeleton and the slots they contain.

ArgumentTypeDescription
skeletonstringrequired. Skeleton asset path or unique name.

Returns: skeleton, groups, count, message, notes.

skel.list_virtual_bones (risk 0, smoke)​

Virtual bones of a skeleton (derived bones between a source and a target bone).

ArgumentTypeDescription
skeletonstringrequired. Skeleton asset path or unique name.

Returns: skeleton, virtualBones, count, createdName, message, notes.

skel.merge_bones_from_mesh (risk 2, mutates, smoke)​

Adds the bones of a mesh that the skeleton does not know yet to its bone tree.

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.

Returns: skeleton, message, notes.

skel.merge_meshes (risk 2, mutates, smoke)​

Merges several skeletal meshes into a new asset (modular characters).

ArgumentTypeDescription
meshesarray of stringrequired. Source skeletal meshes, in draw order.
folderstringrequired. Destination content folder.
namestringrequired. Name of the merged asset.
skeletonstringSkeleton for the merged mesh; the first source mesh's skeleton when empty.
stripTopLodsintegerNumber of top LODs to strip from the sources. Default 0.

Returns: mesh, name, folder, skeleton, bones, message, notes.

skel.pa_add_body (risk 2, mutates, smoke)​

Adds a physics body on a bone with one default shape.

ArgumentTypeDescription
bonestringrequired. Bone the body is attached to.
shapestringcapsule (default), box or sphere.
sizenumberShape size: radius for sphere/capsule, half-extent for box. Default 5.0.
physicsTypestringdefault, kinematic or simulated.

Returns: physicsAsset, bodies, count, message, notes.

skel.pa_add_constraint (risk 2, mutates, smoke)​

Creates a constraint between two bones (preset locked, free or ragdoll).

ArgumentTypeDescription
bone1stringrequired. Child bone.
bone2stringrequired. Parent bone.
namestringJoint name; the child bone name when empty.
presetstringlocked, free or ragdoll (limited swings and twist).

Returns: physicsAsset, constraints, count, message, notes.

skel.pa_add_profile (risk 2, mutates, smoke)​

Adds a constraint or physical animation profile.

ArgumentTypeDescription
namestringrequired. Profile name.
kindstringrequired. constraint or physicalAnimation.
newNamestringNew name (skel.pa_rename_profile only).

Returns: physicsAsset, constraintProfiles, physicalAnimationProfiles, message, notes.

skel.pa_add_shape (risk 2, mutates, smoke)​

Adds a collision shape to a body.

ArgumentTypeDescription
bonestringrequired. Bone the body is attached to.
typestringrequired. box, sphere or capsule.
indexintegerShape index inside its type list (skel.pa_set_shape / skel.pa_remove_shape). Default 0.
center{x,y,z}Shape centre relative to the bone.
rotation{x,y,z}Shape rotation as pitch/yaw/roll.
extent{x,y,z}Full extents of a box shape; (0,0,0) leaves them unchanged.
radiusnumberRadius of a sphere or capsule; negative leaves it unchanged. Default -1.0.
lengthnumberLength of a capsule's line segment; negative leaves it unchanged. Default -1.0.
namestringOptional shape name.
contributeToMassbooleanWhether the shape adds to the body's mass. Default true.

Returns: physicsAsset, bone, shapes, count, message, notes.

skel.pa_assign_to_mesh (risk 2, mutates, smoke)​

Assigns the physics asset to a skeletal mesh (as the main or the shadow physics asset).

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.
shadowbooleanAssign it as the shadow physics asset instead of the main one. Default false.

Returns: physicsAsset, message, notes.

skel.pa_copy_body (risk 2, mutates, smoke)​

Copies the shapes and settings of one body onto another bone, optionally mirrored.

ArgumentTypeDescription
fromstringrequired. Source bone.
tostringrequired. Destination bone (its body is created when missing).
mirrorbooleanMirror the shapes across the YZ plane (X is negated). Default false.

Returns: physicsAsset, bodies, count, message, notes.

skel.pa_create (risk 3, mutates, smoke)​

Creates a physics asset from a skeletal mesh's bones (geometry type, minimum bone size, constraints) and optionally assigns it.

ArgumentTypeDescription
meshstringrequired. Skeletal mesh the bodies are generated from.
folderstringDestination content folder (skel.pa_create only).
namestringName of the new physics asset (skel.pa_create only).
minBoneSizenumberBones shorter than this are skipped. Default 20.0.
geomTypestringsphyl (capsule, default), box, sphere, singleConvex, multiConvex or taperedCapsule.
vertWeightstringanyWeight or dominantWeight (default).
autoOrientbooleanOrient the created bodies along their bone. Default true.
createConstraintsbooleanCreate constraints between adjacent bodies. Default true.
walkPastSmallbooleanKeep walking past bones that are too small instead of stopping. Default true.
bodyForAllbooleanCreate a body for every bone, even the small ones. Default false.
disableCollisionsByDefaultbooleanDisable collision between the created bodies by default. Default true.
hullCountintegerNumber of hulls for the convex geometry types. Default 4.
maxHullVertsintegerMaximum vertices per convex hull. Default 16.
assignbooleanAlso assign the asset to the mesh (skel.pa_create only). Default true.

Returns: physicsAsset, name, folder, bodies, constraints, boneNames, message, notes.

skel.pa_delete (risk 3, mutates, destructive)​

Deletes the physics asset. Not smoke-tested: deleting an asset inside the self-test transaction is unsafe.

ArgumentTypeDescription
physicsAssetstringrequired. Physics asset path or unique name.

Returns: physicsAsset, message, notes.

skel.pa_disable_collision_below (risk 2, mutates, smoke)​

Disables collision between a bone's body and every body below it in the hierarchy.

ArgumentTypeDescription
bonestringrequired. Bone the body is attached to.

Returns: physicsAsset, pairs, count, message, notes.

skel.pa_enable_all_collision (risk 3, mutates, smoke)​

Clears the whole collision-disable table, so every body collides with every other one.

ArgumentTypeDescription
physicsAssetstringrequired. Physics asset path or unique name.

Returns: physicsAsset, pairs, count, message, notes.

skel.pa_get (risk 0, smoke)​

Everything about a physics asset: bodies, shapes, constraints, profiles, disabled collision pairs and solver settings.

ArgumentTypeDescription
physicsAssetstringrequired. Physics asset path or unique name.

Returns: physicsAsset, name, previewMesh, bodies, constraints, constraintProfiles, physicalAnimationProfiles, disabledCollisionPairs, solverSettings, message, notes.

skel.pa_get_body (risk 0, smoke)​

One body in detail.

ArgumentTypeDescription
bonestringrequired. Bone the body is attached to.

Returns: physicsAsset, bodies, count, message, notes.

skel.pa_get_constraint (risk 0, smoke)​

One constraint in detail (by joint name or index).

ArgumentTypeDescription
namestringrequired. Joint name (or index as text).

Returns: physicsAsset, constraints, count, message, notes.

skel.pa_list (risk 0, smoke)​

Lists physics assets under a content folder.

ArgumentTypeDescription
folderstringContent folder to search ("/Game" when empty).
limitintegerMaximum number of assets returned. Default 100.

Returns: physicsAssets, count, message, notes.

skel.pa_list_bodies (risk 0, smoke)​

Bodies of a physics asset with their shapes and physics settings.

ArgumentTypeDescription
physicsAssetstringrequired. Physics asset path or unique name.

Returns: physicsAsset, bodies, count, message, notes.

skel.pa_list_collision_pairs (risk 0, smoke)​

Body pairs whose collision is disabled (or every pair).

ArgumentTypeDescription
disabledOnlybooleanOnly report the pairs whose collision is disabled. Default true.

Returns: physicsAsset, pairs, count, message, notes.

skel.pa_list_constraints (risk 0, smoke)​

Constraints of a physics asset with their limits and drives.

ArgumentTypeDescription
physicsAssetstringrequired. Physics asset path or unique name.

Returns: physicsAsset, constraints, count, message, notes.

skel.pa_list_profiles (risk 0, smoke)​

Constraint and physical animation profile names.

ArgumentTypeDescription
physicsAssetstringrequired. Physics asset path or unique name.

Returns: physicsAsset, constraintProfiles, physicalAnimationProfiles, message, notes.

skel.pa_list_shapes (risk 0, smoke)​

Collision shapes of one body.

ArgumentTypeDescription
bonestringrequired. Bone the body is attached to.

Returns: physicsAsset, bone, shapes, count, message, notes.

skel.pa_mirror (risk 2, mutates, smoke)​

Mirrors every body whose bone ends with one suffix onto the bone with the other suffix.

ArgumentTypeDescription
fromSuffixstringrequired. Suffix of the source bones (e.g. "_l").
toSuffixstringrequired. Suffix of the destination bones (e.g. "_r").

Returns: physicsAsset, bodies, count, message, notes.

skel.pa_regenerate (risk 3, mutates, destructive, smoke)​

Regenerates the bodies and constraints of an existing physics asset from a mesh.

ArgumentTypeDescription
physicsAssetstringrequired. Physics asset to regenerate.

Returns: physicsAsset, name, folder, bodies, constraints, boneNames, message, notes.

skel.pa_remove_body (risk 3, mutates, destructive, smoke)​

Removes the physics body of a bone (and the constraints that used it).

ArgumentTypeDescription
bonestringrequired. Bone the body is attached to.

Returns: physicsAsset, bodies, count, message, notes.

skel.pa_remove_constraint (risk 3, mutates, destructive, smoke)​

Removes a constraint.

ArgumentTypeDescription
namestringrequired. Joint name (or index as text).

Returns: physicsAsset, constraints, count, message, notes.

skel.pa_remove_profile (risk 3, mutates, destructive, smoke)​

Removes a constraint or physical animation profile.

ArgumentTypeDescription
namestringrequired. Profile name.
kindstringrequired. constraint or physicalAnimation.
newNamestringNew name (skel.pa_rename_profile only).

Returns: physicsAsset, constraintProfiles, physicalAnimationProfiles, message, notes.

skel.pa_remove_shape (risk 3, mutates, destructive, smoke)​

Removes a collision shape from a body.

ArgumentTypeDescription
bonestringrequired. Bone the body is attached to.
typestringrequired. box, sphere or capsule.
indexintegerShape index inside its type list (skel.pa_set_shape / skel.pa_remove_shape). Default 0.
center{x,y,z}Shape centre relative to the bone.
rotation{x,y,z}Shape rotation as pitch/yaw/roll.
extent{x,y,z}Full extents of a box shape; (0,0,0) leaves them unchanged.
radiusnumberRadius of a sphere or capsule; negative leaves it unchanged. Default -1.0.
lengthnumberLength of a capsule's line segment; negative leaves it unchanged. Default -1.0.
namestringOptional shape name.
contributeToMassbooleanWhether the shape adds to the body's mass. Default true.

Returns: physicsAsset, bone, shapes, count, message, notes.

skel.pa_rename_profile (risk 2, mutates, smoke)​

Renames a constraint or physical animation profile.

ArgumentTypeDescription
namestringrequired. Profile name.
kindstringrequired. constraint or physicalAnimation.
newNamestringNew name (skel.pa_rename_profile only).

Returns: physicsAsset, constraintProfiles, physicalAnimationProfiles, message, notes.

skel.pa_save (risk 1)​

Saves the physics asset package to disk. Not smoke-tested: the self-test never writes to disk.

ArgumentTypeDescription
physicsAssetstringrequired. Physics asset path or unique name.

Returns: physicsAsset, message, notes.

skel.pa_scale_shapes (risk 2, mutates, smoke)​

Scales every collision shape of the asset (or of some bones) by a factor.

ArgumentTypeDescription
factornumberrequired. Scale factor applied to every radius/extent.
bonesarray of stringBones to scale; empty scales every body.

Returns: physicsAsset, bodies, count, message, notes.

skel.pa_set_body_collision (risk 2, mutates, smoke)​

Collision settings of one body: collision enabled mode, object type and per-channel responses.

ArgumentTypeDescription
bonestringrequired. Bone the body is attached to.
collisionEnabledstringnoCollision, queryOnly, physicsOnly or queryAndPhysics ("" leaves it unchanged).
objectTypestringCollision object type channel name (WorldStatic, Pawn, PhysicsBody...).
responsesarray of UeaKeyValuePer-channel responses as "Channel=ignore

Returns: physicsAsset, bodies, count, message, notes.

skel.pa_set_body_physics (risk 2, mutates, smoke)​

Physics settings of one body: simulation type, mass, damping, gravity, CCD, centre of mass, physical material.

ArgumentTypeDescription
bonestringrequired. Bone the body is attached to.
physicsTypestringdefault, kinematic or simulated ("" leaves it unchanged).
massScalenumberMultiplier applied to the computed mass; negative leaves it unchanged. Default -1.0.
massKgnumberExplicit mass in kilograms; negative leaves the computed mass. Default -1.0.
linearDampingnumberLinear damping; negative leaves it unchanged. Default -1.0.
angularDampingnumberAngular damping; negative leaves it unchanged. Default -1.0.
enableGravitybooleanWhether gravity acts on the body. Default true.
simulatePhysicsbooleanWhether the body simulates by default. Default false.
startAwakebooleanWhether the body starts awake. Default true.
useCCDbooleanUse continuous collision detection. Default false.
centerOfMassOffset{x,y,z}Offset applied to the centre of mass.
physicalMaterialstringPhysical material asset path ("" leaves it unchanged).

Returns: physicsAsset, bodies, count, message, notes.

skel.pa_set_collision_pair (risk 2, mutates, smoke)​

Enables or disables collision between the bodies of two bones.

ArgumentTypeDescription
bone1stringrequired. First bone.
bone2stringrequired. Second bone.
enabledbooleanTrue to let the two bodies collide. Default true.

Returns: physicsAsset, pairs, count, message, notes.

skel.pa_set_constraint (risk 2, mutates, smoke)​

General constraint settings: collision, projection, break thresholds, parent dominance, frame rotation.

ArgumentTypeDescription
namestringrequired. Joint name.
disableCollisionbooleanMake the two bodies ignore each other. Default true.
projectionEnabledbooleanEnable joint projection (keeps long chains from stretching). Default false.
linearBreakablebooleanLet the constraint break under linear force. Default false.
linearBreakThresholdnumberForce above which the constraint breaks; negative leaves it unchanged. Default -1.0.
angularBreakablebooleanLet the constraint break under torque. Default false.
angularBreakThresholdnumberTorque above which the constraint breaks; negative leaves it unchanged. Default -1.0.
parentDominatesbooleanLet the parent body dominate the child. Default false.
frameRotation{x,y,z}Rotation offset applied to the constraint frame, as pitch/yaw/roll.

Returns: physicsAsset, constraints, count, message, notes.

skel.pa_set_constraint_limits (risk 2, mutates, smoke)​

Angular and linear limits of a constraint, with the soft-limit parameters.

ArgumentTypeDescription
namestringrequired. Joint name.
swing1Motionstringfree, limited or locked ("" leaves it unchanged).
swing1LimitnumberSwing 1 limit in degrees; negative leaves it unchanged. Default -1.0.
swing2Motionstringfree, limited or locked ("" leaves it unchanged).
swing2LimitnumberSwing 2 limit in degrees; negative leaves it unchanged. Default -1.0.
twistMotionstringfree, limited or locked ("" leaves it unchanged).
twistLimitnumberTwist limit in degrees; negative leaves it unchanged. Default -1.0.
linearXMotionstringfree, limited or locked ("" leaves it unchanged).
linearYMotionstringfree, limited or locked ("" leaves it unchanged).
linearZMotionstringfree, limited or locked ("" leaves it unchanged).
linearLimitnumberLinear limit distance; negative leaves it unchanged. Default -1.0.
softSwingbooleanMake the swing limit soft. Default false.
swingStiffnessnumberSoft swing stiffness; negative leaves it unchanged. Default -1.0.
swingDampingnumberSoft swing damping; negative leaves it unchanged. Default -1.0.
softTwistbooleanMake the twist limit soft. Default false.
twistStiffnessnumberSoft twist stiffness; negative leaves it unchanged. Default -1.0.
twistDampingnumberSoft twist damping; negative leaves it unchanged. Default -1.0.
softLinearbooleanMake the linear limit soft. Default false.
linearStiffnessnumberSoft linear stiffness; negative leaves it unchanged. Default -1.0.
linearDampingnumberSoft linear damping; negative leaves it unchanged. Default -1.0.

Returns: physicsAsset, constraints, count, message, notes.

skel.pa_set_constraint_motor (risk 2, mutates, smoke)​

Angular and linear drives (motors) of a constraint.

ArgumentTypeDescription
namestringrequired. Joint name.
angularDriveModestringslerp or twistAndSwing ("" leaves it unchanged).
orientationDrivebooleanEnable the angular orientation drive. Default false.
velocityDrivebooleanEnable the angular velocity drive. Default false.
strengthnumberAngular drive spring strength; negative leaves it unchanged. Default -1.0.
dampingnumberAngular drive damping; negative leaves it unchanged. Default -1.0.
maxForcenumberMaximum force the drives may apply; negative leaves it unchanged. Default -1.0.
target{x,y,z}Target orientation as pitch/yaw/roll.
linearPositionDrivebooleanEnable the linear position drive on all three axes. Default false.
linearVelocityDrivebooleanEnable the linear velocity drive on all three axes. Default false.

Returns: physicsAsset, constraints, count, message, notes.

skel.pa_set_physical_animation_profile (risk 2, mutates, smoke)​

Physical animation drive strengths of one bone inside a physical animation profile.

ArgumentTypeDescription
profilestringrequired. Physical animation profile name.
bonestringrequired. Bone the settings apply to.
orientationStrengthnumberStrength of the orientation drive. Default 0.0.
angularVelocityStrengthnumberStrength of the angular velocity drive. Default 0.0.
positionStrengthnumberStrength of the position drive. Default 0.0.
velocityStrengthnumberStrength of the linear velocity drive. Default 0.0.
maxLinearForcenumberMaximum linear force the drives may apply. Default 0.0.
maxAngularForcenumberMaximum angular force the drives may apply. Default 0.0.
isLocalSimulationbooleanSimulate in the space of the body's parent instead of world space. Default true.

Returns: physicsAsset, constraintProfiles, physicalAnimationProfiles, message, notes.

skel.pa_set_physical_material (risk 2, mutates)​

Assigns a physical material to one body or to every body. Not smoke-tested: no physical material ships in engine content.

ArgumentTypeDescription
bonestringBone to change; every body when empty.
materialstringrequired. Physical material asset path.

Returns: physicsAsset, bodies, count, message, notes.

skel.pa_set_preview_mesh (risk 2, mutates, smoke)​

Sets the skeletal mesh the physics asset editor previews.

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.

Returns: physicsAsset, message, notes.

skel.pa_set_profile_constraint (risk 2, mutates, smoke)​

Stores constraint limits and drive strengths inside a constraint profile.

ArgumentTypeDescription
profilestringrequired. Constraint profile name.
constraintstringrequired. Joint name.
swing1Motionstringfree, limited or locked ("" leaves it unchanged).
swing1LimitnumberSwing 1 limit in degrees; negative leaves it unchanged. Default -1.0.
swing2Motionstringfree, limited or locked ("" leaves it unchanged).
swing2LimitnumberSwing 2 limit in degrees; negative leaves it unchanged. Default -1.0.
twistMotionstringfree, limited or locked ("" leaves it unchanged).
twistLimitnumberTwist limit in degrees; negative leaves it unchanged. Default -1.0.
strengthnumberAngular drive spring strength; negative leaves it unchanged. Default -1.0.
dampingnumberAngular drive damping; negative leaves it unchanged. Default -1.0.

Returns: physicsAsset, constraintProfiles, physicalAnimationProfiles, message, notes.

skel.pa_set_shape (risk 2, mutates, smoke)​

Edits an existing collision shape.

ArgumentTypeDescription
bonestringrequired. Bone the body is attached to.
typestringrequired. box, sphere or capsule.
indexintegerShape index inside its type list (skel.pa_set_shape / skel.pa_remove_shape). Default 0.
center{x,y,z}Shape centre relative to the bone.
rotation{x,y,z}Shape rotation as pitch/yaw/roll.
extent{x,y,z}Full extents of a box shape; (0,0,0) leaves them unchanged.
radiusnumberRadius of a sphere or capsule; negative leaves it unchanged. Default -1.0.
lengthnumberLength of a capsule's line segment; negative leaves it unchanged. Default -1.0.
namestringOptional shape name.
contributeToMassbooleanWhether the shape adds to the body's mass. Default true.

Returns: physicsAsset, bone, shapes, count, message, notes.

skel.pa_set_solver (risk 2, mutates, smoke)​

Solver settings of the physics asset (iteration counts and solver type).

ArgumentTypeDescription
positionIterationsintegerPosition iterations (UE 5) / solver iterations (UE 4.27); negative leaves it unchanged. Default -1.
velocityIterationsintegerVelocity iterations (UE 5) / joint iterations (UE 4.27); negative leaves it unchanged. Default -1.
projectionIterationsintegerProjection iterations (UE 5) / collision iterations (UE 4.27); negative leaves it unchanged. Default -1.
solverTypestringWorld or RBAN ("" leaves it unchanged).

Returns: physicsAsset, message, notes.

skel.pa_validate (risk 0, smoke)​

Sanity check: bodies without shapes, constraints pointing at missing bodies, bones without a body.

ArgumentTypeDescription
physicsAssetstringrequired. Physics asset path or unique name.

Returns: physicsAsset, errors, warnings, valid, message.

skel.pa_weld_bodies (risk 3, mutates)​

Merges the body of a child bone into its parent's. Not smoke-tested: it needs a live skeletal mesh component.

ArgumentTypeDescription
parentstringrequired. Bone that keeps its body.
childstringrequired. Bone whose body is merged into the parent's.

Returns: physicsAsset, bodies, count, message, notes.

skel.rebuild_mesh (risk 2, mutates, smoke)​

Rebuilds the mesh's render data after low-level edits.

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.

Returns: mesh, message, lods, notes.

skel.recreate_bone_tree (risk 3, mutates, destructive, smoke)​

Rebuilds the bone tree from a mesh, discarding the current hierarchy (breaks existing animations).

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.

Returns: skeleton, message, notes.

skel.regenerate_lod (risk 3, mutates)​

Regenerates one LOD from its reduction settings. Not smoke-tested: skeletal reduction needs a mesh reduction plugin the smoke project does not enable.

ArgumentTypeDescription
lodintegerrequired. LOD index (0-based).

Returns: mesh, lods, count, message, notes.

skel.reimport_mesh (risk 3, mutates)​

Reimports the mesh from its source file (or from a new one). Not smoke-tested: it needs an FBX file on disk.

ArgumentTypeDescription
filestringSource file to reimport from ("" uses the stored one).

Returns: mesh, message, lods, notes.

skel.remove_all_morph_targets (risk 3, mutates, destructive, smoke)​

Removes every morph target of a skeletal mesh.

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.

Returns: mesh, morphTargets, count, message, notes.

skel.remove_blend_profile (risk 3, mutates, destructive, smoke)​

Deletes a blend profile.

ArgumentTypeDescription
namestringrequired. Name to operate on.

Returns: skeleton, profiles, count, message, notes.

skel.remove_compatible_skeleton (risk 2, mutates, UE 5.0+, smoke)​

Removes a skeleton from the compatible list (UE 5 only).

ArgumentTypeDescription
otherstringrequired. The other skeleton asset path or unique name.

Returns: skeleton, names, count, message, notes.

skel.remove_curve (risk 3, mutates, destructive, smoke)​

Removes a curve and its metadata from the skeleton.

ArgumentTypeDescription
namestringrequired. Name to operate on.

Returns: skeleton, curves, count, message, notes.

skel.remove_lod (risk 3, mutates, destructive)​

Removes one LOD. Not smoke-tested: the engine cube fixture only has LOD0 and LOD removal needs a reduction plugin.

ArgumentTypeDescription
lodintegerrequired. LOD index (0-based).

Returns: mesh, lods, count, message, notes.

skel.remove_material_slot (risk 3, mutates, destructive, smoke)​

Removes a material slot; refused while a section still uses it.

ArgumentTypeDescription
slotstringrequired. Slot index or slot name.

Returns: mesh, materials, count, message, notes.

skel.remove_morph_target (risk 3, mutates, destructive)​

Removes one morph target. Not smoke-tested: the engine cube fixture has no morph targets.

ArgumentTypeDescription
namestringrequired. Name to operate on.

Returns: mesh, morphTargets, count, message, notes.

skel.remove_notify_name (risk 2, mutates, smoke)​

Removes a notify name from the skeleton's cached list.

ArgumentTypeDescription
namestringrequired. Name to operate on.

Returns: skeleton, names, count, message, notes.

skel.remove_skeleton_socket (risk 3, mutates, destructive, smoke)​

Removes a socket from the skeleton.

ArgumentTypeDescription
namestringrequired. Name to operate on.

Returns: skeleton, sockets, count, message, notes.

skel.remove_skin_weight_profile (risk 3, mutates, destructive, UE 5.0+)​

Removes a skin weight profile (UE 5 only; UE 4.27 has no removal API). Not smoke-tested: the engine cube fixture has no skin weight profiles.

ArgumentTypeDescription
namestringrequired. Name to operate on.

Returns: mesh, profiles, count, message, notes.

skel.remove_slot (risk 3, mutates, destructive, smoke)​

Removes an animation slot.

ArgumentTypeDescription
slotstringSlot name (skel.add_slot, skel.set_slot_group, skel.remove_slot).
groupstringSlot group name (defaults to DefaultGroup for skel.add_slot).

Returns: skeleton, groups, count, message, notes.

skel.remove_virtual_bones (risk 3, mutates, destructive, smoke)​

Removes virtual bones by name.

ArgumentTypeDescription
namesarray of stringrequired. Names to operate on.

Returns: skeleton, virtualBones, count, createdName, message, notes.

skel.rename_curve (risk 2, mutates, smoke)​

Renames a curve.

ArgumentTypeDescription
namestringrequired. Current name.
newNamestringrequired. New name.

Returns: skeleton, curves, count, message, notes.

skel.rename_morph_target (risk 2, mutates)​

Renames a morph target. Not smoke-tested: the engine cube fixture has no morph targets.

ArgumentTypeDescription
namestringrequired. Current name.
newNamestringrequired. New name.

Returns: mesh, morphTargets, count, message, notes.

skel.rename_virtual_bone (risk 2, mutates, smoke)​

Renames a virtual bone.

ArgumentTypeDescription
namestringrequired. Current name.
newNamestringrequired. New name.

Returns: skeleton, virtualBones, count, createdName, message, notes.

skel.reset_ref_pose (risk 3, mutates, smoke)​

Resets the mesh's reference pose to the skeleton's one.

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.

Returns: mesh, space, bones, count, message, notes.

skel.save_mesh (risk 1)​

Saves the skeletal mesh package to disk. Not smoke-tested: the self-test never writes to disk.

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.

Returns: mesh, message, lods, notes.

skel.save_skeleton (risk 1)​

Saves the skeleton package to disk.

ArgumentTypeDescription
skeletonstringrequired. Skeleton asset path or unique name.

Returns: skeleton, message, notes.

skel.set_allow_cpu_access (risk 2, mutates, smoke)​

Keeps the mesh's vertex buffers readable on the CPU (needed by some Niagara and trace setups).

ArgumentTypeDescription
enabledbooleanValue of the flag. Default true.

Returns: mesh, message, lods, notes.

skel.set_blend_profile_bone (risk 2, mutates, smoke)​

Sets the blend scale of one bone (optionally its whole subtree) in a blend profile.

ArgumentTypeDescription
profilestringrequired. Blend profile name.
bonestringrequired. Bone name.
scalenumberrequired. Blend scale (1 = normal speed/weight, 0 = the bone does not blend).
recursebooleanAlso apply the scale to every descendant of the bone. Default false.

Returns: skeleton, profiles, count, message, notes.

skel.set_bounds (risk 2, mutates, smoke)​

Extra padding added to the rendered bounds (fixes meshes that disappear when animated).

ArgumentTypeDescription
positiveExtension{x,y,z}Padding added on +X/+Y/+Z.
negativeExtension{x,y,z}Padding added on -X/-Y/-Z.

Returns: mesh, message, lods, notes.

skel.set_curve_metadata (risk 2, mutates, smoke)​

Updates the metadata of an existing curve (morph target / material flags, max LOD, linked bones).

ArgumentTypeDescription
namestringrequired. Curve name.
morphTargetbooleanMark the curve as driving a morph target. Default false.
materialbooleanMark the curve as driving a material parameter. Default false.
maxLodintegerLowest-detail LOD the curve is still evaluated on; -1 leaves it unchanged, 255 = always. Default -1.
linkedBonesarray of stringBones the curve is linked to (skel.set_curve_metadata only; empty leaves them unchanged).

Returns: skeleton, curves, count, message, notes.

skel.set_default_mesh_deformer (risk 2, mutates, UE 5.1+, smoke)​

Assigns (or clears) the default mesh deformer (UE 5.1+ deformer graph).

ArgumentTypeDescription
assetstringAsset path; "" clears the reference.

Returns: mesh, message, lods, notes.

skel.set_import_settings (risk 2, mutates, smoke)​

Edits the FBX import settings stored on the mesh (they apply to the next reimport).

ArgumentTypeDescription
importMorphTargetsbooleanImport morph targets on the next reimport. Default true.
updateSkeletonReferencePosebooleanUpdate the skeleton's reference pose from the file. Default false.
useT0AsRefPosebooleanUse frame 0 of the file as the reference pose. Default false.
preserveSmoothingGroupsbooleanKeep the file's smoothing groups. Default true.
importMeshesInBoneHierarchybooleanImport meshes that live inside the bone hierarchy. Default true.
thresholdPositionnumberWeld distance for positions; negative leaves it unchanged. Default -1.0.
thresholdTangentNormalnumberWeld threshold for tangents/normals; negative leaves it unchanged. Default -1.0.
thresholdUvnumberWeld threshold for UVs; negative leaves it unchanged. Default -1.0.
normalImportMethodstringComputeNormals / ImportNormals / ImportNormalsAndTangents ("" leaves it unchanged).
normalGenerationMethodstringBuiltIn / MikkTSpace ("" leaves it unchanged).
computeWeightedNormalsbooleanWeight generated normals by triangle area. Default false.

Returns: mesh, importDataClass, settings, sourceFiles, canReimport, message, notes.

skel.set_lod_build_settings (risk 2, mutates, smoke)​

Edits the build settings of one LOD (normals, tangents, MikkTSpace, welding thresholds).

ArgumentTypeDescription
lodintegerrequired. LOD index.
recomputeNormalsbooleanRecompute normals when building. Default false.
recomputeTangentsbooleanRecompute tangents when building. Default true.
useMikkTSpacebooleanUse MikkTSpace to generate tangents. Default true.
computeWeightedNormalsbooleanWeight generated normals by triangle area. Default false.
removeDegeneratesbooleanDrop degenerate triangles. Default true.
useHighPrecisionTangentBasisbooleanStore tangents with higher precision. Default false.
useFullPrecisionUVsbooleanStore UVs with full precision. Default false.
thresholdPositionnumberWeld distance for positions; negative leaves it unchanged. Default -1.0.
thresholdTangentNormalnumberWeld threshold for tangents/normals; negative leaves it unchanged. Default -1.0.
thresholdUvnumberWeld threshold for UVs; negative leaves it unchanged. Default -1.0.
rebuildbooleanRebuild the mesh after the change. Default false.

Returns: mesh, lods, count, message, notes.

skel.set_lod_info (risk 2, mutates, smoke)​

Edits the LOD info of one LOD: screen size, hysteresis, CPU access, sampling, bake pose, bones to remove/prioritize.

ArgumentTypeDescription
lodintegerrequired. LOD index (0-based).
screenSizenumberScreen size at which the LOD becomes active; negative leaves it unchanged. Default -1.0.
hysteresisnumberLOD hysteresis; negative leaves it unchanged. Default -1.0.
allowCpuAccessbooleanKeep the LOD's vertex buffers readable on the CPU. Default false.
supportUniformSamplingbooleanSupport uniformly distributed sampling (Niagara). Default false.
bakePosestringAnimation whose pose is baked into the LOD ("" clears it, omitted leaves it unchanged).
bakePoseOverridestringAnimation whose pose overrides the baked one.
bonesToRemovearray of stringBones removed at this LOD (replaces the current list when non-empty).
bonesToPrioritizearray of stringBones the reduction tries to preserve (replaces the current list when non-empty).
weightOfPrioritizationnumberWeight given to the prioritized bones; negative leaves it unchanged. Default -1.0.
rebuildbooleanRebuild the mesh after the change (slower, but the result is immediately visible). Default false.

Returns: mesh, lods, count, message, notes.

skel.set_lod_reduction (risk 2, mutates, smoke)​

Edits the reduction settings of one LOD (termination criterion, percentages, deviation, bone limits).

ArgumentTypeDescription
lodintegerrequired. LOD index (0-based).
terminationCriterionstringNumOfTriangles, NumOfVerts, NumOfTrianglesPercent, NumOfVertsPercent... ("" leaves it unchanged).
percentTrianglesnumberFraction of triangles to keep (0-1); negative leaves it unchanged. Default -1.0.
percentVerticesnumberFraction of vertices to keep (0-1); negative leaves it unchanged. Default -1.0.
maxDeviationnumberMaximum deviation in percent; negative leaves it unchanged. Default -1.0.
maxBonesPerVertexintegerMaximum bone influences per vertex; negative leaves it unchanged. Default -1.
weldingThresholdnumberDistance below which vertices are welded; negative leaves it unchanged. Default -1.0.
hardAnglenumberNormal split angle in degrees; negative leaves it unchanged. Default -1.0.
baseLodintegerLOD the reduction reads from; negative leaves it unchanged. Default -1.
lockEdgesbooleanKeep boundary edges. Default false.
enforceBoneBoundariesbooleanDo not collapse vertices across bone boundaries. Default false.
rebuildbooleanRebuild the mesh after the change. Default false.

Returns: mesh, lods, count, message, notes.

skel.set_lod_settings_asset (risk 2, mutates)​

Assigns a SkeletalMeshLODSettings asset and optionally copies its settings into the LOD infos. Not smoke-tested: no LOD settings asset ships in engine content.

ArgumentTypeDescription
settingsstringSkeletalMeshLODSettings asset path; "" clears it.
applybooleanImmediately copy the settings into the mesh's LOD infos. Default true.

Returns: mesh, lods, count, message, notes.

skel.set_min_lod_per_platform (risk 2, mutates, smoke)​

Minimum LOD with per-platform overrides and the below-minimum stripping switch.

ArgumentTypeDescription
minLodintegerrequired. Default minimum LOD the renderer may use.
perPlatformarray of UeaKeyValuePer-platform overrides as "platform=lod" (e.g. "Mobile=2").
disableBelowMinLodStrippingbooleanKeep the LODs below the minimum in cooked builds. Default false.

Returns: mesh, message, lods, notes.

skel.set_physics_assets (risk 2, mutates, smoke)​

Assigns the physics asset and the shadow physics asset in one call.

ArgumentTypeDescription
physicsAssetstringPhysics asset path; "" clears it.
shadowPhysicsAssetstringCheaper physics asset used for shadow computations; "" clears it.

Returns: mesh, message, lods, notes.

skel.set_post_process_anim_blueprint (risk 2, mutates, smoke)​

Assigns (or clears) the post-process animation blueprint run after the main anim graph.

ArgumentTypeDescription
assetstringAsset path; "" clears the reference.

Returns: mesh, message, lods, notes.

skel.set_preview_mesh (risk 2, mutates, smoke)​

Sets the mesh shown when the skeleton is opened in Persona.

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.

Returns: skeleton, message, notes.

skel.set_ray_tracing (risk 2, mutates, smoke)​

Whether a ray tracing acceleration structure is built for the mesh, and from which LOD.

ArgumentTypeDescription
supportbooleanrequired. Build a ray tracing acceleration structure for this mesh.
minLodintegerLowest LOD used by ray tracing (UE 5 only); negative leaves it unchanged. Default -1.

Returns: mesh, message, lods, notes.

skel.set_ref_pose_bone (risk 3, mutates, smoke)​

Moves one bone of the mesh's reference pose. Breaks existing animations and invalidates the physics asset.

ArgumentTypeDescription
bonestringrequired. Bone name.
location{x,y,z}New translation relative to the parent bone.
rotation{x,y,z}New rotation relative to the parent bone, as pitch/yaw/roll.
scale{x,y,z}New scale; (0,0,0) means 1,1,1.
rebuildbooleanRebuild the mesh after the change. Default true.

Returns: mesh, space, bones, count, message, notes.

skel.set_retarget_mode (risk 2, mutates, smoke)​

Sets the translation retargeting mode of a bone (Animation, Skeleton, AnimationScaled, AnimationRelative, OrientAndScale).

ArgumentTypeDescription
bonestringrequired. Bone name.
modestringrequired. Animation, Skeleton, AnimationScaled, AnimationRelative or OrientAndScale.
recursebooleanAlso apply the mode to every descendant of the bone. Default false.

Returns: skeleton, modes, count, changed, message, notes.

skel.set_sampling_regions (risk 2, mutates, smoke)​

Replaces the Niagara sampling regions of a skeletal mesh (an empty list clears them).

ArgumentTypeDescription
regionsarray of UeaSkelSamplingRegionThe regions; an empty array clears them.

Returns: mesh, message, lods, notes.

skel.set_section (risk 2, mutates, smoke)​

Edits one section of a LOD: material slot, disabled, cast shadow, recompute tangent, ray tracing visibility, generate-up-to LOD.

ArgumentTypeDescription
lodintegerrequired. LOD index.
sectionintegerrequired. Section index inside the LOD.
materialSlotintegerMaterial slot the section draws with; negative leaves it unchanged. Default -1.
disabledbooleanSkip the section in the renderer. Default false.
castShadowbooleanSection casts shadows. Default true.
recomputeTangentbooleanRecompute tangents every frame (needed by some cloth/morph setups). Default false.
visibleInRayTracingbooleanSection is visible to ray tracing (UE 5 only). Default true.
generateUpToLodintegerThe section disappears past this LOD; negative leaves it unchanged. Default -1.

Returns: mesh, sections, count, message, notes.

skel.set_skeleton_socket (risk 2, mutates, smoke)​

Changes an existing skeleton socket (bone, transform, name).

ArgumentTypeDescription
namestringrequired. Socket name.
bonestringBone the socket is attached to (required when adding).
location{x,y,z}Offset from the bone.
rotation{x,y,z}Rotation as pitch/yaw/roll.
scale{x,y,z}Scale; (0,0,0) means 1,1,1.
forceAlwaysAnimatedbooleanKeep the socket's bone animated even when it is not otherwise required. Default false.
newNamestringNew socket name (skel.set_skeleton_socket only).

Returns: skeleton, sockets, count, message, notes.

skel.set_skin_weight_profile (risk 2, mutates)​

Changes the flags of a skin weight profile. Not smoke-tested: the engine cube fixture has no skin weight profiles.

ArgumentTypeDescription
namestringrequired. Profile name.
defaultProfilebooleanMake the profile replace the default skin weights. Default false.
defaultProfileFromLodintegerLOD index from which the profile overrides the default weights. Default 0.

Returns: mesh, profiles, count, message, notes.

skel.set_slot_group (risk 2, mutates, smoke)​

Moves an existing slot to another group.

ArgumentTypeDescription
slotstringSlot name (skel.add_slot, skel.set_slot_group, skel.remove_slot).
groupstringSlot group name (defaults to DefaultGroup for skel.add_slot).

Returns: skeleton, groups, count, message, notes.

skel.set_source_file (risk 2, mutates)​

Points the mesh at another source file for the next reimport. Not smoke-tested: it needs an FBX file on disk.

ArgumentTypeDescription
assetstringAsset path; "" clears the reference.

Returns: mesh, message, lods, notes.

skel.set_vertex_color_lod (risk 3, mutates, smoke)​

Paints every vertex of a LOD with one colour (useful to prime a vertex colour channel).

ArgumentTypeDescription
lodintegerrequired. LOD index.
colorstringrequired. Colour as "#RRGGBB", "#RRGGBBAA" or "R,G,B,A" with 0-255 components.

Returns: mesh, message, lods, notes.

skel.strip_lod_geometry (risk 3, mutates)​

Strips the geometry of a LOD using a texture mask. Not smoke-tested: it needs a mask texture and a reducible mesh.

ArgumentTypeDescription
lodintegerrequired. LOD index.
textureMaskstringrequired. Texture asset used as the mask.
thresholdnumberThreshold above which a triangle is kept (0-1). Default 0.5.

Returns: mesh, lods, count, message, notes.

skel.validate_mesh (risk 0, smoke)​

Sanity check: missing skeleton, sections without a material, LOD ordering, degenerate bounds, physics asset mismatch.

ArgumentTypeDescription
meshstringrequired. Skeletal mesh asset path or unique name.

Returns: mesh, errors, warnings, valid, message.