# P3D

{% embed url="<https://youtu.be/0uw6ikyq23Y>" %}

<figure><img src="/files/dBRQrqPYVmFlXMAzCgx8" alt="Export P3D options"><figcaption></figcaption></figure>

For information about preparing a scene for export to P3D, visit the [P3D setup](/arma-3-object-builder/setup/p3d.md) page.

***

## Location

`File -> Export -> Arma 3 model (.p3d)`

***

## Properties

### Relative Paths

Export file paths as relative to the [Project Root](/arma-3-object-builder/general/add-on-preferences.md#project-root) by stripping the root from the file path. If the path does not start at the root, at least the drive letter is stripped.

### Selected Only

Only export selected LODs.

### Visible

Only export LOD objects that are visible in the 3D view.

{% hint style="info" %}
The option can't be turned off, and is only displayed as an indicator/reminder.
{% endhint %}

### Validate Meshes

Validate LOD meshes before export. Invalid data is removed from the objects (duplicate faces, duplicate edges, etc.)

### Apply Modifiers

Apply the modifiers on the LOD objects. The modifiers are applied before the sub-objects are merged into the parent LOD object, so they can have different modifiers.

### Apply Transforms

Apply world space transforms to LOD objects, otherwise the object coordinate system is exported.

### Custom Normals

Export custom vertex split normals.

### Sort Sections

Normally the faces of mesh are exported in the same order as they are found in the internal data structure of **Blender**, regardless of the material they have, which can cause section fragmentation in the output P3D file.

If the option is enabled, the faces are grouped together material by material, and exported in the order of the materials on the model.

{% hint style="info" %}
You can read further on my page dedicated to [sections](https://mrcmodding.gitbook.io/home/documents/sections).
{% endhint %}

{% hint style="warning" %}
Only turn off this option if you know what you are doing.

A P3D with fragmented (effectively duplicated) sections can have severe impact on performace.
{% endhint %}

### Generate Components

Generate `Component##` selections for the closed components in geometry type LODs.

{% hint style="info" %}
Components are only generated, if the LOD object has no component selections already defined manually.
{% endhint %}

### Collisions

How to handle LOD type collisions during export:

* Ignore: ignore the collision, and export all data blocks
* Skip: skip the export of conflicting LODs, only the first instance of a type is exported
* Fail: Fail the export process

### Validate LODs

Validate the compiled LOD objects for their set LOD type. Only the valid LODs will be exported.

### Warnings Are Errors

Treat LOD validation warnings as errors.

### Renumber Components

Renumber the `component##` selections used in geometry type LODs to ensure there are no missing or duplicated components.

### Force Lowercase

Export all file paths, and selection names as lowercase.

### Translate Selections

Translate english selection names to the czech counterparts according to the internal translation table.

***

## Process

1. LOD objects are selected from either the entire scene, or from the currently selected objects
2. modifiers are applied to the sub-objects of LODs (if applicable)
3. sub-objects and proxy objects are merged into their respective LOD objects
4. world space transformations are applied to LOD objects (if applicable)
5. intermediate P3D data structure is populated with the necessary data from the preprocessed LOD objects
6. data is written to the output file


---

# 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://mrcmodding.gitbook.io/arma-3-object-builder/export/p3d.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.
