‹›
JoltPhysics

Blender Penetration Points

A helper marks the local tip on collision geometry and exports as JSON v6.

Workflow#

Add a Penetration Point under the Configuration Root, assign a unique Key and place it on the actual collision-shape tip. Local +Z is the insertion axis. A rendered BBMOD mesh tip is not sufficient if its collision shape differs.

GML
knife_tip = jolt_asset_create_penetrator_tip(
    asset, "penetration", knife_body);
if (is_undefined(knife_tip)) {
    show_debug_message(jolt_get_error().message);
}

knife_body must be a live Dynamic JoltBody. The helper forwards settings and activates the tip on creation. Returns JoltPenetrator or undefined; export and loading alone do not create a tip. Native validation atomically rechecks the actual shape, surface and axis.

Validation and limitations#

The editor warns about helpers outside collision geometry. Valid JSON does not guarantee admission for every runtime shape. Strict Predictive requires actual tip entry; a corner of a flat end can collide before the marked point enters. Inspect geometry before increasing tolerances to suppress rejection.

Verified operation contracts#

These contracts distinguish units, return values, errors and lifetime according to the current implementation. Check results: false, 0 and undefined can mean different things for different methods.

Symbol / ownerSignatureOperation contract
jolt_asset_get_penetration_pointjolt_asset_get_penetration_point(asset,point_ref)Asset + exact key or canonical UUID. Revalidates the mutable asset and returns an independent data record, not a physics object; failure undefined and managed error.

Complete API declarations#

Declarations match the production GML sources. A value after = marks an optional argument. This is a signature inventory; the guide sections describe meaning, units and limitations. The type before a dot identifies the method owner, not a global function.

Symbol / ownerSignature / value
jolt_asset_create_penetrator_tipjolt_asset_create_penetrator_tip(asset,point_ref,owner)