# BP Random Assembly

BP\_RandomAssembly Is an actor which allow you to read a Random Assembly definition data asset and output static meshes (Instancers).

It can be found here:

<p align="center"><mark style="color:blue;"><strong>/Game/PCGRandomAssembly/Blueprints/Actor/BP_RandomAssembly</strong></mark></p>

As almost all settings of the tool are defined in the[ Random Assembly Definition](https://cgtoolbox.gitbook.io/cgtoolbox-docs/pcg-random-assemblies/random-assembly-definition) data asset, the actor has very few parameters:

<figure><img src="https://3339851461-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNuEJQQamuWymLVauXWDL%2Fuploads%2Foj1zc4PHSlQ5G1smHmCv%2Fimage.png?alt=media&#x26;token=26afe813-bf52-427b-80cb-b141de92d2d0" alt=""><figcaption></figcaption></figure>

***

![](https://3339851461-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNuEJQQamuWymLVauXWDL%2Fuploads%2FgdRxVTF8KQe7wPEsmMAI%2Fimage.png?alt=media\&token=180fe292-ae19-47bb-9048-2539cded9573)  Create a new empty [Random Assembly Definition](https://cgtoolbox.gitbook.io/cgtoolbox-docs/pcg-random-assemblies/random-assembly-definition).

![](https://3339851461-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNuEJQQamuWymLVauXWDL%2Fuploads%2Fs2NNaVlph5hGZxwHp7lU%2Fimage.png?alt=media\&token=93352ce6-ddfa-4db8-ae9c-e28e1092e67d)  Generate a new result from a new random seed.

![](https://3339851461-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNuEJQQamuWymLVauXWDL%2Fuploads%2Fl3orcTh6lNhdzzOoUvd1%2Fimage.png?alt=media\&token=d128e0aa-0fd0-4343-b5ca-a7086cdfa6cc)  Open the Random Assembly editor utility widget, to have debug infos and variant creation helper.

**Random Assembly Definition:** The [random assembly definition](https://cgtoolbox.gitbook.io/cgtoolbox-docs/pcg-random-assemblies/random-assembly-definition) data asset (PCG data asset + variants) to evaluate.

**Seed From Position:** If True, the random assembly will be regenerated each time the blueprint actor is moved. If False, the seed will be fixed, and can be changed manually or using the "Generate" button.

<figure><img src="https://3339851461-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNuEJQQamuWymLVauXWDL%2Fuploads%2FtDdU4jwbjW1w7ws715yj%2FSeedFromPositionFalse.gif?alt=media&#x26;token=61249cdf-ca69-4f85-8f40-67f614516b59" alt=""><figcaption><p>Seed from position: False</p></figcaption></figure>

<figure><img src="https://3339851461-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNuEJQQamuWymLVauXWDL%2Fuploads%2FRRaaEuGAsjtmvjIc4yCM%2FSeedFromPositionTrue.gif?alt=media&#x26;token=82e8da51-6241-49a5-89c4-a809e74825ef" alt=""><figcaption><p>Seed from position: True</p></figcaption></figure>

**Seed:** The random seed used by the random assembly PCG. This will be automatically updated if seed from position option if True.

**Self Pruning Factor:** If any variant as its self pruning option to True, this value will be used by the Self Pruning node as "Radius Similarity Factor".

**Direct Spawn Non Matching Variants:** If True, all the actors from the PCG data which don't match with any variant tags, will be spawned directly, before the variants evaluation. Meaning they will be available as collision data for all variants. If False, they will be spawned on the same time, after all variant evaluations.

**Debug Info:** If True, print out some debug info in the output log (tags not found, tags being processed etc.).

```log
LogPCG: [BP_RandomAssembly_C_2 - Print String_3]: [PCG_AssemblyVariantBPWrapper::Print String_3]: ---- Processing tag: Bench ----
LogPCG: [BP_RandomAssembly_C_2 - Print String_41]: [PCG_AssemblyVariantBPWrapper::Print String_41]: 4 Point(s) with current tag
LogPCG: [BP_RandomAssembly_C_2 - Print String_19]: [PCG_AssemblyVariantBPWrapper::Print String_19]: ---- End of tag processing. ----
LogPCG: [BP_RandomAssembly_C_2 - Print String_3]: [PCG_AssemblyVariantBPWrapper::Print String_3]: ---- Processing tag: Table ----
LogPCG: [BP_RandomAssembly_C_2 - Print String_41]: [PCG_AssemblyVariantBPWrapper::Print String_41]: 1 Point(s) with current tag
LogPCG: [BP_RandomAssembly_C_2 - Print String_19]: [PCG_AssemblyVariantBPWrapper::Print String_19]: ---- End of tag processing. ----
LogPCG: [BP_RandomAssembly_C_2 - Print String_3]: [PCG_AssemblyVariantBPWrapper::Print String_3]: ---- Processing tag: Plate ----
LogPCG: [BP_RandomAssembly_C_2 - Print String_41]: [PCG_AssemblyVariantBPWrapper::Print String_41]: 8 Point(s) with current tag
LogPCG: [BP_RandomAssembly_C_2 - Print String_19]: [PCG_AssemblyVariantBPWrapper::Print String_19]: ---- End of tag processing. ----
LogPCG: [BP_RandomAssembly_C_2 - Print String_3]: [PCG_AssemblyVariantBPWrapper::Print String_3]: ---- Processing tag: Bread ----
LogPCG: [BP_RandomAssembly_C_2 - Print String_41]: [PCG_AssemblyVariantBPWrapper::Print String_41]: 5 Point(s) with current tag
LogPCG: [BP_RandomAssembly_C_2 - Print String_19]: [PCG_AssemblyVariantBPWrapper::Print String_19]: ---- End of tag processing. ----
LogPCG: [BP_RandomAssembly_C_2 - Print String_3]: [PCG_AssemblyVariantBPWrapper::Print String_3]: ---- Processing tag: Pie ----
LogPCG: [BP_RandomAssembly_C_2 - Print String_41]: [PCG_AssemblyVariantBPWrapper::Print String_41]: 3 Point(s) with current tag
LogPCG: [BP_RandomAssembly_C_2 - Print String_19]: [PCG_AssemblyVariantBPWrapper::Print String_19]: ---- End of tag processing. ----
LogPCG: [BP_RandomAssembly_C_2 - Print String_3]: [PCG_AssemblyVariantBPWrapper::Print String_3]: ---- Processing tag: Drinks ----
LogPCG: [BP_RandomAssembly_C_2 - Print String_41]: [PCG_AssemblyVariantBPWrapper::Print String_41]: 10 Point(s) with current tag
LogPCG: [BP_RandomAssembly_C_2 - Print String_19]: [PCG_AssemblyVariantBPWrapper::Print String_19]: ---- End of tag processing. ----
```

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cgtoolbox.gitbook.io/cgtoolbox-docs/pcg-random-assemblies/bp-random-assembly.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
