# Differences Between Controllers

## **Key Differences Between BlinkController & ShadowStepController**

#### **1. Visual Style & Purpose**

* **BlinkController** → classic *blink/teleport* with shader dissolve + optional VFX.
* **ShadowStepController** → more *stealth / ninja / shadow‑step* oriented, z opcjonalnym **Character VFX**.

#### **2. Material Workflow**

* **BlinkController**
  * Uses **separate material sets** for Disappear and Reappear.
* **ShadowStepController**
  * Uses **one unified material list** (`effectMaterials`) for the whole effect.

#### **3. VFX Handling**

* **BlinkController**
  * Only 3 VFX: Disappear, Travel, Reappear.
* **ShadowStepController**
  * Same 3 VFX + **Character VFX** that can run during travel.

#### **4. Travel VFX Logic**

* **BlinkController**
  * Travel VFX can start early (delay), but only one VFX.
* **ShadowStepController**
  * Travel VFX + Character VFX can both start early and run in sync.

#### **5. Clone System**

* **Both** support clone spawning.
* **ShadowStepController** has:
  * cleaner clone workflow
  * more polished dissolve
  * more flexible multi‑mesh clone spawning
  * slightly simpler material logic for clones.

#### **6. Intended Use Cases**

* **BlinkController** → magic blink, teleport, sci‑fi dash.
* **ShadowStepController** → shadow step, ninja dash, stealth teleport, afterimage effects.
