Overview

WCGASDiminishingData is a Data Asset that defines diminishing returns rules for the Wonderscape Creations GAS Ally plugin. It allows designers to configure how actors progressively resist repeated applications of the same effect type without writing any C++ code, enabling fully designer-driven diminishing returns mechanics. When an actor receives multiple applications of a tracked effect within a time window, the system grants increasing resist chances, culminating in temporary full immunity.


Creating a Diminishing Returns Data Asset

Using the Editor

  1. Open the Content Browser
  2. Right-click in any folder where you want to create the asset
  3. Navigate to: Miscellaneous > Data Asset
  4. Select WCGASDiminishingData from the class picker
  5. Give your new asset a descriptive name (e.g., DA_StunDiminishingDA_CCDiminishingDA_SlowDiminishing)
  6. Double-click the asset to open it and configure its properties

How Diminishing Returns Works

System Flow

flowchart TD
    A["Effect Applied to Actor"] --> B{Has DR Rules?}
    B -->|"No"| C["Effect Applies Normally"]
    B -->|"Yes"| D["Find Matching Rule"]
    D --> E{Rule Found?}
    E -->|"No"| C
    E -->|"Yes"| F["Prune Expired Applications"]
    F --> G["Record Application Timestamp"]
    G --> H{Threshold Reached?}
    H -->|"No"| I["Effect Allowed - Continue Tracking"]
    H -->|"Yes"| J["Roll Against Resist Chance"]
    J --> K{Roll Succeeded?}
    K -->|"No"| I
    K -->|"Yes"| L{Is 100% Threshold?}
    L -->|"No"| M["Set Pending Block for Next Application"]
    L -->|"Yes"| N["Grant Full Immunity + Start Timer"]
    N --> O["Block All Applications Until Timer Expires"]
    O --> P["Timer Expires"]
    P --> Q["Remove Immunity + Reset History"]
    
    style A fill:#4a90e2,stroke:#2171b5,color:#fff
    style N fill:#d15858,stroke:#e74c3c,color:#fff
    style Q fill:#41a161,stroke:#228b22,color:#fff
    style M fill:#7b68ee,stroke:#6a5acd,color:#fff

Registration Flow

  1. Component Configuration
  2. Application Tracking
  3. Threshold Evaluation