# Global Function References

These functions are designed to help you easily retrieve the information you need from outside any of the classes. For example, you can use them to query specific types, such as actions, if you need to access a default action or similar functionality.

## Functions

* `GetUltimateBuildingDeveloperSettings()`:\
  Returns the `UUBF_DeveloperSettings` for the Ultimate Building System.
* `GetSocketName()`:\
  Returns the default socket name for the system.
* `QueryFirstBuildableActionByTag()`:\
  Retrieves the first buildable action that matches the specified `TagQuery`.
* `QueryBuildableActionsByTag()`:\
  Finds and returns all buildable actions that match the specified `TagQuery`.
* `QueryFirstBuildableByTag()`:\
  Retrieves the first buildable that matches the `TagQuery` from a list of buildables.
* `QueryBuildablesByTag()`:\
  Finds and returns all buildables that match the `TagQuery` from a list of buildables.
* `QueryFirstBuildableSocketByTag()`:\
  Retrieves the first buildable socket that matches the `TagQuery` for a given buildable.
* `QueryBuildableSocketsByTag()`:\
  Finds and returns all buildable sockets that match the `TagQuery` for a given buildable.
* `QueryFirstBuildableDefinitionByTag()`:\
  Retrieves the first buildable definition that matches the `TagQuery` from a list of buildable definitions.
* `QueryBuildableDefinitionsByTag()`:\
  Finds and returns all buildable definitions that match the `TagQuery` from a list of buildable definitions.

## Query Example

Using a query function is pretty simple. The illustration below shows how you can get the first found attachable on the `this` buildable with the foundation type tag.

<figure><img src="https://2172137675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIDY48Kh4vjaW2sp9MS3a%2Fuploads%2FfKyvQOQxBkhOkDCjpNnh%2FQueryFunction.gif?alt=media&#x26;token=e4f05804-60c5-480e-bffa-87cd11e39dd8" alt=""><figcaption><p>Querying the first found Buildable with a Foundation Type Tag which is attached to this buildable.</p></figcaption></figure>

{% hint style="info" %}
Note: You can decide to use the array versions of the Query functions to get all the objects which matches the tag query as well.
{% endhint %}

{% hint style="info" %}
Note: Query functions are looking for owned gameplay tags. These tags are defined in the buildable definition. So anywhere you see "owned tags" is the tags that the query functions will look for.
{% endhint %}

{% hint style="warning" %}
Warning: Tag Qualifiers added to a buildable definition will add extra tags to buildables if they pass their qualification condition. This means you might get Buildables which shares the same tag type, such as a pillar that has a Foundation Tag Qualifier Condition might appear on a `Structure.Type.Foundation` Query Buildable Search as it would qualify as a foundation if its placed on a foundation on in the ground.
{% endhint %}
