Skip to content

Shader Effects II

Sleys edited this page Jul 31, 2026 · 1 revision

The ShaderFX engine allows trigger screen shaders and post-processing filters through datapack events based on combat context.

๐Ÿ’ก What's New in v2.2: I have completely deprecated the old, complex & redundant "Shader Packets Parameters" system. In the modern version, it's more understandable and redundant entries have been eliminated. The system now operates with sealed records, allowing for more efficient shader addition, since previously compatibility with a centralized record was forced. Additionally, the Shader loader now operates as a Coroutine and not as a tickable event, this eliminates various bugs, such as retaining visual effects while active and exiting the world (if it was of the holdable type).


๐Ÿ“ File Location

Place your configuration files here:
assets/<namespace>/shader_packet/*.json


๐Ÿ“„ File Structure & Schema

Field Description Valid Options
category Target weapon category (Required). e.g., epicfight:sword
trigger_item Targeted item id. Defaults to all if missing. "all" or "modid:item_id"
activation_type The root gameplay trigger context. "Skill", "Style", "Animation"
effect The effect in question with its respective data. All shaders

๐Ÿ”„ Matrix (Valid Pairings)

  • Skill โžก๏ธ When a skill is active, primarily of the time type for Weapon Innate (Like Longsword).
  • Style โžก๏ธ As long as the configured style is the same as the one that holds the item.
  • Animation โžก๏ธ At the moment an animation is executed.

1. BiColor Overlay

Supported in: Skill (Hold), Style (Hold) Parameters:

  • time_in (Fade-in)
  • time_out (Fade-out)
  • intensity
  • contrast
  • dark_color (R, G, B Integer)
  • light_color (R, G, B Integer)

BiColor Overlay - Example

In this example, upon entering demonic ascension, the game experiences a shift in its dark colors to black and its light colors to white, causing a grayscale effect controlled only by the intensity of the effect.

{
  "shader_packet": [
    {
      "category": "antitheus",
      "trigger_item": "wom:antitheus",
      "activation_type": "style",
      "effect": {
        "style": "ochs",
        "bi_color_overlay": {
          "time_in": 80,
          "time_out": 30,
          "intensity": 0.65,
          "contrast": 1,
          "dark_color": [0, 0, 0],
          "light_color": [255, 255, 255]
        }
      }
    }
  ]
}

๐ŸŽฅ In-Game Showcase

2026-06-23.13-09-28.mp4

2. Focus Blur

Supported in: Skill (Hold), Style (Hold) Parameters:

  • time_in
  • time_out
  • intensity (non-scalar)
  • samples (Quality vs Performance trade-off).

Focus Blur - Example

Entering parry mode focuses only on what's in front, the edges become softly blurred.

{
  "shader_packet": [
    {
      "category": "longsword",
      "trigger_item": "all",
      "activation_type": "skill",
      "effect": {
        "skill": "epicfight:liechtenauer",
        "focus_blur": {
          "time_in": 20,
          "time_out": 10,
          "intensity": 0.05,
          "radius": 0.2,
          "fall_off": 0.4,
          "max_blur": 0.08
        }
      }
    }
  ]
}

๐ŸŽฅ In-Game Showcase

2026-06-23.13-32-11.mp4

3. CRT Filter

Supported in: Skill (Hold), Style (Hold)

Parameters:

  • time_in
  • time_out
  • line_width
  • dark_factor
  • distortion

CRT Filter- Example

{
  "shader_packet": [
    {
      "category": "longsword",
      "trigger_item": "all",
      "activation_type": "skill",
      "effect": {
        "skill": "epicfight:liechtenauer",
        "crt_filter": {
          "time_in": 20,
          "time_out": 10,
          "line_width": 1,
          "dark_factor": 1,
          "distortion": 0.001
        }
      }
    }
  ]
}

๐ŸŽฅ In-Game Showcase

[]


4. Glow

Supported in: Skill (Hold), Style (Hold)

Parameters:

  • time_in
  • time_out
  • intensity
  • threshold
  • color (R, G, B Integer)

Glow - Example

In this example, upon entering a tormented state of mind, the world's brilliance experiences an increase in crimson color.

{
  "shader_packet": [
    {
      "category": "torment",
      "trigger_item": "wom:tormented_mind",
      "activation_type": "style",
      "effect": {
        "style": "ochs",
        "glow": {
          "time_in": 20,
          "time_out": 10,
          "intensity": 0.7,
          "threshold": 0,
          "color": [255, 40, 80]
        }
      }
    }
  ]
}

๐ŸŽฅ In-Game Showcase

2026-06-23.14-02-42.mp4

5. Colored Impact Frames

Supported in: Animation (Oneshot)

Parameters:

  • radius
  • intensity
  • contrast
  • atLook
  • useAberration
  • dark_color
  • light_color

Colored Impact Frame - Example

As in the Shaders I section, we fired an Impact Frame for Napoleon, only this time it will be colored with a soft blue color

{
  "shader_packet": [
    {
      "category": "napoleon",
      "trigger_item": "wom:napoleon",
      "activation_type": "animation",
      "effect": {
        "animation": "wom:biped/skill/napoleon_verdun",
        "elapse": 1.0,
        "colored_impact_frame": {
          "radius": 20,
          "intensity": 1,
          "contrast": 1,
          "atLook": false,
          "useAberration": true,
          "dark_color": [10, 30, 60],
          "light_color": [255, 255, 255]
        }
      }
    }
  ]
}

๐ŸŽฅ In-Game Showcase

2026-06-23.14-10-43.mp4

6. Phase Noise

Supported in: Skill (Hold), Style (Hold)

Parameters:

  • time_in
  • time_out
  • intensity

Phase Noise - Example

Here, when entering the special mode of the Solar, we apply a soft phase noise to evaporate the rendering at the edges of the screen.

{
  "shader_packet": [
    {
      "category": "greatsword",
      "trigger_item": "wom:solar",
      "activation_type": "style",
      "effect": {
        "style": "ochs",
        "phase_noise": {
          "time_in": 70,
          "time_out": 40,
          "intensity": 0.02
        }
      }
    }
  ]
}

๐ŸŽฅ In-Game Showcase

2026-06-23.14-22-32.mp4

7. Sharpen

Supported in: Skill (Hold), Style (Hold)

Parameters:

  • time_in
  • time_out
  • intensity

Sharpen - Example

Upon entering the tormented state of mind, we sharpen the rendering

{
  "shader_packet": [
    {
      "category": "torment",
      "trigger_item": "wom:tormented_mind",
      "activation_type": "style",
      "effect": {
        "style": "ochs",
        "sharpen": {
          "time_in": 20,
          "time_out": 10,
          "amount": 5,
          "radius": 1,
          "threshold": 0
        }
      }
    }
  ]
}

๐ŸŽฅ In-Game Showcase

2026-06-23.14-55-29.mp4

Animation-Based Temporary Effects

Besides dedicated animation effects such as Noise Overlay and Impact Frame, animations can also trigger temporary versions of standard screen shaders.

These effects execute once when the animation reaches the configured elapsed time and remain active for the specified hold duration.

Supported effects:

  • bi_color_overlay
  • focus_blur
  • crt_filter
  • glow
  • phase_noise
  • sharpen

Required parameters:

Parameter Description
time_in Fade-in duration
time_hold Time the effect remains active
time_out Fade-out duration

OneShot - Glow - Example

By holding Moonless and using its innate ability, we will cause a glow effect

{
  "shader_packet": [
    {
      "category": "tachi",
      "trigger_item": "wom:moonless",
      "activation_type": "animation",
      "effect": {
        "animation": "wom:biped/skill/moonless_lunar_echo",
        "elapse": 0.5,
        "glow": {
          "time_in": 40,
          "time_out": 10,
          "intensity": 0.8,
          "threshold": 0,
          "color": [
            255,
            255,
            255
          ]
        }
      }
    },
    {
      "category": "tachi",
      "trigger_item": "wom:moonless",
      "activation_type": "animation",
      "effect": {
        "animation": "wom:biped/skill/moonless_lunar_fullmoon",
        "elapse": 0.5,
        "glow": {
          "time_in": 40,
          "time_out": 10,
          "intensity": 0.8,
          "threshold": 0,
          "color": [255, 255, 255]
        }
      }
    },
    {
      "category": "tachi",
      "trigger_item": "wom:moonless",
      "activation_type": "animation",
      "effect": {
        "animation": "wom:biped/skill/moonless_lunar_eclipse",
        "elapse": 0.5,
        "glow": {
          "time_in": 40,
          "time_out": 10,
          "intensity": 0.8,
          "threshold": 0,
          "color": [255, 255, 255]
        }
      }
    }
  ]
}

๐ŸŽฅ In-Game Showcase

2026-06-23.15-08-26.mp4

๐ŸŽž๏ธ Combinations

Furthermore, the effects are not "unique"; the same category and/or items can trigger several shaders at the same time. In this example, executing the "battojutsu" animation will execute 2 shaders, while with its dash version ("battojutsu_dash"), we will execute another 2.

{
  "shader_packet": [
    {
      "category": "uchigatana",
      "trigger_item": "epicfight:uchigatana",
      "activation_type": "animation",
      "effect": {
        "animation": "epicfight:biped/skill/battojutsu",
        "elapse": 0.95,
        "noise_overlay": {
          "time_hold": 20,
          "intensity": 10.0,
          "scale": 2.0,
          "color": [255, 255, 255]
        }
      }
    },
    {
      "category": "uchigatana",
      "trigger_item": "epicfight:uchigatana",
      "activation_type": "animation",
      "effect": {
        "animation": "epicfight:biped/skill/battojutsu",
        "elapse": 0.95,
        "chromatic_aberration": {
          "time_in": 0,
          "time_hold": 20,
          "time_out": 10,
          "intensity": 0.5
        }
      }
    },

    {
      "category": "uchigatana",
      "trigger_item": "epicfight:uchigatana",
      "activation_type": "animation",
      "effect": {
        "animation": "epicfight:biped/skill/battojutsu_dash",
        "elapse": 0.55,
        "noise_overlay": {
          "time_hold": 20,
          "intensity": 10.0,
          "scale": 2.0,
          "color": [255, 255, 200]
        }
      }
    },
    {
      "category": "uchigatana",
      "trigger_item": "epicfight:uchigatana",
      "activation_type": "animation",
      "effect": {
        "animation": "epicfight:biped/skill/battojutsu_dash",
        "elapse": 0.15,
        "radial_blur_in": {
          "time_in": 8,
          "time_hold": 20,
          "time_out": 8,
          "intensity": 0.1,
          "samples": 15
        }
      }
    }
  ]
}

๐ŸŽฅ In-Game Showcase

2026-06-20.18-23-38.mp4

โš ๏ธ Behavior

When the specified animation reaches the configured elapsed time:

  1. The overlay fades in during timein.
  2. Remains active for hold.
  3. Fades out during timeout.
  4. Automatically cleans itself once finished.

๐Ÿ”— Configuration Reminder

Any incorrect values, or potential errors, will be displayed in the Log; a crash will no longer occur as in past versions, your shader simply won't do anything!

EF: Extended Datapacks

๐Ÿ“ฆ Data

๐Ÿงฐ Core

๐Ÿ‘๏ธ Visuals

โš”๏ธ Combat

๐Ÿ—๏ธ Skill Builder

๐Ÿ› ๏ธ Innate Builder

๐Ÿ—ก๏ธ Animation Operations

โš™๏ธ Third-Party

Clone this wiki locally