Version 3.3
GPT-6.1 Sol launch offer
- Try GPT-6.1 Sol for free, with no per-user launch credit cap, until October 12, 2026 at 00:00 Europe/Bratislava.
- Use your Tomdacat key or Tomdacat Code key. Launch usage never deducts regular credits.
A refreshed Studio interface
- Graphite surfaces, clearer model and input text, a compact navigation rail, and a floating composer.
- Press + once to reveal modes, image attachment, and reasoning effort together. The plus springs into × while open.
- A five-stop effort slider with a white thumb, warm fill, smooth track clicks, dragging, keyboard adjustment, and reset to Low.
- Reduce motion, Solid materials, and Increase contrast in Settings.
- Masked key and password fields during setup and account updates.
More room for supported reasoning models
- Low / Medium / High / XHigh / Max effort choices.
- 16K / 32K / 64K / 128K token limits under Settings → Generation → Token limit. Defaults remain Low and 16K.
- XHigh suggests at least 32K; Max suggests at least 64K. Increasing effort to High or above, or raising the limit, asks for confirmation before saving.
- Streaming and fallback requests retain the selected budget. The Coding Plan endpoint now forwards reasoning effort.
- Thinking and the visible answer share this per-request limit. Supported levels, provider caps, timeouts, credit charges, and plan allowances still apply.
Key verification without generation
- API keys authenticate through
GET /v1/models; Coding Plan keys use GET /code/v1/verify.
- Setup does not call a model or consume model tokens. A valid key with no active Coding Plan remains on setup with an explanation.
- Edited keys and canceled verification attempts cannot be saved by a late response.
Installation
v3.3 is packaged as TomDaCatCode-v3.3.rbxmx in the official Google Drive release folder. Import it, save the root Script as a local plugin, and restart Studio. See Installation.
Version 3.1
The headline of this release is Remote Control — watching, chatting with, and optionally approving tool calls for a live Studio session from ai.tomdacat.com/dashboard/code, from anywhere — plus a Toolbox/Creator Store connector and a handful of reliability fixes surfaced by testing against smaller, cheaper models.
Remote Control
- A new opt-in Remote Control toggle in Settings (also reachable with
/remote-control) heartbeats a live session to the dashboard and streams a transcript of what the agent is doing — connection status, messages, tool calls, and results — viewable from anywhere your account is logged in, not just at the Studio machine itself.
- It isn’t read-only: you can send a plain chat message into the live session from the dashboard, delivered on the plugin’s next heartbeat (a few seconds).
- Optionally, remote tool approval — turn it on and the dashboard can Allow/Deny/Always Allow a mutating tool call too, not just watch, including a real before/after diff for
edit_script. This is a deliberate security-posture change, not a default: while it’s on, dashboard access is equivalent to Studio access for approving code execution. Whichever side decides first (a local click or the dashboard) wins; the other is a safe no-op.
- A live connection-status dot — green connected, yellow connecting, red disconnected — sits in both Settings and the chat header itself; clicking either jumps to Settings.
- Requires a Coding Plan on the dashboard side — without one,
/dashboard/code shows a short upsell in place of API keys and Remote Control instead of hiding the page or blocking it outright.
Read more →
- Two new tools,
search_toolbox and insert_asset, search the Roblox Creator Store and insert a result directly into the place, wrapped in one undo step.
- The agent now prefers reusing a decent free asset over building common things (a house, a vehicle, a prop) from scratch, unless you explicitly ask for from-scratch — and picks the best match itself (favoring Free, higher upvote %, closer relevance) instead of asking you to choose.
- After inserting, the result includes the asset’s real structure (hierarchy, bounding-box size) and an explicit instruction to use it, since the agent can’t see the 3D result visually.
Read more →
Reliability fixes
- Fixed a bug where certain models (confirmed on
diffusiongemma-4-26b) could get an entire turn rejected outright right after a tool call, with the backend error Empty content is not allowed for assistant messages — a tool-call-only assistant turn was being replayed into history with a literal empty string instead of omitting the field, which some backends reject.
- Fixed a bug where a still-actively-streaming response (especially at higher reasoning effort) could get its connection cut and discarded on a flat elapsed-time cap, even though data was still arriving — the cutoff is now based on actual silence (no data received), not total duration, so a long but genuinely productive stream is never punished for taking a while.
- Fixed the reasoning/thinking indicator occasionally freezing mid-stream instead of following along, caused by a race in the auto-follow-scroll logic that a fast, continuous stream could trigger far more easily than any other event type.
Version 3
The headline of this release is paying your own way and knowing what it costs — a Robux-subscription Coding Plan alongside the original per-credit API key, a Budget Mode that keeps the tool list itself from burning tokens, and a persistent navigation rail so Chat, History, Subagents, and Settings are always one click away instead of buried behind a header icon.
Coding Plan billing
- A new Coding Plan auth mode sits alongside the original per-credit API key: a flat, Robux-billed subscription authenticated with a
tdcc_-prefixed key against a separate /code/v1/* API, instead of paying per token.
- The very first screen after Welcome is now an Auth Choice screen — pick “Use my own API key” or “Coding Plan” up front. You’re not locked in: both can be configured at once, and Settings → Account switches between them any time.
- Coding Plan models show a PREMIUM pill instead of a per-token price, and usage is tracked as three rolling windows — session, weekly, and premium-model — shown as progress bars in Settings instead of a credit counter.
Read more →
- A new Budget Mode setting changes what the agent sees up front: instead of every tool’s full schema, it sees just one — a new
search_tools tool — and has to look up anything else by name or keyword before it’s allowed to call it.
- This isn’t cosmetic: calling an un-searched tool is actually rejected, by name, with the exact next step spelled out (
Error: 'edit_script' hasn't been unlocked yet in Budget Mode -- call search_tools("edit_script") first, then call edit_script again.), not just hidden from a menu. It cuts the fixed token cost of a huge tool catalog on every single turn.
- Budget Mode is auto-enabled on Lite/Starter Coding Plans and toggleable for everyone else in Settings.
Read more →
A persistent navigation rail
- The plugin’s single chat-only view is now a proper app shell: a slim icon rail on the left with Chat, History, Subagents, and Settings, always visible instead of tucked behind a header icon or a slide-in sidebar.
- History moved out of a slide-in overlay and into its own rail tab. Subagent Views did the same — and now shows an unread dot right on the rail icon the moment a subagent finishes, instead of relying solely on a pill above the input.
- The mode selector (Normal/Plan/Auto) and the image-attach button moved out of the composer’s permanent chrome and into a tray that slides open when you tap the + button next to the input — the collapsed composer stays a single clean row until you need those controls.
Live reasoning streaming
- Reasoning-capable models now stream their actual chain-of-thought text live, the same way the final answer does — v2.5 only let you pick a Low/Medium/High effort level, it didn’t show you the thinking itself as it happened.
Read more →
Reliability fixes
- Transient network failures and 5xx responses now retry automatically (up to 3 attempts with backoff) instead of failing the turn outright; a 4xx never retries, since retrying a bad request just repeats the same error.
- Fixed a bug where a response could arrive, start streaming, then stall permanently — appearing as the agent “reads a skill, thinks, then never responds.” The stream timeout increased from 120s to 180s, and now distinguishes partial content that already arrived (shows a real timeout error) from nothing having arrived at all (falls back to a non-streaming request instead of hanging).
- Token/usage accounting now reads straight from the stream’s own final chunk instead of a separate envelope event that wasn’t always sent.
Smaller fixes and polish
- Fixed a rare crash when starting a new chat while a previous response was still mid-stream.
- The two built-in
roblox-ui-design and roblox-3d-building skills got substantially expanded with more patterns and worked examples.
- The Coding Plan setup screen’s Open Coding Plan dashboard button no longer tries to launch a
browser directly (
GuiService:OpenBrowserWindowAsync isn’t reliable from a Studio plugin) — it
now opens a small dialog with the dashboard link in a read-only, copyable field instead.
Version 2.5
The headline of this release is delegation — memory that persists across sessions, a mode selector that controls how much the agent does on its own, and real subagents it can spawn to work in the background.
Project Memory & Auto Memory
- A new Memory page (Settings → Memory) holds Project Memory: persistent instructions for this place, always sent to the agent every session — this plugin’s equivalent of a
CLAUDE.md.
- Auto Memory is written by the agent itself via a new
remember tool, whenever it learns something worth keeping across sessions: a build quirk, a correction you gave it, a discovered convention. Capped at roughly 25KB, oldest notes trimmed first.
Read more →
Normal / Plan / Auto modes
- A new 3-way selector sits right under the chat input: Normal (asks per tool, as before), Plan (the agent proposes a plan and waits for Approve/Cancel before touching anything), and Auto (skips every permission prompt, including the always-confirm
execute_luau tool).
- Switching to Auto shows a blocking confirmation dialog spelling out exactly what it bypasses — it’s not a silent toggle.
- This replaces the old Plan Mode toggle that lived in Settings.
Read more →
Subagents
- The agent can delegate a task to a background subagent with a new
spawn_subagent tool. Before it ever spawns one, it’s required to know which model to run it on — it calls a new list_models tool (real pricing, paid/free, capabilities) and, if you haven’t already said which one, asks you via a new ask_user_question tool with concrete one-click choices.
- A subagent’s own access depends on the main session’s mode at the moment it’s spawned: Auto Mode gives it full access including
execute_luau, fully unattended; Normal/Plan give it everything except execute_luau, with its own tool calls gated by the same Ask/Always Allow/Always Deny settings — surfaced in a new Subagent Views screen, not the main chat.
- A pill above the input bar (“Open Subagent Views”) appears the moment a subagent finishes, paired with a toast — you don’t have to go looking for it.
check_subagent and message_subagent let the orchestrator check on or continue a subagent without dumping its full transcript into its own context.
Read more →
- Not just for subagent model choices — the agent can ask a clarifying question any time it’s genuinely blocked on a decision only you can make, with one-click suggested answers plus a free-text fallback.
- The agent can now run several independent tool calls in one step instead of one per round-trip — e.g. reading three scripts at once. Each call inside a batch is still gated exactly as if called directly: a mutating call still needs Allow individually (or is skipped under Auto Mode).
Read more →
Version 2.0
The headline of this release is streaming that actually works the way you’d expect, plus a real reasoning/vision-aware model picker.
Stopping, fixed for real
Previously, Stop only took effect between completed round-trips — it did
nothing while a response was streaming, and nothing at all if a permission
prompt was already open.
- The streaming connection is now polled for cancellation roughly every 50ms and closed immediately, instead of waiting up to two minutes for the response to finish.
- Clicking Stop while an Allow/Deny prompt is open now auto-resolves it as Deny, so the loop isn’t left blocked on a button you weren’t going to click.
Read more →
Tool-call arguments now fill into their card token by token as the model generates them — the same card converts in place into the Allow / Deny / Always Allow decision the instant the call completes, instead of appearing all at once after the fact.
Read more →
Models: vision and reasoning badges
- The model dropdown now shows small vision and reasoning icon badges per model, alongside cost and PAID/FREE status.
- A capability row next to the selector mirrors the currently selected model’s badges, plus a Low / Medium / High reasoning effort picker that only appears for models that support it.
- Fixed the default-model logic: it now picks the cheapest model that isn’t paid-only, instead of the cheapest model overall (which could be a cheap-but-paid model free-tier accounts couldn’t use).
Read more →
Image attachments
- A new circle-plus button next to the input attaches an image from disk (
png/jpg/jpeg, up to 4MB), sent as a multimodal image_url block alongside your text.
- Greyed out automatically on models without vision support.
Read more →
The agent can now read recent Studio output — prints, warnings, errors — via LogService:GetLogHistory(), with optional filtering.
Read more →
Smaller fixes and polish
- The input bar grows upward as your message wraps to more lines, instead of clipping the last line.
- A Continue button appears when the agent hits its 25-round tool-call limit, re-sending
"Continue" with one click.
- Markdown tables render as a real grid instead of flat text.
- The Skills page now surfaces errors from the file picker instead of failing silently.
- Widened the model selector and added safety truncation so longer model names never collide with their badges.
Version 1.0
The first release. Established the foundations everything in v2 builds on:
- Core agent loop: send messages and tools, execute tool calls gated by per-tool permissions, repeat until the model returns plain text.
- Tool catalog:
read_tree, get_properties, read_script, edit_script, set_properties, create_instance, move_instance, delete_instance, search_scripts, and the locked-down execute_luau escape hatch.
- Permissions: per-tool Ask / Always Allow / Always Deny, persisted in plugin settings.
- A full chat UI: message bubbles, model picker, per-game chat history sidebar.
- A second dock widget with a real side-by-side diff view for script edits.
@ mention autocomplete for instances and scripts.
- Streaming assistant replies (text only, at this point) with a typewriter effect and a non-streaming fallback.
- Skills: five built-in playbooks,
list_skills/read_skill tools, /skill slash command, and custom skill import via a native file picker.
- Connectors: an extensible registry, shipping with the Fluency Icons connector and its
search_icons tool.