{
  "version": "1.0.0",
  "generated": "2026-03-16T13:40:00.000Z",
  "description": "Grudge Warlords 3D VFX effect definitions — shaders, particles, spell effects",
  "sourceBase": "https://molochdagod.github.io/ObjectStore",
  "totalEffects": 52,
  "categories": {
    "fire": { "name": "Fire", "icon": "flame", "color": "#ff4400", "count": 8 },
    "ice": { "name": "Ice", "icon": "snowflake", "color": "#00ccff", "count": 6 },
    "lightning": { "name": "Lightning", "icon": "zap", "color": "#ffff00", "count": 5 },
    "magic": { "name": "Magic", "icon": "sparkles", "color": "#aa44ff", "count": 8 },
    "impact": { "name": "Impact", "icon": "bomb", "color": "#ff6600", "count": 5 },
    "aura": { "name": "Aura", "icon": "star", "color": "#ffdd44", "count": 5 },
    "portal": { "name": "Portal", "icon": "circle", "color": "#4488ff", "count": 5 },
    "combat": { "name": "Combat", "icon": "sword", "color": "#ff2222", "count": 5 },
    "environment": { "name": "Environment", "icon": "wind", "color": "#44aa44", "count": 5 }
  },
  "shaderFiles": {
    "fire": { "vertex": "/3dfx/shaders/fire.vert.glsl", "fragment": "/3dfx/shaders/fire.frag.glsl" },
    "lightning": { "vertex": "/3dfx/shaders/lightning.vert.glsl", "fragment": "/3dfx/shaders/lightning.frag.glsl" },
    "shockwave": { "vertex": "/3dfx/shaders/shockwave.vert.glsl", "fragment": "/3dfx/shaders/shockwave.frag.glsl" },
    "magic": { "vertex": "/3dfx/shaders/magic.vert.glsl", "fragment": "/3dfx/shaders/magic.frag.glsl" }
  },
  "effects": {
    "inferno": {
      "id": "inferno",
      "name": "Inferno Blast",
      "category": "fire",
      "source": "gdevelop-effects-playground",
      "description": "Massive blazing explosion with intense heat",
      "colors": { "primary": "#ff4400", "secondary": "#ffcc00" },
      "timing": { "duration": 2.0, "loop": true, "speed": 1.0 },
      "shader": "fire",
      "particles": { "count": 500, "size": 0.15, "opacity": 0.8, "blending": "additive", "distribution": "circular", "radius": 0.5, "velocityY": [1, 3] },
      "geometry": { "type": "plane", "width": 2, "height": 3, "segments": [32, 32], "instances": 6, "layout": "circular", "layoutRadius": 0.5 },
      "bloom": { "strength": 1.5, "radius": 0.4, "threshold": 0.2 },
      "uniforms": { "uIntensity": { "value": 2.0, "min": 0, "max": 5 } },
      "tags": ["fire", "explosion", "combat", "aoe", "spell"]
    },
    "hellfire": {
      "id": "hellfire",
      "name": "Hellfire Vortex",
      "category": "fire",
      "source": "gdevelop-effects-playground",
      "description": "Swirling flames from the underworld",
      "colors": { "primary": "#ff2200", "secondary": "#880000" },
      "timing": { "duration": 3.0, "loop": true, "speed": 1.0 },
      "shader": "fire",
      "particles": { "count": 800, "size": 0.15, "opacity": 0.8, "blending": "additive", "distribution": "circular", "radius": 0.5, "velocityY": [1, 3] },
      "geometry": { "type": "plane", "width": 2, "height": 3, "segments": [32, 32], "instances": 6, "layout": "circular", "layoutRadius": 0.5 },
      "bloom": { "strength": 1.5, "radius": 0.4, "threshold": 0.2 },
      "uniforms": { "uIntensity": { "value": 2.5, "min": 0, "max": 5 } },
      "tags": ["fire", "dark", "vortex", "combat", "spell"]
    },
    "frost_nova": {
      "id": "frost_nova",
      "name": "Frost Nova",
      "category": "ice",
      "source": "gdevelop-effects-playground",
      "description": "Expanding ring of freezing ice",
      "colors": { "primary": "#00ccff", "secondary": "#ffffff" },
      "timing": { "duration": 1.5, "loop": true, "speed": 1.0 },
      "shader": "shockwave",
      "particles": { "count": 400, "size": 0.08, "opacity": 0.9, "blending": "additive", "distribution": "sphere", "radius": 3, "velocityY": [-0.5, -2] },
      "geometry": { "type": "ring", "innerRadius": 0.5, "outerRadius": 2, "segments": 64, "crystals": { "count": 12, "height": [0.5, 2], "radius": [1, 2.5], "material": "standard", "metalness": 0.9, "roughness": 0.1 } },
      "bloom": { "strength": 1.5, "radius": 0.4, "threshold": 0.2 },
      "uniforms": { "uIntensity": { "value": 1.8, "min": 0, "max": 5 } },
      "tags": ["ice", "frost", "nova", "aoe", "spell", "freeze"]
    },
    "blizzard": {
      "id": "blizzard",
      "name": "Arctic Storm",
      "category": "ice",
      "source": "gdevelop-effects-playground",
      "description": "Howling blizzard with ice shards",
      "colors": { "primary": "#88ddff", "secondary": "#aaeeff" },
      "timing": { "duration": 4.0, "loop": true, "speed": 1.0 },
      "shader": "shockwave",
      "particles": { "count": 1000, "size": 0.06, "opacity": 0.7, "blending": "additive", "distribution": "volume", "radius": 4, "velocityY": [-1, -3] },
      "bloom": { "strength": 1.2, "radius": 0.3, "threshold": 0.3 },
      "uniforms": { "uIntensity": { "value": 1.5, "min": 0, "max": 5 } },
      "tags": ["ice", "blizzard", "storm", "aoe", "weather"]
    },
    "chain_lightning": {
      "id": "chain_lightning",
      "name": "Chain Lightning",
      "category": "lightning",
      "source": "gdevelop-effects-playground",
      "description": "Branching bolts of electric fury",
      "colors": { "primary": "#ffff00", "secondary": "#88ccff" },
      "timing": { "duration": 0.5, "loop": true, "speed": 1.0 },
      "shader": "lightning",
      "particles": { "count": 200, "size": 0.1, "opacity": 0.9, "blending": "additive" },
      "geometry": { "type": "plane", "width": 0.5, "height": 6, "segments": [8, 32], "branches": 3 },
      "bloom": { "strength": 2.0, "radius": 0.5, "threshold": 0.1 },
      "light": { "color": "#ffff00", "intensity": 5, "distance": 10 },
      "tags": ["lightning", "electric", "chain", "ranged", "spell"]
    },
    "thunderstrike": {
      "id": "thunderstrike",
      "name": "Thunder Strike",
      "category": "lightning",
      "source": "gdevelop-effects-playground",
      "description": "Devastating bolt from the heavens",
      "colors": { "primary": "#ffffff", "secondary": "#aaccff" },
      "timing": { "duration": 0.3, "loop": true, "speed": 1.0 },
      "shader": "lightning",
      "particles": { "count": 150, "size": 0.12, "opacity": 1.0, "blending": "additive" },
      "geometry": { "type": "plane", "width": 0.5, "height": 6, "segments": [8, 32], "branches": 3 },
      "bloom": { "strength": 2.5, "radius": 0.6, "threshold": 0.1 },
      "light": { "color": "#ffffff", "intensity": 8, "distance": 15 },
      "tags": ["lightning", "thunder", "strike", "aoe", "spell"]
    },
    "arcane_burst": {
      "id": "arcane_burst",
      "name": "Arcane Burst",
      "category": "magic",
      "source": "gdevelop-effects-playground",
      "description": "Explosion of pure magical energy",
      "colors": { "primary": "#aa44ff", "secondary": "#ff44aa" },
      "timing": { "duration": 1.8, "loop": true, "speed": 1.0 },
      "shader": "magic",
      "particles": { "count": 600, "size": 0.06, "opacity": 0.7, "blending": "additive", "distribution": "spiral", "radius": 1.5, "height": 3 },
      "geometry": { "type": "ring", "innerRadius": 1.5, "outerRadius": 2, "segments": 64, "runes": { "count": 3, "radius": 1, "spacing": 0.8 } },
      "bloom": { "strength": 1.5, "radius": 0.4, "threshold": 0.2 },
      "light": { "color": "#aa44ff", "intensity": 2, "distance": 8 },
      "tags": ["magic", "arcane", "burst", "aoe", "spell"]
    },
    "void_rift": {
      "id": "void_rift",
      "name": "Void Rift",
      "category": "magic",
      "source": "gdevelop-effects-playground",
      "description": "Tear in reality emanating dark power",
      "colors": { "primary": "#6600aa", "secondary": "#220044" },
      "timing": { "duration": 3.0, "loop": true, "speed": 1.0 },
      "shader": "magic",
      "particles": { "count": 400, "size": 0.06, "opacity": 0.7, "blending": "additive", "distribution": "spiral", "radius": 1.5 },
      "bloom": { "strength": 1.8, "radius": 0.5, "threshold": 0.15 },
      "light": { "color": "#6600aa", "intensity": 2, "distance": 8 },
      "tags": ["magic", "void", "dark", "rift", "spell"]
    },
    "meteor_impact": {
      "id": "meteor_impact",
      "name": "Meteor Impact",
      "category": "impact",
      "source": "gdevelop-effects-playground",
      "description": "Devastating ground-shaking explosion",
      "colors": { "primary": "#ff6600", "secondary": "#ffaa00" },
      "timing": { "duration": 2.5, "loop": true, "speed": 1.0 },
      "shader": "fire",
      "particles": { "count": 1000, "size": 0.12, "opacity": 0.9, "blending": "additive", "distribution": "explosion", "velocityY": [1, 5], "gravity": -4.9 },
      "geometry": { "type": "compound", "elements": ["crater_ring", "fire_planes", "shockwave_ring"] },
      "bloom": { "strength": 2.0, "radius": 0.5, "threshold": 0.15 },
      "light": { "color": "#ff6600", "intensity": 8, "distance": 15 },
      "tags": ["impact", "meteor", "explosion", "aoe", "spell"]
    },
    "shockwave": {
      "id": "shockwave",
      "name": "Shockwave",
      "category": "impact",
      "source": "gdevelop-effects-playground",
      "description": "Expanding ring of force",
      "colors": { "primary": "#ffffff", "secondary": "#aaddff" },
      "timing": { "duration": 1.0, "loop": true, "speed": 1.0 },
      "shader": "shockwave",
      "particles": { "count": 300, "size": 0.1, "opacity": 0.8, "blending": "additive" },
      "geometry": { "type": "ring", "innerRadius": 0.5, "outerRadius": 2.5, "segments": 64 },
      "bloom": { "strength": 1.5, "radius": 0.4, "threshold": 0.2 },
      "tags": ["impact", "shockwave", "force", "aoe"]
    },
    "holy_aura": {
      "id": "holy_aura",
      "name": "Divine Aura",
      "category": "aura",
      "source": "gdevelop-effects-playground",
      "description": "Radiant protective blessing",
      "colors": { "primary": "#ffdd44", "secondary": "#ffffff" },
      "timing": { "duration": 5.0, "loop": true, "speed": 1.0 },
      "shader": null,
      "particles": { "count": 200, "size": 0.04, "opacity": 0.6, "blending": "additive", "distribution": "sphere", "radius": 1.5 },
      "geometry": { "type": "compound", "elements": ["outer_sphere", "inner_sphere", "rings"] },
      "bloom": { "strength": 1.2, "radius": 0.3, "threshold": 0.3 },
      "light": { "color": "#ffdd44", "intensity": 1.5, "distance": 6 },
      "tags": ["aura", "holy", "divine", "buff", "heal"]
    },
    "dark_aura": {
      "id": "dark_aura",
      "name": "Shadow Shroud",
      "category": "aura",
      "source": "gdevelop-effects-playground",
      "description": "Menacing dark energy surrounding",
      "colors": { "primary": "#440066", "secondary": "#000000" },
      "timing": { "duration": 5.0, "loop": true, "speed": 1.0 },
      "shader": null,
      "particles": { "count": 300, "size": 0.04, "opacity": 0.6, "blending": "additive", "distribution": "sphere", "radius": 1.5 },
      "geometry": { "type": "compound", "elements": ["outer_sphere", "inner_sphere", "rings"] },
      "bloom": { "strength": 1.5, "radius": 0.4, "threshold": 0.2 },
      "light": { "color": "#440066", "intensity": 1.5, "distance": 6 },
      "tags": ["aura", "dark", "shadow", "debuff"]
    },

    "casting_fire": {
      "id": "casting_fire",
      "name": "Casting Fire",
      "category": "fire",
      "source": "unity-ummorp-casting",
      "description": "Fire channeling cast animation — flames spiral upward from caster hands",
      "colors": { "primary": "#ff5500", "secondary": "#ffaa00" },
      "timing": { "duration": 2.0, "loop": true, "speed": 1.2 },
      "shader": "fire",
      "particles": { "count": 300, "size": 0.1, "opacity": 0.9, "blending": "additive", "distribution": "cone", "radius": 0.3, "velocityY": [2, 4] },
      "bloom": { "strength": 1.5, "radius": 0.4, "threshold": 0.2 },
      "uniforms": { "uIntensity": { "value": 1.8, "min": 0, "max": 5 } },
      "tags": ["fire", "cast", "channel", "spell"]
    },
    "fire_nova": {
      "id": "fire_nova",
      "name": "Fire Nova",
      "category": "fire",
      "source": "unity-ummorp-casting",
      "description": "Expanding ring of fire radiating outward from caster",
      "colors": { "primary": "#ff3300", "secondary": "#ff8800" },
      "timing": { "duration": 1.5, "loop": true, "speed": 1.0 },
      "shader": "shockwave",
      "particles": { "count": 600, "size": 0.12, "opacity": 0.85, "blending": "additive", "distribution": "ring", "radius": 3 },
      "geometry": { "type": "ring", "innerRadius": 0.5, "outerRadius": 3, "segments": 64 },
      "bloom": { "strength": 1.8, "radius": 0.5, "threshold": 0.15 },
      "tags": ["fire", "nova", "aoe", "spell", "expanding"]
    },
    "flame_ball": {
      "id": "flame_ball",
      "name": "Flame Ball",
      "category": "fire",
      "source": "unity-ummorp-casting",
      "description": "Concentrated sphere of flame — projectile spell",
      "colors": { "primary": "#ff4400", "secondary": "#ffcc00" },
      "timing": { "duration": 3.0, "loop": true, "speed": 1.0 },
      "shader": "fire",
      "particles": { "count": 200, "size": 0.08, "opacity": 0.9, "blending": "additive", "distribution": "sphere", "radius": 0.5, "trail": true },
      "geometry": { "type": "sphere", "radius": 0.4, "segments": 16 },
      "bloom": { "strength": 2.0, "radius": 0.5, "threshold": 0.15 },
      "light": { "color": "#ff4400", "intensity": 3, "distance": 8 },
      "tags": ["fire", "projectile", "ball", "ranged", "spell"]
    },
    "lava_orb": {
      "id": "lava_orb",
      "name": "Lava Orb",
      "category": "fire",
      "source": "unity-ummorp-casting",
      "description": "Molten lava sphere — slow heavy projectile with dripping particles",
      "colors": { "primary": "#ff2200", "secondary": "#ff6600" },
      "timing": { "duration": 3.0, "loop": true, "speed": 0.8 },
      "shader": "fire",
      "particles": { "count": 150, "size": 0.1, "opacity": 0.95, "blending": "additive", "distribution": "sphere", "radius": 0.6, "velocityY": [-1, -2], "trail": true },
      "geometry": { "type": "sphere", "radius": 0.5, "segments": 16, "emissiveIntensity": 1.5 },
      "bloom": { "strength": 2.0, "radius": 0.5, "threshold": 0.1 },
      "light": { "color": "#ff3300", "intensity": 4, "distance": 10 },
      "tags": ["fire", "lava", "projectile", "orb", "spell"]
    },
    "chaos_orb": {
      "id": "chaos_orb",
      "name": "Chaos Orb",
      "category": "magic",
      "source": "unity-ummorp-casting",
      "description": "Unstable magical orb pulsing with chaotic energy",
      "colors": { "primary": "#aa00ff", "secondary": "#ff0066" },
      "timing": { "duration": 2.5, "loop": true, "speed": 1.2 },
      "shader": "magic",
      "particles": { "count": 300, "size": 0.06, "opacity": 0.8, "blending": "additive", "distribution": "sphere", "radius": 0.6 },
      "geometry": { "type": "sphere", "radius": 0.4, "segments": 16, "pulse": true, "pulseSpeed": 2.0, "pulseAmount": 0.1 },
      "bloom": { "strength": 2.0, "radius": 0.5, "threshold": 0.15 },
      "light": { "color": "#aa00ff", "intensity": 3, "distance": 8, "pulse": true },
      "tags": ["magic", "chaos", "projectile", "orb", "spell"]
    },
    "frozen_orb": {
      "id": "frozen_orb",
      "name": "Frozen Orb",
      "category": "ice",
      "source": "unity-ummorp-casting",
      "description": "Spinning orb of ice that shoots frost bolts in all directions",
      "colors": { "primary": "#00bbff", "secondary": "#cceeFF" },
      "timing": { "duration": 3.0, "loop": true, "speed": 1.0 },
      "shader": null,
      "particles": { "count": 400, "size": 0.05, "opacity": 0.85, "blending": "additive", "distribution": "sphere", "radius": 0.8, "spin": true, "spinSpeed": 2.0 },
      "geometry": { "type": "sphere", "radius": 0.35, "segments": 16, "metalness": 0.8, "roughness": 0.1, "opacity": 0.6 },
      "bloom": { "strength": 1.5, "radius": 0.4, "threshold": 0.2 },
      "light": { "color": "#00bbff", "intensity": 2, "distance": 8 },
      "tags": ["ice", "frost", "projectile", "orb", "spell", "aoe"]
    },
    "ice_ball": {
      "id": "ice_ball",
      "name": "Ice Ball",
      "category": "ice",
      "source": "unity-ummorp-casting",
      "description": "Concentrated sphere of frost energy — ranged projectile",
      "colors": { "primary": "#44ddff", "secondary": "#ffffff" },
      "timing": { "duration": 2.5, "loop": true, "speed": 1.0 },
      "shader": null,
      "particles": { "count": 150, "size": 0.06, "opacity": 0.8, "blending": "additive", "distribution": "sphere", "radius": 0.4, "trail": true },
      "geometry": { "type": "sphere", "radius": 0.3, "segments": 16, "metalness": 0.9, "roughness": 0.05 },
      "bloom": { "strength": 1.3, "radius": 0.3, "threshold": 0.25 },
      "light": { "color": "#44ddff", "intensity": 2, "distance": 6 },
      "tags": ["ice", "frost", "projectile", "ball", "ranged", "spell"]
    },
    "water_orb": {
      "id": "water_orb",
      "name": "Water Orb",
      "category": "ice",
      "source": "unity-ummorp-casting",
      "description": "Swirling water sphere with aqua trail",
      "colors": { "primary": "#0088cc", "secondary": "#44bbee" },
      "timing": { "duration": 3.0, "loop": true, "speed": 1.0 },
      "shader": null,
      "particles": { "count": 200, "size": 0.07, "opacity": 0.7, "blending": "additive", "distribution": "sphere", "radius": 0.5, "velocityY": [-0.5, 0.5] },
      "geometry": { "type": "sphere", "radius": 0.35, "segments": 16, "transparent": true, "opacity": 0.5, "refraction": true },
      "bloom": { "strength": 1.0, "radius": 0.3, "threshold": 0.3 },
      "light": { "color": "#0088cc", "intensity": 1.5, "distance": 6 },
      "tags": ["water", "ice", "projectile", "orb", "spell"]
    },
    "cured_ball": {
      "id": "cured_ball",
      "name": "Cured Ball",
      "category": "magic",
      "source": "unity-ummorp-casting",
      "description": "Holy cure sphere — healing projectile that removes debuffs",
      "colors": { "primary": "#ffee44", "secondary": "#ffffff" },
      "timing": { "duration": 2.0, "loop": true, "speed": 1.0 },
      "shader": null,
      "particles": { "count": 150, "size": 0.05, "opacity": 0.7, "blending": "additive", "distribution": "sphere", "radius": 0.4 },
      "geometry": { "type": "sphere", "radius": 0.3, "segments": 16, "emissiveIntensity": 0.8 },
      "bloom": { "strength": 1.5, "radius": 0.4, "threshold": 0.2 },
      "light": { "color": "#ffee44", "intensity": 2, "distance": 6 },
      "tags": ["magic", "heal", "cure", "holy", "projectile", "spell"]
    },
    "ground_lightning": {
      "id": "ground_lightning",
      "name": "Ground Lightning",
      "category": "lightning",
      "source": "unity-ummorp-casting",
      "description": "Lightning strikes upward from the ground in a targeted area",
      "colors": { "primary": "#ffffff", "secondary": "#88ccff" },
      "timing": { "duration": 0.8, "loop": true, "speed": 1.5 },
      "shader": "lightning",
      "particles": { "count": 250, "size": 0.08, "opacity": 1.0, "blending": "additive", "distribution": "ground", "radius": 2 },
      "geometry": { "type": "plane", "width": 0.4, "height": 5, "segments": [4, 24], "instances": 5, "layout": "random", "layoutRadius": 2 },
      "bloom": { "strength": 2.5, "radius": 0.6, "threshold": 0.1 },
      "light": { "color": "#ffffff", "intensity": 10, "distance": 15, "flicker": true },
      "tags": ["lightning", "ground", "aoe", "spell", "strike"]
    },
    "lightning_ball": {
      "id": "lightning_ball",
      "name": "Lightning Ball",
      "category": "lightning",
      "source": "unity-ummorp-casting",
      "description": "Crackling sphere of electric energy — slow-moving projectile",
      "colors": { "primary": "#ffff44", "secondary": "#aaddff" },
      "timing": { "duration": 3.0, "loop": true, "speed": 1.0 },
      "shader": "lightning",
      "particles": { "count": 200, "size": 0.06, "opacity": 0.9, "blending": "additive", "distribution": "sphere", "radius": 0.5 },
      "geometry": { "type": "sphere", "radius": 0.35, "segments": 16, "electricArcs": 6 },
      "bloom": { "strength": 2.0, "radius": 0.5, "threshold": 0.15 },
      "light": { "color": "#ffff44", "intensity": 4, "distance": 8, "flicker": true },
      "tags": ["lightning", "ball", "projectile", "ranged", "spell"]
    },
    "arcane_channeling": {
      "id": "arcane_channeling",
      "name": "Arcane Channeling",
      "category": "magic",
      "source": "unity-ummorp-casting",
      "description": "Spiral energy ring channeled around caster — charging animation",
      "colors": { "primary": "#8844ff", "secondary": "#cc88ff" },
      "timing": { "duration": 4.0, "loop": true, "speed": 1.0 },
      "shader": "magic",
      "particles": { "count": 400, "size": 0.04, "opacity": 0.7, "blending": "additive", "distribution": "spiral", "radius": 1.0, "spiralSpeed": 2.0, "height": 2 },
      "geometry": { "type": "ring", "innerRadius": 0.8, "outerRadius": 1.2, "segments": 64, "runes": { "count": 4, "radius": 1.0, "spacing": 0.6 } },
      "bloom": { "strength": 1.5, "radius": 0.4, "threshold": 0.2 },
      "light": { "color": "#8844ff", "intensity": 2, "distance": 6 },
      "tags": ["magic", "arcane", "channel", "cast", "charge"]
    },
    "light_channeling": {
      "id": "light_channeling",
      "name": "Light Channeling",
      "category": "magic",
      "source": "unity-ummorp-casting",
      "description": "Holy light energy channeled — healing and buff cast animation",
      "colors": { "primary": "#ffffaa", "secondary": "#ffffff" },
      "timing": { "duration": 3.0, "loop": true, "speed": 0.8 },
      "shader": "magic",
      "particles": { "count": 300, "size": 0.04, "opacity": 0.6, "blending": "additive", "distribution": "spiral", "radius": 1.0, "velocityY": [0.5, 1.5] },
      "bloom": { "strength": 1.8, "radius": 0.5, "threshold": 0.15 },
      "light": { "color": "#ffffaa", "intensity": 3, "distance": 8 },
      "tags": ["magic", "light", "holy", "channel", "heal", "buff"]
    },
    "stone_strike": {
      "id": "stone_strike",
      "name": "Stone Strike",
      "category": "impact",
      "source": "unity-ummorp-casting",
      "description": "Earth magic impact — rocks burst from the ground",
      "colors": { "primary": "#886644", "secondary": "#aa8866" },
      "timing": { "duration": 1.5, "loop": true, "speed": 1.0 },
      "shader": null,
      "particles": { "count": 300, "size": 0.15, "opacity": 1.0, "blending": "normal", "distribution": "explosion", "radius": 0.5, "velocityY": [2, 5], "gravity": -9.8 },
      "geometry": { "type": "compound", "elements": ["rock_debris", "dust_cloud", "ground_crack"] },
      "bloom": { "strength": 0.5, "radius": 0.2, "threshold": 0.5 },
      "tags": ["impact", "earth", "stone", "melee", "aoe"]
    },
    "meteor_hit": {
      "id": "meteor_hit",
      "name": "Meteor Hit",
      "category": "impact",
      "source": "unity-ummorp-casting",
      "description": "Massive flaming meteor crash — screen-shaking devastation",
      "colors": { "primary": "#ff4400", "secondary": "#ffaa00" },
      "timing": { "duration": 2.0, "loop": false, "speed": 1.0 },
      "shader": "fire",
      "particles": { "count": 800, "size": 0.15, "opacity": 0.95, "blending": "additive", "distribution": "explosion", "velocityY": [1, 6], "gravity": -5 },
      "geometry": { "type": "compound", "elements": ["fire_planes", "shockwave_ring", "crater_ring", "debris"] },
      "bloom": { "strength": 3.0, "radius": 0.6, "threshold": 0.1 },
      "light": { "color": "#ff6600", "intensity": 12, "distance": 20, "decay": true },
      "screenShake": { "intensity": 0.3, "duration": 0.5 },
      "tags": ["impact", "meteor", "fire", "aoe", "ultimate", "spell"]
    },

    "blue_portal": {
      "id": "blue_portal",
      "name": "Blue Portal",
      "category": "portal",
      "source": "unity-arpg-effects",
      "description": "Swirling blue energy portal — standard teleport destination",
      "colors": { "primary": "#4488ff", "secondary": "#aaccff" },
      "timing": { "duration": 5.0, "loop": true, "speed": 1.0 },
      "shader": "magic",
      "particles": { "count": 200, "size": 0.04, "opacity": 0.7, "blending": "additive", "distribution": "ring", "radius": 1.2 },
      "geometry": { "type": "torus", "radius": 1.0, "tube": 0.15, "segments": [32, 16], "innerDisc": true, "innerOpacity": 0.3 },
      "bloom": { "strength": 1.5, "radius": 0.4, "threshold": 0.2 },
      "light": { "color": "#4488ff", "intensity": 2, "distance": 8 },
      "tags": ["portal", "teleport", "blue", "interactive"]
    },
    "green_portal": {
      "id": "green_portal",
      "name": "Green Portal",
      "category": "portal",
      "source": "unity-arpg-effects",
      "description": "Nature-infused portal — druid and ranger teleport",
      "colors": { "primary": "#44ff44", "secondary": "#aaffaa" },
      "timing": { "duration": 5.0, "loop": true, "speed": 1.0 },
      "shader": "magic",
      "particles": { "count": 200, "size": 0.04, "opacity": 0.7, "blending": "additive", "distribution": "ring", "radius": 1.2 },
      "geometry": { "type": "torus", "radius": 1.0, "tube": 0.15, "segments": [32, 16], "innerDisc": true, "innerOpacity": 0.3 },
      "bloom": { "strength": 1.5, "radius": 0.4, "threshold": 0.2 },
      "light": { "color": "#44ff44", "intensity": 2, "distance": 8 },
      "tags": ["portal", "teleport", "green", "nature", "interactive"]
    },
    "purple_portal": {
      "id": "purple_portal",
      "name": "Purple Portal",
      "category": "portal",
      "source": "unity-arpg-effects",
      "description": "Arcane void portal — mage and warlock teleport",
      "colors": { "primary": "#aa44ff", "secondary": "#ddaaff" },
      "timing": { "duration": 5.0, "loop": true, "speed": 1.2 },
      "shader": "magic",
      "particles": { "count": 250, "size": 0.04, "opacity": 0.7, "blending": "additive", "distribution": "ring", "radius": 1.2 },
      "geometry": { "type": "torus", "radius": 1.0, "tube": 0.15, "segments": [32, 16], "innerDisc": true, "innerOpacity": 0.4 },
      "bloom": { "strength": 1.8, "radius": 0.5, "threshold": 0.15 },
      "light": { "color": "#aa44ff", "intensity": 2.5, "distance": 8 },
      "tags": ["portal", "teleport", "purple", "arcane", "interactive"]
    },
    "red_portal": {
      "id": "red_portal",
      "name": "Red Portal",
      "category": "portal",
      "source": "unity-arpg-effects",
      "description": "Demonic portal — enemy spawn or dungeon entrance",
      "colors": { "primary": "#ff2222", "secondary": "#ff8888" },
      "timing": { "duration": 5.0, "loop": true, "speed": 0.8 },
      "shader": "magic",
      "particles": { "count": 300, "size": 0.05, "opacity": 0.8, "blending": "additive", "distribution": "ring", "radius": 1.2 },
      "geometry": { "type": "torus", "radius": 1.0, "tube": 0.15, "segments": [32, 16], "innerDisc": true, "innerOpacity": 0.5 },
      "bloom": { "strength": 2.0, "radius": 0.5, "threshold": 0.15 },
      "light": { "color": "#ff2222", "intensity": 3, "distance": 10 },
      "tags": ["portal", "teleport", "red", "demonic", "dungeon", "interactive"]
    },
    "home_portal": {
      "id": "home_portal",
      "name": "Home Portal",
      "category": "portal",
      "source": "unity-arpg-effects",
      "description": "Golden home recall portal — hearth teleport",
      "colors": { "primary": "#ffcc44", "secondary": "#ffffaa" },
      "timing": { "duration": 5.0, "loop": true, "speed": 1.0 },
      "shader": "magic",
      "particles": { "count": 200, "size": 0.04, "opacity": 0.6, "blending": "additive", "distribution": "ring", "radius": 1.0 },
      "geometry": { "type": "torus", "radius": 0.8, "tube": 0.12, "segments": [32, 16], "innerDisc": true, "innerOpacity": 0.3 },
      "bloom": { "strength": 1.2, "radius": 0.3, "threshold": 0.25 },
      "light": { "color": "#ffcc44", "intensity": 2, "distance": 6 },
      "tags": ["portal", "teleport", "home", "hearth", "interactive"]
    },

    "shield_block": {
      "id": "shield_block",
      "name": "Shield Block",
      "category": "combat",
      "source": "unity-arpg-effects",
      "description": "Translucent shield barrier — block animation with impact flash",
      "colors": { "primary": "#4488ff", "secondary": "#aaccff" },
      "timing": { "duration": 0.5, "loop": false, "speed": 1.0 },
      "shader": null,
      "particles": { "count": 50, "size": 0.03, "opacity": 0.5, "blending": "additive", "distribution": "hemisphere", "radius": 1.0 },
      "geometry": { "type": "sphere", "radius": 1.0, "segments": 32, "thetaLength": 1.5, "transparent": true, "opacity": 0.3, "side": "front" },
      "bloom": { "strength": 1.0, "radius": 0.3, "threshold": 0.3 },
      "tags": ["combat", "shield", "block", "defense", "warrior"]
    },
    "shield_hit": {
      "id": "shield_hit",
      "name": "Shield Hit",
      "category": "combat",
      "source": "unity-arpg-effects",
      "description": "Flash and spark burst when shield absorbs a hit",
      "colors": { "primary": "#ffffff", "secondary": "#88ccff" },
      "timing": { "duration": 0.3, "loop": false, "speed": 1.5 },
      "shader": null,
      "particles": { "count": 80, "size": 0.05, "opacity": 1.0, "blending": "additive", "distribution": "hemisphere", "radius": 0.5, "velocityY": [0, 2] },
      "bloom": { "strength": 2.5, "radius": 0.5, "threshold": 0.1 },
      "light": { "color": "#ffffff", "intensity": 5, "distance": 4, "decay": true },
      "tags": ["combat", "shield", "hit", "impact", "defense"]
    },
    "level_up": {
      "id": "level_up",
      "name": "Level Up",
      "category": "aura",
      "source": "unity-arpg-effects",
      "description": "Golden particles spiraling upward — level-up celebration",
      "colors": { "primary": "#ffdd00", "secondary": "#ffffff" },
      "timing": { "duration": 3.0, "loop": false, "speed": 1.0 },
      "shader": null,
      "particles": { "count": 500, "size": 0.06, "opacity": 0.9, "blending": "additive", "distribution": "cylinder", "radius": 1.0, "velocityY": [2, 5] },
      "bloom": { "strength": 2.0, "radius": 0.5, "threshold": 0.15 },
      "light": { "color": "#ffdd00", "intensity": 4, "distance": 10, "decay": true },
      "tags": ["aura", "level", "celebration", "gold", "interactive"]
    },
    "teleport_channel": {
      "id": "teleport_channel",
      "name": "Teleport Channel",
      "category": "magic",
      "source": "unity-arpg-effects",
      "description": "Spinning magic circle beneath feet — pre-teleport charge",
      "colors": { "primary": "#44aaff", "secondary": "#88ddff" },
      "timing": { "duration": 2.0, "loop": true, "speed": 1.5 },
      "shader": "magic",
      "particles": { "count": 200, "size": 0.03, "opacity": 0.7, "blending": "additive", "distribution": "ring", "radius": 0.8, "velocityY": [1, 2] },
      "geometry": { "type": "ring", "innerRadius": 0.6, "outerRadius": 1.0, "segments": 64, "rotateSpeed": 3.0 },
      "bloom": { "strength": 1.5, "radius": 0.4, "threshold": 0.2 },
      "tags": ["magic", "teleport", "channel", "cast", "interactive"]
    },
    "teleport_finish": {
      "id": "teleport_finish",
      "name": "Teleport Finish",
      "category": "magic",
      "source": "unity-arpg-effects",
      "description": "Flash burst on teleport arrival — quick dissipation",
      "colors": { "primary": "#ffffff", "secondary": "#88ddff" },
      "timing": { "duration": 0.5, "loop": false, "speed": 2.0 },
      "shader": null,
      "particles": { "count": 300, "size": 0.05, "opacity": 1.0, "blending": "additive", "distribution": "sphere", "radius": 1.5, "velocityOutward": 3 },
      "bloom": { "strength": 3.0, "radius": 0.6, "threshold": 0.05 },
      "light": { "color": "#ffffff", "intensity": 8, "distance": 12, "decay": true },
      "tags": ["magic", "teleport", "flash", "arrival", "interactive"]
    },

    "energy_explosion": {
      "id": "energy_explosion",
      "name": "Energy Explosion",
      "category": "impact",
      "source": "unity-new-effects",
      "description": "AOE magic explosion — massive energy burst with ground scorching",
      "colors": { "primary": "#ff44aa", "secondary": "#ffaacc" },
      "timing": { "duration": 1.5, "loop": false, "speed": 1.0 },
      "shader": "shockwave",
      "particles": { "count": 800, "size": 0.1, "opacity": 0.95, "blending": "additive", "distribution": "explosion", "velocityY": [1, 6], "gravity": -3 },
      "geometry": { "type": "compound", "elements": ["shockwave_ring", "energy_sphere", "debris"] },
      "bloom": { "strength": 3.0, "radius": 0.6, "threshold": 0.1 },
      "light": { "color": "#ff44aa", "intensity": 10, "distance": 15, "decay": true },
      "screenShake": { "intensity": 0.2, "duration": 0.4 },
      "tags": ["impact", "explosion", "magic", "aoe", "spell"]
    },
    "sword_slash": {
      "id": "sword_slash",
      "name": "Sword Slash",
      "category": "combat",
      "source": "unity-new-effects",
      "description": "Arcing slash trail — melee attack visual with motion blur",
      "colors": { "primary": "#ffffff", "secondary": "#aaccff" },
      "timing": { "duration": 0.4, "loop": false, "speed": 2.0 },
      "shader": null,
      "particles": { "count": 30, "size": 0.02, "opacity": 0.8, "blending": "additive", "distribution": "arc" },
      "geometry": { "type": "arc", "radius": 1.5, "arcAngle": 2.0, "width": 0.08, "segments": 32, "taper": true },
      "bloom": { "strength": 1.5, "radius": 0.3, "threshold": 0.2 },
      "tags": ["combat", "melee", "slash", "sword", "warrior", "ranger"]
    },
    "spikes_attack": {
      "id": "spikes_attack",
      "name": "Spikes Attack",
      "category": "combat",
      "source": "unity-new-effects",
      "description": "Earth spikes erupt from ground — melee AoE ability",
      "colors": { "primary": "#886644", "secondary": "#664422" },
      "timing": { "duration": 1.0, "loop": false, "speed": 1.0 },
      "shader": null,
      "particles": { "count": 100, "size": 0.1, "opacity": 1.0, "blending": "normal", "distribution": "line", "velocityY": [3, 6], "gravity": -9.8 },
      "geometry": { "type": "compound", "elements": ["spike_cones", "dust_cloud", "ground_crack"], "spikeCount": 8, "spikeRadius": 2 },
      "bloom": { "strength": 0.5, "radius": 0.2, "threshold": 0.5 },
      "tags": ["combat", "earth", "spikes", "melee", "aoe"]
    },

    "magic_fire_blue": {
      "id": "magic_fire_blue",
      "name": "Magic Fire Blue",
      "category": "fire",
      "source": "unity-arpg-effects",
      "description": "Blue arcane flame — mage fire with magical tint",
      "colors": { "primary": "#2266ff", "secondary": "#88aaff" },
      "timing": { "duration": 5.0, "loop": true, "speed": 1.0 },
      "shader": "fire",
      "particles": { "count": 100, "size": 0.08, "opacity": 0.7, "blending": "additive", "distribution": "cone", "radius": 0.2, "velocityY": [1, 2] },
      "bloom": { "strength": 1.2, "radius": 0.3, "threshold": 0.25 },
      "light": { "color": "#2266ff", "intensity": 2, "distance": 5, "flicker": true },
      "uniforms": { "uIntensity": { "value": 1.2, "min": 0, "max": 5 } },
      "tags": ["fire", "magic", "blue", "environment", "torch"]
    },
    "magic_fire_purple": {
      "id": "magic_fire_purple",
      "name": "Magic Fire Purple",
      "category": "fire",
      "source": "unity-arpg-effects",
      "description": "Purple fel flame — warlock fire",
      "colors": { "primary": "#8822cc", "secondary": "#cc88ff" },
      "timing": { "duration": 5.0, "loop": true, "speed": 1.0 },
      "shader": "fire",
      "particles": { "count": 100, "size": 0.08, "opacity": 0.7, "blending": "additive", "distribution": "cone", "radius": 0.2, "velocityY": [1, 2] },
      "bloom": { "strength": 1.2, "radius": 0.3, "threshold": 0.25 },
      "light": { "color": "#8822cc", "intensity": 2, "distance": 5, "flicker": true },
      "uniforms": { "uIntensity": { "value": 1.2, "min": 0, "max": 5 } },
      "tags": ["fire", "magic", "purple", "fel", "environment", "torch"]
    },
    "ground_fog": {
      "id": "ground_fog",
      "name": "Ground Fog",
      "category": "environment",
      "source": "unity-arpg-effects",
      "description": "Low-lying atmospheric fog — creeping mist along the ground",
      "colors": { "primary": "#aabbcc", "secondary": "#556677" },
      "timing": { "duration": 10.0, "loop": true, "speed": 0.3 },
      "shader": null,
      "particles": { "count": 500, "size": 2.0, "opacity": 0.15, "blending": "normal", "distribution": "plane", "radius": 10, "height": 0.5 },
      "bloom": { "strength": 0.3, "radius": 0.2, "threshold": 0.5 },
      "tags": ["environment", "fog", "weather", "atmosphere"]
    },
    "rain": {
      "id": "rain",
      "name": "Rain",
      "category": "environment",
      "source": "unity-arpg-effects",
      "description": "Falling rain particles with slight wind drift",
      "colors": { "primary": "#8899aa", "secondary": "#aabbcc" },
      "timing": { "duration": 10.0, "loop": true, "speed": 1.0 },
      "shader": null,
      "particles": { "count": 2000, "size": 0.02, "opacity": 0.4, "blending": "normal", "distribution": "volume", "width": 15, "height": 10, "velocityY": [-8, -12] },
      "bloom": { "strength": 0.2, "radius": 0.1, "threshold": 0.7 },
      "tags": ["environment", "rain", "weather", "atmosphere"]
    },
    "blowing_leaves": {
      "id": "blowing_leaves",
      "name": "Blowing Leaves",
      "category": "environment",
      "source": "unity-arpg-effects",
      "description": "Autumn leaves drifting in the wind",
      "colors": { "primary": "#aa6622", "secondary": "#cc8844" },
      "timing": { "duration": 10.0, "loop": true, "speed": 0.5 },
      "shader": null,
      "particles": { "count": 50, "size": 0.15, "opacity": 0.9, "blending": "normal", "distribution": "volume", "width": 10, "height": 5, "spin": true, "spinSpeed": 1.5, "velocityX": [1, 3], "velocityY": [-0.5, -1.5] },
      "bloom": { "strength": 0, "radius": 0, "threshold": 1 },
      "tags": ["environment", "leaves", "wind", "nature", "atmosphere"]
    },
    "dripping_water": {
      "id": "dripping_water",
      "name": "Dripping Water",
      "category": "environment",
      "source": "unity-arpg-effects",
      "description": "Water droplets falling from ceiling — cave/dungeon atmosphere",
      "colors": { "primary": "#6688aa", "secondary": "#88aacc" },
      "timing": { "duration": 5.0, "loop": true, "speed": 0.8 },
      "shader": null,
      "particles": { "count": 20, "size": 0.04, "opacity": 0.6, "blending": "normal", "distribution": "points", "velocityY": [-3, -5], "splash": true },
      "bloom": { "strength": 0.3, "radius": 0.1, "threshold": 0.5 },
      "tags": ["environment", "water", "drip", "cave", "dungeon"]
    },
    "item_pickup": {
      "id": "item_pickup",
      "name": "Item Pickup",
      "category": "aura",
      "source": "unity-arpg-effects",
      "description": "Golden sparkle burst when picking up loot",
      "colors": { "primary": "#ffcc00", "secondary": "#ffffff" },
      "timing": { "duration": 0.8, "loop": false, "speed": 1.5 },
      "shader": null,
      "particles": { "count": 100, "size": 0.04, "opacity": 0.9, "blending": "additive", "distribution": "sphere", "radius": 0.5, "velocityOutward": 2 },
      "bloom": { "strength": 1.5, "radius": 0.4, "threshold": 0.2 },
      "light": { "color": "#ffcc00", "intensity": 3, "distance": 4, "decay": true },
      "tags": ["aura", "loot", "pickup", "gold", "interactive"]
    },
    "health_orb": {
      "id": "health_orb",
      "name": "Health Orb",
      "category": "aura",
      "source": "unity-arpg-effects",
      "description": "Floating red healing orb — consumable health pickup",
      "colors": { "primary": "#ff2222", "secondary": "#ff8888" },
      "timing": { "duration": 5.0, "loop": true, "speed": 1.0 },
      "shader": null,
      "particles": { "count": 30, "size": 0.03, "opacity": 0.6, "blending": "additive", "distribution": "sphere", "radius": 0.3, "float": true, "floatSpeed": 1.0 },
      "geometry": { "type": "sphere", "radius": 0.2, "segments": 16, "emissiveIntensity": 0.8 },
      "bloom": { "strength": 1.0, "radius": 0.3, "threshold": 0.3 },
      "light": { "color": "#ff2222", "intensity": 1, "distance": 3 },
      "tags": ["aura", "health", "orb", "loot", "heal", "interactive"]
    },
    "health_aura": {
      "id": "health_aura",
      "name": "Health Aura",
      "category": "aura",
      "source": "unity-ummorp-skills",
      "description": "Persistent green healing aura — party heal over time",
      "colors": { "primary": "#44ff44", "secondary": "#aaffaa" },
      "timing": { "duration": 5.0, "loop": true, "speed": 0.8 },
      "shader": null,
      "particles": { "count": 150, "size": 0.04, "opacity": 0.5, "blending": "additive", "distribution": "cylinder", "radius": 1.5, "height": 2, "velocityY": [0.3, 0.8] },
      "geometry": { "type": "ring", "innerRadius": 1.2, "outerRadius": 1.5, "segments": 64, "rotateSpeed": 1.0 },
      "bloom": { "strength": 1.0, "radius": 0.3, "threshold": 0.3 },
      "light": { "color": "#44ff44", "intensity": 1.5, "distance": 6 },
      "tags": ["aura", "health", "heal", "buff", "party"]
    },
    "blessing": {
      "id": "blessing",
      "name": "Blessing",
      "category": "magic",
      "source": "unity-ummorp-skills",
      "description": "Holy blessing buff — golden particles descend from above",
      "colors": { "primary": "#ffee44", "secondary": "#ffffff" },
      "timing": { "duration": 2.0, "loop": false, "speed": 1.0 },
      "shader": null,
      "particles": { "count": 200, "size": 0.05, "opacity": 0.7, "blending": "additive", "distribution": "cylinder", "radius": 1.0, "height": 3, "velocityY": [-1, -2] },
      "bloom": { "strength": 1.5, "radius": 0.4, "threshold": 0.2 },
      "light": { "color": "#ffee44", "intensity": 3, "distance": 8, "decay": true },
      "tags": ["magic", "holy", "blessing", "buff", "heal"]
    },
    "arrow_trail": {
      "id": "arrow_trail",
      "name": "Arrow Trail",
      "category": "combat",
      "source": "unity-ummorp-skills",
      "description": "Arrow flight trail — ranger projectile visual",
      "colors": { "primary": "#ffffff", "secondary": "#aabbcc" },
      "timing": { "duration": 1.0, "loop": true, "speed": 1.0 },
      "shader": null,
      "particles": { "count": 40, "size": 0.02, "opacity": 0.5, "blending": "additive", "distribution": "trail", "trailLength": 2 },
      "bloom": { "strength": 0.5, "radius": 0.2, "threshold": 0.4 },
      "tags": ["combat", "arrow", "trail", "projectile", "ranger"]
    },
    "bone_dagger": {
      "id": "bone_dagger",
      "name": "Bone Dagger",
      "category": "combat",
      "source": "unity-ummorp-skills",
      "description": "Necromantic bone projectile — dark magic ranged attack",
      "colors": { "primary": "#ccbb88", "secondary": "#665544" },
      "timing": { "duration": 1.5, "loop": true, "speed": 1.0 },
      "shader": null,
      "particles": { "count": 30, "size": 0.03, "opacity": 0.6, "blending": "additive", "distribution": "trail", "trailLength": 1.5 },
      "geometry": { "type": "cone", "radius": 0.05, "height": 0.4, "segments": 4, "emissiveIntensity": 0.3 },
      "bloom": { "strength": 0.8, "radius": 0.2, "threshold": 0.3 },
      "tags": ["combat", "dark", "bone", "projectile", "ranged"]
    }
  }
}
