> For the complete documentation index, see [llms.txt](https://plugin-everything.gitbook.io/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/docs/faq.md).

# FAQ

#### Best Practices

<details>

<summary>Should my source layer have continuous rasterization / collapse transforms turned on or off?</summary>

**Always** use continuous rasterization. If you don't and your layer gets scaled through parented transforms, your result can become blurry.

<div data-with-frame="true"><figure><img src="/files/BqgZ6AzaWnMNilwGZRnI" alt="" width="277"><figcaption><p>continuous rasterization disabled</p></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/qAgto5sUIWi7UrQ1yEKh" alt="" width="282"><figcaption><p>continuous rasterization enabled</p></figcaption></figure></div>

{% hint style="warning" %}
If you are rendering 3D strokes with the `Sphere (3D)` pen shape, it's doubly important to be using continuous rasterization!
{% endhint %}

Repeater parameters such as rotation and scale transform about the composition center (think of the composition center as your anchorpoint). You can offset these with the origin transforms, but if your layer is not set to continuous rasterization, you're now mixing two different coordinate spaces: layer and world, and confusion will ensue!

When continuous rasterization is set, your layer is in unified world space and things make sense.

</details>

<details>

<summary>Which layer types should I apply Thicc Pro to?</summary>

{% hint style="info" %}
TLDR: Solid layers with continuous rasterization is always recommended
{% endhint %}

Text and shape layers should only be used when your path source should be the text or shapes themselves. Otherwise, solid layers with continuous rasterization should be used.

Adjustment layers can work but shouldn't be used. In the below image we have Thicc Pro correctly applied to a solid layer with a mask as the source. Note how we can see the background checkerboard, and the stroke isn't getting cutoff by the bounds of the mask:

<div data-with-frame="true"><figure><img src="/files/tci690SOrjU9dEgHbR8I" alt="" width="375"><figcaption><p>Thicc Pro applied to a solid layer</p></figcaption></figure></div>

Here's what happens when we use an adjustment layer instead. The stroke is getting cutoff by the bounds of the mask and we don't receive transparency inside of the mask:

<div data-with-frame="true"><figure><img src="/files/CPClDk2EA1Qp9aj8apjp" alt="" width="375"><figcaption><p>Thicc Pro applied to an adjustment layer</p></figcaption></figure></div>

This is because Thicc Pro discards all upstream effects so it can just render the masks as strokes instead of using them as clipping masks. If we use an adjustment layer, all below layers are considered "upstream buffers" and are discarded, leaving nothing but empty alpha:

<div data-with-frame="true"><figure><img src="/files/uV7jC8OeJ40yDV16CmSJ" alt="" width="375"><figcaption><p>Thicc Pro on an adjustment layer with mask set to <code>None</code></p></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/r29sVPoGLU0SFq1iiVpS" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

<details>

<summary>Which color space should I use? What are the pros and cons of each?</summary>

No one colorspace is best for all palettes and styles. We recommend starting with `Oklab` for most gradients, then switch based on the result you want:

<table><thead><tr><th width="122.9140625">Colorspace</th><th width="258.9453125">Pros</th><th>Tradeoffs</th></tr></thead><tbody><tr><td><code>RGB</code></td><td>Direct, predictable channel blending that works well for simple fades and neutral colors</td><td>Opposing colors can pass through gray or muddy-looking midtones (though mostly remedied by inbuilt gamma correction)</td></tr><tr><td><code>HSL</code></td><td>Vivid transitions that travel around the hue wheel by the shortest route</td><td>Midpoints can feel overly saturated or uneven in brightness, especially around low-saturation colors</td></tr><tr><td><code>Oklab</code></td><td>Smooth, perceptually even transitions with more consistent apparent brightness</td><td>Can feel more subdued than <code>HSL</code> when you want an obvious rainbow or neon hue sweep</td></tr></tbody></table>

#### Visual Comparisons

For some palettes there's a huge difference in vibrance between HSL and Oklab / RGB:

<figure><img src="/files/yFPMcEjG4ZGuKOXS6SPy" alt="" width="375"><figcaption><p>The Vaporwave (5) preset in Oklab is quite subdued</p></figcaption></figure>

<figure><img src="/files/riOMoLY56X6qQIgMEWEx" alt="" width="375"><figcaption></figcaption></figure>

For others, there's very little difference. Fewer color stops to interpolate can often mean a greater difference in results. Note how there's almost no difference between RGB and HSL since we are blending between many colors:

<figure><img src="/files/yUafAs2Sb65Uxl6ym05J" alt="" width="375"><figcaption><p>Rainbow Loop (7) preset in Oklab</p></figcaption></figure>

<figure><img src="/files/Z8SEPQjjpn9VdKdmvkK6" alt="" width="375"><figcaption></figcaption></figure>

<figure><img src="/files/zb7unCHt8q5YiDOxRIuL" alt="" width="375"><figcaption></figcaption></figure>

Gamma also plays a big role and reacts differently based on colorspace. Below a custom gamma of 0.1 is used:

<figure><img src="/files/GgEn5qALeDQIRhkC9HPP" alt="" width="375"><figcaption></figcaption></figure>

<figure><img src="/files/n6OgxaUuOIL3NQRKAj2l" alt="" width="375"><figcaption></figcaption></figure>

The classic RGB problem when gamma correction is disabled, we get muddy blending between primary colors. Enabling `Auto Gamma` , using HSL or working in a linear workflow fixes this issue:

<figure><img src="/files/UaRmlcA2Lu4AZQJOGqxk" alt="" width="375"><figcaption><p>Auto Gamma deliberately disabled produces this muddle result</p></figcaption></figure>

<figure><img src="/files/DNFwYbf6qbvxZRxEtBc2" alt="" width="375"><figcaption><p>HSL doesn't suffer from the same issue</p></figcaption></figure>

#### Hue Shift and Gamma

`Hue Shift` rotates every gradient stop before Thicc Pro calculates the colors between them. The selected `Color Space` then determines the route between those shifted stops:

* `RGB` blends the shifted red, green, and blue channel values
* `HSL` follows the shortest path between the shifted hues
* `Oklab` finds a perceptually even transition between the shifted colors

This means the same palette and `Hue Shift` value can produce different intermediate colors in each mode, even though the stop colors match.

`Gamma` also runs around the interpolation step. Thicc Pro linearizes the shifted stop colors using the active gamma, blends them in the selected color space, then converts the result back. Gamma changes are often most obvious as midpoint brightness changes in `RGB`, but they can also affect the saturation and lightness of `HSL` blends and the final character of `Oklab` blends.

Use `Gamma Mode: Auto` as the starting point. If a gradient still looks muddy, too bright, or too saturated, choose the `Color Space` that gives the right color route first, then fine-tune `Gamma`.

{% hint style="info" %}
At 0% `Gradient Blending`, there is no visible interpolation between stops, so `Color Space` and `Gamma` have no visible effect. `Hue Shift` still changes the stop colors themselves.
{% endhint %}

</details>

#### How do I?

<details>

<summary>How can I have masks that clip the rendered result instead of just being used as the path source?</summary>

By default, Thicc Pro disregards masks as clipping bounds so that it can render cleanly without you having to dig into each mask and disable them:

<div data-with-frame="true"><figure><img src="/files/CHXs8dcRicNfBxBq8uu9" alt="" width="453"><figcaption><p>Even though both masks are set to <code>Add</code> neither clips the rendered result</p></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/PATaIvs8i4X3VSesThki" alt="" width="375"><figcaption></figcaption></figure></div>

If you'd like to use a mask to actually clip the contents of Thicc Pro you'll need to set a layer alpha track matte since the clipping occurs ***post effects***. You'll may also want to disable `Use All Masks` as the `Path Source`, since that's on by default.

<div data-with-frame="true"><figure><img src="/files/lR9BZjvxCpGgqbug6e8R" alt="" width="330"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/aj1ZVUOZV9YQ0ysjqPvP" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/zcy26javHjCYpLIncbFA" alt="" width="563"><figcaption><p>Using a mask as the Path Source and having it clipped by another layers mask</p></figcaption></figure></div>

</details>

<details>

<summary>How do I phase shift / rotate the width profile along my path?</summary>

Set the `Width Scope` to `Individual Trims` and then use the `Trim Paths: Trim Offset` to seamlessly shift the width modulation along the path.

You might also want to set the `Gradient Scope` to `Individual Trims` so it appears in sync with the width modulation, seen below:

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ftv64kPMoAtApBYU0Un9u%2Fuploads%2FOzMGk4674Lsk9zPLAMK0%2Fwidth_modulation.mp4?alt=media&token=ad39e608-8097-422a-93a3-d77b19190496>" %}

</details>

<details>

<summary>How do I convert a parametric shape into a bezier path?</summary>

After Effects doesn't give plugins access to parametric path data, it must be converted to bezier paths first. So if you're rendering one of the following on a shape layer, follow these steps.

<div data-with-frame="true"><figure><img src="/files/kqTIEMPj5BmnyxjeTLrQ" alt="" width="228"><figcaption></figcaption></figure></div>

{% hint style="warning" %}
If you don't, you'll be greeted by the following warning:
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/nTjAX9J1wB8MuDPkhBvE" alt="" width="375"><figcaption></figcaption></figure></div>

1. Once you're happy with how your parametric shape looks (this is important because you can't change the parameters once it's converted to a bezier path), twirl down to the path inside the timeline

<div data-with-frame="true"><figure><img src="/files/X64wVFKnomCpmza2EGRG" alt="" width="375"><figcaption></figcaption></figure></div>

2. Right click and select `Convert To Bezier Path`

<div data-with-frame="true"><figure><img src="/files/8Zh6MZrGkW3TKbQDEqy7" alt="" width="375"><figcaption></figcaption></figure></div>

3. Enjoy your shape layer!

<div data-with-frame="true"><figure><img src="/files/kV2kbZ2Kjy2MnuL223YM" alt="" width="240"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Masks on solid layers don't need to follow these steps, as they are already in bezier curve format
{% endhint %}

</details>

<details>

<summary>How do I add motion blur?</summary>

Thicc Pro doesn't render it's own motion blur but you can simply add `CC Force Motion Blur` after Thicc Pro to realistically emulate it:

<div data-with-frame="true"><figure><img src="/files/sNb6jTnegIt61lEhkZ5F" alt="" width="350"><figcaption><p>Path animating its height, in motion</p></figcaption></figure></div>

</details>

#### I'm having trouble

<details>

<summary>Thicc Pro isn't rendering anything <span data-gb-custom-inline data-tag="emoji" data-code="2639">☹️</span></summary>

If Thicc Pro doesn't have any valid paths to render, your result will look blank. Troubleshoot this by verifying the following steps one by one:

1. If you are working on a solid layer, do you have a mask applied to your layer and assigned in the `Path Source`?

   <figure><img src="/files/9BcMKfo8f0uca4gPY8A6" alt="" width="340"><figcaption></figcaption></figure>
2. If you are working on a shape layer, ensure you have [converted any parametric shapes into bezier curves](#how-do-i-convert-a-parametric-shape-into-a-bezier-path)
3. If you're working with 3D cameras, ensure the layer you applied Thicc Pro to isn't set to 3D
4. If you are working on a 3D motion path, ensure the data is on a point light and that it's visible to the camera
5. Ensure you are not using the *Cinema 4D* composition renderer, as this disables all effects
6. If you've checked the above and nothing is happening, it's possible that your graphics card driver is not up to date. To diagnose this, check the [error log](/docs/contact-and-support.md#error-logging) and [contact support](/docs/contact-and-support.md#i-need-technical-support)

</details>

<details>

<summary>Why do I have a visible seam in my closed path?</summary>

If you have a thick stroke with `Line Cap: Round` and you're working with trim paths, you might notice a visible seam where `Trim Start` and `Trim End` meet:

<div><figure><img src="/files/sCeF1GxXLmmbIEfV9r1s" alt=""><figcaption><p><code>Line Cap: Round</code> with no trim paths</p></figcaption></figure> <figure><img src="/files/oqHo1JgpYcxJsC8VkTtC" alt=""><figcaption><p><code>Line Cap: Round</code> with trim paths set to 99.9%, visible seam</p></figcaption></figure> <figure><img src="/files/nLlXXw9705sX6OQ5Nl2K" alt=""><figcaption><p><code>Line Cap: Butt</code> with trim paths set to 99.9%, no visible seam</p></figcaption></figure></div>

This can be fixed by working with a `Butt Cap` or `Pen Shape: Sphere 3D`; since round line caps overlap themselves the seam is unavoidable.

</details>

<details>

<summary>Why do I have strange geometry?</summary>

Thicc Pro gives you as much stylistic freedom as possible; parameters can be pushed to extremes that can create impossible geometry. For example, note how the different `Pen Shapes` (`Round` on the left, `Flat` on the right) react when the width becomes too wide for the path:

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ftv64kPMoAtApBYU0Un9u%2Fuploads%2Ft3Wg1XtG2k7FNpyiubSN%2Fthick%20paths.mp4?alt=media&token=8b11a2f4-8bdf-4e37-b388-9aaca0f9e102>" %}

Very thick strokes, sharp corners, abrupt width changes, or extremely short path sections can cause the two sides of that generated surface to cross, collapse, or change direction too quickly.

Try these adjustments in order:

1. Lower `Stroke Width` or the repeater's `Width +/-` until the geometry becomes stable
2. Smooth sudden width changes with `Width Easing` or gentler `Curve Graph` handles; if a profile jumps directly between 0% and a large value, raise the minimum slightly
3. For sharp corners, lower `Join Limit` or switch from `Miter Join` to `Bevel Join` or `Round Join`
4. For unstable open, trimmed, or dashed ends, lower `Cap Limit`, lengthen the visible segment, or try `Butt Cap`
5. Simplify source paths that contain duplicate points, extremely short segments, or very sharp cusps
6. If X or Y rotation is involved, use `Pen Shape: Sphere (3D)`; the 2D pen shapes do not generate true perspective geometry. See the [advanced tutorial for visual examples of this](/docs/video-tutorials.md#advanced-guide)

{% hint style="info" %}
`Butt Cap` is less artifact-prone because it simply cuts the generated stroke geometry off at the path endpoint. It does not need to construct anything beyond that point.
{% endhint %}

</details>

#### Other FAQ

<details>

<summary>How does multi-path transparency and blending work?</summary>

2D and 3D pen shapes handle transparency differently:

<div><figure><img src="/files/61FgIY3ESGrWVeixB03g" alt=""><figcaption><p>2D pen shapes handle transparency between multiple paths / repeated copies</p></figcaption></figure> <figure><img src="/files/vQQ2SQhu6AYsK1WEHfys" alt=""><figcaption><p>The 3D pen shape renders with knockout opacity and doesn't handle overlapping path transparency</p></figcaption></figure></div>

Render order is determined by:

* For 2D pen shapes, path heirarchy determines render order
* For `Pen Shape: Sphere (3D)`, camera-space z distance determines render order (objects closer to the camera obscure objects further away)

Final alpha is influenced by:

* `Master Opacity`
* The interpolated opacity of its gradient stops in `Gradient` mode
* The repeater's cumulative `Opacity %`, when applicable

For more detail about opacity where a path overlaps itself, see [RGBA blending](/docs/controls/color-and-opacity.md#note-on-rgba-blending).

</details>

<details>

<summary>How does repeater order work? How does it work with multiple paths?</summary>

Repeated copies receive increasing amounts of offsets based on their index. The original copy is index 0, second copy index 1 and so on. The calculation is:

```
offset * index
```

If we apply a translation offset of 50 pixels:

* the **original** path gets no offset (0 \* 50)
* the **first** *copy* receives 50 pixels (1 \* 50)
* the **second** *copy* receives 100 pixels (2 \* 50)

#### Multiple paths and repeater order

Original paths are shown in order 1-3 with their vertices. A rainbow gradient scope and thick-to-thin variable stroke has been stretched across all paths and copies to visualize the order:

<div data-with-frame="true"><figure><img src="/files/OMYi8CyFysD9PI0MTtdo" alt="" width="340"><figcaption></figcaption></figure></div>

{% hint style="info" %}
The above order is the same as how [multi-path scope works with repeater enabled](/docs/what-is-scope-and-how-does-it-work.md#how-does-scope-work-if-we-have-repeated-copies).&#x20;
{% endhint %}

</details>

<details>

<summary>How does trim paths work with repeater copies?</summary>

Trimming multiple paths with repeater enabled follows this order:

<div data-with-frame="true"><figure><img src="/files/jmGRvDq7hjjRTPWF4lGB" alt="" width="375"><figcaption></figcaption></figure></div>

Original paths labelled 1-3, repeated copies labelled with alphabetical suffix.&#x20;

{% hint style="info" %}
Note the default order is the same as how [multi-path scope works with repeater enabled](/docs/what-is-scope-and-how-does-it-work.md#how-does-scope-work-if-we-have-repeated-copies).&#x20;
{% endhint %}

Trim Paths order can be modified using the `Reverse`, `Increment` or `Randomize` checkboxes. Repeated order can't be changed.&#x20;

</details>

<details>

<summary>Which text animators are supported?</summary>

Most animators that modify text vertices are supported:

* X\&Y Position
* X\&Y Anchor Point
* X\&Y Scale
* Skew
* Skew Axis
* Z Rotation
* Tracking
* Line Anchor
* Line Spacing

Animators that are not supported:

* Blur
* Opacity

</details>

<details>

<summary>Is path and box text supported?</summary>

Yes!

<div data-with-frame="true"><figure><img src="/files/42Tj9ByzZqTEWvNVjqRg" alt="" width="375"><figcaption></figcaption></figure></div>

</details>

<details>

<summary>I have a question that's not listed here</summary>

Get in touch via [Contact & Support](/docs/contact-and-support.md#contact-us)

</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/docs/faq.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.
