Documentation
    Preparing search index...

    Interface JointBreakEvent<TJoint>

    A joint exceeded its break force or break torque and was destroyed (§28, plan P6-2).

    PhysicsWorld, not the solver. Break thresholds live at the @fourjs/physics layer: after each fixed step the world reads every breakable joint's reaction through SolverJointAccess, compares it against the thresholds, and destroys the joints that exceeded them — so the same threshold means the same thing on every adapter, including adapters whose solver has no breakage of its own. The event is queued with that step's contacts and dispatched afterwards (§6b, §39 step 9), on the JointBreakEvent.joint itself.

    The arm exists in PhysicsEvent rather than in a separate union so the world's queue stays one type; an adapter whose solver does break joints on its own may report it from drainEvents, and the world will retire the joint from its registry rather than destroy it a second time.

    Both are magnitudes over the step that broke the joint, converted from the solver's reaction impulses by dividing by the fixed delta: newtons for JointBreakEvent.force, newton-metres for JointBreakEvent.torque. At least one of them exceeded its threshold; the other is reported as measured, whatever it was.

    interface JointBreakEvent<TJoint = PhysicsJointHandle> {
        force: number;
        joint: TJoint;
        torque: number;
        type: "jointbreak";
    }

    Type Parameters

    Index
    force: number

    Magnitude of the reaction force over the breaking step, in newtons.

    joint: TJoint

    The joint that broke. It is already destroyed when this is dispatched.

    torque: number

    Magnitude of the reaction torque over the breaking step, in N·m.

    type: "jointbreak"

    Always "jointbreak" (§28).