# Block Structures

A function block consists of several elements:

1. Header
2. Sockets
3. Controls
4. Unique Name

<figure><img src="https://63608322-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbH8gla5D8g5pQAK8IzR8%2Fuploads%2Fgit-blob-f14a99d57893bd90f7629282812f18cc60825125%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

## Header <a href="#header" id="header"></a>

Headers can be modified by double-clicking on and setting a custom name.

<figure><img src="https://63608322-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbH8gla5D8g5pQAK8IzR8%2Fuploads%2Fgit-blob-63f94be59b656d92a13f2fcf7ab6f1041a7752d5%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

## Tool Tips <a href="#tool-tips" id="tool-tips"></a>

Tool-tips are shown when blocks are hovered on with mouse and display information on inner mechanics of a block.

<figure><img src="https://63608322-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbH8gla5D8g5pQAK8IzR8%2Fuploads%2Fgit-blob-345683c119cdedf9d6bdbbb5706273beb48cd64f%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Same rules also apply to Controls. Hovering over [Controls](#Controls) may show additional information:

<figure><img src="https://63608322-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbH8gla5D8g5pQAK8IzR8%2Fuploads%2Fgit-blob-7aefcde93546cee5aa6146c06e916af2ae200ae4%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

## Controls <a href="#controls" id="controls"></a>

Controls are custom buttons, lists, or any kind of interactable objects that are shown inside a function block. These widgets can alter the functionality of each function block.

<figure><img src="https://63608322-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbH8gla5D8g5pQAK8IzR8%2Fuploads%2Fgit-blob-87d8a89691b290f2e0f3baf3c91924c0f87111af%2Fimage.png?alt=media" alt=""><figcaption><p>Two same blocks with different widget configurations</p></figcaption></figure>

## Inputs Sockets <a href="#inputs-sockets" id="inputs-sockets"></a>

Data is sent to blocks through input sockets. There are usually multiple sockets in a single block.

Robust data transfer is guaranteed when sockets with same color or category are connected.

<figure><img src="https://63608322-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbH8gla5D8g5pQAK8IzR8%2Fuploads%2Fgit-blob-667a1aadcaea9d949507296b2e20eacb647b9899%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202023-06-29%20235803.png?alt=media" alt=""><figcaption></figcaption></figure>

## Output Sockets <a href="#output-sockets" id="output-sockets"></a>

Results get sent away from outputs and transferred to other blocks by connecting to an input socket.

<figure><img src="https://63608322-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbH8gla5D8g5pQAK8IzR8%2Fuploads%2Fgit-blob-e451b87e7d525f1af79b7cab06836eb0127bddc5%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202023-06-29%20235854.png?alt=media" alt=""><figcaption></figcaption></figure>
