> For the complete documentation index, see [llms.txt](https://mindcodeinteractive.gitbook.io/easy-build-system-old/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mindcodeinteractive.gitbook.io/easy-build-system-old/integrations/playmaker.md).

# PlayMaker

## About Integration

{% hint style="warning" %}
If you encounter errors with integration, it is possible that a new update changed some things in the code and therefore is no longer compatible with the system integration.\
If this is the case, you can contact support to receive a hotfix quickly.
{% endhint %}

## Installation Guide

Before integrating **Easy Build System**, make sure you have correctly setup [PlayMaker](https://assetstore.unity.com/packages/tools/visual-scripting/playmaker-368) in your project. You can follow this tutorial for the first step:

{% embed url="<https://www.youtube.com/watch?v=Vx4TxvtqICE>" %}
You can watch the video in fullscreen and set the quality to maximum.
{% endembed %}

This video shows you how to import the integration for [PlayMaker](https://assetstore.unity.com/packages/tools/visual-scripting/playmaker-368) in just a few steps.

{% embed url="<https://www.youtube.com/watch?v=MT51Uh1Wl3k>" %}
You can watch the video in fullscreen and set the quality to maximum.
{% endembed %}

### Methods

Here the list of the methods that you can call with [PlayMaker](https://assetstore.unity.com/packages/tools/visual-scripting/playmaker-368):&#x20;

**ChangeMode(BuildingPlacer.BuildMode mode)** \
Changes the building mode based on the specified mode.

**SelectBuildingPart(int index)**\
Selects a building part using its index in the building catalog.

**SelectBuildingPart(string name)**\
Selects a building part using its name from the building catalog.

**RotatePreview()**\
Rotates the preview of the building currently being placed.

**Place()**\
Places the currently selected building part. Returns true if the placement is successful.

**PlaceInstantly(BuildingPart part, Vector3 position, Vector3 rotation, Vector3 scale, bool createGroup = true)** Instantly places a building part at the specified position, rotation, and scale.

**Editing()**\
Checks if a building part is currently being edited.

**DestroyInstantly(BuildingPart part)**\
Instantly destroys the specified building part.

**Destroy()**\
Destroys the currently selected building part.&#x20;

**CancelPreview()**\
Cancels the preview of the building being placed.

**CheckPlacingCondition()** \
Checks if the conditions for placing a building part.

**CheckEditingCondition()** \
Checks if the conditions for editing a building part.

**CheckDestroyCondition()** \
Checks if the conditions for destroying a building.

**SaveBuildings()**\
Forces the saving of buildings.

**LoadBuildings()**\
Forces the loading of buildings.
