AI Script Builder Guide
Everything about getting the most out of the AuroraScope AI Script Builder — the panel on the right side of /scope/dashboard. Type a prompt, hit Generate, get a working Roblox script.
How it works
The AI Builder takes three things and writes you a Lua script:
- Your prompt — what you want the script to do.
- Your recent captures — the remote calls your live agent has seen in the current game. The AI uses these to know what remotes exist and what args they take.
- Aurora knowledge base — battle-tested patterns for executor compat, anti-detection, GUI, webhooks, etc., grounded in real Aurora production scripts.
Output is ready-to-paste Lua. Click Copy to grab it, or Open in Roblox to launch the game with the script copied to your clipboard.
Captures & filters
Captures are the raw fuel the AI uses to write scripts. Every FireServer / InvokeServer your local player makes is captured automatically and shown in the Captures panel on the right. The AI sends your last 50 captures (or 200 on Studio+) with each prompt — that's how it knows what remotes exist, what args they take, and which ones to fire.
Get useful captures
- Open the target game with the loadstring running, then click around for a minute or two. Buy something. Attack. Equip. Talk to an NPC. Each click usually fires the remote you'll want to automate.
- Don't generate from a fresh session. No captures = AI has to guess remote names, and it almost always gets them wrong.
- Capture the specific action you want to automate. If you want auto-buy, click Buy at least once. If you want auto-attack, attack at least one entity.
Filter the noise
Toolbar filters above the captures table let you focus on what matters:
- All / Hide / Only — honeypot filter. Honeypots are decoy remotes the game uses to detect exploits. Never fire one — calling it gets you flagged or banned. Use Hide to keep them out of the AI's context.
- IDs only — hides empty pings, pure toggle calls, and "I clicked" heartbeats. Shows only captures whose args contain at least one number, ID, or Roblox reference (Vector3 / Instance / CFrame). Toggle this on before generating to give the AI cleaner data.
- Play Capture (purple pill button) — the agent boots idle as of v0.5.7. No captures flow until you click Play Capture. Once on, the agent records every remote you fire; click Stop and it goes idle again. This means the captures table contains only your intentional play actions — no ambient heartbeats, no idle pings, nothing the AI has to filter through. Workflow: Play Capture → switch to Roblox → do the action (buy / attack / equip) → back to dashboard → Stop → Generate.
- Search box — live filter on remote_path. Type
buyto see only purchase-related calls; typecombatto see fight calls.
Click any capture row to expand its detail panel: full args, calling script, timestamp.
⚠ honeypot on a capture, ignore that remote entirely. Don't fire it manually, don't let the AI use it — if the AI suggests one, refine: "Don't use X — that's a honeypot. Use Y instead."Finding IDs
Half the time, the captured remote takes an ID you don't have. Plant IDs, weapon IDs, NPC IDs, item IDs — many games store these as Instance Attributes, in ModuleScript config tables, or as CollectionService tags. Dex can't show you those. AuroraScope's find() can.
From the dashboard (easiest)
Use the Find IDs widget in the left sidebar of the dashboard. Type a keyword (or numeric ID) and click Find. Results group by Instance path, so a plant's name and every id-like attribute show up together as one row:
Dragon_plant · Id=1291234 · ItemId=plant_drg
Workspace.Plants.Dragon_plant · Model
Click any row to copy the path. Paste both name and ID into your prompt: "auto-buy Dragon_plant (id 1291234) in a loop using Plants.Buy:FireServer" — the AI hard-codes everything correctly.
From your executor console
AuroraScope.find("plant") -- substring across all layers
AuroraScope.find(42) -- numeric ID hunt
AuroraScope.find("Dragon", {limit=20})
AuroraScope.dump("Workspace.Plants.Dragon_plant") -- full details on one Instance
AuroraScope.tags() -- list every CollectionService tag
find() looks across five layers at once:
- Instance tree — Name + ClassName across workspace + ReplicatedStorage + ReplicatedFirst.
- Instance Attributes — every
:GetAttribute(...)key+value, including hidden ones. - CollectionService tags — common for plant/dragon/entity systems.
- Loaded ModuleScript heap tables via
getgc(true)— catchesPlants[id] = {...}config dictionaries that don't exist as Instances. - Recent captured remote args — if the game already sent the ID in a payload, find catches it there too.
It auto-copies the first hit's path to your clipboard so you can paste it straight into a script or prompt.
Writing prompts
Captures + IDs are your raw materials. The prompt is how you tell the AI what to build with them. Treat it like you're briefing a junior dev: give intent, scope, and constraints.
Good prompt structure
- What — one sentence on the goal ("auto-farm coins by killing zombies").
- How — specific remotes + IDs from your captures and find results ("use the captured
Combat.Hit:FireServer(target), target nearest zombie within 50 studs"). - Constraints — safety, timing, UI ("teleport-back so I don't snapback, anti-AFK every 4 min, GUI with a toggle").
Bad vs. good
× "make a farm script" — too vague. AI will guess and probably pick a honeypot.
✓ "Auto-farm zombies using Combat.Hit:FireServer(target) from my captures. Target nearest zombie under 50 studs. Save my CFrame, teleport above target, fire, teleport back to prevent snapback. CFG.Enabled toggle, anti-AFK every 4 min, minimal GUI with start/stop and a kill counter."
Reference your captures + IDs explicitly
The AI is smart but it can't read your mind. If you found Dragon_plant · Id=1291234 via Find, write it into the prompt directly. If you saw Plants.Buy in the captures table, name it. Specificity = correctness.
Quick-add chips
Below the prompt textarea are one-click chips that add common requirements to your prompt. Use them instead of re-typing the same boilerplate every time.
Common (everyone)
- Make faster — tightens loops, removes
wait()bloat, switches to RunService.Heartbeat where appropriate. - Add ESP — player + entity highlighting with billboard names + distances.
- Anti-AFK — defeats Roblox's idle-kick using a virtual user input every 4 min.
- Webhook updates — Discord webhook embed posts on milestone events (kill, level up, etc.).
- Track stats — runtime counters for kills, currency gained, deaths.
- Server hop — auto-rejoin a fresh server when local player dies or session timer hits.
- Add GUI — minimal Aurora-style GUI with toggles, sliders, and a Stop button.
Studio+ & Developer
Higher tiers unlock chips for cross-game patterns, snapshot diffs, multi-game rotation, bulk variant generation, webhook orchestration, Aurora-format export, update watchdog, and decompile assist. See Tier features.
Refining results
The AI's first pass is rarely perfect. Don't restart — refine.
- Read the generated script. Note what's wrong (e.g., "uses wrong remote", "loop too tight", "missing teleport-back").
- Click Refine below the output, or just type a follow-up prompt: "Use
Combat.Hit2instead ofCombat.Hit— first one is the honeypot." - Generate again. Repeat until clean.
Common refinement asks
- "Make the inner loop faster — use Heartbeat, not wait(0.1)"
- "Add a CFG.Enabled toggle so I can pause it without re-executing"
- "Don't fire
X— that's a honeypot. UseYinstead" - "The script snapbacks me — add a teleport-back to the original CFrame after each hit"
Prompt examples
Auto-farm
Auto-farm coins in this game by killing zombies. Use the captured
Combat.Hit:FireServer(target) remote — target the nearest zombie within
50 studs. Save my original CFrame, teleport above the target, fire, then
teleport back to prevent snapback. Anti-AFK every 4 min. CFG.Enabled
toggle. Minimal GUI with start/stop and a kill counter.
Auto-buy item by ID
Auto-buy plant id 1291234 every time I have enough coins. Use the
captured Plants.Buy:FireServer(plant_id) remote. Loop with task.wait(0.5).
Check my inventory before buying so I don't spam past my cap.
ESP + speed boost
Add ESP for all players: billboard with their name + distance + health
above their head. Color enemies red, friends green. Also: speed boost
toggle (16 default → 60 when on, restore on exit), and infinite jump
that respects ground state. Use the executor's CharacterAdded signal
so it survives respawn.
Auto-quest with milestone webhook
Auto-complete quests in this game. Use the captured Quests.Turnln
remote to claim rewards as soon as criteria are met. Track total
quests completed in a counter. Post a Discord webhook embed every
10 quests with my username, total completed, and current currency
balance. Read CFG.WebhookURL.
Tier features
Every tier gets unlimited refinements and full output. Higher tiers unlock smarter context and bigger daily quotas:
- Pro — $9 · 50 generations/day · 50-capture context · common chips.
- Studio — $25 · 200 generations/day · 200-capture context · cross-game patterns · snapshot diff · multi-game rotation.
- Developer — $50 · 500 generations/day · full Lab tab (3-variant generation) · saved templates · API keys + MCP · webhook orchestration · Aurora-format export · update watchdog · decompile assist.
See /scope for the full tier comparison.
When AI gets it wrong
Script uses a remote that doesn't work
The AI guessed instead of using captures. Fix: open the target game, run the loadstring, click around to capture more remotes, then re-generate. Or refine: "use the captured X remote, not the one you guessed."
Script fires a honeypot
Shouldn't happen — the AI is told to skip honeypots. If it does, refine: "Don't use X — that's a honeypot. Try Y instead."
Script snapbacks me / I get rubber-banded
Refine: "Save my original CFrame before each action and teleport back after. Don't trust the server to not correct me."
AI says it can't find a remote / asks me to provide one
You haven't captured the relevant remote yet. Click the in-game action you want to automate (buy, attack, equip, etc.), wait 2-3 seconds, then re-generate.
Script errors with "attempt to index nil with FireServer"
The remote path the AI used doesn't exist client-side (might be server-only). Refine: "Use a remote that exists in ReplicatedStorage — check my captures."
I want to use Lab (3 variants)
Lab is Developer tier only. It runs your prompt three times in parallel with different optimization goals (speed / stealth / feature-rich) so you can pick the best one.
Need more help?
Join the AuroraScope Discord and post in #scope-support with your prompt + the output you got — staff and power users help debug prompts there.