user: Give a detailed overview of Data-Block Types: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

Data-blocks types with their icon.

For reference, here is a table of data-blocks types stored in blend-files.

Link
:   Library Linking, supports being linked into other blend-files.

Pack
:   File Packing, supports file contents being packed into the blend-file
    (**not** applicable for most data-blocks which have no file reference).

| Type | Link | Pack | Description |
| --- | --- | --- | --- |
| [Action](../animation/actions.html) | ✓ | — | Stores animation F-Curves. Used as data-block animation data, and the Nonlinear Animation editor. |
| [Armature](../animation/armatures/introduction.html) | ✓ | — | Skeleton used to deform meshes. Used as data of armature objects, and by the Armature Modifier. |
| [Brush](../sculpt_paint/brush/index.html) | ✓ | — | Used as brush assets in sculpt and paint modes. |
| [Camera](../render/cameras.html) | ✓ | — | Used as data by camera objects. |
| [Cache File](../modeling/modifiers/modify/mesh_sequence_cache.html) | ✓ | — | Used by Mesh Cache modifiers. |
| [Curve](../modeling/curves/introduction.html) | ✓ | — | Used as data by curve, font & surface objects. |
| [Font](../modeling/texts/introduction.html) | ✓ | ✓ | References font files. Used by curve object-data of text objects. |
| [Grease Pencil](../grease_pencil/introduction.html) | ✓ | — | 2D/3D sketch data used by Grease Pencil objects. Used as overlay *helper* info, by the 3D Viewport, Image, Sequencer & Movie Clip editors. |
| [Collection](../scene_layout/collections/introduction.html) | ✓ | — | Group and organize objects in scenes. Used to instance objects, and in library linking. |
| [Image](../editors/image/introduction.html) | ✓ | ✓ | Image files. Used by shader nodes and textures. |
| [Keys (Shape Keys)](../animation/shape_keys/introduction.html) | ✗ | — | Geometry shape storage, which can be animated. Used by mesh, curve, and lattice objects. |
| [Light](../render/lights/light_object.html) | ✓ | — | Used as object data by light objects. |
| [Library](linked_libraries/index.html) | ✗ | ✓ | References to an external blend-file. Access from the Outliner’s *Blender File* view. |
| [Line Style](../render/freestyle/introduction.html) | ✓ | — | Used by the Freestyle renderer. |
| [Lattice](../animation/lattice.html) | ✓ | — | Grid based lattice deformation. Used as data of lattice objects, and by the Lattice Modifier. |
| [Mask](../movie_clip/masking/introduction.html) | ✓ | — | 2D animated mask curves. Used by compositing nodes & sequencer strip. |
| [Material](../render/materials/introduction.html) | ✓ | — | Set shading and texturing render properties. Used by objects, meshes & curves. |
| [Metaball](../modeling/metas/introduction.html) | ✓ | — | An isosurface in 3D space. Used as data of metaball objects. |
| [Mesh](../modeling/meshes/introduction.html) | ✓ | — | Geometry made of vertices/edges/faces. Used as data of mesh objects. |
| [Movie Clip](../editors/clip/introduction.html) | ✓ | ✗ | Reference to an image sequence or video file. Used in the *Movie Clip* editor. |
| [Node Tree](../render/shader_nodes/groups.html) | ✓ | — | Groups of re-usable nodes. Used in the node editors. |
| [Object](../scene_layout/object/introduction.html) | ✓ | — | An entity in the scene with location, scale, rotation. Used by scenes & collections. |
| [Paint Curve](../sculpt_paint/brush/stroke.html) | ✓ | — | Stores a paint or sculpt stroke. Access from the paint tools. |
| [Palette](../sculpt_paint/index.html) | ✓ | — | Store color presets. Access from the paint tools. |
| [Particle](../physics/particles/introduction.html) | ✓ | — | Particle settings. Used by particle systems. |
| [Light Probe](../render/eevee/light_probes/index.html) | ✓ | — | Help achieve complex real-time lighting in EEVEE. |
| [Scene](../scene_layout/scene/introduction.html) | ✓ | — | Primary store of all data displayed and animated. Used as top-level storage for objects & animation. |
| [Sounds](../render/output/audio/speaker.html) | ✓ | ✓ | Reference to sound files. Used as data of speaker objects. |
| [Speaker](../render/output/audio/speaker.html) | ✓ | — | Sound sources for a 3D scene. Used as data of speaker object. |
| [Text](../editors/text_editor.html) | ✓ | ✗ | Text data. Used by Python scripts and OSL shaders. |
| [Texture](../render/materials/legacy_textures/introduction.html) | ✓ | — | 2D/3D textures. Used by brushes and modifiers. |
| [Window Manager](../interface/window_system/introduction.html) | ✗ | — | The overarching manager for all of Blender’s user interface. Includes Workspaces, notification system, operators, and keymaps. |
| [World](../render/lights/world.html) | ✓ | — | Define global render environment settings. |
| [Workspace](../interface/window_system/workspaces.html) | ✗ | — | UI layout. Used by each window, which has its own workspace. |