# ToolSettings(bpy_struct)

base class — `bpy_struct`

class `bpy.types.``ToolSettings`(bpy_struct)
  `annotation_stroke_placement_image_editor`
    - `CURSOR` 3D Cursor, Draw stroke at 3D cursor location.
    - `VIEW` View, Stick stroke to the view .
    - `SURFACE` Surface, Stick stroke to surfaces.

    Type: | enum in [‘CURSOR’, ‘VIEW’, ‘SURFACE’], default ‘VIEW’

  `annotation_stroke_placement_sequencer_preview`
    - `CURSOR` 3D Cursor, Draw stroke at 3D cursor location.
    - `VIEW` View, Stick stroke to the view .
    - `SURFACE` Surface, Stick stroke to surfaces.

    Type: | enum in [‘CURSOR’, ‘VIEW’, ‘SURFACE’], default ‘VIEW’

  `annotation_stroke_placement_view2d`
    - `CURSOR` 3D Cursor, Draw stroke at 3D cursor location.
    - `VIEW` View, Stick stroke to the view .
    - `SURFACE` Surface, Stick stroke to surfaces.

    Type: | enum in [‘CURSOR’, ‘VIEW’, ‘SURFACE’], default ‘VIEW’

  `annotation_stroke_placement_view3d`

    How annotation strokes are orientated in 3D space

    - `CURSOR` 3D Cursor, Draw stroke at 3D cursor location.
    - `VIEW` View, Stick stroke to the view .
    - `SURFACE` Surface, Stick stroke to surfaces.

    Type: | enum in [‘CURSOR’, ‘VIEW’, ‘SURFACE’], default ‘CURSOR’

  `annotation_thickness`

    Thickness of annotation strokes

    Type: | int in [1, 10], default 3

  `auto_keying_mode`

    Mode of automatic keyframe insertion for Objects and Bones

    Type: | enum in [‘ADD_REPLACE_KEYS’, ‘REPLACE_KEYS’], default ‘ADD_REPLACE_KEYS’

  `curve_paint_settings`

    Type: | `CurvePaintSettings`, (readonly, never None)

  `custom_bevel_profile_preset`

    Used for defining a profile’s path

    Type: | `CurveProfile`, (readonly)

  `double_threshold`

    Threshold distance for Auto Merge

    Type: | float in [0, 1], default 0.001

  `gpencil_interpolate`

    Settings for Grease Pencil Interpolation tools

    Type: | `GPencilInterpolateSettings`, (readonly)

  `gpencil_paint`

    Type: | `GpPaint`, (readonly)

  `gpencil_sculpt`

    Settings for stroke sculpting tools and brushes

    Type: | `GPencilSculptSettings`, (readonly)

  `gpencil_selectmode_edit`
    - `POINT` Point, Select only points.
    - `STROKE` Stroke, Select all stroke points.
    - `SEGMENT` Segment, Select all stroke points between other strokes.

    Type: | enum in [‘POINT’, ‘STROKE’, ‘SEGMENT’], default ‘POINT’

  `gpencil_stroke_placement_view3d`
    - `ORIGIN` Origin, Draw stroke at Object origin.
    - `CURSOR` 3D Cursor, Draw stroke at 3D cursor location.
    - `SURFACE` Surface, Stick stroke to surfaces.
    - `STROKE` Stroke, Stick stroke to other strokes.

    Type: | enum in [‘ORIGIN’, ‘CURSOR’, ‘SURFACE’, ‘STROKE’], default ‘ORIGIN’

  `gpencil_stroke_snap_mode`
    - `NONE` All points, Snap to all points.
    - `ENDS` End points, Snap to first and last points and interpolate.
    - `FIRST` First point, Snap to first point.

    Type: | enum in [‘NONE’, ‘ENDS’, ‘FIRST’], default ‘NONE’

  `image_paint`

    Type: | `ImagePaint`, (readonly)

  `keyframe_type`

    Type of keyframes to create when inserting keyframes

    - `KEYFRAME` Keyframe, Normal keyframe - e.g. for key poses.
    - `BREAKDOWN` Breakdown, A breakdown pose - e.g. for transitions between key poses.
    - `MOVING_HOLD` Moving Hold, A keyframe that is part of a moving hold.
    - `EXTREME` Extreme, An ‘extreme’ pose, or some other purpose as needed.
    - `JITTER` Jitter, A filler or baked keyframe for keying on ones, or some other purpose as needed.

    Type: | enum in [‘KEYFRAME’, ‘BREAKDOWN’, ‘MOVING_HOLD’, ‘EXTREME’, ‘JITTER’], default ‘KEYFRAME’

  `lock_markers`

    Prevent marker editing

    Type: | boolean, default False

  `lock_object_mode`

    Restrict select to the current mode

    Type: | boolean, default True

  `mesh_select_mode`

    Which mesh elements selection works on

    Type: | boolean array of 3 items, default (True, True, True)

  `normal_vector`

    Normal Vector used to copy, add or multiply

    Type: | float array of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

  `particle_edit`

    Type: | `ParticleEdit`, (readonly)

  `proportional_edit_falloff`

    Falloff type for proportional editing mode

    - `SMOOTH` Smooth, Smooth falloff.
    - `SPHERE` Sphere, Spherical falloff.
    - `ROOT` Root, Root falloff.
    - `INVERSE_SQUARE` Inverse Square, Inverse Square falloff.
    - `SHARP` Sharp, Sharp falloff.
    - `LINEAR` Linear, Linear falloff.
    - `CONSTANT` Constant, Constant falloff.
    - `RANDOM` Random, Random falloff.

    Type: | enum in [‘SMOOTH’, ‘SPHERE’, ‘ROOT’, ‘INVERSE_SQUARE’, ‘SHARP’, ‘LINEAR’, ‘CONSTANT’, ‘RANDOM’], default ‘SMOOTH’

  `proportional_size`

    Display size for proportional editing circle

    Type: | float in [1e-05, 5000], default 1.0

  `sculpt`

    Type: | `Sculpt`, (readonly)

  `show_uv_local_view`

    Display only faces with the currently displayed image assigned

    Type: | boolean, default False

  `snap_elements`

    Type of element to snap to

    - `INCREMENT` Increment, Snap to increments of grid.
    - `VERTEX` Vertex, Snap to vertices.
    - `EDGE` Edge, Snap to edges.
    - `FACE` Face, Snap to faces.
    - `VOLUME` Volume, Snap to volume.
    - `EDGE_MIDPOINT` Edge Center, Snap to the middle of edges.
    - `EDGE_PERPENDICULAR` Edge Perpendicular, Snap to the nearest point on an edge.

    Type: | enum set in {‘INCREMENT’, ‘VERTEX’, ‘EDGE’, ‘FACE’, ‘VOLUME’, ‘EDGE_MIDPOINT’, ‘EDGE_PERPENDICULAR’}, default {‘INCREMENT’}

  `snap_node_element`

    Type of element to snap to

    - `GRID` Grid, Snap to grid.
    - `NODE_X` Node X, Snap to left/right node border.
    - `NODE_Y` Node Y, Snap to top/bottom node border.
    - `NODE_XY` Node X / Y, Snap to any node border.

    Type: | enum in [‘GRID’, ‘NODE_X’, ‘NODE_Y’, ‘NODE_XY’], default ‘GRID’

  `snap_target`

    Which part to snap onto the target

    - `CLOSEST` Closest, Snap closest point onto target.
    - `CENTER` Center, Snap transformation center onto target.
    - `MEDIAN` Median, Snap median onto target.
    - `ACTIVE` Active, Snap active onto target.

    Type: | enum in [‘CLOSEST’, ‘CENTER’, ‘MEDIAN’, ‘ACTIVE’], default ‘CLOSEST’

  `snap_uv_element`

    Type of element to snap to

    - `INCREMENT` Increment, Snap to increments of grid.
    - `VERTEX` Vertex, Snap to vertices.

    Type: | enum in [‘INCREMENT’, ‘VERTEX’], default ‘INCREMENT’

  `statvis`

    Type: | `MeshStatVis`, (readonly, never None)

  `transform_pivot_point`

    Pivot center for rotation/scaling

    - `BOUNDING_BOX_CENTER` Bounding Box Center, Pivot around bounding box center of selected object(s).
    - `CURSOR` 3D Cursor, Pivot around the 3D cursor.
    - `INDIVIDUAL_ORIGINS` Individual Origins, Pivot around each object’s own origin.
    - `MEDIAN_POINT` Median Point, Pivot around the median point of selected objects.
    - `ACTIVE_ELEMENT` Active Element, Pivot around active object.

    Type: | enum in [‘BOUNDING_BOX_CENTER’, ‘CURSOR’, ‘INDIVIDUAL_ORIGINS’, ‘MEDIAN_POINT’, ‘ACTIVE_ELEMENT’], default ‘MEDIAN_POINT’

  `unified_paint_settings`

    Type: | `UnifiedPaintSettings`, (readonly, never None)

  `use_auto_normalize`

    Ensure all bone-deforming vertex groups add up to 1.0 while weight painting

    Type: | boolean, default False

  `use_edge_path_live_unwrap`

    Changing edges seam re-calculates UV unwrap

    Type: | boolean, default False

  `use_gpencil_draw_additive`

    When creating new frames, the strokes from the previous/active frame are included as the basis for the new one

    Type: | boolean, default False

  `use_gpencil_draw_onback`

    When draw new strokes, the new stroke is drawn below of all strokes in the layer

    Type: | boolean, default False

  `use_gpencil_select_mask_point`

    Only sculpt selected stroke points

    Type: | boolean, default False

  `use_gpencil_select_mask_segment`

    Only sculpt selected stroke points between other strokes

    Type: | boolean, default False

  `use_gpencil_select_mask_stroke`

    Only sculpt selected stroke

    Type: | boolean, default False

  `use_gpencil_stroke_endpoints`

    Only use the first and last parts of the stroke for snapping

    Type: | boolean, default False

  `use_gpencil_thumbnail_list`

    Show compact list of color instead of thumbnails

    Type: | boolean, default False

  `use_gpencil_weight_data_add`

    When creating new strokes, the weight data is added according to the current vertex group and weight, if no vertex group selected, weight is not added

    Type: | boolean, default False

  `use_keyframe_cycle_aware`

    For channels with cyclic extrapolation, keyframe insertion is automatically remapped inside the cycle time range, and keeps ends in sync

    Type: | boolean, default False

  `use_keyframe_insert_auto`

    Automatic keyframe insertion for Objects and Bones

    Type: | boolean, default True

  `use_keyframe_insert_keyingset`

    Automatic keyframe insertion using active Keying Set only

    Type: | boolean, default False

  `use_mesh_automerge`

    Automatically merge vertices moved to the same location

    Type: | boolean, default False

  `use_mesh_automerge_and_split`

    Automatically split edges and faces

    Type: | boolean, default False

  `use_multipaint`

    Paint across the weights of all selected bones, maintaining their relative influence

    Type: | boolean, default False

  `use_proportional_action`

    Proportional editing in action editor

    Type: | boolean, default False

  `use_proportional_connected`

    Proportional Editing using connected geometry only

    Type: | boolean, default False

  `use_proportional_edit`

    Proportional edit mode

    Type: | boolean, default False

  `use_proportional_edit_mask`

    Proportional editing mask mode

    Type: | boolean, default False

  `use_proportional_edit_objects`

    Proportional editing object mode

    Type: | boolean, default False

  `use_proportional_fcurve`

    Proportional editing in FCurve editor

    Type: | boolean, default False

  `use_proportional_projected`

    Proportional Editing using screen space locations

    Type: | boolean, default False

  `use_record_with_nla`

    Add a new NLA Track + Strip for every loop/pass made over the animation to allow non-destructive tweaking

    Type: | boolean, default False

  `use_snap`

    Snap during transform

    Type: | boolean, default False

  `use_snap_align_rotation`

    Align rotation with the snapping target

    Type: | boolean, default False

  `use_snap_backface_culling`

    Exclude back facing geometry from snapping

    Type: | boolean, default False

  `use_snap_grid_absolute`

    Absolute grid alignment while translating (based on the pivot center)

    Type: | boolean, default False

  `use_snap_peel_object`

    Consider objects as whole when finding volume center

    Type: | boolean, default False

  `use_snap_project`

    Project individual elements on the surface of other objects

    Type: | boolean, default False

  `use_snap_rotate`

    Rotate is affected by the snapping settings

    Type: | boolean, default False

  `use_snap_scale`

    Scale is affected by snapping settings

    Type: | boolean, default False

  `use_snap_self`

    Snap onto itself (Edit Mode Only)

    Type: | boolean, default False

  `use_snap_translate`

    Move is affected by snapping settings

    Type: | boolean, default True

  `use_transform_data_origin`

    Manipulate object data

    Type: | boolean, default False

  `use_transform_pivot_point_align`

    Manipulate origins (object, pose and weight paint mode only)

    Type: | boolean, default False

  `use_transform_skip_children`

    Don’t transform children

    Type: | boolean, default False

  `use_uv_select_sync`

    Keep UV and edit mode mesh selection in sync

    Type: | boolean, default False

  `uv_relax_method`

    Algorithm used for UV relaxation

    - `LAPLACIAN` Laplacian, Use Laplacian method for relaxation.
    - `HC` HC, Use HC method for relaxation.

    Type: | enum in [‘LAPLACIAN’, ‘HC’], default ‘LAPLACIAN’

  `uv_sculpt`

    Type: | `UvSculpt`, (readonly)

  `uv_sculpt_all_islands`

    Brush operates on all islands

    Type: | boolean, default False

  `uv_sculpt_lock_borders`

    Disable editing of boundary edges

    Type: | boolean, default False

  `uv_select_mode`

    UV selection and display mode

    - `VERTEX` Vertex, Vertex selection mode.
    - `EDGE` Edge, Edge selection mode.
    - `FACE` Face, Face selection mode.
    - `ISLAND` Island, Island selection mode.

    Type: | enum in [‘VERTEX’, ‘EDGE’, ‘FACE’, ‘ISLAND’], default ‘VERTEX’

  `vertex_group_subset`

    Filter Vertex groups for Display

    - `ALL` All, All Vertex Groups.
    - `BONE_DEFORM` Deform, Vertex Groups assigned to Deform Bones.
    - `OTHER_DEFORM` Other, Vertex Groups assigned to non Deform Bones.

    Type: | enum in [‘ALL’, ‘BONE_DEFORM’, ‘OTHER_DEFORM’], default ‘ALL’

  `vertex_group_user`

    Display unweighted vertices

    - `NONE` None.
    - `ACTIVE` Active, Show vertices with no weights in the active group.
    - `ALL` All, Show vertices with no weights in any group.

    Type: | enum in [‘NONE’, ‘ACTIVE’, ‘ALL’], default ‘NONE’

  `vertex_group_weight`

    Weight to assign in vertex groups

    Type: | float in [0, 1], default 1.0

  `vertex_paint`

    Type: | `VertexPaint`, (readonly)

  `weight_paint`

    Type: | `VertexPaint`, (readonly)

  `workspace_tool_type`

    Action when dragging in the viewport

    Type: | enum in [‘DEFAULT’, ‘FALLBACK’], default ‘FALLBACK’

  classmethod `bl_rna_get_subclass`(id, default=None)

    Parameters: | id (string) – The RNA type identifier.
    Returns: | The RNA type or default when not found.
    Return type: | `bpy.types.Struct` subclass

  classmethod `bl_rna_get_subclass_py`(id, default=None)

    Parameters: | id (string) – The RNA type identifier.
    Returns: | The class or default when not found.
    Return type: | type

Inherited Properties

`bpy_struct.id_data` |

Inherited Functions

`bpy_struct.as_pointer` `bpy_struct.driver_add` `bpy_struct.driver_remove` `bpy_struct.get` `bpy_struct.is_property_hidden` `bpy_struct.is_property_overridable_library` `bpy_struct.is_property_readonly` `bpy_struct.is_property_set` `bpy_struct.items` `bpy_struct.keyframe_delete` | `bpy_struct.keyframe_insert` `bpy_struct.keys` `bpy_struct.path_from_id` `bpy_struct.path_resolve` `bpy_struct.pop` `bpy_struct.property_overridable_library_set` `bpy_struct.property_unset` `bpy_struct.type_recast` `bpy_struct.values`

References

`Context.tool_settings` | `Scene.tool_settings`