Managed objects
Types returned by public factories; do not construct internal handles manually.
This reference preserves the separation between managed and low-level API. Declarations are generated from current code; a signature inventory is not verification of every native solver edge case.
ExplosionEmitter, AssetRaycast, AssetForce, AssetPoint and SurfaceRaycastResult are documentation labels for returned objects, not public GML constructors. Obtain them through jolt_explosion_create, jolt_asset_create_raycast, jolt_asset_create_force, jolt_asset_create_point or a Surface raycast result. Internal constructor names are not recommended API.
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 / owner | Signature | Operation contract |
|---|---|---|
| JoltAssetControlSettings | JoltAssetControlSettings() | Empty options builder from jolt_asset_control_settings(); no physics or destroy. Setters return self/false. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltBBMODBox | JoltBBMODBox(world,handle,width,depth,height,resolution) | Volumetric wrapper with (resolution+1)^3 vertices and volume_stiffness; full XYZ m. Use jolt_soft_body_create_box for actual geometry and render mesh. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltBBMODCloth | JoltBBMODCloth(world,handle,sx,sy) | Grid cloth wrapper derived from cloth core with material and attachment API. Use jolt_soft_body_create_cloth; sx/sy must match the native grid. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltBBMODModel | JoltBBMODModel(world,handle,vertex_count,collision_limit,data) | Model wrapper consumes prepared indices/UV/parts/rest/nodes data. Use jolt_soft_body_create_from_model or jolt_soft_body_create_cloth_from_model; only the latter adds set_bend/get_bend. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltBBMODSoftBody | JoltBBMODSoftBody(world,handle,vertex_count,collision_limit) | Base native Soft Body wrapper, vertex count and collision limit must match native geometry. Use jolt_soft_body_create_*; constructor does not add a render mesh. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltBBMODSphere | JoltBBMODSphere(world,handle,radius,segments) | Sphere topology/dimension Soft Body wrapper with pressure API. Use jolt_soft_body_create_sphere; physics/render resources are created by the factory. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltBody | JoltBody(world, handle, shape = "unknown", motion = JOLT_MOTION_DYNAMIC, dimensions = undefined) | Wrapper of an existing world/body handle and geometry metadata. Use jolt_*_create_static/dynamic/kinematic or jolt_asset_create_body; constructor alone does not create a native body. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltCompound | JoltCompound(world, handle) | Native compound builder wrapper, children starts empty. Use jolt_compound. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltConstraint | JoltConstraint(world, handle, type, body_a, body_b, debug) | Wrapper of an existing constraint handle, type, bodies A/B and debug frame. Use the corresponding jolt_fixed/hinge/... factory; destroy removes the joint, not bodies. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltControl | JoltControl(world,handle,body,constraint,parent,config,type="button") | Wrapper of a created mechanism, owned body/constraint and borrowed parent. Button receives is_pressed; other types do not. Use jolt_control_* or asset factory. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltControlInteraction | JoltControlInteraction() | GML input controller for the current managed world, enabled true, reach3m, left button. Use jolt_control_interaction; constructor alone does not check a running world. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltConveyor | JoltConveyor(world) | Pending wrapper with handle0, host undefined; default speed1 m/s, +Y LOCAL. Use jolt_conveyor and set_body. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltGrabber | JoltGrabber(world,handle,options) | Native Carry handle wrapper with a GML input adapter. Use jolt_grabber; older constructor reach/strength/damping fields are not a reliable list of effective Carry defaults. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltGrip | JoltGrip(character=undefined) | Configurable GML controller; no valid Grip until a holder is assigned. Use jolt_grip() and set_holder. Distances .65/1.5/2 m for both hands, body movement/return disabled; caller owns the character. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltCharacter | JoltCharacter(world, handle, radius, height, crouch_height, layer) | Native CharacterVirtual wrapper with capsule dimensions and layer. Position is at the feet, height is total height. Use jolt_character; constructor alone does not create the native Character. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltCharacterAttachmentSettings | JoltCharacterAttachmentSettings(body=undefined) | JoltCharacterAttachmentSettings(body=undefined) stores host and empty options, does not attach. Prefer jolt_character_attachment(), then character.attachment_attach(settings). Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltLayer | JoltLayer(world, handle, name) | Wrapper of an existing layer handle and name; jolt_layer_create. Layer lifetime follows the world. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltPath | JoltPath(world) | GML draft without native handle, points empty, loop false, smoothness1. Use jolt_path and build_smooth after adding points. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltPenetrationRelationship | JoltPenetrationRelationship(world,handle) | Does not create penetration, only references a live native relationship handle. Obtain through tip.get_relationship(s); not a history record. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltPenetrationTarget | JoltPenetrationTarget(body) | Pending host-body configuration: disabled, forward100N, backward300N, max_depth.5m, category1; constructor does not register a target. Use jolt_penetration_target(body). Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltPenetrator | JoltPenetrator(body,handle,position,axis) | Wrapper of a native tip or handle0 pending builder with body-local position/axis. Pending defaults capture_model2, disabled; use jolt_penetrator_tip or asset factory. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltRagdoll | JoltRagdoll(asset,model) | Uses asset and loaded BBMOD model, prepares bone maps and creates the assembly during initialization; failure leaves it invalid. Use jolt_asset_create_ragdoll for the validated entry path. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltRenderSurface | JoltRenderSurface(record,body) | Wrapper of a validated asset record and borrowed owner body; GPU surface is created lazily on drawing. Use jolt_asset_create_surface; destroy does not remove owner body. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltScale | JoltScale(world, handle, body, reference_gravity) | Wrapper of an existing scale and owned platform; reference_gravity stores the creation parameter. Use jolt_scale_create. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltShape | JoltShape(world, handle, type, metadata, key = "") | Wrapper of an existing shape handle, type and shared debug metadata. Mesh/heightfield/plane are static_only. Use jolt_shape_*; constructor does not allocate geometry. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltSocket | JoltSocket(body, polarity, type, options) | Logical socket on a body with validated options; no separate collision body. Use jolt_socket or asset factory for registration and validation. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltSocketConnection | JoltSocketConnection(a, b, constraint, sockets=undefined, socket_group=undefined) | Wrapper of an existing connecting constraint and sockets; does not create a joint. Obtain through socket.get_connection; destroy disconnects and starts cooldown. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltSocketGroup | JoltSocketGroup(pairs, primary_pair) | Logical group of prevalidated male/female pairs, starts disconnected. Use jolt_socket_group; constructor does not validate pairs before reading them. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltSoftBodyAttachment | JoltSoftBodyAttachment(soft,handle,count) | Wrapper of an existing native attachment and vertex selection; constructor does not pin vertices. Use soft.create_attachment*; host body is borrowed. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltSoftBodyForce | JoltSoftBodyForce(soft) | Helper on a Soft Body, defaults position0, direction-Z, radius.3m, strength20N, impulse1N·s. Use jolt_soft_body_force(soft); helper methods trigger application. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltSoftBodyWind | JoltSoftBodyWind(soft) | Configuration on a live Soft Body, defaults +X, 5m/s, gust.3, turbulence.2, frequency.35Hz, drag1.2. Use jolt_soft_body_wind(soft) for the required initialization. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltVehicle | JoltVehicle(world, handle, chassis) | Wrapper of an existing native vehicle and borrowed chassis. Starts built=false, no wheels, inputs0. Use jolt_vehicle, add wheels and build. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltVehicleDifferentialSettings | JoltVehicleDifferentialSettings(left, right) | Stores left/right wheel indices and empty options, does not create a differential. Use jolt_vehicle_differential(left, right), then vehicle.add_differential. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltVehicleEngineSettings | JoltVehicleEngineSettings() | Empty options builder without native resources; jolt_vehicle_engine/transmission/settings. Vehicle factory applies defaults and validation. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltVehicleSettings | JoltVehicleSettings() | Empty options builder without native resources; jolt_vehicle_engine/transmission/settings. Vehicle factory applies defaults and validation. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltVehicleTransmissionSettings | JoltVehicleTransmissionSettings() | Empty options builder without native resources; jolt_vehicle_engine/transmission/settings. Vehicle factory applies defaults and validation. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |
| JoltVehicleWheelSettings | JoltVehicleWheelSettings(x, y, z) | Stores chassis-local XYZ m and empty options, does not create a wheel. Use jolt_vehicle_wheel(x, y, z), then vehicle.add_wheel. Use the named factory for ordinary creation; manual new does not run all its validation and registration. |