user: How do I use SoftBodySettings(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant: # SoftBodySettings(bpy_struct)

base class — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct")

*class* bpy.types.SoftBodySettings(*bpy_struct*)
:   Soft body simulation settings for an object

    aero
    :   Make edges ‘sail’

        Type:
        :   int in [0, 30000], default 0

    aerodynamics_type
    :   Method of calculating aerodynamic interaction

        - `SIMPLE`
          Simple – Edges receive a drag force from surrounding media.
        - `LIFT_FORCE`
          Lift Force – Edges receive a lift force when passing through surrounding media.

        Type:
        :   enum in [`'SIMPLE'`, `'LIFT_FORCE'`], default `'SIMPLE'`

    ball_damp
    :   Blending to inelastic collision

        Type:
        :   float in [0.001, 1], default 0.0

    ball_size
    :   Absolute ball size or factor if not manually adjusted

        Type:
        :   float in [-10, 10], default 0.0

    ball_stiff
    :   Ball inflating pressure

        Type:
        :   float in [0.001, 100], default 0.0

    bend
    :   Bending Stiffness

        Type:
        :   float in [0, 10], default 0.0

    choke
    :   ‘Viscosity’ inside collision target

        Type:
        :   int in [0, 100], default 0

    collision_collection
    :   Limit colliders to this collection

        Type:
        :   [`Collection`](bpy.types.Collection.html#bpy.types.Collection "bpy.types.Collection")

    collision_type
    :   Choose Collision Type

        - `MANUAL`
          Manual – Manual adjust.
        - `AVERAGE`
          Average – Average Spring length \* Ball Size.
        - `MINIMAL`
          Minimal – Minimal Spring length \* Ball Size.
        - `MAXIMAL`
          Maximal – Maximal Spring length \* Ball Size.
        - `MINMAX`
          AvMinMax – (Min+Max)/2 \* Ball Size.

        Type:
        :   enum in [`'MANUAL'`, `'AVERAGE'`, `'MINIMAL'`, `'MAXIMAL'`, `'MINMAX'`], default `'MANUAL'`

    damping
    :   Edge spring friction

        Type:
        :   float in [0, 50], default 0.0

    effector_weights
    :   Type:
        :   [`EffectorWeights`](bpy.types.EffectorWeights.html#bpy.types.EffectorWeights "bpy.types.EffectorWeights"), (readonly)

    error_threshold
    :   The Runge-Kutta ODE solver error limit, low value gives more precision, high values speed

        Type:
        :   float in [0.001, 10], default 0.0

    friction
    :   General media friction for point movements

        Type:
        :   float in [0, 50], default 0.0

    fuzzy
    :   Fuzziness while on collision, high values make collision handling faster but less stable

        Type:
        :   int in [1, 100], default 0

    goal_default
    :   Default Goal (vertex target position) value

        Type:
        :   float in [0, 1], default 0.0

    goal_friction
    :   Goal (vertex target position) friction

        Type:
        :   float in [0, 50], default 0.0

    goal_max
    :   Goal maximum, vertex weights are scaled to match this range

        Type:
        :   float in [0, 1], default 0.0

    goal_min
    :   Goal minimum, vertex weights are scaled to match this range

        Type:
        :   float in [0, 1], default 0.0

    goal_spring
    :   Goal (vertex target position) spring stiffness

        Type:
        :   float in [0, 0.999], default 0.0

    gravity
    :   Apply gravitation to point movement

        Type:
        :   float in [-10, 10], default 0.0

    location_mass_center
    :   Location of center of mass

        Type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

    mass
    :   General Mass value

        Type:
        :   float in [0, 50000], default 0.0

    plastic
    :   Permanent deform

        Type:
        :   int in [0, 100], default 0

    pull
    :   Edge spring stiffness when longer than rest length

        Type:
        :   float in [0, 0.999], default 0.0

    push
    :   Edge spring stiffness when shorter than rest length

        Type:
        :   float in [0, 0.999], default 0.0

    rotation_estimate
    :   Estimated rotation matrix

        Type:
        :   [`mathutils.Matrix`](mathutils.html#mathutils.Matrix "mathutils.Matrix") of 3 \* 3 items in [-inf, inf], default ((0.0, 0.0, 0.0), (0.0, 0.0, 0.0), (0.0, 0.0, 0.0))

    scale_estimate
    :   Estimated scale matrix

        Type:
        :   [`mathutils.Matrix`](mathutils.html#mathutils.Matrix "mathutils.Matrix") of 3 \* 3 items in [-inf, inf], default ((0.0, 0.0, 0.0), (0.0, 0.0, 0.0), (0.0, 0.0, 0.0))

    shear
    :   Shear Stiffness

        Type:
        :   float in [0, 1], default 0.0

    speed
    :   Tweak timing for physics to control frequency and speed

        Type:
        :   float in [0.01, 100], default 0.0

    spring_length
    :   Alter spring length to shrink/blow up (unit %) 0 to disable

        Type:
        :   int in [0, 200], default 0

    step_max
    :   Maximal # solver steps/frame

        Type:
        :   int in [0, 30000], default 0

    step_min
    :   Minimal # solver steps/frame

        Type:
        :   int in [0, 30000], default 0

    use_auto_step
    :   Use velocities for automagic step sizes

        Type:
        :   boolean, default False

    use_diagnose
    :   Turn on SB diagnose console prints

        Type:
        :   boolean, default False

    use_edge_collision
    :   Edges collide too

        Type:
        :   boolean, default False

    use_edges
    :   Use Edges as springs

        Type:
        :   boolean, default False

    use_estimate_matrix
    :   Store the estimated transforms in the soft body settings

        Type:
        :   boolean, default False

    use_face_collision
    :   Faces collide too, can be very slow

        Type:
        :   boolean, default False

    use_goal
    :   Define forces for vertices to stick to animated position

        Type:
        :   boolean, default False

    use_self_collision
    :   Enable naive vertex ball self collision

        Type:
        :   boolean, default False

    use_stiff_quads
    :   Add diagonal springs on 4-gons

        Type:
        :   boolean, default False

    vertex_group_goal
    :   Control point weight values

        Type:
        :   string, default “”, (never None)

    vertex_group_mass
    :   Control point mass values

        Type:
        :   string, default “”, (never None)

    vertex_group_spring
    :   Control point spring strength values

        Type:
        :   string, default “”, (never None)

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type