> For the complete documentation index, see [llms.txt](https://hiveminddocs.gitbook.io/hivemind/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hiveminddocs.gitbook.io/hivemind/code-systems/ultimate-building-system-framework-ubs/ultimate-building-system-component-ubs.md).

# Ultimate Building System Component (UBS)

The `Building System Component` manages everything related to the placement of buildables. It should be added to the player pawn to enable the ability to place buildables in the game.

<figure><img src="/files/8bw0iV0lZf7dlG9zcSLq" alt=""><figcaption><p>UBS Component's Detail Panel</p></figcaption></figure>

{% hint style="info" %}
You can change the Min Max values of the Proxy Location Offset values by simply changing the Min/Max values on the UBS Components Detail Panel.
{% endhint %}

***

## Properties

* `DebugTraceType`:\
  Determines the type of debug trace to use.
* `ProxyLocationOffset`:\
  A vector that sets the offset for the proxy location.
* MinProxyLocationOffset:\
  Defines the minimum vector offset for proxy placement.
* MaxProxyLocationOffset:\
  Defines the maximum vector offset for proxy placement.

***

## Functions

* `IsBuildModeEnabled()`:\
  Returns whether build mode is currently enabled.
* `GetClosestMatchingProxySocket()`:\
  Finds the closest matching proxy socket for a given buildable actor and socket.
* `GetProxyActor()`:\
  Returns the current `ProxyActor` being used.
* `PerformTrace()`:\
  Executes a trace and outputs the result.
* `SearchForBuildable()`:\
  Searches for a buildable object within a specific radius of a given location.
* `YawProxyBy()`:\
  Rotates the proxy by a specified yaw value.
* `PitchProxyBy()`:\
  Rotates the proxy by a specified pitch value.
* `TryEnableBuildMode()`:\
  Attempts to enable build mode with the provided buildable definition and proxy class.
* `TryDisableBuildMode()`:\
  Disables build mode.
* `TryBuild()`:\
  Attempts to build the object and optionally disables build mode on success.
* `MoveToNextConnection()`:\
  Moves the proxy to the next available connection point.
* `AddVectorOffset()`:\
  Adds an offset to the vector, with an option to ignore minimum and maximum constraints.
* `AddUpOffset()`:\
  Adds an upward offset to the proxy.
* `AddForwardOffset()`:\
  Adds a forward offset to the proxy.
* `AddRightOffset()`:\
  Adds a rightward offset to the proxy.
* `OnBuildModeStateChange()`:\
  Delegate/Event that triggers when the build mode state changes.
