{
  "name": "Slime",
  "dimension": "text",
  "slot": "action_bar",
  "width": 256,
  "height": 128,
  "textBaseline": 128,
  "placement": {
    "x": 0,
    "y": 0
  },
  "shapes": [],
  "texts": [],
  "heads": [],
  "images": [],
  "bars": [],
  "triggers": [],
  "effect": {
    "glsl": "vec4 effect(Fx f) {\n    float a = G(f.p);\n    vec3 c = G(f.p - vec2(0.0, 1.0)) < 0.5 ? vec3(0.74, 1.0, 0.64)\n           : G(f.p + vec2(0.0, 1.0)) < 0.5 ? vec3(0.22, 0.6, 0.2) : vec3(0.45, 0.88, 0.38);\n    vec4 col = vec4(c, a);\n    float bottom = -1.0;\n    for (int y = 15; y >= 0; y--) {\n        if (float(y) < f.size.y && G(vec2(f.q.x, float(y) + 0.5)) > 0.5) { bottom = float(y); break; }\n    }\n    float hc = h2(vec2(floor(f.g.x), 9.1));\n    if (bottom >= 0.0 && a < 0.5 && hc > 0.5) {\n        float life = fract(f.t * 0.3 + hc * 13.0);\n        float dy = floor(f.q.y) - bottom;\n        float len = life < 0.7 ? floor(smoothstep(0.0, 0.7, life) * 4.0) : floor(4.0 * (1.0 - (life - 0.7) / 0.3));\n        if (dy >= 1.0 && dy <= len) col = vec4(0.4, 0.85, 0.34, 0.95);\n        if (life > 0.7 && abs(dy - floor(5.0 + (life - 0.7) * 24.0)) < 0.5) {\n            col = vec4(0.58, 0.96, 0.52, 0.95 * (1.0 - (life - 0.7) / 0.3));\n        }\n    }\n    return over(col, vec4(0.05, 0.2, 0.05, G(f.p - 1.0) * 0.6));\n}\n",
    "pad": [
      1,
      1,
      2,
      9
    ],
    "prompt": "",
    "preset": "slime",
    "sample": "Slimy"
  }
}