{
  "apiVersion": "1",
  "scope": "published-documentation-only",
  "researchTopicsIncluded": false,
  "source": "https://ultmacro.xyz/wiki/",
  "generatedFrom": "repository Wiki content modules: base + expanded + v1.3.5 source + v1.3.5 release + Strategy Lab reference + Early Access",
  "articles": [
    {
      "slug": "install",
      "title": "Install Ultimate Macro",
      "summary": "From ZIP download to first launch.",
      "category": "Start here",
      "source": "/guide/install/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=install",
      "keywords": [
        "download",
        "zip",
        "autohotkey",
        "main ahk",
        "launch"
      ],
      "sections": [
        {
          "title": "Download and extract",
          "paragraphs": [],
          "steps": [
            "Download the ZIP from the official Ultimate Macro download page.",
            "Right-click the ZIP and extract the whole archive to a folder. Do not run Main.ahk inside the ZIP.",
            "Install 64-bit AutoHotkey v2 from autohotkey.com/v2. AutoHotkey v1.1 will not work.",
            "Open Main.ahk in the extracted folder."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Before your first run",
          "paragraphs": [],
          "steps": [],
          "checks": [
            "Windows resolution: supported 16:9; scaling: 100% recommended",
            "Windows taskbar: visible",
            "Roblox: 60 FPS, Classic camera, Manual graphics",
            "TDS: Large UI, Screen Shake off, Vertical Upgrades on"
          ],
          "rows": []
        }
      ]
    },
    {
      "slug": "requirements",
      "title": "Requirements",
      "summary": "Supported Windows versions, resolution and dependencies.",
      "category": "Start here",
      "source": "/guide/requirements/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=requirements",
      "keywords": [
        "computer",
        "pc",
        "windows",
        "resolution",
        "system",
        "minimum"
      ],
      "sections": [
        {
          "title": "Required",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Operating system",
              "Windows 10 or 11"
            ],
            [
              "AutoHotkey",
              "v2.0, 64-bit"
            ],
            [
              "Display",
              "16:9, 1280×720 through 3840×2160"
            ],
            [
              "Windows OCR",
              "English (United States) language pack"
            ],
            [
              "Taskbar",
              "Visible, not auto-hidden"
            ],
            [
              "Roblox",
              "Single client; close multi-instance tools"
            ]
          ]
        },
        {
          "title": "Recommended",
          "paragraphs": [
            "1920×1080 at 100% Windows scaling is the easiest baseline for troubleshooting. Other supported 16:9 resolutions are supported by the documented adaptive detection path.",
            "A slower PC may need longer mouse, key or upgrade delays."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "first-run",
      "title": "Run your first strategy",
      "summary": "Test a built-in strategy before leaving the macro unattended.",
      "category": "Start here",
      "source": "/guide/first-run/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=first-run",
      "keywords": [
        "start",
        "run",
        "play",
        "first",
        "f1",
        "f2"
      ],
      "sections": [
        {
          "title": "Start a test run",
          "paragraphs": [],
          "steps": [
            "Open Roblox and join Tower Defense Simulator.",
            "Open Ultimate Macro. On the Main tab, select a strategy that came with the release.",
            "Confirm you have the towers required by that strategy.",
            "Make sure Windows, Roblox, and TDS settings match the setup pages.",
            "Select Start or press F1.",
            "Watch a full match, including upgrades and the end-of-match screen."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Stop safely",
          "paragraphs": [
            "Press F2 to stop the macro and release held input. Check placement, upgrades, result detection, and the next-match transition before running longer sessions."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ],
      "illustration": {
        "src": "../assets/ui/ultimate-macro-main-new.png",
        "alt": "Actual Ultimate Macro desktop application screenshot",
        "caption": "Official website image; appearance may differ between installed releases."
      }
    },
    {
      "slug": "windows-display",
      "title": "Windows display & OCR",
      "summary": "Configure the screen settings used by image detection.",
      "category": "Setup & settings",
      "source": "/guide/display/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=windows-display",
      "keywords": [
        "screen",
        "monitor",
        "scale",
        "dpi",
        "resolution",
        "ocr",
        "taskbar"
      ],
      "sections": [
        {
          "title": "Windows settings",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Resolution",
              "16:9, 1280×720 to 3840×2160"
            ],
            [
              "Recommended resolution",
              "1920×1080"
            ],
            [
              "Display scaling",
              "100% recommended"
            ],
            [
              "Taskbar",
              "Visible; do not auto-hide"
            ],
            [
              "OCR language",
              "English (United States) installed"
            ]
          ]
        },
        {
          "title": "Check before running",
          "paragraphs": [],
          "steps": [
            "Open Windows Settings → System → Display and confirm resolution and scale.",
            "Make the taskbar visible in Windows taskbar settings.",
            "Ensure the English (US) OCR language pack is available.",
            "Do not move or resize Roblox while a run is in progress."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "When clicks miss",
          "paragraphs": [
            "If the macro clicks the wrong location, check display geometry before increasing delays. The macro uses screen coordinates and image matching."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "roblox-settings",
      "title": "Roblox settings",
      "summary": "Use the game settings expected by the documented macro.",
      "category": "Setup & settings",
      "source": "/guide/display/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=roblox-settings",
      "keywords": [
        "camera",
        "fps",
        "graphics",
        "navigation",
        "roblox"
      ],
      "sections": [
        {
          "title": "Set these values",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Maximum Frame Rate",
              "60 FPS"
            ],
            [
              "Camera Mode",
              "Classic"
            ],
            [
              "Graphics Mode",
              "Manual"
            ],
            [
              "UI Navigation Toggle",
              "Enabled"
            ]
          ]
        },
        {
          "title": "Avoid layout changes",
          "paragraphs": [
            "Do not use custom Roblox fonts. They can cause wave and currency OCR to read text incorrectly. Keep the game window at the same size and location during a session."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "tds-settings",
      "category": "Setup & settings",
      "title": "TDS settings",
      "summary": "Match the interface layout expected by tower placement and upgrades.",
      "sections": [
        {
          "title": "Configure TDS in-game",
          "paragraphs": [
            "Open Tower Defense Simulator's settings before running the macro. These are in-game settings, not Windows display options."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "UI Scale",
              "Large"
            ],
            [
              "Screen Shake",
              "Disabled"
            ],
            [
              "Prefer Vertical Upgrades",
              "Enabled"
            ],
            [
              "Dialog",
              "Disabled"
            ],
            [
              "Show Tower Options",
              "Enabled"
            ]
          ]
        },
        {
          "title": "Confirm the settings",
          "paragraphs": [],
          "steps": [
            "Set UI Scale to Large and disable Screen Shake.",
            "Enable Prefer Vertical Upgrades and Show Tower Options; set Dialog to Disabled.",
            "Return to a supervised test match and confirm that the tower upgrade panel and placement controls remain usable."
          ],
          "checks": [],
          "rows": []
        }
      ],
      "source": "/guide/display/",
      "keywords": [
        "tds",
        "tower defense simulator",
        "ui scale",
        "shake",
        "vertical upgrade",
        "dialog",
        "large ui",
        "screen shake",
        "vertical upgrades",
        "tower options"
      ],
      "version": "v1.3.x"
    },
    {
      "slug": "hotkeys",
      "title": "Hotkeys & keybinds",
      "summary": "Playback and recording shortcuts in the documented release.",
      "category": "Setup & settings",
      "source": "/guide/recording/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=hotkeys",
      "keywords": [
        "keybind",
        "shortcut",
        "f1",
        "f2",
        "f",
        "ctrl",
        "ability",
        "recording"
      ],
      "sections": [
        {
          "title": "Playback",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Start macro",
              "F1"
            ],
            [
              "Stop macro",
              "F2"
            ]
          ]
        },
        {
          "title": "Recording",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Place tower",
              "F"
            ],
            [
              "Upgrade",
              "Ctrl + U"
            ],
            [
              "Sell tower",
              "Ctrl + X"
            ],
            [
              "Change target",
              "Ctrl + `"
            ],
            [
              "Change DJ track",
              "Ctrl + D"
            ],
            [
              "Align camera",
              "Ctrl + T"
            ],
            [
              "Hologram tower",
              "Ctrl + Alt + H"
            ],
            [
              "Delete last recorded action",
              "Ctrl + B"
            ],
            [
              "Record inputs",
              "Ctrl + Shift + E"
            ]
          ]
        },
        {
          "title": "Change shortcuts",
          "paragraphs": [
            "Recording shortcuts are configurable under Settings → Recording Hotkeys. For abilities, confirm the keybinds in Settings → TDS Keybinds also match TDS."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "record-strategy",
      "title": "Record a strategy",
      "summary": "Turn a played match into a .strat file.",
      "category": "Strategies",
      "source": "/guide/recording/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=record-strategy",
      "keywords": [
        "create",
        "save",
        ".strat",
        "record",
        "strategy",
        "tower"
      ],
      "sections": [
        {
          "title": "Before recording",
          "paragraphs": [
            "Pick your map, mode and tower loadout. Confirm the game and recording keybinds first. The recorder captures actions as you play, not a guaranteed successful strategy."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Record and save",
          "paragraphs": [],
          "steps": [
            "Open Create → Record a Strategy.",
            "Play a match normally. Use the recording shortcuts for placement, upgrades, selling and other actions.",
            "If an action was recorded incorrectly, use Delete Record (Ctrl + B) before continuing.",
            "Finish recording and save the result as a .strat file.",
            "Replay the new strategy under supervision before sharing it."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Useful shortcuts",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Place",
              "F"
            ],
            [
              "Upgrade",
              "Ctrl + U"
            ],
            [
              "Sell",
              "Ctrl + X"
            ],
            [
              "Change target",
              "Ctrl + `"
            ],
            [
              "Change DJ track",
              "Ctrl + D"
            ]
          ]
        },
        {
          "title": "Recording tip",
          "paragraphs": [
            "Leave enough time for game animations and currency changes. Fast manual actions may need longer delays to replay reliably on other PCs."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "edit-strategy",
      "title": "Edit a strategy",
      "summary": "Open a .strat file in Strategy Lab.",
      "category": "Strategies",
      "source": "/guide/recording/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=edit-strategy",
      "keywords": [
        "strategy lab",
        "editor",
        "edit",
        "strat"
      ],
      "sections": [
        {
          "title": "Open Strategy Lab",
          "paragraphs": [],
          "steps": [
            "In Ultimate Macro, open Create.",
            "Choose Edit a Strategy or Open Strategy Lab.",
            "Open the .strat file you want to inspect or change.",
            "Save a separate copy before replacing a strategy that already works."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Standalone editor",
          "paragraphs": [
            "You can also launch StrategyLab.exe from the release folder. Strategy Lab is the visual editor for strategy actions. Test an edited strategy before relying on it."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strategy-rotation",
      "title": "Rotate strategies",
      "summary": "Alternate between two strategies after a run count or time limit.",
      "category": "Strategies",
      "source": "/guide/sessions/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=strategy-rotation",
      "keywords": [
        "swap",
        "rotate",
        "alternating",
        "runs",
        "minutes"
      ],
      "sections": [
        {
          "title": "Configure rotation",
          "paragraphs": [],
          "steps": [
            "On the Main tab, choose the two strategies you want to alternate.",
            "Enable Strategy Rotation.",
            "Set Swap after to a number of Runs or Minutes.",
            "Test each strategy on its own before starting rotation."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Check compatibility",
          "paragraphs": [
            "The selected strategies may require different maps or towers. Make sure both can run with your current loadout and settings."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "community-strategies",
      "title": "Find community strategies",
      "summary": "Browse and test shared .strat files in Strategy Network.",
      "category": "Strategies",
      "source": "/strategies/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=community-strategies",
      "keywords": [
        "strategy network",
        "shared",
        "download",
        "community",
        "maps"
      ],
      "sections": [
        {
          "title": "Use a shared strategy",
          "paragraphs": [],
          "steps": [
            "Open Strategy Network and find a strategy for your mode or map.",
            "Check the tower loadout and other listed requirements.",
            "Download or choose the strategy through the supported workflow.",
            "Run a supervised match before leaving it unattended."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "After a game update",
          "paragraphs": [
            "An older strategy may no longer match current game behavior, even if its file loads. Check its requirements and look for a newer version if it fails."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "session-settings",
      "title": "Long session settings",
      "summary": "Goals, timescale, and between-match actions.",
      "category": "Sessions & tools",
      "source": "/guide/sessions/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=session-settings",
      "keywords": [
        "goals",
        "timescale",
        "speed",
        "rewards",
        "play again",
        "restart",
        "check map",
        "currency"
      ],
      "sections": [
        {
          "title": "Goals and Timescale",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Goals",
              "Set a currency target; the macro selects compatible strategies until the goal is reached."
            ],
            [
              "Timescale",
              "In Settings, use 1.5× or 2× with available timescale tickets."
            ]
          ]
        },
        {
          "title": "Between matches",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Click Restart button",
              "Used after a loss; enabled by default."
            ],
            [
              "Click Play Again button",
              "Used after a win; enabled by default."
            ],
            [
              "Check the map",
              "Verifies the destination map after joining and reloads if wrong. Recommended on."
            ],
            [
              "Collect playtime rewards",
              "Claims playtime and daily rewards when available."
            ]
          ]
        },
        {
          "title": "Before a long session",
          "paragraphs": [
            "Watch one full match first. If you are running a win-only strategy and Restart lands you on the wrong map, try disabling the restart action."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "party-vip",
      "title": "Party & VIP servers",
      "summary": "Private server links and Host/Member party configuration.",
      "category": "Sessions & tools",
      "source": "/guide/sessions/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=party-vip",
      "keywords": [
        "party",
        "vip",
        "private server",
        "host",
        "member",
        "invite"
      ],
      "sections": [
        {
          "title": "VIP server",
          "paragraphs": [],
          "steps": [
            "Paste a private server link into VIP Server Link.",
            "Enable Use VIP Server.",
            "Confirm that the Roblox account can join that server manually before testing the macro."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Party mode",
          "paragraphs": [],
          "steps": [
            "Open the Party tab.",
            "Select Host to create a party and invite others, or Member to wait for an invite.",
            "Enter the host's display name and members' names.",
            "Choose whether to return to the lobby when all or any party member leaves.",
            "Save and test the group with all accounts present."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "profiles",
      "category": "Sessions & tools",
      "title": "Back up your setup",
      "summary": "Export or import settings, hotkeys and strategies with Profile Manager.",
      "sections": [
        {
          "title": "Export before changing your setup",
          "paragraphs": [
            "Profile Manager bundles settings, hotkeys and strategies for backup or moving to another PC. Export a working configuration before experimenting."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Import with care",
          "paragraphs": [
            "Check the import preview before replacing existing settings, hotkeys or strategies."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Reinstall without losing strategies",
          "paragraphs": [
            "In the public v1.3.5 macro, recordings, profiles, and bundled strategy files are stored in different locations. Copy your files before replacing a release folder; a reinstall alone is not a backup."
          ],
          "steps": [
            "Export the working setup through Profile Manager and save the exported file outside the macro folder.",
            "Press Win + R and open %APPDATA%\\Ultimate_Macro. Copy the Recordings and Profiles folders to a separate backup location if present.",
            "If you edited a bundled strategy, copy it from the extracted macro folder's Resources\\Strats directory.",
            "Verify your backups before removing or replacing anything. Keep bot credentials and webhook URLs private.",
            "After reinstalling, restore only the intended files or import the saved profile, then test one strategy under supervision."
          ],
          "checks": [],
          "rows": []
        }
      ],
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "keywords": [
        "profile manager",
        "backup",
        "import",
        "export",
        "settings",
        "reinstall",
        "preserve recordings",
        "backup strategies",
        "restore profile"
      ],
      "version": "v1.3.5"
    },
    {
      "slug": "tools",
      "title": "Built-in tools",
      "summary": "Auto Call of Arms, Auto Spin, and Auto Open Consumable.",
      "category": "Sessions & tools",
      "source": "/guide/tools/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=tools",
      "keywords": [
        "call of arms",
        "auto spin",
        "consumable",
        "f3",
        "f4",
        "utility"
      ],
      "sections": [
        {
          "title": "Open a tool",
          "paragraphs": [
            "The Tools tab opens utilities in separate always-on-top windows. F3 starts the selected tool; F4 stops it."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Available tools",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Auto Call of Arms",
              "Triggers Call of Arms and Drop the Beat on configured intervals; each ability can be disabled."
            ],
            [
              "Auto Spin",
              "Claims spinning-wheel prizes and counts tickets used."
            ],
            [
              "Auto Open Consumable",
              "Opens consumable crates and counts how many were opened."
            ]
          ]
        }
      ]
    },
    {
      "slug": "launch-fails",
      "title": "Main.ahk won't open",
      "summary": "Fix common startup failures.",
      "category": "Troubleshooting",
      "source": "/guide/troubleshooting/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=launch-fails",
      "keywords": [
        "startup",
        "launch",
        "not opening",
        "ahk",
        "autohotkey",
        "crash"
      ],
      "sections": [
        {
          "title": "Check in this order",
          "paragraphs": [],
          "steps": [
            "Extract the entire ZIP before running anything.",
            "Install 64-bit AutoHotkey v2.0. v1.1 cannot run Main.ahk.",
            "Make sure .ahk files open using the AutoHotkey v2 launcher.",
            "Close Roblox Account Manager and other multi-instance utilities.",
            "Open Main.ahk again."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "If the error remains",
          "paragraphs": [
            "Share the exact error, AutoHotkey version and Ultimate Macro version when requesting support."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "wrong-clicks",
      "title": "Clicks miss or towers won't place",
      "summary": "Check display geometry before changing timing.",
      "category": "Troubleshooting",
      "source": "/guide/troubleshooting/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=wrong-clicks",
      "keywords": [
        "tower placement",
        "placement fails",
        "wrong location",
        "mouse",
        "click",
        "cursor"
      ],
      "sections": [
        {
          "title": "Fix screen-related misses",
          "paragraphs": [],
          "steps": [
            "Check Windows resolution is supported 16:9 and scaling is preferably 100%.",
            "Keep the Windows taskbar visible.",
            "Set TDS UI Scale to Large and turn Screen Shake off.",
            "Focus Roblox. Avoid resizing or moving its window once the run starts.",
            "Test a bundled strategy for one match."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "If actions are late rather than misplaced",
          "paragraphs": [
            "Try a higher Mouse Delay or Key Delay in Settings. A timing issue is different from a consistent wrong click position."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "ocr-errors",
      "title": "Wave or cash detection is wrong",
      "summary": "Correct missing OCR language support and font changes.",
      "category": "Troubleshooting",
      "source": "/guide/troubleshooting/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=ocr-errors",
      "keywords": [
        "ocr",
        "currency",
        "cash",
        "wave",
        "numbers",
        "read"
      ],
      "sections": [
        {
          "title": "Fix OCR",
          "paragraphs": [],
          "steps": [
            "Install the English (United States) Windows OCR language pack.",
            "Remove custom Roblox font modifications.",
            "Use 100% Windows scaling as a test baseline.",
            "Keep wave and currency UI visible and unobstructed.",
            "Run a short test and compare the on-screen value to the value in macro logs."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Still incorrect?",
          "paragraphs": [
            "Save the release version, screen resolution and a cropped screenshot showing the wrong value. Remove private details before sharing it."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "upgrade-not-working",
      "category": "Troubleshooting",
      "title": "Upgrades fail or use the wrong path",
      "summary": "Check the upgrade panel, money, keybinds and delay.",
      "sections": [
        {
          "title": "Troubleshoot upgrades",
          "paragraphs": [],
          "steps": [
            "Confirm the tower has enough cash for the action.",
            "Enable Prefer Vertical Upgrades in TDS.",
            "Check that the upgrade and bottom-path keybinds in Ultimate Macro match your game settings.",
            "Increase Upgrade Delay in Settings if the panel opens slowly.",
            "Replay the same step while supervising and record which upgrade was missed."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "What changes the diagnosis",
          "paragraphs": [
            "If the macro clicked the wrong button, check UI settings. If it clicked before the panel appeared, increase the delay. These are different problems."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Distinguish why an upgrade was skipped",
          "paragraphs": [
            "Insufficient cash, a delayed tower panel, a misplaced click, and the wrong upgrade path require different checks. Identify the symptom before changing settings."
          ],
          "steps": [
            "Note the tower, wave, intended path, and whether enough cash was visible.",
            "If the wrong path upgraded, check Prefer Vertical Upgrades and your upgrade and bottom-path keybinds.",
            "If the panel appeared late, increase Upgrade Delay conservatively and retry the same step.",
            "If the panel never opened or the click landed elsewhere, check display settings and Roblox focus instead.",
            "If it persists, share redacted debug logs with the version and expected versus actual action."
          ],
          "checks": [],
          "rows": []
        }
      ],
      "source": "/guide/troubleshooting/",
      "keywords": [
        "upgrade",
        "path",
        "top",
        "bottom",
        "money",
        "delay"
      ],
      "version": "v1.3.x"
    },
    {
      "slug": "abilities-not-working",
      "title": "Abilities don't activate",
      "summary": "Fix mismatched TDS ability keybinds.",
      "category": "Troubleshooting",
      "source": "/guide/troubleshooting/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=abilities-not-working",
      "keywords": [
        "ability",
        "abilities",
        "call of arms",
        "dj",
        "brawler",
        "keybind"
      ],
      "sections": [
        {
          "title": "Check both sets of keybinds",
          "paragraphs": [],
          "steps": [
            "Open TDS and find the key assigned to the ability.",
            "Open Ultimate Macro → Settings → TDS Keybinds.",
            "Set the matching key in both places.",
            "Test the ability manually, then in a short supervised macro run."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Why there may be no error",
          "paragraphs": [
            "The macro sends the configured key press. If the game expects a different key, no action happens, even though the macro sent its input."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "legacy-mode",
      "title": "Auto Equip or targeting stopped working",
      "summary": "Legacy Mode deliberately disables some features.",
      "category": "Troubleshooting",
      "source": "/guide/troubleshooting/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=legacy-mode",
      "keywords": [
        "legacy",
        "auto equip",
        "target",
        "targeting",
        "disabled"
      ],
      "sections": [
        {
          "title": "Check Legacy Mode",
          "paragraphs": [
            "Legacy Mode disables Auto Equip and target changes. Turn it off to use those features."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "What to do",
          "paragraphs": [],
          "steps": [
            "Open Settings and check whether Legacy Mode is enabled.",
            "Disable it to use the adaptive image-detection path.",
            "Retest Auto Equip and tower targeting.",
            "Only use Legacy Mode as a fallback when necessary; it can retain 1920×1080 limitations."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "stuck-between-matches",
      "title": "Stuck after a match",
      "summary": "Check restart, play-again, and map verification.",
      "category": "Troubleshooting",
      "source": "/guide/sessions/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=stuck-between-matches",
      "keywords": [
        "restart",
        "play again",
        "map",
        "stuck",
        "lobby",
        "between"
      ],
      "sections": [
        {
          "title": "Check the transition",
          "paragraphs": [],
          "steps": [
            "Check whether the macro stopped on a win, loss, lobby, or Ready screen.",
            "Verify that Click Restart and Click Play Again are configured for your strategy.",
            "Keep Check the map enabled so a wrong map can be detected.",
            "Stop with F2 and replay a single strategy while watching the transition.",
            "Save the last log entry and the screen state if it gets stuck again."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Wrong map after a win-only run?",
          "paragraphs": [
            "Disable Click Restart if a win-only strategy sends you to the wrong map."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "recover-disconnect",
      "title": "Roblox disconnects during a run",
      "summary": "What recovery handles and what to check when it stalls.",
      "category": "Troubleshooting",
      "source": "/guide/sessions/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=recover-disconnect",
      "keywords": [
        "reconnect",
        "disconnect",
        "roblox",
        "lost connection",
        "retry",
        "recover"
      ],
      "sections": [
        {
          "title": "Automatic recovery",
          "paragraphs": [
            "Ultimate Macro can reconnect Roblox and re-enter TDS after a disconnect. If it stops at a login prompt or unexpected dialog, use the checks below."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "If it doesn't rejoin",
          "paragraphs": [],
          "steps": [
            "Check whether Roblox can connect normally.",
            "Dismiss unexpected Roblox dialogs or login prompts.",
            "Stop with F2 if possible and save the recent logs.",
            "Retry while watching the reconnect sequence and identify the screen where it gets stuck."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "discord-not-working",
      "title": "Discord updates aren't arriving",
      "summary": "Separate webhook failures from remote-control failures.",
      "category": "Troubleshooting",
      "source": "/guide/discord/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=discord-not-working",
      "keywords": [
        "discord",
        "webhook",
        "bot",
        "remote",
        "status",
        "error"
      ],
      "sections": [
        {
          "title": "Webhook test",
          "paragraphs": [],
          "steps": [
            "Open the macro's Discord tab.",
            "Use Test Webhook with your configured URL.",
            "If it fails, confirm the webhook still exists and the right URL was pasted.",
            "Check whether Discord message permissions or channel settings have changed."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Remote commands",
          "paragraphs": [
            "Check that the macro runs locally, then try a bot status request. If that fails, verify the connection for your version."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Keep secrets private",
          "paragraphs": [
            "Never paste webhook URLs or bot tokens into public support posts. Rotate a URL or token if it leaks."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "discord-webhooks",
      "title": "Send logs to Discord",
      "summary": "Set up a webhook for run logs, stats and screenshots.",
      "category": "Community",
      "source": "/guide/discord/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=discord-webhooks",
      "keywords": [
        "discord",
        "webhook",
        "logs",
        "screenshots",
        "statistics"
      ],
      "sections": [
        {
          "title": "Create a private webhook",
          "paragraphs": [],
          "steps": [
            "In a Discord server, open a channel's settings → Integrations → Webhooks.",
            "Create a webhook and copy its URL.",
            "Open the macro's Discord tab, paste the URL and enable the webhook.",
            "Select the information you want to send, then use Test Webhook."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Available reports",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Send Statistics",
              "Currency and session numbers read with OCR."
            ],
            [
              "Debug Logs",
              "Local debug events forwarded to Discord."
            ],
            [
              "Automatic screenshots",
              "Periodic images during a run."
            ],
            [
              "Triumph / Loss screenshots",
              "Result-screen images, optionally sent to a second webhook."
            ]
          ]
        },
        {
          "title": "Privacy",
          "paragraphs": [
            "Treat a webhook URL as a password. Screenshots may show account names or other on-screen details."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "discord-remote",
      "title": "Remote control from Discord",
      "summary": "Use documented EngineerBot or personal-bot commands.",
      "category": "Community",
      "source": "/guide/discord/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=discord-remote",
      "keywords": [
        "engineerbot",
        "discord",
        "remote",
        "personal bot",
        "screenshot"
      ],
      "sections": [
        {
          "title": "What it can do",
          "paragraphs": [],
          "steps": [],
          "checks": [
            "Start and stop the macro",
            "Request status or a screenshot",
            "Check version, stats and logs",
            "Check or select the strategy (where supported)"
          ],
          "rows": []
        },
        {
          "title": "Before enabling",
          "paragraphs": [
            "Test a status command before relying on remote controls. Available commands depend on the installed version; keep bot credentials private."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "discord-community",
      "title": "Discord community",
      "summary": "Find announcements, strategies and support.",
      "category": "Community",
      "source": "https://discord.gg/ultmacro",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=discord-community",
      "keywords": [
        "discord",
        "server",
        "roles",
        "support",
        "community"
      ],
      "sections": [
        {
          "title": "Official server",
          "paragraphs": [
            "The official Discord hosts announcements, community strategies and support. See the current channels for roles and events."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Before asking for help",
          "paragraphs": [],
          "steps": [],
          "checks": [
            "Macro version",
            "What you were doing",
            "What happened versus what you expected",
            "Relevant log or screenshot with personal details removed"
          ],
          "rows": []
        }
      ]
    },
    {
      "slug": "report-issue",
      "title": "Report an issue",
      "summary": "Give developers a reproducible report instead of a vague description.",
      "category": "Community",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/issues",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=report-issue",
      "keywords": [
        "bug",
        "issue",
        "error",
        "report",
        "log",
        "support"
      ],
      "sections": [
        {
          "title": "Collect the important details",
          "paragraphs": [],
          "steps": [
            "Enable Debug Logs in Settings.",
            "Reproduce the problem once, if safe.",
            "Note the version, Windows resolution and game settings.",
            "Describe the expected result and actual result.",
            "Attach the relevant log and a redacted screenshot when useful.",
            "Search existing GitHub issues before filing a new one."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Where to send it",
          "paragraphs": [
            "Send the report to GitHub Issues or the official Discord support channel. Remove credentials and webhook URLs from any logs."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "about",
      "title": "About Ultimate Macro",
      "summary": "Project background and license.",
      "category": "Community",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=about",
      "keywords": [
        "about",
        "license",
        "source",
        "history"
      ],
      "sections": [
        {
          "title": "What it is",
          "paragraphs": [
            "Ultimate Macro is a free, open-source Windows macro for Roblox Tower Defense Simulator. It uses image detection and OCR rather than injecting code into Roblox."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Open source",
          "paragraphs": [
            "The New Era continues the project originally created by Darksen. The public code is distributed under GPL-3.0. Read the repository for license terms, contributors and releases."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Not an official Roblox product",
          "paragraphs": [
            "Ultimate Macro is a third-party tool and is not affiliated with Roblox or Paradoxum Games. Automation carries account and game-policy risks."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "slow-inputs",
      "title": "Macro is slow or misses inputs",
      "summary": "Adjust timing and performance settings without breaking placement.",
      "category": "Troubleshooting",
      "source": "/guide/troubleshooting/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=slow-inputs",
      "keywords": [
        "lag",
        "slow",
        "delay",
        "mouse",
        "keyboard",
        "potato",
        "mode",
        "freezes",
        "timing"
      ],
      "sections": [
        {
          "title": "Change one delay at a time",
          "paragraphs": [],
          "steps": [
            "Open Ultimate Macro Settings.",
            "If upgrades are skipped while the upgrade panel loads, raise Upgrade Delay.",
            "If mouse actions happen too quickly, increase Mouse Delay.",
            "If key presses are missed, increase Key Delay.",
            "Test a short run after each adjustment so you know which change helped."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "On weaker PCs",
          "paragraphs": [
            "Potato Mode lowers macro overhead on slower machines. Try it before switching image detection methods."
          ],
          "steps": [],
          "checks": [
            "Keep Legacy Mode off unless needed as a fallback.",
            "Legacy Mode may be limited to 1920×1080 and disables Auto Equip and target changes."
          ],
          "rows": []
        }
      ]
    },
    {
      "slug": "record-abilities",
      "title": "Record DJ and tower abilities",
      "summary": "Hotkeys for DJ tracks, Necromancer and Brawler actions.",
      "category": "Strategies",
      "source": "/guide/recording/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=record-abilities",
      "keywords": [
        "dj",
        "track",
        "disc",
        "change",
        "abilities",
        "record",
        "necromancer",
        "brawler",
        "keybind"
      ],
      "sections": [
        {
          "title": "DJ track changes",
          "paragraphs": [
            "The existing recorder also supports scheduling DJ disc changes by wave."
          ],
          "steps": [
            "Open Create → Record a Strategy.",
            "During the match, use Ctrl + D to record a DJ track change.",
            "Save the .strat file and replay it to confirm the track change is timed correctly."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Necromancer and Brawler",
          "paragraphs": [
            "To record Raise the Dead (Necromancer) or a Brawler reposition, hold Ctrl with the ability's in-game keybind. These actions do not use a separate recording shortcut."
          ],
          "steps": [],
          "checks": [
            "Confirm the ability keybinds in Ultimate Macro match TDS.",
            "Test the strategy before sharing it."
          ],
          "rows": []
        }
      ]
    },
    {
      "slug": "timescale-tickets",
      "title": "Use Timescale tickets",
      "summary": "Configure 1.5× or 2× matches when you have tickets.",
      "category": "Sessions & tools",
      "source": "/guide/sessions/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=timescale-tickets",
      "keywords": [
        "timescale",
        "tickets",
        "1.5x",
        "2x",
        "speed",
        "quick",
        "run"
      ],
      "sections": [
        {
          "title": "Configure Timescale",
          "paragraphs": [],
          "steps": [
            "Confirm that timescale tickets are available on the Roblox account.",
            "Open Ultimate Macro Settings.",
            "Set Timescale to 1.5× or 2×.",
            "Run one match while watching its timing and game transitions."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Check the strategy",
          "paragraphs": [
            "Faster games reduce run time, but a strategy still needs to work at the selected speed. Return to standard speed if the run repeatedly stalls or misses actions."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "official-downloads",
      "title": "Use official release downloads",
      "summary": "Find trusted ZIP files and check which release you are installing.",
      "category": "Start here",
      "source": "/download/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=official-downloads",
      "keywords": [
        "official",
        "github",
        "release",
        "download",
        "zip",
        "trusted"
      ],
      "sections": [
        {
          "title": "Where to download",
          "paragraphs": [
            "Use the Ultimate Macro download page or the releases published by UltimateMacro/Ultimate-Macro-New-Era. The source repository itself is not a substitute for the complete packaged ZIP."
          ],
          "steps": [
            "Open the Download page or official GitHub Releases.",
            "Choose the release you want to use and read its notes.",
            "Download its ZIP asset, then extract it completely."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Before updating",
          "paragraphs": [
            "Keep a copy of your working custom .strat files and configuration. Test any version change with a short supervised run."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "zip-folders",
      "title": "Keep release folders together",
      "summary": "Why Main.ahk must stay beside its libraries and resources.",
      "category": "Start here",
      "source": "/guide/install/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=zip-folders",
      "keywords": [
        "extract",
        "zip",
        "lib",
        "resources",
        "submacros",
        "directory"
      ],
      "sections": [
        {
          "title": "Required layout",
          "paragraphs": [
            "Extract the release as a complete folder. Main.ahk relies on companion files and folders such as lib, Resources and submacros."
          ],
          "steps": [
            "Extract all ZIP contents, not only Main.ahk.",
            "Keep the original directory structure.",
            "Launch Main.ahk from inside that extracted folder."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "When files go missing",
          "paragraphs": [
            "Download the official release again, extract it into a clean folder, and compare folder contents before transferring personal strategies."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "ahk-versions",
      "title": "AutoHotkey v1 vs v2",
      "summary": "Make sure Main.ahk uses the 64-bit v2 interpreter.",
      "category": "Start here",
      "source": "/guide/install/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=ahk-versions",
      "keywords": [
        "autohotkey",
        "v2",
        "v1",
        "64bit",
        "32bit",
        "interpreter"
      ],
      "sections": [
        {
          "title": "Supported interpreter",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Required",
              "AutoHotkey v2.0"
            ],
            [
              "Architecture",
              "64-bit"
            ],
            [
              "Not compatible",
              "AutoHotkey v1.1"
            ]
          ]
        },
        {
          "title": "Check the association",
          "paragraphs": [
            "Both AutoHotkey versions can coexist on Windows."
          ],
          "steps": [
            "Install 64-bit AutoHotkey v2.",
            "Check the default application for .ahk files.",
            "Open Main.ahk again with the v2 launcher.",
            "If a 32-bit warning appears, change to the 64-bit build."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "first-match-checklist",
      "title": "First-match checklist",
      "summary": "Use one match to confirm the whole playback loop.",
      "category": "Start here",
      "source": "/guide/first-run/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=first-match-checklist",
      "keywords": [
        "first",
        "supervised",
        "run",
        "check",
        "placement",
        "upgrade",
        "result"
      ],
      "sections": [
        {
          "title": "Before pressing F1",
          "paragraphs": [],
          "steps": [],
          "checks": [
            "Supported 16:9 resolution and visible Windows taskbar",
            "TDS UI Scale: Large, Screen Shake: Disabled",
            "Roblox at 60 FPS with Classic camera",
            "Correct tower loadout and TDS keybinds"
          ],
          "rows": []
        },
        {
          "title": "During the run",
          "paragraphs": [],
          "steps": [
            "Watch the first placement and confirm the tower appears.",
            "Confirm at least one upgrade follows the intended path.",
            "Watch for end-of-match detection and correct return to the next game.",
            "Stop with F2 if anything mismatches and note which step failed."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "auto-equip",
      "title": "Auto Equip Towers",
      "summary": "Let a strategy's required towers be equipped before the match.",
      "category": "Sessions & tools",
      "source": "/guide/first-run/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=auto-equip",
      "keywords": [
        "auto",
        "equip",
        "tower",
        "loadout",
        "missing",
        "golden",
        "legacy"
      ],
      "sections": [
        {
          "title": "Enable it",
          "paragraphs": [
            "The Main tab offers Auto Equip Towers for strategies with a defined loadout."
          ],
          "steps": [
            "Choose a strategy with tower requirements.",
            "Confirm the Roblox account owns every required tower, including golden variants.",
            "Enable Auto Equip Towers.",
            "Observe the loadout before your first match."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Limits",
          "paragraphs": [
            "Auto Equip cannot equip a tower the account doesn't own. It is unavailable in Legacy Mode."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "default-tds-keybinds",
      "title": "Default TDS ability keybinds",
      "summary": "Match the recorded macro keys to Tower Defense Simulator.",
      "category": "Setup & settings",
      "source": "/guide/first-run/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=default-tds-keybinds",
      "keywords": [
        "hotkeys",
        "default",
        "tds",
        "abilities",
        "command",
        "support",
        "caravan",
        "keys"
      ],
      "sections": [
        {
          "title": "Default bindings",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Call of Arms",
              "C"
            ],
            [
              "Drop the Beat",
              "B"
            ],
            [
              "Support Caravan",
              "J"
            ],
            [
              "Raise the Dead",
              "V"
            ],
            [
              "Hologram",
              "K"
            ],
            [
              "Reposition",
              "L"
            ],
            [
              "Upgrade",
              "E"
            ],
            [
              "Bottom path",
              "Z"
            ],
            [
              "Cancel placement",
              "Q"
            ]
          ]
        },
        {
          "title": "Verify both sides",
          "paragraphs": [
            "In Ultimate Macro open Settings → TDS Keybinds, then compare each assigned key with TDS itself. A mismatch can make an ability do nothing without an error."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strategy-browser",
      "title": "Community and My Strats",
      "summary": "Use the Main tab's built-in strategy browser.",
      "category": "Strategies",
      "source": "/guide/first-run/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=strategy-browser",
      "keywords": [
        "community",
        "my",
        "strats",
        "browser",
        "local",
        "choose",
        "strategies"
      ],
      "sections": [
        {
          "title": "Choose a source",
          "paragraphs": [
            "On Main → Strategies, Community contains shared strategy cards and My Strats contains your own files."
          ],
          "steps": [
            "Open the Strategies browser.",
            "Use Community to inspect a shared strategy, or My Strats for your recordings.",
            "Use Browse to select a local .strat file when needed.",
            "Review required towers, map and mode before pressing Start."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Don't skip the test",
          "paragraphs": [
            "Community cards and download metadata do not guarantee a strategy will work after a TDS update. Watch its first match."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "recording-metadata",
      "title": "Strategy recording setup",
      "summary": "Set map, mode, towers and modifiers before capturing actions.",
      "category": "Strategies",
      "source": "/guide/recording/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=recording-metadata",
      "keywords": [
        "record",
        "map",
        "mode",
        "towers",
        "modifier",
        "golden",
        "metadata",
        "strategy"
      ],
      "sections": [
        {
          "title": "Create → Record a Strategy",
          "paragraphs": [],
          "steps": [
            "Choose the map and mode from the dropdowns.",
            "Enter required towers as a comma-separated list.",
            "For a golden tower, prefix the name with G, for example G Minigunner.",
            "Hold Ctrl while selecting multiple modifiers.",
            "Choose ability toggles, wave skipping and optional starting movement as needed.",
            "Record your match and save its .strat file."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Supported mode families",
          "paragraphs": [
            "The documented recorder includes Easy, Casual, Intermediate, Molten, Fallen, Frost, Hardcore, Voidcore and Arcade, plus map-specific selections. The game may change available modes."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "recording-modifiers",
      "title": "Record multiple modifiers",
      "summary": "Use Ctrl selection when preparing a strategy recording.",
      "category": "Strategies",
      "source": "/guide/recording/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=recording-modifiers",
      "keywords": [
        "record",
        "modifiers",
        "ctrl",
        "multi",
        "select",
        "recording"
      ],
      "sections": [
        {
          "title": "Choose modifiers",
          "paragraphs": [],
          "steps": [
            "Open Create → Record a Strategy.",
            "Find the Modifiers control.",
            "Hold Ctrl while selecting or deselecting additional modifiers.",
            "Confirm your selection before starting the match.",
            "Save and replay the strategy to verify the configuration."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Why record metadata",
          "paragraphs": [
            "A strategy without correct mode and modifier information can run on the wrong configuration even when its actions are valid."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "golden-tower-requirements",
      "title": "Specify golden tower requirements",
      "summary": "How the recording loadout denotes golden variants.",
      "category": "Strategies",
      "source": "/guide/recording/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=golden-tower-requirements",
      "keywords": [
        "golden",
        "tower",
        "g",
        "prefix",
        "recording",
        "requirements"
      ],
      "sections": [
        {
          "title": "Tower list format",
          "paragraphs": [
            "Recording accepts a comma-separated tower list. Use the G prefix for a golden version, such as G Minigunner, alongside regular names like Ranger or Commander."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Check before sharing",
          "paragraphs": [],
          "steps": [
            "Confirm the golden tower variant is required by the strategy.",
            "Include it in the recording metadata.",
            "Tell users they must own it before trying Auto Equip.",
            "Test that the matching loadout is equipped."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "recording-ability-toggles",
      "title": "Recording ability options",
      "summary": "Understand the recording controls for abilities and wave skipping.",
      "category": "Strategies",
      "source": "/guide/recording/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=recording-ability-toggles",
      "keywords": [
        "record",
        "call",
        "of",
        "arms",
        "support",
        "caravan",
        "drop",
        "the",
        "beat",
        "skip",
        "waves",
        "ability"
      ],
      "sections": [
        {
          "title": "Available recording options",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Use Call of Arms",
              "Record or enable relevant ability automation"
            ],
            [
              "Use Support Caravan",
              "Include support ability use"
            ],
            [
              "Use Drop the Beat",
              "Include DJ ability use"
            ],
            [
              "Auto Skip Waves",
              "Include recorded skip behavior"
            ],
            [
              "Abilities Spam",
              "Set the recorder's repeated ability option"
            ]
          ]
        },
        {
          "title": "Before replay",
          "paragraphs": [
            "Confirm game keybinds and ability ownership on the receiving account. A toggle is not proof a tower or ability is available."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "recording-movement",
      "title": "Record opening movement",
      "summary": "Configure optional starting movement before tower placement.",
      "category": "Strategies",
      "source": "/guide/recording/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=recording-movement",
      "keywords": [
        "record",
        "move",
        "milliseconds",
        "direction",
        "initial",
        "character"
      ],
      "sections": [
        {
          "title": "Move option",
          "paragraphs": [
            "The documented recording form can move your Roblox character in a chosen direction for a specified number of milliseconds at the start of a run."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Use carefully",
          "paragraphs": [],
          "steps": [
            "Open the recording setup.",
            "Choose a starting direction only when the strategy requires it.",
            "Set a short movement duration in milliseconds.",
            "Record and test the opening sequence before extending the duration."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "recording-quality",
      "title": "Record a repeatable strategy",
      "summary": "Avoid capturing rushed actions that fail on replay.",
      "category": "Strategies",
      "source": "/guide/recording/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=recording-quality",
      "keywords": [
        "reliable",
        "recording",
        "timing",
        "money",
        "delay",
        "test"
      ],
      "sections": [
        {
          "title": "Before recording",
          "paragraphs": [
            "The recorder saves what you actually do. A winning match doesn't guarantee a repeatable strategy if clicks and upgrades are too tightly spaced."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Improve your recording",
          "paragraphs": [],
          "steps": [
            "Use stable Windows and TDS settings.",
            "Allow UI panels to open before taking the next action.",
            "Wait for cash to become available before upgrading.",
            "Use descriptive filenames, for example pw2_solo_farm.strat.",
            "Replay the finished file and watch the whole match."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "tower-upgrade-paths",
      "title": "Record split upgrade paths",
      "summary": "Capture the intended top or bottom upgrade path.",
      "category": "Strategies",
      "source": "/guide/recording/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=tower-upgrade-paths",
      "keywords": [
        "split",
        "path",
        "top",
        "bottom",
        "upgrades",
        "strategy",
        "recording"
      ],
      "sections": [
        {
          "title": "Record upgrades",
          "paragraphs": [
            "The recorded strategy format supports top and bottom upgrade paths as separate actions."
          ],
          "steps": [
            "Confirm TDS Prefer Vertical Upgrades is enabled.",
            "Record the tower placement first.",
            "Use the correct upgrade hotkey for the intended path.",
            "Save the .strat and replay until you confirm the right path was upgraded."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Troubleshoot",
          "paragraphs": [
            "If paths differ during replay, verify TDS keybinds and panel layout. Increase Upgrade Delay only when the panel is late opening."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "record-delete-last",
      "title": "Undo the last recorded action",
      "summary": "Remove a mistaken recorder action with Ctrl + B.",
      "category": "Strategies",
      "source": "/guide/recording/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=record-delete-last",
      "keywords": [
        "delete",
        "record",
        "undo",
        "ctrl",
        "b",
        "recording"
      ],
      "sections": [
        {
          "title": "During recording",
          "paragraphs": [],
          "steps": [
            "Pause before recording the next action.",
            "Press Ctrl + B to remove the last recorded action.",
            "Check the remaining sequence before continuing.",
            "Save a separate test .strat and replay it to verify the correction."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Default hotkey",
          "paragraphs": [
            "Ctrl + B is the documented default Delete Record shortcut; it can be changed in Recording Hotkeys."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "dj-wave-schedule",
      "title": "Schedule DJ discs by wave",
      "summary": "Use wave-based DJ track changes instead of manual timing where supported.",
      "category": "Strategies",
      "source": "/guide/recording/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=dj-wave-schedule",
      "keywords": [
        "dj",
        "disc",
        "wave",
        "schedule",
        "music",
        "record"
      ],
      "sections": [
        {
          "title": "Available recording behavior",
          "paragraphs": [
            "The documented recorder supports DJ disc changes with Ctrl + D and a wave-based schedule."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Validate the sequence",
          "paragraphs": [],
          "steps": [
            "Set the intended DJ change in the strategy's recording flow.",
            "Confirm the starting DJ track.",
            "Run a supervised replay and note the wave on which the disc actually changes.",
            "Adjust the strategy if the match reaches the change earlier than expected."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strategy-rotation-runs",
      "title": "Rotate strategies after runs",
      "summary": "Switch between two strategies after a chosen run count.",
      "category": "Sessions & tools",
      "source": "/guide/sessions/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=strategy-rotation-runs",
      "keywords": [
        "swap",
        "strategy",
        "rotation",
        "runs",
        "count",
        "alternate"
      ],
      "sections": [
        {
          "title": "Main tab",
          "paragraphs": [],
          "steps": [
            "Select two strategies on Main.",
            "Enable Strategy Rotation.",
            "Choose Runs for Swap after.",
            "Enter how many runs to complete before switching.",
            "Watch at least one switch to confirm both strategies start correctly."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Pre-check",
          "paragraphs": [
            "Both strategies need compatible maps, modes and tower loadouts."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strategy-rotation-minutes",
      "title": "Rotate strategies after minutes",
      "summary": "Use a time interval rather than a run count.",
      "category": "Sessions & tools",
      "source": "/guide/sessions/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=strategy-rotation-minutes",
      "keywords": [
        "swap",
        "rotation",
        "minutes",
        "interval",
        "strategy"
      ],
      "sections": [
        {
          "title": "Main tab",
          "paragraphs": [],
          "steps": [
            "Choose two strategies.",
            "Turn on Strategy Rotation.",
            "Choose Minutes under Swap after.",
            "Set the intended interval.",
            "Watch the first switch and verify the target strategy."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Avoid surprises",
          "paragraphs": [
            "The time setting controls rotation; it does not make an incompatible strategy work with the current towers."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "currency-goals",
      "title": "Set a currency goal",
      "summary": "Let the macro select compatible strategies until a target is met.",
      "category": "Sessions & tools",
      "source": "/guide/sessions/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=currency-goals",
      "keywords": [
        "goals",
        "currency",
        "coin",
        "gem",
        "target",
        "stop"
      ],
      "sections": [
        {
          "title": "Goal behavior",
          "paragraphs": [
            "The documented Goals feature uses a currency target, not only a fixed number of runs, and selects compatible strategies toward it."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Set up",
          "paragraphs": [],
          "steps": [
            "Open the session goal controls in your installed version.",
            "Choose the currency and target.",
            "Check that compatible strategies are available.",
            "Watch the first run and confirm progress updates.",
            "Verify that the session stops at the intended target."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "between-matches-settings",
      "title": "Restart, Play Again and map checks",
      "summary": "Set the behavior the macro uses between matches.",
      "category": "Sessions & tools",
      "source": "/guide/sessions/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=between-matches-settings",
      "keywords": [
        "restart",
        "play",
        "again",
        "check",
        "map",
        "between",
        "matches"
      ],
      "sections": [
        {
          "title": "Options",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Click Restart",
              "Used after a loss; normally enabled"
            ],
            [
              "Click Play Again",
              "Used after a win; normally enabled"
            ],
            [
              "Check the map",
              "Verifies the destination map and can reload if incorrect"
            ],
            [
              "Collect playtime rewards",
              "Claims available daily and playtime rewards"
            ]
          ]
        },
        {
          "title": "Recommended test",
          "paragraphs": [
            "Run one match and observe the result-screen action and map selection. For a win-only strategy entering the wrong map, try turning Restart off."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "timescale-confirmation",
      "title": "Check Timescale ticket prompts",
      "summary": "Diagnose a Timescale prompt before a faster run.",
      "category": "Sessions & tools",
      "source": "/guide/sessions/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=timescale-confirmation",
      "keywords": [
        "timescale",
        "ticket",
        "prompt",
        "confirmation",
        "1.5",
        "2"
      ],
      "sections": [
        {
          "title": "First checks",
          "paragraphs": [],
          "steps": [
            "Confirm the account has the required Timescale tickets.",
            "Select 1.5× or 2× in Settings.",
            "Run once under supervision and watch the confirmation flow.",
            "If a ticket prompt prevents starting, return to normal speed and collect the exact prompt."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Scope",
          "paragraphs": [
            "The documented public release supports Timescale. Confirm button labels and confirmation behavior against the installed build before escalating a bug."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "startup-resume",
      "title": "Start from lobby or Ready screen",
      "summary": "How resume-aware startup handles a running Roblox session.",
      "category": "Sessions & tools",
      "source": "/guide/sessions/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=startup-resume",
      "keywords": [
        "resume",
        "lobby",
        "ready",
        "startup",
        "detect",
        "existing",
        "session"
      ],
      "sections": [
        {
          "title": "Supported states",
          "paragraphs": [
            "Documented releases can start while Roblox is already in the TDS lobby or on the Ready screen."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Before testing",
          "paragraphs": [],
          "steps": [
            "Check the correct Roblox window is focused.",
            "Open the macro with a known-good strategy.",
            "Observe the existing game state being recognized.",
            "Stop with F2 if it attempts a wrong transition."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "prerun-checks",
      "title": "Pre-run diagnostics",
      "summary": "Review resolution, scaling, OCR and dependencies before playing.",
      "category": "Sessions & tools",
      "source": "/guide/sessions/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=prerun-checks",
      "keywords": [
        "precheck",
        "diagnostics",
        "ocr",
        "resolution",
        "scaling",
        "dependencies"
      ],
      "sections": [
        {
          "title": "What is checked",
          "paragraphs": [
            "The documented pre-run diagnostics include Windows resolution, display scaling, OCR and missing dependencies."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "If a check fails",
          "paragraphs": [],
          "steps": [
            "Identify the failing prerequisite.",
            "Open the matching Windows or macro setting.",
            "Correct it without changing unrelated settings.",
            "Rerun the check before starting a long session."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "discord-statistics",
      "title": "Discord session statistics",
      "summary": "Understand OCR-based session information sent to Discord.",
      "category": "Community",
      "source": "/guide/discord/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=discord-statistics",
      "keywords": [
        "discord",
        "statistics",
        "currency",
        "session",
        "ocr",
        "send"
      ],
      "sections": [
        {
          "title": "Enable the report",
          "paragraphs": [],
          "steps": [
            "Create a private Discord webhook.",
            "Enable the webhook from the macro's Discord tab.",
            "Select Send Statistics.",
            "Use Test Webhook, then check a live match update."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "What numbers mean",
          "paragraphs": [
            "Statistics are read with OCR. If a value is wrong, fix Windows OCR and Roblox fonts before treating it as a Discord problem."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "discord-screenshot-reports",
      "title": "Discord screenshot notifications",
      "summary": "Use periodic and result-screen screenshots to follow a run.",
      "category": "Community",
      "source": "/guide/discord/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=discord-screenshot-reports",
      "keywords": [
        "discord",
        "screenshot",
        "triumphant",
        "loss",
        "periodic",
        "private",
        "webhook"
      ],
      "sections": [
        {
          "title": "Available images",
          "paragraphs": [
            "Automatic screenshots can be sent periodically; Triumph and Loss screenshots capture the end-of-match result screen. The result images can use a second webhook."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Privacy check",
          "paragraphs": [],
          "steps": [
            "Choose a private channel.",
            "Enable the screenshot types you want.",
            "Check a test result for user names or other personal details.",
            "Share only redacted examples with public support."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "discord-webhook-security",
      "title": "Keep Discord webhook URLs private",
      "summary": "A leaked webhook can be used to post into your channel.",
      "category": "Community",
      "source": "/guide/discord/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=discord-webhook-security",
      "keywords": [
        "webhook",
        "security",
        "leaked",
        "exposed",
        "tokens",
        "credentials"
      ],
      "sections": [
        {
          "title": "Before sharing configuration",
          "paragraphs": [],
          "steps": [
            "Do not paste a webhook URL into a public issue or Discord message.",
            "Redact the URL from screenshots and logs.",
            "Use a private channel for the macro's screenshots and session events.",
            "If leaked, delete or regenerate the webhook in Discord and update the macro settings."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "engineerbot-commands",
      "title": "EngineerBot remote commands",
      "summary": "Supported remote start, stop, screenshot and status controls.",
      "category": "Community",
      "source": "/guide/discord/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=engineerbot-commands",
      "keywords": [
        "discord",
        "engineerbot",
        "remote",
        "control",
        "commands"
      ],
      "sections": [
        {
          "title": "Supported actions",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Start / stop",
              "Control the macro remotely"
            ],
            [
              "Status",
              "Query current macro state"
            ],
            [
              "Screenshot",
              "Inspect what the Windows PC shows"
            ],
            [
              "Version / stats / logs",
              "Fetch relevant diagnostics"
            ],
            [
              "Selected strategy",
              "Query the active strategy"
            ]
          ]
        },
        {
          "title": "Before trusting remote stop",
          "paragraphs": [
            "Test local F2 control first and verify the bot's connection. Discord connectivity cannot repair a broken local macro session."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "profile-export",
      "category": "Sessions & tools",
      "title": "Export a working profile",
      "summary": "Back up settings, hotkeys and strategies in one bundle.",
      "sections": [
        {
          "title": "Before changing versions",
          "paragraphs": [],
          "steps": [
            "Open Profile Manager.",
            "Export the working settings, hotkeys and strategies.",
            "Save the file somewhere outside the release folder.",
            "Check the backup exists before editing or importing another setup."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Check what was actually protected",
          "paragraphs": [
            "A profile export alone is not proof that every file in the installation folder is backed up. User recordings and bundled strategies have separate locations in v1.3.5."
          ],
          "steps": [
            "Keep the exported profile outside the release folder you may replace.",
            "Copy saved recordings from %APPDATA%\\Ultimate_Macro\\Recordings if that folder exists.",
            "Back up any edited strategy files from Resources\\Strats in the release folder.",
            "Check that the exported profile and separate copies exist before changing versions or importing."
          ],
          "checks": [],
          "rows": []
        }
      ],
      "keywords": [
        "profile",
        "manager",
        "export",
        "backup",
        "strategies",
        "hotkeys"
      ],
      "source": "/guide/discord/",
      "version": "v1.3.x"
    },
    {
      "slug": "profile-import",
      "title": "Import a profile safely",
      "summary": "Restore a bundle without losing your current setup.",
      "category": "Sessions & tools",
      "source": "/guide/discord/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=profile-import",
      "keywords": [
        "profile",
        "manager",
        "import",
        "preview",
        "backup",
        "restore"
      ],
      "sections": [
        {
          "title": "Protect the existing profile",
          "paragraphs": [],
          "steps": [
            "Export your current working profile first.",
            "Open Profile Manager and select Import.",
            "Review its preview of settings, hotkeys and strategies.",
            "Confirm the intended replacements and keep a backup.",
            "Test one strategy after importing."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "tools-hotkeys",
      "title": "Tools shortcuts: F3 and F4",
      "summary": "Start and stop the separate tools from their own windows.",
      "category": "Sessions & tools",
      "source": "/guide/tools/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=tools-hotkeys",
      "keywords": [
        "tools",
        "f3",
        "f4",
        "start",
        "stop",
        "spin",
        "consumable",
        "call",
        "of",
        "arms"
      ],
      "sections": [
        {
          "title": "Tool controls",
          "paragraphs": [
            "The Tools tab opens utilities in always-on-top windows. F3 starts the selected tool and F4 stops it."
          ],
          "steps": [
            "Choose Auto Call of Arms, Auto Spin or Auto Open Consumable.",
            "Open the tool's window.",
            "Press F3 to begin its task.",
            "Press F4 to stop it."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "auto-call-of-arms",
      "title": "Auto Call of Arms",
      "summary": "Run supported abilities at configured intervals.",
      "category": "Sessions & tools",
      "source": "/guide/tools/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=auto-call-of-arms",
      "keywords": [
        "auto",
        "call",
        "of",
        "arms",
        "drop",
        "the",
        "beat",
        "interval",
        "seconds"
      ],
      "sections": [
        {
          "title": "Set up intervals",
          "paragraphs": [],
          "steps": [
            "Open Tools → Auto Call of Arms.",
            "Choose the Call of Arms and Drop the Beat ability options.",
            "Set each desired interval in seconds.",
            "Make sure the Settings keybinds match TDS.",
            "Press F3 to start and F4 to stop."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Important",
          "paragraphs": [
            "Either ability can be disabled independently. The tool cannot activate an unavailable in-game ability."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "auto-spin",
      "title": "Auto Spin",
      "summary": "Automate the spinning wheel with the separate Auto Spin tool.",
      "category": "Sessions & tools",
      "source": "/guide/tools/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=auto-spin",
      "keywords": [
        "auto",
        "spin",
        "wheel",
        "tickets",
        "f3",
        "f4"
      ],
      "sections": [
        {
          "title": "Using Auto Spin",
          "paragraphs": [],
          "steps": [
            "Open Tools → Auto Spin.",
            "Check the spin interface is available in TDS.",
            "Press F3 to start the tool.",
            "Monitor the ticket count while it runs.",
            "Press F4 to stop."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Counter",
          "paragraphs": [
            "The documented tool counts how many tickets were used."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "auto-consumable",
      "title": "Auto Open Consumable",
      "summary": "Use the standalone crate-opening utility.",
      "category": "Sessions & tools",
      "source": "/guide/tools/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=auto-consumable",
      "keywords": [
        "auto",
        "open",
        "consumable",
        "crates",
        "f3",
        "f4"
      ],
      "sections": [
        {
          "title": "Opening consumables",
          "paragraphs": [],
          "steps": [
            "Open Tools → Auto Open Consumable.",
            "Confirm the intended consumables are available.",
            "Press F3 to start opening crates.",
            "Watch the count and stop with F4."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Counter",
          "paragraphs": [
            "The tool reports how many crates it opened."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "legacy-resolution",
      "title": "Legacy Mode and resolution limits",
      "summary": "Why Legacy Mode is a fallback for display detection.",
      "category": "Troubleshooting",
      "source": "/guide/troubleshooting/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=legacy-resolution",
      "keywords": [
        "legacy",
        "mode",
        "1080p",
        "resolution",
        "fallback",
        "image",
        "detection"
      ],
      "sections": [
        {
          "title": "Known limitation",
          "paragraphs": [
            "The public setup guide warns that Legacy Mode can retain 1920×1080 limitations and disables Auto Equip and target changes. Use adaptive detection when possible."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Test",
          "paragraphs": [],
          "steps": [
            "Check whether Legacy Mode is enabled.",
            "Disable it if Auto Equip or target changes are needed.",
            "Use a supported 16:9 resolution; test at 1920×1080 if troubleshooting.",
            "Retest with a bundled strategy before returning to long runs."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "ocr-language-fix",
      "title": "Install missing OCR language",
      "summary": "Correct text detection when English (US) OCR support is absent.",
      "category": "Troubleshooting",
      "source": "/guide/troubleshooting/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=ocr-language-fix",
      "keywords": [
        "ocr",
        "install",
        "english",
        "us",
        "windows",
        "language"
      ],
      "sections": [
        {
          "title": "Windows requirement",
          "paragraphs": [
            "Ultimate Macro uses Windows OCR for currency, wave numbers and result screens."
          ],
          "steps": [
            "Install the English (United States) Windows OCR language pack.",
            "Reopen Ultimate Macro after installation.",
            "Remove any custom Roblox fonts.",
            "Compare a live wave/currency value against the macro's detection."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "When reporting",
          "paragraphs": [
            "Include a cropped screenshot of the value being read incorrectly, the resolution, scaling and release version."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "tower-path-keybind-fix",
      "title": "Bottom-path upgrade key mismatch",
      "summary": "Check the macro's upgrade and bottom path bindings.",
      "category": "Troubleshooting",
      "source": "/guide/troubleshooting/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=tower-path-keybind-fix",
      "keywords": [
        "upgrade",
        "bottom",
        "path",
        "z",
        "e",
        "keybind"
      ],
      "sections": [
        {
          "title": "Check the keys",
          "paragraphs": [
            "The setup guide lists E for Upgrade and Z for Bottom path as defaults."
          ],
          "steps": [
            "Open TDS and check its current upgrade and path shortcuts.",
            "Open Ultimate Macro Settings → TDS Keybinds.",
            "Make the matching keys identical.",
            "Enable TDS Prefer Vertical Upgrades.",
            "Replay one upgrade and verify the intended path."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "debug-logs-export",
      "title": "Capture debug logs for support",
      "summary": "Record the event around a failure without sharing private data.",
      "category": "Troubleshooting",
      "source": "/guide/troubleshooting/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=debug-logs-export",
      "keywords": [
        "debug",
        "logs",
        "export",
        "support",
        "repro",
        "screenshot",
        "error"
      ],
      "sections": [
        {
          "title": "Reproduce and collect",
          "paragraphs": [],
          "steps": [
            "Open Settings and enable Debug Logs.",
            "Run until the failure happens once.",
            "Note the last successful action and the action that should have followed.",
            "Collect the relevant local log excerpt, with personal information removed.",
            "Include macro version, Windows resolution and screen scaling in the support report."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "What makes a report useful",
          "paragraphs": [
            "A short reproducible log is more useful than an entire unrelated session history."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strategy-lab-start",
      "title": "Open Strategy Lab",
      "summary": "Launch the visual .strat editor from the Create tab or release folder.",
      "category": "Strategies",
      "source": "/guide/recording/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=strategy-lab-start",
      "keywords": [
        "strategy",
        "lab",
        "exe",
        "create",
        "edit",
        "open",
        "visual"
      ],
      "sections": [
        {
          "title": "Two entry points",
          "paragraphs": [],
          "steps": [
            "Open Ultimate Macro and select Create → Open Strategy Lab or Edit a Strategy.",
            "Alternatively, run StrategyLab.exe from the fully extracted release folder.",
            "Open a copy of the .strat you want to inspect."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Backup",
          "paragraphs": [
            "Strategy Lab is a visual editor. Save a backup before changing the original strategy file."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "public-release-reference",
      "title": "Version-specific release notes",
      "summary": "Use release notes to understand changed behavior across builds.",
      "category": "Community",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/releases",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=public-release-reference",
      "keywords": [
        "versions",
        "releases",
        "changelog",
        "changes",
        "tags",
        "fixes"
      ],
      "sections": [
        {
          "title": "Find source-of-truth details",
          "paragraphs": [],
          "steps": [
            "Open the official GitHub Releases page.",
            "Find the tag matching the installation you're using.",
            "Read its new features, improvements and bug fixes.",
            "Compare an observed behavior with the release it was introduced or fixed in."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Avoid guessing",
          "paragraphs": [
            "A feature described for one release may not exist in older versions. The current wiki baseline documents public v1.3.x behavior."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "resolution-adaptive",
      "title": "Adaptive resolution support",
      "summary": "Supported 16:9 display sizes and the recommended baseline.",
      "category": "Setup & settings",
      "source": "/guide/display/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=resolution-adaptive",
      "keywords": [
        "adaptive",
        "resolution",
        "720p",
        "1080p",
        "1440p",
        "4k",
        "image",
        "scale"
      ],
      "sections": [
        {
          "title": "Supported displays",
          "paragraphs": [
            "The public 1.3.5 release supports resolution-aware image detection from 720p through 4K, with 8K scaling included. The guide lists the supported 16:9 range from 1280×720 through 3840×2160."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Baseline for troubleshooting",
              "1920×1080 at 100% scale"
            ],
            [
              "Resolution aspect ratio",
              "16:9"
            ],
            [
              "Taskbar",
              "Visible, not auto-hidden"
            ]
          ]
        },
        {
          "title": "If actions miss",
          "paragraphs": [
            "Confirm your resolution, scaling and Roblox window placement first. Increasing timing delays does not fix consistently wrong coordinates."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "macro-account-free",
      "title": "Do I need an account?",
      "summary": "Account requirements for the public v1.3.x local macro.",
      "category": "Start here",
      "source": "/guide/requirements/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=macro-account-free",
      "keywords": [
        "account",
        "login",
        "registration",
        "required",
        "local",
        "free"
      ],
      "sections": [
        {
          "title": "Public v1.3.x behavior",
          "paragraphs": [
            "The published setup guide states that Ultimate Macro runs locally and does not require an account."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Check before a new version",
          "paragraphs": [
            "Account behavior may change in later builds. Follow the release notes for the installed version rather than assuming this is permanent."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "party-host",
      "title": "Host a TDS party",
      "summary": "Configure the Host role and invitation names.",
      "category": "Sessions & tools",
      "source": "/guide/sessions/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=party-host",
      "keywords": [
        "party",
        "host",
        "invite",
        "players",
        "member",
        "names"
      ],
      "sections": [
        {
          "title": "Host setup",
          "paragraphs": [],
          "steps": [
            "Open the Party tab and choose Host.",
            "Enter the members' account names.",
            "Choose when to return to the lobby, when all members or any member leaves.",
            "Save the party configuration.",
            "Test with the other accounts present before an unattended run."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "party-member",
      "title": "Join as a party member",
      "summary": "Configure the Member role to wait for a host invitation.",
      "category": "Sessions & tools",
      "source": "/guide/sessions/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=party-member",
      "keywords": [
        "party",
        "member",
        "host",
        "invite",
        "display",
        "name"
      ],
      "sections": [
        {
          "title": "Member setup",
          "paragraphs": [],
          "steps": [
            "Open the Party tab and choose Member.",
            "Enter the host's display name.",
            "Choose the expected leave/rejoin behavior.",
            "Save, then wait for the host invitation.",
            "Verify all accounts entered the same match."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "vip-server-link",
      "title": "Use a VIP server link",
      "summary": "Configure a Roblox private server for macro runs.",
      "category": "Sessions & tools",
      "source": "/guide/sessions/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=vip-server-link",
      "keywords": [
        "vip",
        "private",
        "server",
        "link",
        "toggle"
      ],
      "sections": [
        {
          "title": "VIP server setup",
          "paragraphs": [],
          "steps": [
            "Check that the account has access to the intended server.",
            "Copy the private server link.",
            "Paste it into VIP Server Link.",
            "Enable Use VIP Server.",
            "Join and verify the correct experience before a long run."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "where-settings-are-saved",
      "title": "Where Ultimate Macro stores settings",
      "summary": "Find the Windows AppData files used by the public v1.3.5 macro.",
      "category": "Setup & settings",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5",
      "url": "https://ultmacro.xyz/wiki/?article=where-settings-are-saved",
      "keywords": [
        "appdata",
        "settings",
        "path",
        "options",
        "ini",
        "tds",
        "folder"
      ],
      "sections": [
        {
          "title": "Options folder",
          "paragraphs": [
            "The released Main.ahk sets the options directory to %APPDATA%\\Ultimate_Macro\\Options and reads its primary configuration from Settings.tds."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Macro settings",
              "%APPDATA%\\Ultimate_Macro\\Options\\Settings.tds"
            ],
            [
              "Discord bot settings",
              "%APPDATA%\\Ultimate_Macro\\Options\\Discord-Bot-Settings.ini"
            ],
            [
              "Runtime state",
              "%APPDATA%\\Ultimate_Macro\\state.ini"
            ]
          ]
        },
        {
          "title": "Inspect without changing anything",
          "paragraphs": [],
          "steps": [
            "Press Win + R, enter %APPDATA%\\Ultimate_Macro and press Enter.",
            "Open Options to locate Settings.tds.",
            "Copy the file to a separate backup folder before inspecting or editing it.",
            "Never share your bot settings file publicly; it can contain credentials."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "where-recordings-are-saved",
      "title": "Where strategy recordings are saved",
      "summary": "Find personal .strat recordings and the bundled strategy directory.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5",
      "url": "https://ultmacro.xyz/wiki/?article=where-recordings-are-saved",
      "keywords": [
        "recordings",
        "strat",
        "path",
        "save",
        "custom",
        "bundled"
      ],
      "sections": [
        {
          "title": "Two different directories",
          "paragraphs": [
            "The released Main.ahk defines a user-specific Recordings folder and a separate Resources\\Strats folder next to the macro."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Recorded strategies",
              "%APPDATA%\\Ultimate_Macro\\Recordings"
            ],
            [
              "Bundled strategy files",
              "<macro folder>\\Resources\\Strats"
            ]
          ]
        },
        {
          "title": "Find your files",
          "paragraphs": [],
          "steps": [
            "Press Win + R and open %APPDATA%\\Ultimate_Macro\\Recordings.",
            "Sort by modification date to find your latest recording.",
            "For bundled strategies, open the extracted macro folder, then Resources and Strats.",
            "Make a copy of any strategy before editing it in Strategy Lab."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "where-profiles-are-saved",
      "title": "Where profile backups are saved",
      "summary": "Identify the local profile directory before importing or resetting settings.",
      "category": "Sessions & tools",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5",
      "url": "https://ultmacro.xyz/wiki/?article=where-profiles-are-saved",
      "keywords": [
        "profile",
        "backup",
        "path",
        "appdata",
        "import"
      ],
      "sections": [
        {
          "title": "Storage location",
          "paragraphs": [
            "The v1.3.5 source creates %APPDATA%\\Ultimate_Macro\\Profiles when missing."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Profile directory",
              "%APPDATA%\\Ultimate_Macro\\Profiles"
            ]
          ]
        },
        {
          "title": "Back up before importing",
          "paragraphs": [],
          "steps": [
            "Open the directory through Win + R.",
            "Make a copy of the profile you plan to import.",
            "Use Profile Manager’s import preview before accepting replacements.",
            "Test a short strategy after restoring a profile."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "what-reset-settings-changes",
      "title": "What Reset to Default actually changes",
      "summary": "The reset action affects settings and hotkeys, not your strategies or Discord setup.",
      "category": "Setup & settings",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5",
      "url": "https://ultmacro.xyz/wiki/?article=what-reset-settings-changes",
      "keywords": [
        "reset",
        "defaults",
        "settings",
        "hotkeys",
        "strategies"
      ],
      "sections": [
        {
          "title": "Included in reset",
          "paragraphs": [
            "The confirmation dialog in Main.ahk explicitly says it resets TDS keybinds, recording hotkeys, macro settings and advanced settings."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "TDS keybinds",
              "Reset"
            ],
            [
              "Recording hotkeys",
              "Reset"
            ],
            [
              "Macro and advanced settings",
              "Reset"
            ],
            [
              "Strategies",
              "Not touched"
            ],
            [
              "Party settings",
              "Not touched"
            ],
            [
              "Discord settings",
              "Not touched"
            ],
            [
              "VIP server link",
              "Not touched"
            ]
          ]
        },
        {
          "title": "Use the reset safely",
          "paragraphs": [],
          "steps": [
            "Back up %APPDATA%\\Ultimate_Macro\\Options\\Settings.tds.",
            "Open Settings and choose Reset to Default.",
            "Read the confirmation dialog before accepting.",
            "Check keybinds and delays after the reset; run a supervised test match."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "recording-hotkey-defaults",
      "title": "Default strategy recording hotkeys",
      "summary": "The exact v1.3.5 shortcut defaults from the reset-settings map.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5",
      "url": "https://ultmacro.xyz/wiki/?article=recording-hotkey-defaults",
      "keywords": [
        "record",
        "hotkey",
        "shortcuts",
        "ctrl",
        "bindings",
        "dj"
      ],
      "sections": [
        {
          "title": "Default recorder shortcuts",
          "paragraphs": [
            "A caret (^) in the AutoHotkey source denotes Ctrl; plus denotes Shift, and exclamation denotes Alt."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Place Tower",
              "F"
            ],
            [
              "Upgrade Tower",
              "Ctrl + U"
            ],
            [
              "Align Camera",
              "Ctrl + T"
            ],
            [
              "Change DJ Track",
              "Ctrl + D"
            ],
            [
              "Sell Tower",
              "Ctrl + X"
            ],
            [
              "Delete last recording",
              "Ctrl + B"
            ],
            [
              "Record inputs",
              "Ctrl + Shift + E"
            ],
            [
              "Hologram",
              "Ctrl + Alt + H"
            ]
          ]
        },
        {
          "title": "If a shortcut does nothing",
          "paragraphs": [],
          "steps": [
            "Open Settings → Recording Hotkeys.",
            "Compare your current keys with the list above; a customized profile can change them.",
            "Make sure Roblox has keyboard focus and the recorder is active.",
            "Test one action and verify it was captured before completing a full strategy."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "enforcer-van-hotkey",
      "title": "Enforcer SWAT Van keybind",
      "summary": "Check the v1.3.5 SWAT Van default and how to record it.",
      "category": "Setup & settings",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5",
      "url": "https://ultmacro.xyz/wiki/?article=enforcer-van-hotkey",
      "keywords": [
        "enforcer",
        "swat",
        "van",
        "ability",
        "key",
        "n"
      ],
      "sections": [
        {
          "title": "Default",
          "paragraphs": [
            "In the released Settings hotkey map, EnforcerVan defaults to N. This is separate from the other tower ability keys."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "SWAT Van",
              "N"
            ]
          ]
        },
        {
          "title": "Recording",
          "paragraphs": [
            "The Main.ahk tooltip says to hold Ctrl with the configured SWAT Van ability key during recording."
          ],
          "steps": [
            "Check the game’s current ability keybind.",
            "Set the same key in Settings → TDS Keybinds.",
            "During recording press Ctrl with that key to capture the ability.",
            "Replay a short match to verify the action occurred."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "upgrade-hotkeys-setting",
      "title": "Use Hotkeys for Upgrading",
      "summary": "Understand the switch that changes how the macro upgrades towers.",
      "category": "Setup & settings",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5",
      "url": "https://ultmacro.xyz/wiki/?article=upgrade-hotkeys-setting",
      "keywords": [
        "upgrade",
        "hotkey",
        "use",
        "upgrading",
        "panel"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "When enabled, the macro presses TDS’s upgrade key instead of clicking the upgrade panel. The released tooltip explicitly recommends enabling it."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Check the setup",
          "paragraphs": [],
          "steps": [
            "In Settings, enable Use Hotkeys for Upgrading.",
            "Confirm your TDS Upgrade key matches Ultimate Macro's TDS Keybinds.",
            "Make sure Prefer Vertical Upgrades is enabled in TDS.",
            "Test one top-path and one bottom-path upgrade."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Don't confuse delay and keybind problems",
          "paragraphs": [
            "An upgrade that selects the wrong path requires checking vertical upgrades and keys first; a panel that opens late is a timing issue."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "timescale-when-tickets-run-out",
      "title": "What happens when Timescale tickets run out",
      "summary": "The documented fallback behavior in the released Settings tooltip.",
      "category": "Sessions & tools",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5",
      "url": "https://ultmacro.xyz/wiki/?article=timescale-when-tickets-run-out",
      "keywords": [
        "timescale",
        "ticket",
        "speed",
        "1.5",
        "2",
        "fallback"
      ],
      "sections": [
        {
          "title": "Automatic fallback",
          "paragraphs": [
            "The v1.3.5 Main.ahk tooltip states that if Timescale tickets run out, the run continues at normal speed."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "1.5×",
              "More stable, suits most strategies"
            ],
            [
              "2×",
              "Requires a strategy built for 2× timing"
            ],
            [
              "No tickets left",
              "Continues at normal speed"
            ]
          ]
        },
        {
          "title": "If the match appears slow",
          "paragraphs": [],
          "steps": [
            "Check whether tickets are still available in TDS.",
            "Check the TimeScale setting in Ultimate Macro.",
            "Compare the strategy's intended speed against the actual speed.",
            "Test under supervision before assuming a macro freeze."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "upgrade-delay-milliseconds",
      "title": "What Upgrade Delay means",
      "summary": "Why lowering the delay may cause skipped upgrades or wrong paths.",
      "category": "Setup & settings",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5",
      "url": "https://ultmacro.xyz/wiki/?article=upgrade-delay-milliseconds",
      "keywords": [
        "upgrade",
        "delay",
        "milliseconds",
        "performance",
        "skipped"
      ],
      "sections": [
        {
          "title": "Exact behavior",
          "paragraphs": [
            "The v1.3.5 tooltip defines Upgrade Delay as the wait, in milliseconds, between two upgrade presses on the same tower."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Unit",
              "Milliseconds"
            ],
            [
              "Reset default",
              "200 ms"
            ],
            [
              "Too low",
              "May skip upgrades or land on the wrong path if the game cannot keep up"
            ]
          ]
        },
        {
          "title": "Safe tuning",
          "paragraphs": [],
          "steps": [
            "Record the current Upgrade Delay value before changing it.",
            "Increase it slightly if repeated upgrades are missed on a slower game.",
            "Replay the same strategy and verify the upgrade path.",
            "Only keep the change if the missed-action rate improves."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "legacy-mode-exact-limits",
      "title": "Legacy Mode: exact limits",
      "summary": "What Legacy Mode changes and which features it disables.",
      "category": "Setup & settings",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5",
      "url": "https://ultmacro.xyz/wiki/?article=legacy-mode-exact-limits",
      "keywords": [
        "legacy",
        "resolution",
        "auto",
        "equip",
        "targeting"
      ],
      "sections": [
        {
          "title": "Released behavior",
          "paragraphs": [
            "The v1.3.5 tooltip says Legacy Mode changes image detection and applies only to 1920×1080. Auto Equip and tower targeting are unavailable while it is enabled."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Required resolution",
              "1920×1080"
            ],
            [
              "Auto Equip",
              "Unavailable"
            ],
            [
              "Tower targeting",
              "Unavailable"
            ],
            [
              "Changing setting",
              "Restarts macro"
            ]
          ]
        },
        {
          "title": "When troubleshooting",
          "paragraphs": [],
          "steps": [
            "Confirm whether Legacy Mode is enabled.",
            "Use the adaptive mode first if you need Auto Equip or tower targeting.",
            "If testing Legacy Mode, set Windows to 1920×1080 and verify the run.",
            "Return to adaptive mode if required features disappear."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "export-debug-logs",
      "title": "Export logs from the Settings page",
      "summary": "Use the built-in Export Logs button for reproducible error reports.",
      "category": "Troubleshooting",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5",
      "url": "https://ultmacro.xyz/wiki/?article=export-debug-logs",
      "keywords": [
        "logs",
        "export",
        "debug",
        "report",
        "developer"
      ],
      "sections": [
        {
          "title": "Where it is",
          "paragraphs": [
            "In v1.3.5 the Settings panel includes an Export Logs button wired to ExportLogsForDevelopers."
          ],
          "steps": [
            "Enable Debug Logs when investigating a problem.",
            "Reproduce the failure in one short session.",
            "Open Settings and select Export Logs.",
            "Inspect the exported material and remove account names, paths or tokens before sharing it."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "What to include",
          "paragraphs": [
            "Report the macro version, game mode, resolution, scaling, expected action and observed result. The log should support the report, not replace the reproduction steps."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "macro-settings-autosave",
      "title": "When settings are saved",
      "summary": "Understand how the public macro persists configuration changes.",
      "category": "Setup & settings",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5",
      "url": "https://ultmacro.xyz/wiki/?article=macro-settings-autosave",
      "keywords": [
        "autosave",
        "save",
        "settings",
        "persistent",
        "appdata"
      ],
      "sections": [
        {
          "title": "Auto-save",
          "paragraphs": [
            "The v1.3.5 source wires settings auto-save controls and writes settings to the Options folder in AppData."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Verify a change",
          "paragraphs": [],
          "steps": [
            "Change one non-sensitive setting in the macro UI.",
            "Close and relaunch the macro normally.",
            "Return to Settings and verify that the value persisted.",
            "If not, inspect file permissions for %APPDATA%\\Ultimate_Macro\\Options and gather the exact error."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "restart-vs-play-again",
      "title": "When to use Restart versus Play Again",
      "summary": "The exact end-of-match distinction used by the released macro.",
      "category": "Sessions & tools",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5",
      "url": "https://ultmacro.xyz/wiki/?article=restart-vs-play-again",
      "keywords": [
        "restart",
        "play",
        "again",
        "win",
        "loss",
        "map"
      ],
      "sections": [
        {
          "title": "Different result screens",
          "paragraphs": [
            "The Settings tooltips state that Click Restart acts after a loss, while Click Play Again acts after a win."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Restart",
              "After a loss"
            ],
            [
              "Play Again",
              "After a win"
            ]
          ]
        },
        {
          "title": "Wrong map after a win",
          "paragraphs": [
            "The source specifically recommends turning Restart off if a winning strategy sometimes ends on the wrong map."
          ],
          "steps": [
            "Check what result the game displayed.",
            "Confirm whether the macro clicked Restart or Play Again.",
            "For a win-only strategy with the wrong destination, test disabling Restart.",
            "Watch the next match's map selection before leaving the PC."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "resolution-mode-requirements",
      "title": "Adaptive display versus Legacy Mode",
      "summary": "Know when a supported 16:9 resolution is enough and when 1080p is required.",
      "category": "Setup & settings",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5",
      "url": "https://ultmacro.xyz/wiki/?article=resolution-mode-requirements",
      "keywords": [
        "resolution",
        "adaptive",
        "legacy",
        "1440p",
        "720p",
        "scaling"
      ],
      "sections": [
        {
          "title": "Display expectations",
          "paragraphs": [
            "Release v1.3.5 supports adaptive image detection across supported 16:9 resolutions, but Legacy Mode specifically requires 1920×1080."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Adaptive detection",
              "Supported 16:9 resolutions"
            ],
            [
              "Legacy Mode",
              "1920×1080 only"
            ],
            [
              "Troubleshooting baseline",
              "1920×1080 at 100% scaling"
            ]
          ]
        },
        {
          "title": "Coordinate mismatch check",
          "paragraphs": [],
          "steps": [
            "Check Windows display resolution and scaling.",
            "Check the Roblox window size and that it has not moved.",
            "Confirm whether Legacy Mode is enabled.",
            "Try a first-match placement test before changing timing delays."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "release-asset-integrity",
      "title": "Verify the official ZIP and checksum",
      "summary": "Compare the packaged release asset against its published SHA-256 digest.",
      "category": "Start here",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/submacros/updater.ahk",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=release-asset-integrity",
      "keywords": [
        "download",
        "sha256",
        "checksum",
        "zip",
        "verify",
        "official"
      ],
      "sections": [
        {
          "title": "Identify the release asset",
          "paragraphs": [
            "The updater source checks the latest stable GitHub release and looks for a ZIP with the expected name and SHA-256 digest."
          ],
          "steps": [
            "Open the official GitHub Releases page.",
            "Choose the release matching your intended version.",
            "Download the attached ZIP, not a file reposted by another account.",
            "Check the digest associated with that specific release asset."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Verify locally",
          "paragraphs": [
            "Run this in PowerShell from the download folder and compare the hexadecimal result with the published digest."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Command",
              "Get-FileHash -Algorithm SHA256 .\\TDS.Macro.v1.3.5.zip"
            ],
            [
              "Pass condition",
              "The hashes match exactly"
            ]
          ]
        },
        {
          "title": "When to stop",
          "paragraphs": [
            "If the digest is missing or the hash differs, do not bypass verification with a random replacement archive."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "updater-filename-mismatch",
      "title": "Updater doesn't recognize the newest release ZIP",
      "summary": "The v1.3.5 updater expects a filename that differs from its published ZIP asset.",
      "category": "Troubleshooting",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/submacros/updater.ahk",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=updater-filename-mismatch",
      "keywords": [
        "updater",
        "file",
        "name",
        "mismatch",
        "TDS_Macro",
        "zip",
        "v135"
      ],
      "sections": [
        {
          "title": "Confirmed source versus release",
          "paragraphs": [
            "The v1.3.5 updater sets PreferredAsset to TDS_Macro.zip, while the published v1.3.5 asset is named TDS.Macro.v1.3.5.zip. The exact-name comparison can prevent this updater implementation from finding that release asset."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Expected by code",
              "TDS_Macro.zip"
            ],
            [
              "Published v1.3.5 ZIP",
              "TDS.Macro.v1.3.5.zip"
            ],
            [
              "Symptom",
              "Update check may silently return without offering an update"
            ]
          ]
        },
        {
          "title": "What users should do",
          "paragraphs": [],
          "steps": [
            "Check which version is installed; if it is already v1.3.5, there is no newer stable v1.3.5 update to install.",
            "Visit official GitHub Releases and verify whether a newer stable tag exists.",
            "If updating manually, use the official asset and preserve your strategies and settings.",
            "Report the filename mismatch to maintainers so the updater can be fixed in a release."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Do not workaround by",
          "paragraphs": [
            "Do not rename or spoof a GitHub release asset locally to force the updater or disable its integrity validation."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "release-prereleases",
      "title": "Know whether a release is stable or prerelease",
      "summary": "Read Github's stable release feed as the macro updater does.",
      "category": "Start here",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/submacros/updater.ahk",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=release-prereleases",
      "keywords": [
        "stable",
        "prerelease",
        "github",
        "latest",
        "release",
        "versions"
      ],
      "sections": [
        {
          "title": "The source endpoint",
          "paragraphs": [
            "The v1.3.5 updater calls GitHub's /releases/latest endpoint, which selects the latest stable published release rather than unreleased tester builds."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Stable releases",
              "Look for the public release tag and a ZIP asset"
            ],
            [
              "Tester/prerelease",
              "Follow explicit tester instructions; don't assume the updater uses it"
            ]
          ]
        },
        {
          "title": "Before switching builds",
          "paragraphs": [],
          "steps": [
            "Check release date, version tag and published channel.",
            "Preserve the current .strat files and profile export.",
            "Read the release notes for settings or compatibility changes.",
            "Do a supervised test run after switching builds."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "safe-update-validation",
      "title": "What safe update verifies before installing",
      "summary": "Understand downloaded staging files, checksums and rollback support.",
      "category": "Sessions & tools",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/submacros/safe_update.ps1",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=safe-update-validation",
      "keywords": [
        "update",
        "staged",
        "sha256",
        "rollback",
        "safe",
        "zip",
        "preserved",
        "strategies"
      ],
      "sections": [
        {
          "title": "The update sequence",
          "paragraphs": [
            "The updater downloads a release to staging, compares its SHA-256 with the release digest and validates the archive before replacing existing files. Backup and rollback logic are in the release package."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Before updating",
              "Working version and custom strategies should remain backed up"
            ],
            [
              "Verification",
              "SHA-256 and package structure checks"
            ],
            [
              "Recovery",
              "Existing backup/rollback path rather than unchecked overwrite"
            ]
          ]
        },
        {
          "title": "When the update fails",
          "paragraphs": [],
          "steps": [
            "Leave the current installation folder intact.",
            "Save the full error message.",
            "Determine whether the download, checksum or extracted-file validation failed.",
            "Retry only after the asset issue is resolved."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "auto-roblox-settings-reference",
      "title": "Auto Configure: actual Roblox settings",
      "summary": "A source-backed reference for the Roblox values applied by Auto Configure.",
      "category": "Setup & settings",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/lib/auto_settings.ahk",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=auto-roblox-settings-reference",
      "keywords": [
        "roblox",
        "auto",
        "configure",
        "framerate",
        "chat",
        "camera",
        "ui",
        "graphics"
      ],
      "sections": [
        {
          "title": "Settings applied by source",
          "paragraphs": [
            "The feature writes selected named fields in Roblox's GlobalBasicSettings_13.xml. These are not arbitrary performance recommendations; they are the values encoded in v1.3.5."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "FramerateCap",
              "60"
            ],
            [
              "Fullscreen",
              "false"
            ],
            [
              "UiNavigationKeyBindEnabled",
              "true"
            ],
            [
              "GraphicsQualityLevel",
              "1"
            ],
            [
              "CameraMode",
              "0"
            ],
            [
              "ChatVisible",
              "false"
            ],
            [
              "PlayerListVisible",
              "false"
            ],
            [
              "PerformanceStatsVisible",
              "true"
            ]
          ]
        },
        {
          "title": "Avoid overriding by hand",
          "paragraphs": [
            "The macro stores a backup and provenance metadata to restore the previous state safely. Hand-editing the XML while Auto Configure is active can interfere with that restoration."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "auto-roblox-settings-backup",
      "title": "Where Auto Configure saves its backup",
      "summary": "Locate the original XML backup, metadata, and error log.",
      "category": "Setup & settings",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/lib/auto_settings.ahk",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=auto-roblox-settings-backup",
      "keywords": [
        "roblox",
        "auto",
        "configure",
        "xml",
        "localappdata",
        "backup",
        "meta"
      ],
      "sections": [
        {
          "title": "File locations",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Original",
              "%LOCALAPPDATA%\\Roblox\\GlobalBasicSettings_13.xml"
            ],
            [
              "Backup",
              "GlobalBasicSettings_13.xml.macro_bak"
            ],
            [
              "Metadata",
              "GlobalBasicSettings_13.xml.macro_bak.meta"
            ],
            [
              "Error log",
              "GlobalBasicSettings_13.xml.macro_error.log"
            ]
          ]
        },
        {
          "title": "Before investigating",
          "paragraphs": [],
          "steps": [
            "Close Roblox before attempting a restore.",
            "Make a copy of the XML, backup and metadata files.",
            "Read the .macro_error.log text without exposing sensitive folder information.",
            "Report the failure reason and installed macro version."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "auto-roblox-restore-refused",
      "title": "Auto Configure refuses to restore Roblox settings",
      "summary": "Investigate the mismatch without destroying the original backup.",
      "category": "Troubleshooting",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/lib/auto_settings.ahk",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=auto-roblox-restore-refused",
      "keywords": [
        "settings",
        "restore",
        "refused",
        "provenance",
        "metadata",
        "changed",
        "xml"
      ],
      "sections": [
        {
          "title": "Why the restore can stop",
          "paragraphs": [
            "The restore path validates the original backup and metadata. It can refuse restoration when the current XML no longer matches the verified backup or macro-applied state."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Expected safety behavior",
              "Refuse uncertain file replacement"
            ],
            [
              "Do not do",
              "Delete metadata or overwrite XML to bypass verification"
            ]
          ]
        },
        {
          "title": "Safest diagnosis",
          "paragraphs": [],
          "steps": [
            "Stop Roblox and the macro.",
            "Preserve the XML and .macro_bak files.",
            "Read the .macro_error.log file for the exact mismatch.",
            "Include that message in a report; wait for a verified recovery procedure before forcing a replacement."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "profile-export-ump-reference",
      "title": "What's inside an exported .ump profile",
      "summary": "Review metadata, strategy contents, option groups and privacy.",
      "category": "Sessions & tools",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/lib/Profiles.ahk",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=profile-export-ump-reference",
      "keywords": [
        "ump",
        "export",
        "profile",
        "strategies",
        "json",
        "settings",
        "metadata"
      ],
      "sections": [
        {
          "title": "Profile format",
          "paragraphs": [
            "The source writes an UTF-8 JSON-based .ump file containing export metadata, selected settings groups and optional strategy file contents."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Extension",
              ".ump"
            ],
            [
              "Metadata",
              "macroVersion, createdAt, name, description"
            ],
            [
              "Optional groups",
              "Options, Hotkeys, RecordingHotkeys"
            ],
            [
              "Strategy entries",
              "File names and text contents for selected strategy paths"
            ]
          ]
        },
        {
          "title": "Before sharing",
          "paragraphs": [
            "The export may contain sensitive configuration, and included strategy files may be private. Prefer a redacted log excerpt over sharing your whole profile to public support."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "profile-selective-groups",
      "title": "Export only selected profile groups",
      "summary": "Choose what a .ump backup includes.",
      "category": "Sessions & tools",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/lib/Profiles.ahk",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=profile-selective-groups",
      "keywords": [
        "profile",
        "export",
        "options",
        "hotkeys",
        "strategies",
        "selectable"
      ],
      "sections": [
        {
          "title": "Export selection",
          "paragraphs": [
            "Profile Manager has independent choices for general settings, keybind groups and strategy contents. It omits sections that weren't selected."
          ],
          "steps": [
            "Open Profile Manager → Export.",
            "Choose a name and description.",
            "Select the groups to include.",
            "Review the export preview.",
            "Save the .ump somewhere outside the release folder."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "What the file may not contain",
          "paragraphs": [
            "If the strategy selection is disabled or a selected strategy file doesn't exist, it won't be included. Check this before treating the export as a complete backup."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strategy-file-info-section",
      "title": "Understand .strat [Info] metadata",
      "summary": "Read author credit, notes, duration and approximate income.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=strategy-file-info-section",
      "keywords": [
        "strat",
        "info",
        "metadata",
        "title",
        "author",
        "desc",
        "income",
        "time"
      ],
      "sections": [
        {
          "title": "Documented fields",
          "paragraphs": [
            "Strategy Lab's code reference includes an [Info] section used by published strategy files. Gameplay-income estimates are descriptive, not verified guarantees."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "title",
              "Public strategy name"
            ],
            [
              "author",
              "Creator attribution"
            ],
            [
              "desc",
              "Useful restrictions and setup notes"
            ],
            [
              "income",
              "Claimed farming yield"
            ],
            [
              "time",
              "Approximate run length"
            ]
          ]
        },
        {
          "title": "Improve a shared strategy",
          "paragraphs": [],
          "steps": [
            "Name the map and mode in a useful title or description.",
            "Identify tower requirements and optional modifiers.",
            "Record a tested run and note the conditions.",
            "Avoid claiming exact hourly earnings without consistent measurements."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strategy-lab-visual-capabilities",
      "title": "What Strategy Lab actually supports",
      "summary": "Visual editing for footprints, attack ranges and map backgrounds.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/README.md",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=strategy-lab-visual-capabilities",
      "keywords": [
        "strategy",
        "lab",
        "map",
        "footprint",
        "attack",
        "range",
        "split",
        "path",
        "calibration"
      ],
      "sections": [
        {
          "title": "In the v1.3.5 source",
          "paragraphs": [
            "The packaged Strategy Lab is described as a separate visual editor with placement footprints, tower attack ranges, map backgrounds, calibration persistence and split-path range tracking."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Open from",
              "Create → Strategy Lab, or StrategyLab.exe"
            ],
            [
              "Input",
              ".strat file"
            ],
            [
              "Visual context",
              "Placement positions, footprints, ranges and map background"
            ]
          ]
        },
        {
          "title": "Safe edit workflow",
          "paragraphs": [],
          "steps": [
            "Back up the original .strat.",
            "Open the copy in Strategy Lab.",
            "Change one spatial action or related sequence.",
            "Save the edited file under a new name.",
            "Reopen the file, then test the strategy in a supervised match."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strategy-lab-sandbox-camera",
      "title": "Capture a Strategy Lab map in Sandbox",
      "summary": "Understand why capture needs an already-open Sandbox session.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/calibration/sandbox_replay.ahk",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=strategy-lab-sandbox-camera",
      "keywords": [
        "map",
        "capture",
        "sandbox",
        "camera",
        "alignment",
        "screenshot",
        "calibration"
      ],
      "sections": [
        {
          "title": "Precondition",
          "paragraphs": [
            "The calibration helper is designed to operate inside an already-open TDS Sandbox match. It verifies the macro's camera and coordinate assumptions before attempting an exact replay."
          ],
          "steps": [
            "Enter the intended map in Sandbox manually.",
            "Open the Strategy Lab capture/calibration feature for that build.",
            "Allow the helper to validate its camera alignment.",
            "Save the resulting map capture if the tool confirms success."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "If calibration refuses",
          "paragraphs": [
            "Do not force a replay on an incompatible map or resolution. Save the refusal message and version details for the developer."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "recording-hotkeys-source",
      "title": "Source-backed recording hotkey defaults",
      "summary": "Read the default keys used when recording actions.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=recording-hotkeys-source",
      "keywords": [
        "record",
        "hotkey",
        "spawn",
        "upgrade",
        "align",
        "dj",
        "sell",
        "delete",
        "inputs"
      ],
      "sections": [
        {
          "title": "Defaults in Main.ahk",
          "paragraphs": [
            "These keys are read from the RecordingHotkeys section and can be changed by the user. They are not always the current bindings on an existing installation."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Place tower",
              "F"
            ],
            [
              "Upgrade tower",
              "Ctrl+U"
            ],
            [
              "Align camera",
              "Ctrl+T"
            ],
            [
              "Delete last recorded action",
              "Ctrl+B"
            ],
            [
              "Record inputs",
              "Ctrl+Shift+E"
            ]
          ]
        },
        {
          "title": "When a shortcut fails",
          "paragraphs": [],
          "steps": [
            "Open the recording keybind settings.",
            "Compare the configured combination with the macro defaults.",
            "Check for conflicts with Roblox or another desktop application.",
            "Re-test a single recorded action in a supervised session."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "launch-stop-source",
      "title": "Start and stop keys in the installed macro",
      "summary": "Confirm the F1/F2 bindings and what they call.",
      "category": "Start here",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=launch-stop-source",
      "keywords": [
        "f1",
        "f2",
        "start",
        "stop",
        "strategy",
        "stop",
        "cleanup"
      ],
      "sections": [
        {
          "title": "Source behavior",
          "paragraphs": [
            "Main.ahk binds F1 to StartStrategy and F2 to StopStrategy. The implementation uses pass-through hotkeys, so the keys can also reach another focused application."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "F1",
              "StartStrategy"
            ],
            [
              "F2",
              "StopStrategy"
            ]
          ]
        },
        {
          "title": "When stopping a stuck run",
          "paragraphs": [],
          "steps": [
            "Press F2 once and allow cleanup to finish.",
            "If Roblox remains active, check whether held inputs have actually been released.",
            "Collect logs if the macro ignores the stop key or remains in a recovery loop."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "settings-defaults-source",
      "title": "Understand saved option defaults",
      "summary": "See the settings used when a value is absent from the macro's INI file.",
      "category": "Setup & settings",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/Main.ahk",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=settings-defaults-source",
      "keywords": [
        "settings",
        "ini",
        "autoequip",
        "restart",
        "replay",
        "defaults"
      ],
      "sections": [
        {
          "title": "Read-time defaults",
          "paragraphs": [
            "The v1.3.5 macro reads settings from an INI file and supplies fallbacks. Saved user settings override these defaults."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "AutoEquip",
              "Off (0)"
            ],
            [
              "UseRestartBtn",
              "On (1)"
            ],
            [
              "UsePlayAgainBtn",
              "On (1)"
            ],
            [
              "CheckTheMap",
              "On (1)"
            ],
            [
              "RotateStrategies",
              "Off (0)"
            ]
          ]
        },
        {
          "title": "When defaults don't match",
          "paragraphs": [
            "A previously saved value can differ from a default. Review Settings and the underlying INI before assuming the program ignored the user."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "map-ready-recovery-source",
      "title": "Understand lobby and Ready-screen recovery",
      "summary": "What can happen when a session starts or resumes in an unexpected state.",
      "category": "Sessions & tools",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/README.md",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=map-ready-recovery-source",
      "keywords": [
        "reconnect",
        "resume",
        "lobby",
        "ready",
        "map",
        "detection",
        "retry"
      ],
      "sections": [
        {
          "title": "Supported behavior",
          "paragraphs": [
            "The v1.3.5 release advertises automatic reconnect and game re-entry, with watchdog and action-confirmation improvements. Whether a particular unexpected dialog is recoverable depends on its actual screen state."
          ],
          "steps": [
            "Run one complete match supervised.",
            "Check the transition back to the lobby or Ready screen.",
            "Watch which map and mode are selected on re-entry.",
            "If the macro stalls, stop with F2 and capture the last visible state and logs."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Don't assume universal recovery",
          "paragraphs": [
            "Game UI updates, Roblox login prompts or a mismatched strategy may require a manual intervention even when automatic reconnect works normally."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "source-backed-issue-report",
      "title": "Make a reproducible issue report from code evidence",
      "summary": "Collect useful version, screen state and logs for a real bug.",
      "category": "Troubleshooting",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/README.md",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=source-backed-issue-report",
      "keywords": [
        "bug",
        "issue",
        "report",
        "version",
        "screenshot",
        "logs",
        "reproduce"
      ],
      "sections": [
        {
          "title": "Useful evidence",
          "paragraphs": [],
          "steps": [
            "Record the installed Ultimate Macro version and which release tag it came from.",
            "Write the exact action expected and action observed.",
            "Note Windows resolution/scaling, Roblox FPS, TDS UI Scale and map/mode.",
            "Capture a cropped screenshot of the unexpected state.",
            "Include a redacted log excerpt, not account tokens or private webhook URLs."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Avoid speculative diagnosis",
          "paragraphs": [
            "A missed click can be caused by map geometry, cash, a changing UI, or input timing. The report should separate observed facts from proposed causes."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "timescale-source-reference",
      "title": "How TimeScale is represented in macro settings",
      "summary": "Identify the setting used for accelerated matches.",
      "category": "Sessions & tools",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/lib/Profiles.ahk",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=timescale-source-reference",
      "keywords": [
        "timescale",
        "1.5x",
        "2x",
        "setting",
        "profile",
        "mode"
      ],
      "sections": [
        {
          "title": "Implementation names",
          "paragraphs": [
            "Profile Manager exports TimeScaleMode, and the official README lists 1.5x and 2x TimeScale support."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Profile field",
              "TimeScaleMode"
            ],
            [
              "Game behavior",
              "Requires the relevant ticket/prompt to be available"
            ]
          ]
        },
        {
          "title": "Supervised validation",
          "paragraphs": [],
          "steps": [
            "Check whether tickets are available in TDS.",
            "Select the supported speed in macro settings.",
            "Start a short supervised run.",
            "Confirm gameplay actually changes speed and the strategy still completes.",
            "Return to standard speed if timing or prompts cause failure."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "updater-missing-safe-script",
      "title": "Updater cannot find safe_update.ps1",
      "summary": "Identify an incomplete extracted package before attempting an update.",
      "category": "Troubleshooting",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/submacros/updater.ahk",
      "version": "v1.3.5 source inspection",
      "url": "https://ultmacro.xyz/wiki/?article=updater-missing-safe-script",
      "keywords": [
        "safe_update.ps1",
        "missing",
        "updater",
        "error",
        "submacros"
      ],
      "sections": [
        {
          "title": "Source check",
          "paragraphs": [
            "The updater explicitly looks for submacros\\safe_update.ps1. If missing, it displays an Update Error and stops without changing the installation."
          ],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "Expected file",
              "<extracted release>\\submacros\\safe_update.ps1"
            ],
            [
              "Typical cause",
              "Incomplete extraction or moving Main.ahk by itself"
            ]
          ]
        },
        {
          "title": "Fix without bypassing checks",
          "paragraphs": [],
          "steps": [
            "Stop Ultimate Macro.",
            "Download the complete official ZIP.",
            "Extract it as a whole into a clean folder.",
            "Confirm submacros\\safe_update.ps1 exists.",
            "Back up existing .strat files before switching to the clean folder."
          ],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strat-file-layout",
      "title": "Anatomy of a .strat file",
      "summary": "A .strat file is plain text split into sections. [Settings] holds the run configuration, [DO NOT EDIT] stores the resolution the strategy was recorded at, and [Steps] holds one command per line, executed top to bottom. [Info] is optional and only describes the strategy in the macro list.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-file-layout",
      "keywords": [
        "file layout",
        "info",
        "settings",
        "not",
        "edit",
        "steps"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: [Info] / [Settings] / [DO NOT EDIT] / [Steps]",
            "A .strat file is plain text split into sections. [Settings] holds the run configuration, [DO NOT EDIT] stores the resolution the strategy was recorded at, and [Steps] holds one command per line, executed top to bottom. [Info] is optional and only describes the strategy in the macro list."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "[Info]",
              "Optional. Shown on the strategy card in the macro. See the Info keys entry below."
            ],
            [
              "[Settings]",
              "key = value lines. See the Settings keys entry below."
            ],
            [
              "[DO NOT EDIT]",
              "width and height of the Roblox client when the strategy was recorded. Every coordinate in [Steps] is scaled from these numbers, so changing them moves every placement."
            ],
            [
              "[Steps]",
              "The command list. Blank lines are ignored, and anything after a ; on a line is treated as a comment."
            ]
          ]
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "[Settings]\nmap=Crossroads\ndifficulty=Molten\nrequiredTowers=Minigunner, Commander\n\n[DO NOT EDIT]\nwidth=1920\nheight=1080\n\n[Steps]\nSleep(2000)\nSpawnTower(960, 540, 1, Mini1)"
        }
      ]
    },
    {
      "slug": "strat-settings-keys",
      "title": "All .strat [Settings] keys",
      "summary": "The configuration the macro reads before a run starts. Unknown keys are ignored, and any key left out falls back to the default shown here.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-settings-keys",
      "keywords": [
        "settings keys",
        "settings",
        "key",
        "value"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: [Settings] key = value",
            "The configuration the macro reads before a run starts. Unknown keys are ignored, and any key left out falls back to the default shown here."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "map",
              "Map name exactly as TDS spells it, for example Crossroads."
            ],
            [
              "difficulty",
              "Casual, Easy, Intermediate, Molten, Fallen, Hardcore, Voidcore, or an Arcade / Trial name."
            ],
            [
              "requiredTowers",
              "Comma separated loadout in hotbar order. Prefix a tower with G for the golden version and R for the regular one, for example G Minigunner. Slot n in SpawnTower is the n-th tower here."
            ],
            [
              "modifiers",
              "Comma separated match modifiers to apply in the map menu. Leave empty for none."
            ],
            [
              "autoChain",
              "ON or OFF. Spams Call of Arms during the run."
            ],
            [
              "autoCaravan",
              "ON or OFF. Spams Support Caravan."
            ],
            [
              "autoDropTheBeat",
              "ON or OFF. Spams Drop the Beat."
            ],
            [
              "autoSkip",
              "ON or OFF, default ON. Presses the wave skip button when it appears."
            ],
            [
              "abilitySpam",
              "ON or OFF, default ON. Allows abilities to be used between steps."
            ],
            [
              "moveEnabled",
              "true or false. Walk after aligning the camera so the view is not blocked."
            ],
            [
              "moveDirection",
              "W, A, S or D. Which way to walk when moveEnabled is true."
            ],
            [
              "moveDuration",
              "How long to hold that key, in milliseconds. Default 750."
            ]
          ]
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "requiredTowers=G Minigunner, Commander, DJ\nmodifiers=Fog\nautoChain=ON\nmoveEnabled=true\nmoveDirection=S\nmoveDuration=750"
        }
      ]
    },
    {
      "slug": "strat-info-keys",
      "title": "All .strat [Info] keys",
      "summary": "Optional description shown on the strategy card inside the macro. Nothing here changes how the run is played, so it is safe to edit freely.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-info-keys",
      "keywords": [
        "info keys",
        "info",
        "key",
        "value"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: [Info] key = value",
            "Optional description shown on the strategy card inside the macro. Nothing here changes how the run is played, so it is safe to edit freely."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "title",
              "Name shown on the card. Defaults to the file name."
            ],
            [
              "author",
              "Who made the strategy. Defaults to You for local recordings."
            ],
            [
              "desc",
              "One or two lines describing the strategy or what it needs."
            ],
            [
              "time",
              "Roughly how long a run takes, for example 6-7 minutes."
            ],
            [
              "income",
              "What a run pays out, for example up to 5,000 coins per hour."
            ]
          ]
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "[Info]\ntitle=Coin + Any Tower EXP Farm\nauthor=gall\ndesc=Modifiers recommended, timescale optional.\nincome=up to 5,000 coins per hour\ntime=6-7 minutes"
        }
      ]
    },
    {
      "slug": "strat-spawntower",
      "title": "SpawnTower command",
      "summary": "Places a tower from the hotbar on the map and gives it an id. Every later command that touches this tower refers to it by that id.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-spawntower",
      "keywords": [
        "spawntower",
        "spawntower",
        "slot",
        "towerid"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: SpawnTower(x, y, slot, towerID)",
            "Places a tower from the hotbar on the map and gives it an id. Every later command that touches this tower refers to it by that id.",
            "This is the line the visual editor rewrites when a marker is dragged, so its x and y stay in sync with the map view."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "x",
              "Horizontal position in pixels, measured from the left edge of the Roblox client at the resolution in [DO NOT EDIT]."
            ],
            [
              "y",
              "Vertical position in pixels, measured from the top edge."
            ],
            [
              "slot",
              "Hotbar slot, 1 to 5. Slot n is the n-th tower in requiredTowers."
            ],
            [
              "towerID",
              "A name of your choice, such as Mini1 or dj. It has to be unique in the file. UpgradeTower, SellTower, ChangeTargets, CloneTower and BrawlerReposition all take this id."
            ]
          ]
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "SpawnTower(1063, 528, 1, Mini1)"
        },
        {
          "title": "Before replay",
          "paragraphs": [
            "Keep the original .strat as a backup. Save edits under a new filename, then replay one match under supervision; a syntactically valid command does not prove that the tower, ability or coordinates work in the current TDS map."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strat-upgradetower",
      "title": "UpgradeTower command",
      "summary": "Buys upgrades for a tower that is already placed. The macro opens the tower panel, waits until the upgrade is affordable and confirms each one.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-upgradetower",
      "keywords": [
        "upgradetower",
        "upgradetower",
        "towerid",
        "skipopen",
        "amount",
        "path",
        "pathlevel"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: UpgradeTower(towerID [, skipOpen] [, amount] [, path] [, pathLevel])",
            "Buys upgrades for a tower that is already placed. The macro opens the tower panel, waits until the upgrade is affordable and confirms each one."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "towerID",
              "The id used in SpawnTower."
            ],
            [
              "skipOpen",
              "true or false, default false. Pass true when the tower panel is already open so the macro does not click the tower again."
            ],
            [
              "amount",
              "How many upgrades to buy in a row. Default 1."
            ],
            [
              "path",
              "Which upgrade path to take on a branching tower. Default 0, the top path. Only needed for towers that branch."
            ],
            [
              "pathLevel",
              "The level at which the tower branches. Default 0. Used together with path so the macro knows when the choice appears."
            ]
          ]
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "UpgradeTower(Mini1)\nUpgradeTower(Mini1, false, 4)\nUpgradeTower(Ace1, false, 1, 2, 3)"
        },
        {
          "title": "Before replay",
          "paragraphs": [
            "Keep the original .strat as a backup. Save edits under a new filename, then replay one match under supervision; a syntactically valid command does not prove that the tower, ability or coordinates work in the current TDS map."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strat-selltower",
      "title": "SellTower command",
      "summary": "Sells a placed tower and frees its spot. The id stops being usable by later commands.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-selltower",
      "keywords": [
        "selltower",
        "selltower",
        "towerid"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: SellTower(towerID)",
            "Sells a placed tower and frees its spot. The id stops being usable by later commands."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "towerID",
              "The id used in SpawnTower."
            ]
          ]
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "SellTower(Scout1)"
        },
        {
          "title": "Before replay",
          "paragraphs": [
            "Keep the original .strat as a backup. Save edits under a new filename, then replay one match under supervision; a syntactically valid command does not prove that the tower, ability or coordinates work in the current TDS map."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strat-clonetower",
      "title": "CloneTower command",
      "summary": "Uses the Hologram ability to place a copy of an existing tower at a new spot.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-clonetower",
      "keywords": [
        "clonetower",
        "clonetower",
        "towerid",
        "wait"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: CloneTower(towerID, x, y [, wait])",
            "Uses the Hologram ability to place a copy of an existing tower at a new spot."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "towerID",
              "The tower to copy, by the id used in SpawnTower."
            ],
            [
              "x",
              "Horizontal position of the clone, in the same pixel space as SpawnTower."
            ],
            [
              "y",
              "Vertical position of the clone."
            ],
            [
              "wait",
              "Optional milliseconds to wait before cloning. Default 0, and it is skipped while recording."
            ]
          ]
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "CloneTower(Mini1, 1180, 553)\nCloneTower(Mini1, 1180, 553, 4000)"
        },
        {
          "title": "Before replay",
          "paragraphs": [
            "Keep the original .strat as a backup. Save edits under a new filename, then replay one match under supervision; a syntactically valid command does not prove that the tower, ability or coordinates work in the current TDS map."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strat-brawlerreposition",
      "title": "BrawlerReposition command",
      "summary": "Moves a placed Brawler to a new spot using its reposition ability.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-brawlerreposition",
      "keywords": [
        "brawlerreposition",
        "brawlerreposition",
        "towerid"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: BrawlerReposition(towerID, x, y)",
            "Moves a placed Brawler to a new spot using its reposition ability."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "towerID",
              "The Brawler, by the id used in SpawnTower."
            ],
            [
              "x",
              "New horizontal position, in the same pixel space as SpawnTower."
            ],
            [
              "y",
              "New vertical position."
            ]
          ]
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "BrawlerReposition(Brawler1, 992, 604)"
        },
        {
          "title": "Before replay",
          "paragraphs": [
            "Keep the original .strat as a backup. Save edits under a new filename, then replay one match under supervision; a syntactically valid command does not prove that the tower, ability or coordinates work in the current TDS map."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strat-enforcerreposition",
      "title": "EnforcerReposition command",
      "summary": "Uses the Helicopter Reposition ability of a top path Enforcer to carry another placed tower to a new spot.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-enforcerreposition",
      "keywords": [
        "enforcerreposition",
        "enforcerreposition",
        "enforcerid",
        "towerid"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: EnforcerReposition(enforcerID, towerID, x, y)",
            "Uses the Helicopter Reposition ability of a top path Enforcer to carry another placed tower to a new spot."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "enforcerID",
              "The Enforcer running the ability, by the id used in SpawnTower. It has to be top path level 5 or higher."
            ],
            [
              "towerID",
              "The tower being carried, by the id used in SpawnTower."
            ],
            [
              "x",
              "New horizontal position of the carried tower, in the same pixel space as SpawnTower."
            ],
            [
              "y",
              "New vertical position of the carried tower."
            ]
          ]
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "EnforcerReposition(Enf1, Mini1, 1024, 512)"
        },
        {
          "title": "Before replay",
          "paragraphs": [
            "Keep the original .strat as a backup. Save edits under a new filename, then replay one match under supervision; a syntactically valid command does not prove that the tower, ability or coordinates work in the current TDS map."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strat-activateenforcervan",
      "title": "ActivateEnforcerVan command",
      "summary": "Presses the SWAT Van keybind of a bottom path Enforcer. The strategy needs a bottom path Enforcer at level 5 or higher, otherwise the step is skipped.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-activateenforcervan",
      "keywords": [
        "activateenforcervan",
        "activateenforcervan",
        "wait"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: ActivateEnforcerVan([wait])",
            "Presses the SWAT Van keybind of a bottom path Enforcer. The strategy needs a bottom path Enforcer at level 5 or higher, otherwise the step is skipped."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "wait",
              "Optional milliseconds to wait before pressing it. Default 0, and it is skipped while recording."
            ]
          ]
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "ActivateEnforcerVan()\nActivateEnforcerVan(3000)"
        },
        {
          "title": "Before replay",
          "paragraphs": [
            "Keep the original .strat as a backup. Save edits under a new filename, then replay one match under supervision; a syntactically valid command does not prove that the tower, ability or coordinates work in the current TDS map."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strat-activateraisethedead",
      "title": "ActivateRaiseTheDead command",
      "summary": "Presses the Raise the Dead keybind, which revives the Necromancer skeletons.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-activateraisethedead",
      "keywords": [
        "activateraisethedead",
        "activateraisethedead",
        "wait"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: ActivateRaiseTheDead([wait])",
            "Presses the Raise the Dead keybind, which revives the Necromancer skeletons."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "wait",
              "Optional milliseconds to wait before pressing it. Default 0, and it is skipped while recording."
            ]
          ]
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "ActivateRaiseTheDead()\nActivateRaiseTheDead(2500)"
        },
        {
          "title": "Before replay",
          "paragraphs": [
            "Keep the original .strat as a backup. Save edits under a new filename, then replay one match under supervision; a syntactically valid command does not prove that the tower, ability or coordinates work in the current TDS map."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strat-changetargets",
      "title": "ChangeTargets command",
      "summary": "Opens the tower panel and cycles its targeting until it matches the target asked for.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-changetargets",
      "keywords": [
        "changetargets",
        "changetargets",
        "towerid",
        "target"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: ChangeTargets(towerID, target)",
            "Opens the tower panel and cycles its targeting until it matches the target asked for."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "towerID",
              "The tower, by the id used in SpawnTower."
            ],
            [
              "target",
              "One of First Enemy, Last Enemy, Strongest, Weakest, Closest, Farthest or Random. Written without quotes."
            ]
          ]
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "ChangeTargets(Mini1, Strongest)"
        },
        {
          "title": "Before replay",
          "paragraphs": [
            "Keep the original .strat as a backup. Save edits under a new filename, then replay one match under supervision; a syntactically valid command does not prove that the tower, ability or coordinates work in the current TDS map."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strat-setdjtrack",
      "title": "SetDJTrack command",
      "summary": "Selects a track on the DJ Booth. The strategy has to place a tower with the id DJ first.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-setdjtrack",
      "keywords": [
        "setdjtrack",
        "setdjtrack",
        "track"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: SetDJTrack(\"track\")",
            "Selects a track on the DJ Booth. The strategy has to place a tower with the id DJ first."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "track",
              "green, purple or red, in quotes. The macro matches the track by its colour icon, so any other value is refused at runtime."
            ]
          ]
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "SetDJTrack(\"green\")"
        },
        {
          "title": "Before replay",
          "paragraphs": [
            "Keep the original .strat as a backup. Save edits under a new filename, then replay one match under supervision; a syntactically valid command does not prove that the tower, ability or coordinates work in the current TDS map."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strat-toggleautoskip",
      "title": "ToggleAutoskip command",
      "summary": "Presses the in-game autoskip toggle once. Use it to turn wave skipping off for a hard wave and on again afterwards.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-toggleautoskip",
      "keywords": [
        "toggleautoskip",
        "toggleautoskip"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: ToggleAutoskip()",
            "Presses the in-game autoskip toggle once. Use it to turn wave skipping off for a hard wave and on again afterwards."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [
            "This command has no parameters."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "ToggleAutoskip()"
        },
        {
          "title": "Before replay",
          "paragraphs": [
            "Keep the original .strat as a backup. Save edits under a new filename, then replay one match under supervision; a syntactically valid command does not prove that the tower, ability or coordinates work in the current TDS map."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strat-click",
      "title": "Click command",
      "summary": "Clicks a point on screen. Useful for buttons the other commands do not cover.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-click",
      "keywords": [
        "click",
        "click",
        "right"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: Click(x, y [, Right])",
            "Clicks a point on screen. Useful for buttons the other commands do not cover."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "x",
              "Horizontal position, in the same pixel space as SpawnTower."
            ],
            [
              "y",
              "Vertical position."
            ],
            [
              "Right",
              "Optional. Add Right for a right click, anything else is a left click."
            ]
          ]
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "Click(960, 540)\nClick(960, 540, Right)"
        },
        {
          "title": "Before replay",
          "paragraphs": [
            "Keep the original .strat as a backup. Save edits under a new filename, then replay one match under supervision; a syntactically valid command does not prove that the tower, ability or coordinates work in the current TDS map."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strat-send",
      "title": "Send command",
      "summary": "Holds a keyboard key down for a set time, then releases it. This is what the input recorder writes for movement and ability keys.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-send",
      "keywords": [
        "send",
        "send",
        "key",
        "hold"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: Send(\"key\", hold:=ms)",
            "Holds a keyboard key down for a set time, then releases it. This is what the input recorder writes for movement and ability keys."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "key",
              "The key name in quotes, for example \"w\" or \"space\"."
            ],
            [
              "hold",
              "How long to hold it, in milliseconds. The hold:= part is required."
            ]
          ]
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "Send(\"w\", hold:=450)"
        },
        {
          "title": "Before replay",
          "paragraphs": [
            "Keep the original .strat as a backup. Save edits under a new filename, then replay one match under supervision; a syntactically valid command does not prove that the tower, ability or coordinates work in the current TDS map."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strat-sleep",
      "title": "Sleep command",
      "summary": "Waits before running the next step. This is how a strategy lines up with the waves.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-sleep",
      "keywords": [
        "sleep",
        "sleep"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: Sleep(ms)",
            "Waits before running the next step. This is how a strategy lines up with the waves."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [],
          "steps": [],
          "checks": [],
          "rows": [
            [
              "ms",
              "Milliseconds to wait. 1000 is one second."
            ]
          ]
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "Sleep(12000)"
        },
        {
          "title": "Before replay",
          "paragraphs": [
            "Keep the original .strat as a backup. Save edits under a new filename, then replay one match under supervision; a syntactically valid command does not prove that the tower, ability or coordinates work in the current TDS map."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "strat-commander",
      "title": "Commander command",
      "summary": "Tells the macro a Commander is in the loadout so it handles the Call of Arms ability during the run. The recorder adds this line by itself when it sees a Commander.",
      "category": "Strategies",
      "source": "https://github.com/UltimateMacro/Ultimate-Macro-New-Era/blob/v1.3.5/_app/ui/app.js",
      "version": "v1.3.5 source reference",
      "url": "https://ultmacro.xyz/wiki/?article=strat-commander",
      "keywords": [
        "commander",
        "commander",
        "true"
      ],
      "sections": [
        {
          "title": "What it does",
          "paragraphs": [
            "Syntax: Commander := true",
            "Tells the macro a Commander is in the loadout so it handles the Call of Arms ability during the run. The recorder adds this line by itself when it sees a Commander."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Parameters",
          "paragraphs": [
            "This command has no parameters."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        },
        {
          "title": "Example",
          "paragraphs": [
            "This example comes from Strategy Lab's built-in command reference for v1.3.5. Adapt tower IDs and coordinates to the strategy you are editing."
          ],
          "steps": [],
          "checks": [],
          "rows": [],
          "code": "Commander := true"
        },
        {
          "title": "Before replay",
          "paragraphs": [
            "Keep the original .strat as a backup. Save edits under a new filename, then replay one match under supervision; a syntactically valid command does not prove that the tower, ability or coordinates work in the current TDS map."
          ],
          "steps": [],
          "checks": [],
          "rows": []
        }
      ]
    },
    {
      "slug": "how-to-get-early-access",
      "title": "How to get Early Access",
      "summary": "Join through Ko-fi, understand supporter benefits, and check limited-time giveaways or contributor invitations.",
      "category": "Community",
      "source": "/early-access/",
      "version": "v1.3.x",
      "url": "https://ultmacro.xyz/wiki/?article=how-to-get-early-access",
      "keywords": [
        "early access",
        "get early access",
        "how to get early access",
        "ko-fi",
        "kofi",
        "supporter",
        "membership",
        "premium",
        "join",
        "early builds",
        "green role",
        "discord",
        "giveaway",
        "giveaways",
        "14 days",
        "contributor",
        "support development",
        "price",
        "1.99",
        "subscribe",
        "cancel",
        "claim access"
      ],
      "sections": [
        {
          "title": "Get Early Access through Ko-fi",
          "paragraphs": [
            "Early Access is an optional supporter membership. The public Ultimate Macro remains free and open source."
          ],
          "steps": [
            "Open the official Ultimate Macro Early Access page at https://ultmacro.xyz/early-access/.",
            "Select Get Early Access to continue to the official Ko-fi membership checkout.",
            "Join for $1.99 USD per month. Ko-fi handles membership payments and cancellation.",
            "Join the official Ultimate Macro Discord at https://discord.gg/ultmacro and follow the supporter access instructions. If you do not see the Early Access channels or role, contact the team through Discord."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "What supporters receive",
          "paragraphs": [
            "Supporter access includes early builds before the public release, private supporter announcements and chat, and an exclusive green Early Access Discord role. Builds are previews and may be less stable than public releases."
          ],
          "steps": [],
          "checks": [
            "Use only the download instructions shared through official supporter channels.",
            "Keep unreleased Early Access files inside the server until they are public."
          ],
          "rows": []
        },
        {
          "title": "Giveaways and other opportunities",
          "paragraphs": [
            "The team may offer limited-time Early Access through official Discord giveaways or special contributions. These opportunities are not always open and are not guaranteed by joining the server or submitting a contribution."
          ],
          "steps": [
            "Watch official announcements and giveaways in the Ultimate Macro Discord.",
            "Follow the conditions and claim instructions for the specific event.",
            "If you win or are granted access, ask staff when your access begins and how long it lasts. Some giveaway awards have offered 14 days, but the event announcement determines the actual duration and activation options."
          ],
          "checks": [],
          "rows": []
        },
        {
          "title": "Membership, cancellation and missing access",
          "paragraphs": [
            "Ko-fi memberships are monthly and can be cancelled through Ko-fi. Cancelling does not change the availability of the free public Ultimate Macro releases."
          ],
          "steps": [],
          "checks": [
            "If your supporter role or channels are missing, confirm the membership is active and follow the official Discord supporter instructions.",
            "Contact staff through the official Discord for help with activation. Do not post receipts, payment information or account credentials publicly.",
            "Do not purchase Early Access from third-party sellers or download leaked prerelease builds."
          ],
          "rows": []
        }
      ]
    }
  ]
}
