> For the complete documentation index, see [llms.txt](https://plugin-everything.gitbook.io/plugin-everything-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://plugin-everything.gitbook.io/plugin-everything-docs/controls/path-source.md).

# Path Source

The `Path Source` group controls where Thicc Pro gets its path data from. Thicc Pro automatically detects the layer type and adapts the available UI controls, so the interface will appear slightly differently depending:

{% columns %}
{% column %}

<div data-with-frame="true"><figure><img src="/files/9BcMKfo8f0uca4gPY8A6" alt=""><figcaption><p><code>Path Source</code> UI when applied to an AV layer</p></figcaption></figure></div>
{% endcolumn %}

{% column %}

<div data-with-frame="true"><figure><img src="/files/wEBHj7mnkozQRXjRnwBo" alt="" width="340"><figcaption><p><code>Path Source</code> UI when applied to a text or shape layer</p></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

{% hint style="info" %}
In most cases you'll apply Thicc Pro to a solid layer and by default, `Use All Masks` is checked. If you prefer to use specific masks, you can disable this select an individual mask.&#x20;
{% endhint %}

#### Layer Type Path Source Defaults

<table data-first-column-sticky><thead><tr><th width="294.29296875">Layer Type</th><th>Mask Source Default Behavior</th></tr></thead><tbody><tr><td>AV Layers (solid, precomp, video)</td><td>Uses all masks</td></tr><tr><td>Shape Layer</td><td>Uses all shapes, masks discarded and mask selection parameter hidden</td></tr><tr><td>Text Layer</td><td>Uses all text paths, masks discarded and mask selection parameter hidden</td></tr></tbody></table>

## Supported Layer Types

<details>

<summary>Solid / Video Layer (with masks)</summary>

When applied to a solid, video, precomp, or other AV layer with masks, `Mask` and `Use All Masks` control which mask paths are used as the stroke source.

* By default, `Use All Masks` is checked, so all masks on the layer are used
* Unchecking `Use All Masks` reveals the `Mask` dropdown, allowing you to select a single mask

</details>

<details>

<summary>Shape Layer (vector)</summary>

When applied to a shape layer, Thicc Pro reads the shape paths directly from the layer's shape groups. It respects the full shape group hierarchy, including nested groups with their own transforms such as position, rotation, scale, skew, and anchor point.

* Shape layer masks are ignored as path sources, so Thicc Pro uses the vector shapes themselves
* `Mask` and `Use All Masks` are **hidden** because they only apply to masks on solid, video, precomp, and other AV layers
* Shape path direction is respected: paths set to "reversed" in After Effects will be reversed in the stroke
* Shapes are drawn in the same stacking order as After Effects, with top shapes drawing on top
* Disabled shape groups are excluded

{% hint style="warning" %}
Parametric shape paths such as `Ellipse Path`, `Rectangle Path` (including rounded rectangles), and `Polystar Path` must be converted to Bezier paths before Thicc Pro can access their path data.
{% endhint %}

</details>

<details>

<summary>Text Layer</summary>

When applied to a text layer, Thicc Pro uses the text outlines as paths.

* `Mask` and `Use All Masks` are **hidden** because they are not applicable to text layers
* Each character outline becomes a separate closed path
* Text outlines are derived from the font glyphs at the current time, so animated text properties such as source text and tracking are reflected in the stroke

</details>

<details>

<summary>Lights</summary>

Lights can only used as path sources when `Pen Shape: Sphere (3D)` is selected and `Use Light Motion Paths` is enabled.

Each active light layer becomes a separate 3D open path based on its `Position` keyframes. Use `Filter Lights by Name` to limit which lights are included. You can also toggle individual lights by setting their layer visibility on or off.&#x20;

</details>

## Controls

<details>

<summary>Mask</summary>

#### Mask

`Mask` is a path selector dropdown that lets you choose which specific mask on the layer to use as the stroke source.

* **Default**: First mask on the layer, if present
* **Visible**: Only on solid, video, precomp, and other AV layers with masks

`Mask` is disabled when:

| Condition                           | Reason                                            |
| ----------------------------------- | ------------------------------------------------- |
| `Use All Masks` is checked          | All masks are already being used                  |
| `Use Light Motion Paths` is checked | Light motion paths replace all other path sources |

</details>

<details>

<summary>Use All Masks</summary>

#### Use All Masks

`Use All Masks` is a checkbox that uses every mask on the layer as a stroke path instead of just the one selected in `Mask`.

* **Default**: Checked
* **Visible**: Only on solid, video, precomp, and other AV layers with masks

When `Use All Masks` is checked, the `Mask` dropdown is disabled because individual mask selection is no longer relevant.

`Use All Masks` is disabled when:

| Condition                           | Reason                                            |
| ----------------------------------- | ------------------------------------------------- |
| `Use Light Motion Paths` is checked | Light motion paths replace all other path sources |

</details>

<details>

<summary>Use Light Motion Paths</summary>

#### Use Light Motion Paths

`Use Light Motion Paths` is a checkbox that uses the position keyframes of light layers in the composition as 3D paths. Think of each position keyframe as a path vertex, the time between keyframes is ignored. The advantage of this is that you can define an XYZ position, where masks and shape layers only have XY coordinates on mask vertices.&#x20;

* **Default**: Unchecked
* **Requires**: `Pen Shape: Sphere (3D)`

When enabled, Thicc Pro scans every layer in the composition and collects active light layers. For each light, it reads the `Position` property's keyframes, including spatial tangents, and constructs a Bezier path from them. Each light becomes a separate open path.

#### How it works

* Each light layer's `Position` keyframes define the control points of a Bezier path in 3D space
* Spatial tangents on the keyframes control the curvature between points (analogous to vertex tangents on mask or shape layers)
* If a light has a parent layer, the parent's transform is applied to the light's keyframe positions
* All light paths are open paths

#### Light visibility

Thicc Pro only reads light layers that are active at the current comp time. Disabled lights, lights outside their in/out range, lights with the video switch off, and lights excluded by solo state are skipped.

#### Repeater interaction

When `Enable Repeater` is checked and `Use Light Motion Paths` is active, `Origin X` and `Origin Y` become available. Light motion paths do not have a layer anchor point to derive the transform origin from, so the origin must be specified explicitly.

#### Multi-light interaction

Multiple lights rendered inside the same instance of Thicc Pro respect each others z-depth and occlude each other accurately. Note that if you have multiple instances of Thicc Pro, they are unaware of any other layers depth and will not occlude accurately, rather they will occlude naively based on layer index in the timeline.&#x20;

</details>

<details>

<summary>Filter Lights by Name</summary>

#### Filter Lights by Name

`Filter Lights by Name` restricts light motion paths to lights whose layer names start with a specific prefix (case sensitive).

* **Default**: Unchecked
* **Requires**: `Pen Shape: Sphere (3D)` and `Use Light Motion Paths`

When `Filter Lights by Name` is checked, `Set Light Name Prefix` becomes available. Click it to enter the prefix string. The `Light Name Prefix` field displays the current prefix, or `(none)` when the prefix is empty.

The comparison uses the editable layer name shown in the After Effects timeline. It matches from the start of the name, so a prefix of `Stroke_` matches `Stroke_01` and `Stroke_Main`, but not `Blue_Stroke_01`.&#x20;

{% hint style="info" %}
Visibility is checked before the prefix is compared. A disabled, out-of-range, hidden, or soloed-out light is skipped even if its name matches the prefix.
{% endhint %}

</details>

<details>

<summary>Reverse Path Direction</summary>

#### Reverse Path Direction

`Reverse Path Direction` flips the direction of every collected path after the path source has been read.

This applies to mask paths, shape paths, text outlines, and light motion paths. It changes each path's start and end direction, which can affect trims, dashes, width mapping, and gradient mapping.

</details>

<details>

<summary>Create Null</summary>

#### Create Null

`Create Null` creates a 3D control null in the composition

* **Requires**: `Pen Shape: Sphere (3D)`

Effects that use 3D cameras in After Effects must be applied to 2D layers. `Create Null` solves this by giving you a 3D transform layer that acts as a parent.&#x20;

After creation, you can animate the null's 3D position, rotation, and scale to move the stroke in 3D space while keeping the effect layer itself as a standard 2D layer.

{% hint style="info" %}
Clicking `Create Null` multiple times creates additional null layers. If you already created a null and want to reassign it, delete the old null first. The button always creates a new null.
{% endhint %}

</details>

## Interface Conditionals

<details>

<summary>Mask and Use All Masks</summary>

`Mask` and `Use All Masks` are visible only on solid, video, precomp, and other AV layers with masks. They are hidden on shape and text layers.

Masks are ignored as path sources for shape layers, text layers, and light motion paths. Shape layers use vector shape contents, text layers use text outlines, and light motion paths use light `Position` keyframes.

| Condition                           | Result                              |
| ----------------------------------- | ----------------------------------- |
| `Use All Masks` is checked          | `Mask` is disabled                  |
| `Use Light Motion Paths` is checked | `Mask` and `Use All Masks` disabled |

</details>

<details>

<summary>Use Light Motion Paths</summary>

`Use Light Motion Paths` is only available when `Pen Shape: Sphere (3D)` is selected. When enabled, it replaces the normal path source with light-layer motion paths.

The following controls are disabled while `Use Light Motion Paths` is checked:

| Parameter       | Reason                                 |
| --------------- | -------------------------------------- |
| `Mask`          | Light motion paths replace mask paths  |
| `Use All Masks` | Light motion paths replace mask paths  |
| `Parent Layer`  | Light paths are already in world space |
| `Create Null`   | Disabled alongside `Parent Layer`      |

</details>

<details>

<summary>Filter Lights by Name</summary>

`Filter Lights by Name` is only available when both `Pen Shape: Sphere (3D)` and `Use Light Motion Paths` are active.

| Condition                          | Result                                                       |
| ---------------------------------- | ------------------------------------------------------------ |
| `Use Light Motion Paths` is off    | `Filter Lights by Name` is disabled                          |
| `Filter Lights by Name` is off     | `Set Light Name Prefix` and `Light Name Prefix` are disabled |
| `Filter Lights by Name` is checked | `Set Light Name Prefix` and `Light Name Prefix` are enabled  |

</details>

<details>

<summary>Parent Layer and Create Null</summary>

`Parent Layer` and `Create Null` are only relevant for `Pen Shape: Sphere (3D)`.

| Condition                           | Result                                    |
| ----------------------------------- | ----------------------------------------- |
| `Pen Shape` is not `Sphere (3D)`    | `Parent Layer` and `Create Null` disabled |
| `Use Light Motion Paths` is checked | `Parent Layer` and `Create Null` disabled |

</details>

<details>

<summary>Repeater Origin</summary>

`Origin X` and `Origin Y` are only available when `Enable Repeater` is checked and `Use Light Motion Paths` is active. For non-light path sources, Thicc Pro uses the composition center as the repeater origin instead.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://plugin-everything.gitbook.io/plugin-everything-docs/controls/path-source.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
