Documentation / Setup
Setup guide
Ultimate Macro reads Tower Defense Simulator the same way you do — through image detection and OCR on your screen. That makes your display settings the single biggest factor in whether a run works. Work through this page once and you should not have to touch it again.
01
Requirements
Ultimate Macro is a Windows-only AutoHotkey v2 application. It runs locally on your machine, does not inject anything into Roblox, and does not need an account.
- Windows 10 or Windows 11.
- AutoHotkey v2.0, 64-bit. The 1.1 branch cannot run the script, and the macro warns you on startup if it detects 32-bit AutoHotkey.
- A 1920×1080 Windows display resolution at 100% scaling. Both are Windows settings, not Roblox ones.
- The English (US) OCR language pack installed in Windows. The macro checks for it and offers to open Windows language settings if it is missing.
- A visible Windows taskbar. The macro will not work with it hidden.
- A reasonably fast CPU. On slower machines, enable Potato Mode and increase the delays rather than expecting the defaults to work.
- No Roblox multi-client tools running. The macro refuses to start while Roblox Account Manager or a similar multi-instance utility is open.
02
Install
-
Download the release
Get
Download pageTDS_Macro.zipfrom the download page. Every build is also on the official GitHub releases page — download from nowhere else. -
Extract the whole archive
Right-click the ZIP and extract everything into its own folder. Running
Main.ahkfrom inside the ZIP will not work — the macro detects this and refuses to start, because it needs itslib,Resourcesandsubmacrosfolders next to it. -
Install AutoHotkey v2.0
Download it from autohotkey.com/v2. If you already have AutoHotkey 1.1 installed, v2 can sit alongside it — just make sure
.ahkfiles open with the v2 launcher. -
Run
Main.ahkThe Ultimate Macro window opens: a dark 700×565 window with Main, Record, Party, Discord, Settings, Tools and Credits tabs, and the installed version in the bottom-left corner. On the first launch it shows the full list of settings covered below.
03
Display settings
These are the settings the macro asks you for on first launch. Three different things are involved and they are easy to confuse: your Windows display resolution, your Windows display scale, and the settings inside Roblox and TDS.
Windows
Roblox
Tower Defense Simulator
04
Your first run
The quickest way to see the macro work is to start from one of the strategies that ship with it rather than recording your own.
-
Pick a strategy on the Main tab
The Community Strategies browser lists strategies shared through the Discord, each with its map, mode, run time and income. Press Load to download one that matches a map and mode you can actually queue for, or use Browse to pick a file you already have.
-
Check your loadout
A strategy expects specific towers in specific slots. Tick Auto Equip Towers and the macro equips what the strategy needs before the match starts. If a strategy asks for a golden tower, you need to own it.
-
Confirm your keybinds
Settings → TDS Keybinds must match your in-game binds. The defaults are Call of Arms C, Drop The Beat B, Support Caravan J, Raise the Dead V, Hologram K, Reposition L, upgrade E, bottom path Z and cancel placement Q. Abilities silently do nothing if these disagree with the game.
-
Start with F1 and watch the first match
Press Start on the Main tab or hit F1, then leave the Roblox window where it is. Watch one full match before walking away — that is when a wrong setting shows itself.
-
Stop with F2
F2 stops the macro and releases any held input. Use it rather than killing the window, so cleanup runs properly.
05
Recording a strategy
You never have to write a strategy file by hand. Fill in the Record tab,
press Start Recording, play a run normally, and the macro saves what you
did as a replayable .strat file.
Before you press record
- Map and Mode — pick them from the dropdowns. Modes include Easy, Casual, Intermediate, Molten, Fallen, Frost, Hardcore, Voidcore and Arcade, plus the map-specific ones.
- Towers — a comma-separated list, e.g.
Minigunner, Ranger, Commander, DJ. Prefix a tower withG(as inG Minigunner) if the strategy needs the golden version. - Modifiers — hold Ctrl to select or deselect more than one.
- Ability toggles — Use Call of Arms, Use Support Caravan and Use Drop the Beat, plus Auto Skip Waves and Abilities Spam.
- Move — optionally walk your character in a direction for a set number of milliseconds at the start of a run.
Recording hotkeys
These are the defaults; all of them are rebindable under Settings → Recording Hotkeys.
Raise the Dead (Necromancer) and Brawler reposition are recorded by pressing Ctrl together with your in-game keybind for them, rather than a separate recording hotkey.
Recording well
- Play deliberately. The recorder captures what you actually did, so a messy run replays as a messy run.
- Consider a timescale ticket when recording a long or complex strategy — the macro's own tutorial recommends it.
- Name it for what it does, e.g.
pw2_solo_farm.strat. Future you will not rememberstrat3_final_v2.strat.
06
Longer sessions
Strategy Rotation
The Main tab holds two strategies. Tick Strategy Rotation and set Swap after a number of Runs or Minutes to alternate between them — useful for splitting a session between a coin farm and a gem farm, or across two different maps.
Goals
Instead of counting runs, set a Goal — a currency target — and let the macro pick compatible strategies and keep going until it is met.
Timescale
If you have timescale tickets, set Timescale to 1.5x or 2x in Settings. It cuts the time per run considerably.
Party and VIP servers
Paste a private server link into VIP Server Link and tick Use VIP Server to keep runs off public servers. The Party tab runs the macro on several accounts in the same party: pick whether you are the Host (creates the party and invites everyone) or a Member (waits for the invite), fill in the host's display name and the members' names, choose whether to return to the lobby when all or any member is gone, then save.
Between matches
Click Restart button is used when you lose and Click Play Again button when you win — both on by default. Turn Restart off if you are running a win strategy and the macro sometimes ends up on the wrong map. Check the map verifies the map after joining and reloads if it is wrong; leaving it on is recommended. Collect playtime rewards claims playtime and daily rewards as they come up.
Recovery
Recent builds run pre-run diagnostics before a session starts, checking resolution, scaling, OCR and dependencies. Startup is resume-aware, so launching the macro while you are already sitting in the lobby or on the Ready screen works. If Roblox disconnects, it reconnects and re-enters the game on its own.
When something is slow
Raise the Upgrade Delay and the Mouse Delay / Key Delay values before assuming something is broken — most "missed click" reports are timing, not detection. Potato Mode reduces the macro's own overhead on weaker hardware.
07
Discord & profiles
The Discord tab sends real-time logs, screenshots and currency stats to your own server, so you can check a session from your phone. To get a URL: create a Discord server, open any channel's settings → Integrations → Create Webhook → Copy Webhook URL. Paste it in, tick Enable Webhook, then use Test Webhook to confirm it works before saving.
- Send Statistics — currency and session numbers read with OCR.
- Debug Logs — the same lines the macro logs locally.
- Automatic screenshots — periodic screenshots during a run.
- Triumph and Loss screenshots — the end-of-match result screen, optionally posted to a second webhook in a different channel.
Remote control
The official EngineerBot integration adds remote control from Discord: start and stop the macro, check its status, request a screenshot and query the version, stats, logs and selected strategy. A personal bot with a custom command prefix can be used instead.
Profile Manager
The Profile Manager imports and exports your settings, hotkeys and strategies as a single bundle, with previews and backups. Use it to move a setup to another machine, or to snapshot a working configuration before you change something.
08
Tools
The Tools tab holds three small utilities that run separately from a strategy. Click one and it opens in its own always-on-top window; F3 starts it and F4 stops it.
- Auto Call of Arms — presses Call of Arms and Drop the Beat on intervals you set in seconds, using the keybinds from Settings. Either ability can be toggled off on its own.
- Auto Spin — claims prizes from the spinning wheel and counts the tickets it has used.
- Auto Open Consumable — opens consumable crates and counts how many it has opened.
09
Troubleshooting
Work down this list before reporting a bug — most problems are one of these.
The macro clicks in the wrong place, or does nothing
Almost always display settings. Check your Windows display resolution is 1920×1080, your Windows display scale is exactly 100%, your taskbar is visible, TDS UI Scale is Large and TDS Screen Shake is off.
Then confirm Roblox is the focused window and has not been moved or resized since the session started.
Main.ahk will not start
Three common causes. You have AutoHotkey 1.1 rather than v2.0; you are running the script from inside the ZIP without extracting it; or a Roblox multi-client tool such as Roblox Account Manager is open, which the macro refuses to run alongside.
If it warns about 32-bit AutoHotkey, install the 64-bit build of v2.0.
Waves or currency are read wrongly
That is OCR. Install the English (US) Windows language pack — the macro offers to open the right settings page for you — and remove any custom Roblox font mods, since altered letterforms are the usual cause.
Upgrades are skipped or land on the wrong path
Raise the Upgrade Delay in Settings; on slower machines the upgrade panel lags behind the click. Confirm TDS Vertical Upgrades is enabled, since it changes the panel layout, and that your upgrade and bottom keybinds match the game.
Abilities never fire
The macro presses your configured keybinds. If the binds under Settings → TDS Keybinds do not match the ones in TDS, nothing happens and no error is raised. Check both sides match.
Auto Equip or target changing stopped working
Check whether Legacy Mode is on. Neither feature works while it is enabled — that is expected behaviour, not a bug.
I need to report a bug
Turn on Debug Logs in Settings, reproduce the problem, then post the log in the Discord or open an issue on GitHub. Include your macro version (bottom-left of the window), your Windows display resolution and what you were doing when it happened. A reproducible report gets fixed; "it broke" does not.
10
Safety & licence
- Official sources only. Ultimate Macro is distributed through this site and the official GitHub releases. Builds from anywhere else are not ours, whatever they are named.
- Automation carries risk. This is a third-party tool. It is not affiliated with, endorsed by or connected to Roblox Corporation or Paradoxum Games. Use it at your own discretion.
- It runs locally. The macro is an AutoHotkey script on your own machine. It does not inject code into Roblox and does not require an account. It reaches the network only to fetch community strategies and to talk to the Discord webhook and remote control you configure yourself.
- It is open source. Released under the GNU General Public License v3.0 — you can read every line, fork it and redistribute it under the licence terms while preserving the copyright, licence and attribution notices.
Ultimate Macro was started on 30 March 2026 by Darksen (DarksenDev/tds-macro). The New Era continues the project and would not exist without his work.