{
  "name": "Molten Gold",
  "dimension": "text",
  "slot": "action_bar",
  "width": 256,
  "height": 128,
  "textBaseline": 128,
  "placement": {
    "x": 0,
    "y": 0
  },
  "shapes": [],
  "texts": [],
  "heads": [],
  "images": [],
  "bars": [],
  "triggers": [],
  "effect": {
    "glsl": "float goldDrip(vec2 p, float x, float base, float reach, float bead, float enabled) {\n    float stem = step(x, p.x) * (1.0 - step(x + 1.0, p.x))\n               * step(base - 0.5, p.y) * (1.0 - step(base + reach, p.y));\n    float drop = step(x, p.x) * (1.0 - step(x + 1.0, p.x))\n               * step(bead, p.y) * (1.0 - step(bead + 1.0, p.y));\n    return max(stem, drop) * enabled;\n}\nvec4 effect(Fx f) {\n    float seed = h2(f.o + vec2(2.3, 9.7));\n    float x = floor(h2(f.o + vec2(13.0, 4.0)) * max(f.w, 1.0));\n    float base = 0.0;\n    for (int i = 4; i < 8; i++) {\n        float y = float(i);\n        if (G(vec2(x + 0.5, y + 0.5)) > 0.5) base = y + 1.0;\n    }\n    float phase = fract(f.t / 4.0 + seed);\n    float reach = phase < 0.7 ? 2.0 * smoothstep(0.06, 0.7, phase) : 0.55 * (1.0 - smoothstep(0.7, 0.85, phase));\n    float bead = phase < 0.7 ? base + max(reach - 1.0, -0.5) : base + 1.0 + 2.0 * pow((phase - 0.7) / 0.3, 2.0);\n    float enabled = step(5.0, base) * step(0.15, seed) * (1.0 - smoothstep(0.92, 1.0, phase));\n    vec2 p = f.q;\n    float a = max(G(p), goldDrip(p, x, base, reach, bead, enabled));\n    float up = max(G(p - vec2(0.0, 1.0)), goldDrip(p - vec2(0.0, 1.0), x, base, reach, bead, enabled));\n    float dn = max(G(p + vec2(0.0, 1.0)), goldDrip(p + vec2(0.0, 1.0), x, base, reach, bead, enabled));\n    float lt = max(G(p - vec2(1.0, 0.0)), goldDrip(p - vec2(1.0, 0.0), x, base, reach, bead, enabled));\n    float rt = max(G(p + vec2(1.0, 0.0)), goldDrip(p + vec2(1.0, 0.0), x, base, reach, bead, enabled));\n    float shadow = max(G(p - 1.0), goldDrip(p - 1.0, x, base, reach, bead, enabled));\n    vec2 g = f.o + p;\n    float flow = vnoise(vec2(g.x * 0.44 + 0.22 * sin(f.t * 1.1), p.y * 0.5 - f.t * 0.8));\n    float ribbon = sin(p.y * 1.25 - g.x * 0.3 - f.t * 1.7 + flow * 5.0);\n    vec3 c = vec3(1.0, 0.68, 0.065);\n    if (ribbon < -0.45) c = vec3(0.9, 0.43, 0.025);\n    if (ribbon > 0.3) c = vec3(1.0, 0.84, 0.25);\n    if (ribbon > 0.8) c = vec3(1.0, 0.97, 0.7);\n    if (dn < 0.5) c = mix(c, vec3(0.78, 0.32, 0.018), 0.5);\n    if (up < 0.5) c = mix(c, vec3(1.0, 0.95, 0.59), 0.8);\n    if (lt < 0.5 && ribbon > 0.0) c = mix(c, vec3(1.0, 0.9, 0.39), 0.5);\n    float rim = max(max(up, dn), max(lt, rt));\n    vec4 back = over(vec4(0.24, 0.105, 0.016, rim), vec4(0.105, 0.04, 0.008, shadow));\n    return over(vec4(c, a), back);\n}",
    "pad": [
      1,
      1,
      2,
      5
    ],
    "prompt": "Molten gold",
    "sample": "Molten Gold"
  }
}