[
    {
        "id": "847075fc-7290-4c0f-a809-90239208a98e",
        "scriptName": "Tremble Dialogue Regex",
        "findRegex": "/<\\s{0,8}(?:color\\s{0,8}:\\s{0,8})?(cyan|pink|teal|orange|gold|violet|salmon|orchid|yellow|plum)[^>]{0,120}\\btremble\\b[^>]{0,120}>([“\"][^”\"]{1,2000}?[”\"])(?:\\s{0,8}<\\s{0,8}\\/\\s{0,8}[^<>\\n\\r]{0,40}>|\\s{0,8}<\\s{0,8}\\/\\s{0,8}[a-zA-Z0-9_-]{0,24}:|\\s{0,8}(?:\\1|tremble)>)?/gi",
        "replaceString": "<span style=\"color:$1;letter-spacing:1.5px;opacity:0.85;font-style:italic;\">$2</span>",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": true,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "b3008048-2646-4cf9-90a3-1c533cfd3fcc",
        "scriptName": "Measured Dialogue Regex",
        "findRegex": "/<\\s{0,8}(?:color\\s{0,8}:\\s{0,8})?(cyan|pink|teal|orange|gold|violet|salmon|orchid|yellow|plum)[^>]{0,120}\\bmeasured\\b[^>]{0,120}>([“\"][^”\"]{1,2000}?[”\"])(?:\\s{0,8}<\\s{0,8}\\/\\s{0,8}[^<>\\n\\r]{0,40}>|\\s{0,8}<\\s{0,8}\\/\\s{0,8}[a-zA-Z0-9_-]{0,24}:|\\s{0,8}(?:\\1|measured)>)?/gi",
        "replaceString": "<span style=\"color:$1;font-weight:bold;letter-spacing:0.8px;text-shadow:0 0 3px #000, 1px 1px 2px #000;\">$2</span>",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": true,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "fa5a6eaf-d262-4b00-b9d4-4a06280763c1",
        "scriptName": "Whisper Dialogue Regex",
        "findRegex": "/<\\s{0,8}(?:color\\s{0,8}:\\s{0,8})?(cyan|pink|teal|orange|gold|violet|salmon|orchid|yellow|plum)[^>]{0,120}\\bwhisper\\b[^>]{0,120}>([“\"][^”\"]{1,2000}?[”\"])(?:\\s{0,8}<\\s{0,8}\\/\\s{0,8}[^<>\\n\\r]{0,40}>|\\s{0,8}<\\s{0,8}\\/\\s{0,8}[a-zA-Z0-9_-]{0,24}:|\\s{0,8}(?:\\1|whisper)>)?/gi",
        "replaceString": "<span style=\"color:$1;font-size:0.85em;opacity:0.75;font-style:italic;\">$2</span>",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": true,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "f526816e-1242-476b-9ffc-466af5563ece",
        "scriptName": "Shout Dialogue Regex",
        "findRegex": "/<\\s{0,8}(?:color\\s{0,8}:\\s{0,8})?(cyan|pink|teal|orange|gold|violet|salmon|orchid|yellow|plum)[^>]{0,120}\\bshout\\b[^>]{0,120}>([“\"][^”\"]{1,2000}?[”\"])(?:\\s{0,8}<\\s{0,8}\\/\\s{0,8}[^<>\\n\\r]{0,40}>|\\s{0,8}<\\s{0,8}\\/\\s{0,8}[a-zA-Z0-9_-]{0,24}:|\\s{0,8}(?:\\1|shout)>)?/gi",
        "replaceString": "<span style=\"color:$1;font-size:1.15em;font-weight:900;text-shadow:0 0 6px $1;\">$2</span>",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": true,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "dc2817e6-9e08-4f1e-a3a1-e85907310a77",
        "scriptName": "FF5 - Universal Dialogue Colorizer",
        "findRegex": "/<\\s{0,8}(?:color\\s{0,8}:\\s{0,8})?(cyan|pink|teal|orange|gold|violet|salmon|orchid|yellow|plum)\\s{0,8}>([“\"][^”\"]{1,2000}?[”\"])(?:\\s{0,8}<\\s{0,8}\\/\\s{0,8}[^<>\\n\\r]{0,40}>|\\s{0,8}<\\s{0,8}\\/\\s{0,8}[a-zA-Z0-9_-]{0,24}:|\\s{0,8}\\1>)?/gi",
        "replaceString": "<span style=\"color:$1;\">$2</span>",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": true,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "cadef980-7a9e-4abc-9d56-480ac5916102",
        "scriptName": "RF2.2.1 — Velvet Log Sanitiser",
        "findRegex": "/\\\\bvelvet(?:y|een)?\\\\b/gi",
        "replaceString": "soft",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": true,
        "markdownOnly": false,
        "promptOnly": true,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": 0,
        "maxDepth": null
    },
    {
        "id": "8eece989-4c29-49b8-816d-f9ccfa848c14",
        "scriptName": "RF2 - Fat Man's Token Saver",
        "findRegex": "<!-- GFX_START -->[\\s\\S]*?<!-- GFX_END -->",
        "replaceString": "",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": true,
        "markdownOnly": false,
        "promptOnly": true,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": 0,
        "maxDepth": null
    },
    {
        "id": "beb1cdea-765d-4360-9793-daeea31f8ecf",
        "scriptName": "RF2 - Fat Man's Clean Plot Momentum",
        "findRegex": "/<details>\\n<summary>Plot Momentum<\\/summary>[\\s\\S]*?<\\/details>/",
        "replaceString": "",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": true,
        "markdownOnly": false,
        "promptOnly": true,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": 2,
        "maxDepth": null
    },
    {
        "id": "00392ccb-9ba7-4a51-9651-d5b0e8805aec",
        "scriptName": "RF2.2.1 — Strip stacked name prefix before header (group chats, opt-in)",
        "findRegex": "/^\\s*(?:[^\\n\\[\\]:]{1,60}:\\s*)+(?=\\[)/",
        "replaceString": "",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": true,
        "markdownOnly": false,
        "promptOnly": false,
        "runOnEdit": true,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "a0ee440d-afba-4614-9713-a0b983fae279",
        "scriptName": "RF2.1 UI - Drop leading break in group",
        "findRegex": "/(<ul[^>]*>)(?:\\s|<br\\s*\\/?>)*(?:<br\\s*\\/?>)(?:\\s|<br\\s*\\/?>)*/g",
        "replaceString": "$1",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "253b8433-8b7f-4e42-ba12-54d900154f60",
        "scriptName": "RF2.1 UI - Drop trailing break",
        "findRegex": "/<br\\s*\\/?>(?:\\s|<br\\s*\\/?>)*(<\\/ul>|<\\/details>)/g",
        "replaceString": "$1",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "f251cb3b-78a9-4f40-b912-88575cf11f43",
        "scriptName": "RF2.1 UI - Collapse bond card gaps",
        "findRegex": "/(<\\/div>)(?:\\s|<br\\s*\\/?>)+(<div style=\\\"background:rgba\\(24,24,37)/g",
        "replaceString": "$1$2",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "067f557c-0289-4d08-92d6-cdfcee5a7192",
        "scriptName": "RF2.1 UI - Close gaps at block tail",
        "findRegex": "/(<\\/div>|<\\/ul>|<\\/details>|<\\/internal_states>)(?:\\s|<br\\s*\\/?>)+(?=<\\/ul>|<\\/details>|<\\/internal_states>|<!-- GFX_END -->)/g",
        "replaceString": "$1",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "945c078a-1d7f-4da3-aa6a-f1eda45cc5b6",
        "scriptName": "RF2.1 UI - Neutralise group list padding",
        "findRegex": "/<ul>/g",
        "replaceString": "<ul style=\"list-style:none;margin:0;padding:0 8px;\">",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "09dbc165-f444-4d84-91fc-35ac9770b163",
        "scriptName": "RF2.1 UI - Strip label dashes (optional)",
        "findRegex": "/-\\s*(<b style=\\\"color:#f9e2af)/g",
        "replaceString": "$1",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "3814d8a0-56f8-4b73-8f5f-a321b793f8f8",
        "scriptName": "FF5 UI - Collapse Detail Spacing",
        "findRegex": "/<\\/details>(?:\\s|<br>|<br\\/>|<br \\/>|<p>|<p\\/>|<p \\/>|<\\/p>)+<details/gi",
        "replaceString": "</details><details",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "9e6acf78-d6c6-4f71-a471-b3f2ab228d14",
        "scriptName": "FF5 UI - GM Notebook Highlights",
        "findRegex": "/-[ \\t]{0,8}\\[([RTD])\\]/g",
        "replaceString": "- <b style=\"color:#f9e2af;font-weight:600;text-shadow:0 0 2px rgba(249,226,175,0.2);\">[$1]</b>",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "d5d6e810-f74a-4d6c-9f6d-763c49a7e2cb",
        "scriptName": "FF5 - Relationship Bars (Negative)",
        "findRegex": "/-?[ \\t]{0,8}(?:<b[^>]{0,120}>)?\\s{0,8}([^<|↔\\n]{1,80}?)\\s{0,8}(?:<\\/b>)?\\s{0,8}↔\\s{0,8}(?:<b[^>]{0,120}>)?\\s{0,8}([^<|\\n]{1,80}?)\\s{0,8}(?:<\\/b>)?\\s{0,8}\\|\\s{0,8}BOND:\\s{0,8}(-)(\\d{1,6})\\s{0,8}\\|\\s{0,8}SPARKS?:\\s{0,8}(\\d{1,6})\\s{0,8}\\|\\s{0,8}GRUDGE:\\s{0,8}(\\d{1,6})/gi",
        "replaceString": "<div style=\"background:rgba(24,24,37,0.8);border:1px solid #45475a;border-radius:6px;padding:15px;margin-bottom:12px;box-shadow:0 4px 10px rgba(0,0,0,0.3);\"><div style=\"text-align:center;font-size:1.1em;font-weight:bold;color:#cdd6f4;margin-bottom:12px;text-transform:uppercase;letter-spacing:1px;\">$1 <span style=\"color:#74c7ec;margin:0 8px;\">⟷</span> $2</div><div style=\"display:flex;flex-direction:column;gap:12px;\"><div style=\"display:flex;align-items:center;gap:12px;\"><span style=\"width:80px;font-weight:bold;font-size:0.85em;text-align:right;color:#f38ba8;text-shadow:1px 1px 2px #000;\">BOND: $3$4</span><div style=\"flex-grow:1;height:14px;background:rgba(0,0,0,0.6);border-radius:7px;box-shadow:inset 0 1px 4px rgba(0,0,0,0.8);border:1px solid #313244;\"><div style=\"height:100%;border-radius:7px;background:linear-gradient(90deg,#eba0ac,#f38ba8);box-shadow:0 0 8px rgba(243,139,168,0.5);width:min(calc($4% / 0.05), 100%);\"></div></div></div><div style=\"display:flex;align-items:center;gap:12px;\"><span style=\"width:80px;font-weight:bold;font-size:0.85em;text-align:right;color:#f5c2e7;text-shadow:1px 1px 2px #000;\">SPARKS: $5</span><div style=\"flex-grow:1;height:14px;background:rgba(0,0,0,0.6);border-radius:7px;box-shadow:inset 0 1px 4px rgba(0,0,0,0.8);border:1px solid #313244;\"><div style=\"height:100%;border-radius:7px;background:linear-gradient(90deg,#cba6f7,#f5c2e7);box-shadow:0 0 8px rgba(245,194,231,0.5);width:min(calc($5% / 0.15), 100%);\"></div></div></div><div style=\"display:flex;align-items:center;gap:12px;\"><span style=\"width:80px;font-weight:bold;font-size:0.85em;text-align:right;color:#f38ba8;text-shadow:1px 1px 2px #000;\">GRUDGE: $6</span><div style=\"flex-grow:1;height:14px;background:rgba(0,0,0,0.6);border-radius:7px;box-shadow:inset 0 1px 4px rgba(0,0,0,0.8);border:1px solid #313244;\"><div style=\"height:100%;border-radius:7px;background:linear-gradient(90deg,#eba0ac,#f38ba8);box-shadow:0 0 8px rgba(243,139,168,0.5);width:min(calc($6% / 0.1), 100%);\"></div></div></div></div></div>",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": 0,
        "maxDepth": null
    },
    {
        "id": "275139ee-ae0b-4846-b6af-ee564fd538fe",
        "scriptName": "FF5 - Relationship Bars (Positive)",
        "findRegex": "/-?[ \\t]{0,8}(?:<b[^>]{0,120}>)?\\s{0,8}([^<|↔\\n]{1,80}?)\\s{0,8}(?:<\\/b>)?\\s{0,8}↔\\s{0,8}(?:<b[^>]{0,120}>)?\\s{0,8}([^<|\\n]{1,80}?)\\s{0,8}(?:<\\/b>)?\\s{0,8}\\|\\s{0,8}BOND:\\s{0,8}(\\+?)(\\d{1,6})\\s{0,8}\\|\\s{0,8}SPARKS?:\\s{0,8}(\\d{1,6})\\s{0,8}\\|\\s{0,8}GRUDGE:\\s{0,8}(\\d{1,6})/gi",
        "replaceString": "<div style=\"background:rgba(24,24,37,0.8);border:1px solid #45475a;border-radius:6px;padding:15px;margin-bottom:12px;box-shadow:0 4px 10px rgba(0,0,0,0.3);\"><div style=\"text-align:center;font-size:1.1em;font-weight:bold;color:#cdd6f4;margin-bottom:12px;text-transform:uppercase;letter-spacing:1px;\">$1 <span style=\"color:#74c7ec;margin:0 8px;\">⟷</span> $2</div><div style=\"display:flex;flex-direction:column;gap:12px;\"><div style=\"display:flex;align-items:center;gap:12px;\"><span style=\"width:80px;font-weight:bold;font-size:0.85em;text-align:right;color:#a6e3a1;text-shadow:1px 1px 2px #000;\">BOND: $3$4</span><div style=\"flex-grow:1;height:14px;background:rgba(0,0,0,0.6);border-radius:7px;box-shadow:inset 0 1px 4px rgba(0,0,0,0.8);border:1px solid #313244;\"><div style=\"height:100%;border-radius:7px;background:linear-gradient(90deg,#94e2d5,#a6e3a1);box-shadow:0 0 8px rgba(166,227,161,0.5);width:min(calc($4% / 0.2), 100%);\"></div></div></div><div style=\"display:flex;align-items:center;gap:12px;\"><span style=\"width:80px;font-weight:bold;font-size:0.85em;text-align:right;color:#f5c2e7;text-shadow:1px 1px 2px #000;\">SPARKS: $5</span><div style=\"flex-grow:1;height:14px;background:rgba(0,0,0,0.6);border-radius:7px;box-shadow:inset 0 1px 4px rgba(0,0,0,0.8);border:1px solid #313244;\"><div style=\"height:100%;border-radius:7px;background:linear-gradient(90deg,#cba6f7,#f5c2e7);box-shadow:0 0 8px rgba(245,194,231,0.5);width:min(calc($5% / 0.15), 100%);\"></div></div></div><div style=\"display:flex;align-items:center;gap:12px;\"><span style=\"width:80px;font-weight:bold;font-size:0.85em;text-align:right;color:#f38ba8;text-shadow:1px 1px 2px #000;\">GRUDGE: $6</span><div style=\"flex-grow:1;height:14px;background:rgba(0,0,0,0.6);border-radius:7px;box-shadow:inset 0 1px 4px rgba(0,0,0,0.8);border:1px solid #313244;\"><div style=\"height:100%;border-radius:7px;background:linear-gradient(90deg,#eba0ac,#f38ba8);box-shadow:0 0 8px rgba(243,139,168,0.5);width:min(calc($6% / 0.1), 100%);\"></div></div></div></div></div>",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": 0,
        "maxDepth": null
    },
    {
        "id": "1e773b82-9222-43eb-854f-a43f5799d794",
        "scriptName": "FF5 - Image Prompt Stripper",
        "findRegex": "/<!--\\s{0,8}IMG_PROMPT:[\\s\\S]{0,4000}?-->/gi",
        "replaceString": "",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": false,
        "promptOnly": true,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": 0,
        "maxDepth": null
    },
    {
        "id": "a1571e80-12ac-4516-ad60-ef6b741f7eb8",
        "scriptName": "FF5 - GFX Stripper",
        "findRegex": "/<!-- GFX_START -->\\s{0,8}<div[^>]{0,200}?>([\\s\\S]{0,20000}?)<\\/div>\\s{0,8}<!-- GFX_END -->/gi",
        "replaceString": "$1",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": false,
        "promptOnly": true,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": 0,
        "maxDepth": null
    },
    {
        "id": "bb05544e-6764-49a6-9d4f-01090a4f4fde",
        "scriptName": "FF5 UI - Menu Orange",
        "findRegex": "/<details>\\s{0,8}<summary>([^<]{0,200}?)(PLOT MOMENTUM|DND TASK SIM|WORLD SIM|FATE & ROUTINE|PHYSICS, ENGINE & WORLD|PHYSICS ENGINE & WORLD)([^<]{0,200}?)<\\/summary>([\\s\\S]{0,20000}?)<\\/details>/gi",
        "replaceString": "<details style=\"background:rgba(250,179,135,0.05);border:1px solid rgba(250,179,135,0.2);border-left:4px solid #fab387;margin:2px 0;border-radius:4px;\"><summary style=\"background:linear-gradient(90deg, rgba(250,179,135,0.25), transparent);padding:8px 12px;font-weight:bold;color:#fab387;cursor:pointer;text-transform:uppercase;letter-spacing:0.5px;list-style:none;\">$1$2$3</summary><ul style=\"list-style:none;margin:0;padding:0 8px;\">$4</ul></details>",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "135264a8-b520-45a3-9d2e-89c353a52a3a",
        "scriptName": "FF5 UI - Highlights",
        "findRegex": "/-[ \\t]{0,8}<b[^>]{0,120}?>(.{0,400}?)<\\/b>(?![ \\t]{0,8}↔)/g",
        "replaceString": "- <b style=\"color:#f9e2af;font-weight:600;text-shadow:0 0 2px rgba(249,226,175,0.2);\">$1</b>",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "28bb5d9d-c8ff-46aa-b243-fe9bfb98b20a",
        "scriptName": "FF5 UI - Menu Master",
        "findRegex": "/<details>\\s{0,8}<summary>([^<]{0,200}?)(INTERNAL STATES)([^<]{0,200}?)<\\/summary>/gi",
        "replaceString": "<details style=\"background:rgba(20,20,30,0.4);border-radius:6px;margin:2px 0;\"><summary style=\"background:linear-gradient(90deg, #313244, #1e1e2e);padding:10px 12px;font-weight:bold;color:#cdd6f4;cursor:pointer;text-transform:uppercase;letter-spacing:1px;list-style:none;border-bottom:2px solid #89b4fa;border-radius:6px 6px 0 0;\">$1$2$3</summary>",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "32bbb685-354d-40a9-b760-0b75deb3065f",
        "scriptName": "FF5 UI - Menu Teal",
        "findRegex": "/<details>\\s{0,8}<summary>([^<]{0,200}?)(NPC AGENDAS|NPC LOCATIONS|FACTIONS|BONDS|BOND TRACKER)([^<]{0,200}?)<\\/summary>([\\s\\S]{0,20000}?)<\\/details>/gi",
        "replaceString": "<details style=\"background:rgba(148,226,213,0.05);border:1px solid rgba(148,226,213,0.2);border-left:4px solid #94e2d5;margin:2px 0;border-radius:4px;\"><summary style=\"background:linear-gradient(90deg, rgba(148,226,213,0.25), transparent);padding:8px 12px;font-weight:bold;color:#94e2d5;cursor:pointer;text-transform:uppercase;letter-spacing:0.5px;list-style:none;\">$1$2$3</summary><ul style=\"list-style:none;margin:0;padding:0 8px;\">$4</ul></details>",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "20047fa4-d8b1-468e-b4c6-3677c48c4559",
        "scriptName": "FF5 UI - Menu Purple",
        "findRegex": "/<details>\\s{0,8}<summary>([^<]{0,200}?)(QUESTS|CHEKHOV'S GUN|CHEKHOV SEEDS|INTERNAL THOUGHTS|INV & SKILLS|INVENTORY & STATUS|GM NOTEBOOK|GM'S NOTEBOOK)([^<]{0,200}?)<\\/summary>([\\s\\S]{0,20000}?)<\\/details>/gi",
        "replaceString": "<details style=\"background:rgba(203,166,247,0.05);border:1px solid rgba(203,166,247,0.2);border-left:4px solid #cba6f7;margin:2px 0;border-radius:4px;\"><summary style=\"background:linear-gradient(90deg, rgba(203,166,247,0.25), transparent);padding:8px 12px;font-weight:bold;color:#cba6f7;cursor:pointer;text-transform:uppercase;letter-spacing:0.5px;list-style:none;\">$1$2$3</summary><div style=\"padding:8px 12px;\">$4</div></details>",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "d163b384-ad94-4e3b-bd20-851d735e1d0a",
        "scriptName": "FF5 - Context Saver",
        "findRegex": "/<!-- GFX_START -->\\s*<internal_states>[\\s\\S]*?<!-- GFX_END -->\\s*/gi",
        "replaceString": "",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": false,
        "promptOnly": true,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": 3,
        "maxDepth": null
    },
    {
        "id": "8d25eb24-a4a3-4bfe-855e-6d2d07170eec",
        "scriptName": "FF5 UI - Stack Bullets",
        "findRegex": "/\\n[ \\t]{0,8}[-•*][ \\t]{0,8}(<b[^>]{0,120}>)/g",
        "replaceString": "<br>- $1",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "b9d9039f-1136-4c17-b51d-0fed573fda25",
        "scriptName": "RF2.1 - Hide [T] thread notes from display",
        "findRegex": "/-\\s*\\[T\\][^<\\n]*(<br\\s*\\/?>)?/g",
        "replaceString": "",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "f0da5c58-f419-4154-9786-a7dcd4c6ce4b",
        "scriptName": "RF2.1 - Blind World register ripeness",
        "findRegex": "/\\((ELSEWHERE|REGIONAL|LOCAL),\\s*Reach\\s*\\d,\\s*age\\s*\\d+\\)/g",
        "replaceString": "(…)",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "d5e12fe9-9df5-4903-9a50-55d441f437bd",
        "scriptName": "FF5 Delete - Untagged Thoughts",
        "findRegex": "/^\\s{0,20}([^<\\[\\s][\\s\\S]{0,30000}?)(?:\\n\\s{0,8}[-—_*]{3,}\\s{0,8}\\n|\\n{1,10})(\\[\\s{0,8}[^\\]\\n]{0,30}\\bTime\\b)/gi",
        "replaceString": "$2",
        "trimStrings": [],
        "placement": [
            2,
            1
        ],
        "disabled": false,
        "markdownOnly": false,
        "promptOnly": true,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "18b4d937-7f33-44dc-82be-d741949eefaf",
        "scriptName": "FF5 Catch - Untagged Thoughts",
        "findRegex": "/^\\s{0,20}([^<\\[\\s][\\s\\S]{0,30000}?)(?:\\n\\s{0,8}[-—_*]{3,}\\s{0,8}\\n|\\n{1,10})(\\[\\s{0,8}[^\\]\\n]{0,30}\\bTime\\b)/gi",
        "replaceString": "<details style=\"background: rgba(147, 51, 234, 0.08); border: 1px solid rgba(147, 51, 234, 0.3); border-left: 4px solid #a855f7; border-radius: 8px; margin: 10px 0; padding: 10px 14px; font-size: 0.92em;\"><summary style=\"cursor: pointer; font-weight: bold; color: #c084fc; user-select: none;\">💭 Thoughts</summary>\n\n$1\n</details>\n\n$2",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "2d04ca00-ff21-432d-b343-96c4f1f477f0",
        "scriptName": "FF5 Repair - Summary Auto-Close",
        "findRegex": "/<summary>([^<\\n\\r]{1,100})\\n(?!\\s{0,8}<\\/summary>)/gi",
        "replaceString": "<summary>$1</summary>",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "5b8c1eb3-a163-4bb9-a227-0dff9c11281b",
        "scriptName": "FF5 Repair - GFX Unfence",
        "findRegex": "/```(?:html|xml|markdown)?\\s{0,8}\\n?\\s{0,8}(<!--\\s{0,8}GFX_START\\s{0,8}-->|<internal_states>|<details>)/gi",
        "replaceString": "$1",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "d3ff5550-f8f9-4801-9392-4fa81858deb9",
        "scriptName": "FF5 Repair - GFX Trailing Unfence",
        "findRegex": "/(<!--\\s{0,8}GFX_END\\s{0,8}-->|<\\/internal_states>|<\\/details>)\\s{0,8}\\n?\\s{0,8}```/gi",
        "replaceString": "$1",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "c147731c-dc22-4df1-92ee-9712ef6a80f6",
        "scriptName": "Hapuppy Delete Thoughts",
        "findRegex": "/(?:<\\s{0,8}(?:think|thinking|thought|thoughts|reasoning|internal_monologue|internal\\s+monologue)\\b[^>]{0,120}>[\\s\\S]{0,20000}?<\\s{0,8}\\/\\s{0,8}(?:think|thinking|thought|thoughts|reasoning|internal_monologue|internal\\s+monologue)[^>]{0,120}>|###\\s{0,8}(?:Internal Monologue|Reasoning|Thoughts?|Thinking)\\s{0,8}[\\s\\S]{0,20000}?###\\s{0,8}(?:Response|Output|Narrative|Final Answer)\\s{0,8})/gi",
        "replaceString": "",
        "trimStrings": [],
        "placement": [
            2,
            1
        ],
        "disabled": false,
        "markdownOnly": false,
        "promptOnly": true,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "1ffeb34e-f9d0-4459-ad4a-4fe0f10f7ca9",
        "scriptName": "Hapuppy Hide Thoughts",
        "findRegex": "/(?:<\\s{0,8}(think|thinking|thought|thoughts|reasoning|internal_monologue|internal\\s+monologue)\\b[^>]{0,120}>([\\s\\S]{0,20000}?)<\\s{0,8}\\/\\s{0,8}\\1[^>]{0,120}>|###\\s{0,8}(?:Internal Monologue|Reasoning|Thoughts?|Thinking)\\s{0,8}\\n?([\\s\\S]{0,20000}?)###\\s{0,8}(?:Response|Output|Narrative|Final Answer)\\s{0,8})/gi",
        "replaceString": "<details style=\"background: rgba(147, 51, 234, 0.08); border: 1px solid rgba(147, 51, 234, 0.3); border-left: 4px solid #a855f7; border-radius: 8px; margin: 10px 0; padding: 10px 14px; font-size: 0.92em;\"><summary style=\"cursor: pointer; font-weight: bold; color: #c084fc; user-select: none;\">💭 Thoughts</summary>\n\n$2$3\n</details>",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "4f8c5ad3-0076-48d6-8beb-4ead10481f33",
        "scriptName": "SillyTavern Tremble Dialogue Regex",
        "findRegex": "/<\\s{0,8}(?:color\\s{0,8}:\\s{0,8})?(cyan|pink|teal|orange|gold|violet|salmon|orchid|yellow|plum)[^>]{0,120}\\btremble\\b[^>]{0,120}>([“\"])([^”\"]{1,2000}?)([”\"])(?:\\s{0,8}<\\s{0,8}\\/\\s{0,8}[^<>\\n\\r]{0,40}>|\\s{0,8}<\\s{0,8}\\/\\s{0,8}[a-zA-Z0-9_-]{0,24}:|\\s{0,8}(?:\\1|tremble)>)?/gi",
        "replaceString": "$2<span style=\"color:$1;letter-spacing:1.5px;opacity:0.85;font-style:italic;\">$3</span>$4",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "21fd8b48-d92e-49e0-96c4-d864cd0cd68f",
        "scriptName": "SillyTavern Measured Dialogue Regex",
        "findRegex": "/<\\s{0,8}(?:color\\s{0,8}:\\s{0,8})?(cyan|pink|teal|orange|gold|violet|salmon|orchid|yellow|plum)[^>]{0,120}\\bmeasured\\b[^>]{0,120}>([“\"])([^”\"]{1,2000}?)([”\"])(?:\\s{0,8}<\\s{0,8}\\/\\s{0,8}[^<>\\n\\r]{0,40}>|\\s{0,8}<\\s{0,8}\\/\\s{0,8}[a-zA-Z0-9_-]{0,24}:|\\s{0,8}(?:\\1|measured)>)?/gi",
        "replaceString": "$2<span style=\"color:$1;font-weight:bold;letter-spacing:0.8px;text-shadow:0 0 3px #000, 1px 1px 2px #000;\">$3</span>$4",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "9cb8ac77-7177-461a-b2d1-51a5f121e4b1",
        "scriptName": "SillyTavern Whisper Dialogue Regex",
        "findRegex": "/<\\s{0,8}(?:color\\s{0,8}:\\s{0,8})?(cyan|pink|teal|orange|gold|violet|salmon|orchid|yellow|plum)[^>]{0,120}\\bwhisper\\b[^>]{0,120}>([“\"])([^”\"]{1,2000}?)([”\"])(?:\\s{0,8}<\\s{0,8}\\/\\s{0,8}[^<>\\n\\r]{0,40}>|\\s{0,8}<\\s{0,8}\\/\\s{0,8}[a-zA-Z0-9_-]{0,24}:|\\s{0,8}(?:\\1|whisper)>)?/gi",
        "replaceString": "$2<span style=\"color:$1;font-size:0.85em;opacity:0.75;font-style:italic;\">$3</span>$4",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "e9de1cc2-fdce-4405-9695-02d408ef1f17",
        "scriptName": "SillyTavern Shout Dialogue Regex",
        "findRegex": "/<\\s{0,8}(?:color\\s{0,8}:\\s{0,8})?(cyan|pink|teal|orange|gold|violet|salmon|orchid|yellow|plum)[^>]{0,120}\\bshout\\b[^>]{0,120}>([“\"])([^”\"]{1,2000}?)([”\"])(?:\\s{0,8}<\\s{0,8}\\/\\s{0,8}[^<>\\n\\r]{0,40}>|\\s{0,8}<\\s{0,8}\\/\\s{0,8}[a-zA-Z0-9_-]{0,24}:|\\s{0,8}(?:\\1|shout)>)?/gi",
        "replaceString": "$2<span style=\"color:$1;font-size:1.15em;font-weight:900;text-shadow:0 0 6px $1;\">$3</span>$4",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "ccf86f25-d236-469d-afa9-b0d8b0982eda",
        "scriptName": "SillyTavern Universal Dialogue Colorizer",
        "findRegex": "/<\\s{0,8}(?:color\\s{0,8}:\\s{0,8})?(cyan|pink|teal|orange|gold|violet|salmon|orchid|yellow|plum)\\s{0,8}>([“\"])([^”\"]{1,2000}?)([”\"])(?:\\s{0,8}<\\s{0,8}\\/\\s{0,8}[^<>\\n\\r]{0,40}>|\\s{0,8}<\\s{0,8}\\/\\s{0,8}[a-zA-Z0-9_-]{0,24}:|\\s{0,8}\\1>)?/gi",
        "replaceString": "$2<span style=\"color:$1;\">$3</span>$4",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": true,
        "promptOnly": false,
        "runOnEdit": false,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "2029863a-ed10-4f96-acac-5ce69b9c7d4a",
        "scriptName": "RF2.2.1 — MiMo V2.6 leak: reasoning-only <thinking> reply → notice",
        "findRegex": "/^(?![\\s\\S]*\\[\\s{0,8}(?:🕰|[^\\]\\n]{0,30}\\bTime\\b))\\s*<thinking>(?:(?!<\\/thinking>)[\\s\\S])*(?:<\\/thinking>)?\\s*$/i",
        "replaceString": "⚠️ MiMo sent only its reasoning this turn, so it was removed. Swipe for a new reply.",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": false,
        "promptOnly": false,
        "runOnEdit": true,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "4654276c-8218-47fc-81d2-abdbbbc21ca4",
        "scriptName": "RF2.2.1 — MiMo V2.6 leak: unclosed <thinking> up to header",
        "findRegex": "/^\\s*<thinking>(?:(?!<\\/thinking>)[\\s\\S])*?(?=\\[\\s{0,8}(?:🕰|[^\\]\\n]{0,30}\\bTime\\b))/i",
        "replaceString": "",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": false,
        "promptOnly": false,
        "runOnEdit": true,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "2204360c-d4e7-4c4b-8109-a2b538840791",
        "scriptName": "RF2.2.1 — MiMo V2.6 leak: reasoning-only reply → notice",
        "findRegex": "/^(?![\\s\\S]*\\[\\s{0,8}(?:🕰|[^\\]\\n]{0,30}\\bTime\\b))(?![\\s\\S]*(?:<internal_states>|GFX_START))(?=[\\s\\S]*(?:<checklist>|(?:^|\\n)[ \\t]*[01][.)][ \\t]+[^\\n]*(?:game ?state|\\bstate\\s*:|\\bturn\\s*\\d|\\bct\\s*[=:])))[\\s\\S]+$/i",
        "replaceString": "⚠️ MiMo sent only its reasoning this turn, so it was removed. Swipe for a new reply.",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": false,
        "promptOnly": false,
        "runOnEdit": true,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "6040e391-1d5f-4526-a928-db72a5ae7217",
        "scriptName": "RF2.2.1 — MiMo V2.6 leak: unclosed <think> up to header",
        "findRegex": "/^\\s*<think>(?:(?!<\\/think>)[\\s\\S])*?(?=\\[\\s{0,8}(?:🕰|[^\\]\\n]{0,30}\\bTime\\b))/i",
        "replaceString": "",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": false,
        "promptOnly": false,
        "runOnEdit": true,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "fade090e-67d3-4be0-a86d-6bb5c857c509",
        "scriptName": "RF2.2.1 — MiMo V2.6 leak: unclosed <think> through </checklist>",
        "findRegex": "/^\\s*<think>(?:(?!<\\/think>|\\[\\s{0,8}(?:🕰|[^\\]\\n]{0,30}\\bTime\\b))[\\s\\S])*?<\\/checklist>[^\\S\\n]*\\n*/i",
        "replaceString": "",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": false,
        "promptOnly": false,
        "runOnEdit": true,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "5505ceb8-955b-42cb-bc3e-7f57e0f90887",
        "scriptName": "RF2.2.1 — MiMo V2.6 leak: stray </think> before header",
        "findRegex": "/^(?:(?!<think>|\\[\\s{0,8}(?:🕰|[^\\]\\n]{0,30}\\bTime\\b))[\\s\\S])*?<\\/think>\\s*(?=[\\s\\S]*?\\[\\s{0,8}(?:🕰|[^\\]\\n]{0,30}\\bTime\\b))/i",
        "replaceString": "",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": false,
        "promptOnly": false,
        "runOnEdit": true,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "6a2dda8b-ea16-4259-b97f-e2b4b32f5452",
        "scriptName": "RF2.2.1 — MiMo V2.6 leak: <checklist> block",
        "findRegex": "/<checklist>(?:(?!<\\/checklist>|\\[\\s{0,8}(?:🕰|[^\\]\\n]{0,30}\\bTime\\b))[\\s\\S])*(?:<\\/checklist>)?[^\\S\\n]*\\n*/gi",
        "replaceString": "",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": false,
        "promptOnly": false,
        "runOnEdit": true,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "9bdeb7b8-5de9-424b-bf81-4e98ec176c47",
        "scriptName": "RF2.2.1 — Strip leaked CoT checklist (Mimo V2.6)",
        "findRegex": "/^[ \\t]*[01][.)][ \\t]+(?=[^\\n]*(?:game ?state|\\bct\\s*=))[^\\n]*(?:\\n+[ \\t]*\\d{1,2}[.)][ \\t][^\\n]*){3,}\\n*/gim",
        "replaceString": "",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": false,
        "promptOnly": false,
        "runOnEdit": true,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "a99e3aa9-b797-46b9-89b1-f33b8fc0dc4f",
        "scriptName": "RF2.2.1 — MiMo V2.6 leak: numbered checklist, broad",
        "findRegex": "/^[ \\t]*[01][.)][ \\t]+(?=[^\\n]*(?:game ?state|\\bstate\\s*:|\\bturn\\s*\\d|\\bct\\s*[=:]|neutrality))[^\\n]*(?:\\n+[ \\t]*\\d{1,2}[.)][ \\t][^\\n]*){3,}\\n*/gim",
        "replaceString": "",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": false,
        "promptOnly": false,
        "runOnEdit": true,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    },
    {
        "id": "112c1d98-3a91-4663-a932-1933cc0b5ff9",
        "scriptName": "RF2.2.1 — MiMo V2.6 leak: keep the notice out of the prompt",
        "findRegex": "/⚠️ MiMo sent only its reasoning this turn, so it was removed\\. Swipe for a new reply\\./g",
        "replaceString": "",
        "trimStrings": [],
        "placement": [
            2
        ],
        "disabled": false,
        "markdownOnly": false,
        "promptOnly": true,
        "runOnEdit": true,
        "substituteRegex": 0,
        "minDepth": null,
        "maxDepth": null
    }
]