Changelog

What Actually Changed.

Every real release, newest first. Recorded starting from 1.4 — earlier versions predate this page keeping history at all.

2.0.0-beta.5 Current
Other bots’ macros, in the game. Drop another bot’s macro in the replays folder (or use Import a macro) and Saved macros lists it under From other bots, ready to convert in one press. 27 formats read: GDR and GDR2, Silicate, TcBot, ToastyReplay’s .ttr3, yBot, xdBot, Mega Hack Replay, TASBot, GucciBot 1.x’s old .brrr and more. Any macro exports to 21 of them. The original is always kept. Built on peony’s nat-converter, the same one on this site.

Calculate. Manual Frame Windows is back: every input of the macro in one table, any window typed in by hand, kept through the next run. A tight click right after another input now also gets Juice’s Alignment-Independent count, sub-tick clicks included: “my suggestion is x frames”, one press to use it. A time cap keeps what a long run measured, the in-level box shows the time so far and to go, and a notification says when it’s done. Bands can show their own image and pulse, and markers stay right through mirror portals.

The AI pathfinder, first steps. Show the level map draws every gap the player fits through, every choice (forks, orbs, pads, portals) and every part that moves, timed by a copy of the player riding the level in the background. Show the planned route draws its way through the whole level, and Follow the planned route (AI) has the pathfinder take the way GD’s physics finds to the route’s next gate, jumping back to where it left the route when a way dead-ends. No more straight-line wave spam.

Click Indicators and rendering. Click Indicators is its own feature now, with Bogdaner09’s options, and shows in the trainers too. Rendering gets presets (Showcase included), a done popup, a pixel format choice, and a fix for renders that stopped two seconds in.

Also: CPS and Max CPS on the HUD; click packs play their background noise; the Trainer gets its own Video Mode; the JMF Trainer page looks like Jupiter My Favourite again; Saved macros gets a menu per row (rename, convert, open the folder); a status bar under every page’s title; the update checker is back; switches that did nothing now work; respawning at a checkpoint on Mac, iPhone and Android no longer crashes; Mirror Inputs works again.
2.0.0-beta.4
Auto safe mode. On by default: while a cheat is on (a macro or Calculate playing, noclip, speedhack, a tick rate other than 240, the autoclicker, Prevent Death or frame advance), the attempt doesn’t count. No completion, no new best, no percentage saved, nothing sent to the servers, and start positions work like normal. Turn it off and a small red dot shows in the top-left corner while a cheat is on, right there in recordings and renders; a green one can show while nothing is. dihmaster500 asked for it.

Setup check. GucciBot’s engine breaks with GD’s Auto-Checkpoints, other mods’ practice fixes, Frame Extrapolation in Mega Hack or QOLMod, and other bots loaded at the same time. Now it tells you: once per launch, on the Macro page, and when you hit Record or Play. It never changes another mod’s settings.

Disable bot. One switch in Settings takes GucciBot out of the game without a restart, every hook and patch included, and brings it back the same way. Also dihmaster500’s idea.

Phones and Mac. On a phone the menu fills the screen and scrolls when you drag it, with a Menu size slider in Settings. On a Mac, Option opens the menu, and the GucciBot button is in the pause menu there too.

Also: rendering fixes itself on installs from beta.3’s first upload (any missing renderer file comes back when the game starts), and the autoclicker and hitbox hotkeys remember their toggle after a restart. The download is GitHub’s build of this exact version, unchanged, with every platform and every renderer file inside.
2.0.0-beta.3
Mac, iPhone and Android. The most requested thing in the comments: GucciBot now runs on macOS, iOS and Android as well as Windows, all from the one download. It’s experimental on those three, so if something’s off, open an issue and say which device. Recording, playback, practice checkpoints, Calculate, the trainers, path preview and the Survival Indicator all came along, and on a phone the menu opens from the new GucciBot button in the pause menu. Pathfinder, rendering and Video Mode still need Windows for now.

Built from scratch. Everything that came from ToastyReplay was taken out and rebuilt on Silicate, on Absense, or from nothing: the menu itself, themes and the theme editor, the autoclicker, click sounds, hitboxes, the HUD, the frame editor, path preview, both trainers, the Survival Indicator, Video Mode, Macro Tools and Editor Tools. Old macros in the BRR format from before GBR6 don’t load anymore — that reader went with it.

BIG BRRRR is back. New shake and flicker, the menu bobs to the beat unless it’s shaking, and every theme’s track plays, LemonadeBot’s and YoungstaBot’s included.

Also: platformer macros keep their left and right taps (GBR6 was saving them as jumps — re-record any platformer macro from an older version); a press held through a practice checkpoint stays held; presets keep every setting; GucciBot stands down when Silicate is enabled. Shoutout to Doggie for verifying Grief. GGs.
2.0.0-beta.2
This is basically 2.0. It’s finished, it’s been run in-game, and it’s colder than a freezer full of chains. The beta tag only stays on while the rollout gets made — a release video, the promo, one last polish — because a drop this icy deserves a real launch, not a quiet tag at 2am. Brrr.

A new Pathfinder. The default engine is now Absense’s pathfinder, by Absent, ported in whole: before every click it runs copies of you ahead through the level, plays the idea that lasts, and goes back when a way dead-ends. On top of it, GucciBot’s own addition — in ship, wave, UFO and swing it tries holding you at a spread of heights, which is what finally gets a ship through a tight gap. It beats full levels with flying parts that the old one couldn’t, learns each level as it goes, and can start from the pause menu or from the very beginning. The old engine is still there as Classic.

Recording keeps every click. A tap while you’re already holding is a release, a press and a release in the same tick, and the last release was being thrown away as a “duplicate” — the replay stayed held and died. Every input is kept now, and loading a macro keeps them too.

Backwards Stepping steps one tick. A step back now lands on exactly the frame before, with the frame counter matching where you are. The first step used to jump two, and Prevent Death landed a tick early.

ToastyReplay Lite isn’t required anymore. GucciBot only stands down if it’s enabled at the same time.
2.beta.1
Macros recorded in practice mode play back. Checkpoints are placed between physics steps and captured in that same instant, the way Silicate does it, so a respawn puts the level and you back at the same moment. They used to come from two different ticks, and a macro recorded through a respawn could break a little past the checkpoint — if one of yours did, re-record it.

Calculate launches off slopes. GD’s anticheat spike was being swallowed while Calculate ran instead of handed to the game, which cut every collision check short — and that’s where GD launches you off the top of a slope. Calculate now plays a level exactly the way normal playback does.

Pathfinder keeps more than one click. The same anticheat fix gives its runs their slope launches back, and a search that could never commit a second input now can.

Also: frame windows leave with their macro (new recording, deleted macro); the Calculating box shows real progress instead of 0%; bands start on the Bells.
2.alpha.4
Click Between Frames stops fighting GucciBot. It and Superb Input Precision apply your clicks outside the path a bot records from, which can leave a macro missing clicks. GucciBot now pauses both while it’s recording or playing, and puts them back exactly as they were the moment it’s done — playing normally with CBF is untouched.

Open source, officially. GucciBot is licensed under the GNU GPL v3 now, the same license as Silicate, which it’s built on.

Converter. Macros from anticroom’s Silicate fork (.scbf1) convert now, with their sub-tick timing intact when the target is GucciBot. Two-player ToastyReplay Lite conversions no longer come out scrambled.

Also: GD’s shader effects in a render are set up the way Silicate does it, sized to the render itself — which fixes a bug that only showed when a render’s shape didn’t match your window’s.
2.alpha.3
Renders work again. In 2.alpha.1 a render froze after its first frame. Fixed, along with two render bugs found right next to it — video and audio could write to the file at the same moment, and every render leaked GPU memory on the way out.

Sub-tick clicks. CBF Recording places each click at the point inside the tick you actually pressed it, from the time Windows stamped on the input, and plays it back there. Sub-tick Frame Advance steps through a tick in splits and shows where your hitbox would be, with the hold and release paths from that exact point — press at a split and the click records there. anticroom’s work, like the new render intro card: the level’s name, your own lines and your frame-window bands, before the level starts.

Menu items that did nothing, now do something. Lining Absense’s settings up against GucciBot’s turned up a run of Silicate features that were in the menu and wired to nothing. RNG Lock fixes the seed. No Mirror’s Only Recording works. High TPS Precision covers every place GD rounds vertical speed. Teleport triggers and screen shake follow the macro’s seed. Backwards Stepping stopped quietly saving every tick as a practice checkpoint — so a death restarts you again instead of putting you one tick back — and Back Step Count finally caps it.

Also: Frame Extrapolation and Pathfinder’s hold-or-release check were simulating at a sixtieth of real speed; now they don’t. Prevent Death can stop before a death, and Find Best Tick tries your next click on every tick. Render the next level you open, hear a render while it records, leave the level when it’s done. Frame Pacing, Swift Clicks, an Auto Black Orb UFO loop, Check Macro, fourteen HUD readouts, and more tools for Assistant Access.
2.alpha.2
Pathfinder stops repeating itself. It never retries a press it has already proven does not work. It remembers what got past a hard spot and saves it per level — keyed on the situation you died in, not on the exact run that led there, so the answer still applies after something upstream shifts by a frame. Given two presses that both work, it takes the one that also works a frame late over the one that only works frame-perfect. If there is already a macro on the level, your own presses get tried before anything it invents. And a spot that keeps biting gets a longer look straight away instead of creeping outward one frame at a time.

The frame editor drew macros it wasn’t saving. Nothing stopped a hold being dragged straight through the one next to it. The editor showed two holds; the saved macro had a press land while one was already down, which playback ends on the first release — so the macro played a shorter hold than the picture, and you found out when a run desynced somewhere later. Drags are clamped against their neighbours now, and the editor’s rules run as tests at startup so this class of bug reports itself instead of waiting for a run.

Assistant Access. An optional local server, off by default, that lets an AI assistant read what the bot is doing — the frame, the loaded macro, Calculate’s windows, Pathfinder’s progress, GucciBot’s own logs — and step the game while something is going wrong, instead of reading a log about it afterwards. Your machine only. It never reaches the network.

Credit where it’s due: several of Pathfinder’s improvements and the assistant server are Absent’s ideas, from Absense. The code here is ours; the ideas are his.
2.alpha.1
An alpha, and labelled one deliberately. 2.0 is a reconciliation of GucciBot’s engine against Silicate’s, and it turned up a pattern: mechanisms that had been ported as function signatures with empty bodies, wired into settings and save files that had been feeding them for months. This release fills them in. It is large, it is not finished, and it wants testing more than it wants applause.

Levels replay deterministically now. Every macro file has carried a random seed since the format was written. Nothing ever spent it. Object variance, Random triggers, teleport and shake RNG now all derive from it, and checkpoints capture and restore every one — so a macro replays against the level it was recorded on instead of a slightly different one each attempt. Levels built around Random triggers are replayable at all for the first time.

The renderer. Frame capture is asynchronous, pipelined through a ring of GPU buffers with fences rather than stalling the game every frame. Renders fade in and out, picture and audio together. A render holds the view for its whole duration, so a resize or alt-tab partway through no longer fights the output resolution. Audio channel counts are reconciled against what FMOD actually mixes, which is not always what it reports.

Pathfinder reaches past its own commits. A decision point whose search window was cut short by the previous committed input — every fall off a ledge, where the real mistake is the jump that led there — now reopens that input instead of exhausting a window that cannot contain the answer.

Also: L* precision readout in the corner of the level, the MegaHack menu style actually looking like MegaHack, High TPS Precision as an option, and a refreshed interface.
1.8.0
A new frame-window analyzer. Calculate has been rebuilt on anticroom’s Silicate analyzer, and it measures every click instead of giving up on the hard ones. Windows are measured against the real engine, with a settings tab behind them: how far a shifted input has to survive before it counts as safe, how much room to leave before the next input so a death gets blamed on the click that caused it, which inputs to measure, and how much of each frame to spend. Sub-tick measurement reads windows finer than a single frame. Results save alongside the macro now, so a macro you measured is still measured when you come back to it.

Marker bands. Every band has its own colour, label, sound and shape — circle, star, spiral or polygon, drawn as a single outline, an inner ring, or filled. Bands can be reordered, which matters because a window takes the first band that covers it. Sounds come as importable packs, and the bundled set and GucciBot’s own Brrr are one click each.

Checkpoints rewind the level, not just the player. A restore used to put the player back perfectly into a level whose moving objects, trigger variance and item counters were still wherever the run had reached. Two older bugs went with it: a checkpoint placed moments before dying could be lost entirely and send you back to the previous one, and its abandoned capture could later be filed against a different attempt — which is where mismatched hitboxes after a respawn came from.

Renders can tell the level’s sound from the run’s. A level’s own SFX-trigger audio and GD’s gameplay sound — death, orbs, pads, UI — have separate volumes now, so a showcase keeps what the creator built into the level while dropping the noise the macro makes. There’s a one-press showcase preset too: 8K60, lossless x264, FLAC, with the thread count read from your CPU.
1.7.2
Pathfinder stopped searching the wrong frames. When a death came long after the mistake behind it — walking off a ledge and dying at the bottom — Pathfinder used to search the handful of frames right before the death, where nothing it pressed could possibly help, and burn attempt after attempt there. It now checks, frame by frame, whether pressing would change anything at all, skips the stretches where it wouldn’t, and looks back as far as the frame that actually decided the run. And when a fix only buys a few frames, it tries different versions of the press before it first, instead of settling for the cramped one. There’s a new Agency Map toggle in the Pathfinder tab too, which draws which frames an input could change while you play.

Editor playtests run at the right speed. With an FPS cap above 240, a playtest in the level editor ran fast — 1.5x at 360 FPS — because the game took a step on every drawn frame instead of only when one was due. Playtests also start clean now: the frame count, the macro’s position and any held jump are reset, and the editor’s song preview stops, instead of carrying over from whatever happened before. Thanks to the YouTube commenter who reported the editor timing.

Frame-window markers can’t go missing silently. A manual frame window on a macro without a recorded path got counted by the legend but never drew in the level. It now uses the position Calculate measured for that click, and the Frame Windows tab tells you if any click has no position to draw at. Thanks to the GitHub issue #4 reporter for sticking with this one.
1.7.1
Fixes a crash 1.7 introduced. Someone reported GucciBot simply giving up when entering a level, with no crash log to show for it. The overlay that draws frame-window markers hangs onto references to things inside the level, and it only let go of them on one specific kind of exit — so leaving a level any other way (finishing it and going straight to the menu, for instance) left it pointing at things that no longer existed. That was survivable before 1.7. The new legend reads one of those references every single frame, so 1.7 turned it into something you would actually hit.

Deleting a macro now deletes everything belonging to it. It used to remove a fixed set of companion files and leave the rest — backups in particular — sitting in the folder forever.
1.7
The checkpoint bug is fixed, and it was the big one. Pathfinder and the frame-window analyzer both depend on saving a checkpoint and replaying from it. Every checkpoint was storing the player’s position from one frame earlier than the frame it was filed under, so each time the bot restored one it quietly lost a frame of forward movement — and the error stacked with every restore. It only ever showed up in the X position, because that’s the one value that moves every single frame no matter what the player is doing, which is why it hid for so long. Found by comparing GucciBot’s checkpoint code against Silicate’s, after anticroom mentioned his Silicate port of the analyzer worked correctly. Both features now do what they always claimed to: Pathfinder solves a level end to end and its result holds up on a clean replay, and frame windows measure against checkpoints that actually match their own timestamps.

Pathfinder saves its own macros now, named after the level, instead of finishing silently and leaving you to press Playback and then Save to find out whether it worked.

The frame-window sound was late by a third of a second — not a timing bug, just 374ms of dead silence sitting at the front of the audio file before the “Brrr” actually starts. Trimmed. (The file also had seven seconds of silence on the end, so it went from 158KB to 11KB.)

A new “Default Look” toggle for the overlay, for people who’d rather not configure tiers: one plain ring per click, a fixed colour ramp from red for the tightest windows through to blue for the most forgiving, and the number to the left of the ring. Optional bell sounds instead of the Brrr. The legend was rebuilt to match, using Geometry Dash’s own font instead of a lookalike.

Two additions to a macro’s “...” menu: convert a macro saved under another theme’s extension over to .brrr, and run Calculate straight from there without loading the macro first.

Also: 1.6.5 shipped an update checker that crashed the game on launch. It’s gone, and the reason it broke turned out to point at the real cause of the file-picker crashes people reported in 1.6.4 and 1.6.5 too — two of Geode’s async systems being mixed in a way that doesn’t work. And the frame-window “strange sound” a few people reported was never broken: the default is Gucci Mane saying “Brrr”, the settings text just wrongly called it a chime.

Switched the main Claude model from Claude Sonnet 5 to Claude Opus 5 — the more powerful model.
1.6.5
A follow-up to 1.6.4’s file-picker crash fix, plus a new convenience. The fix: that first pass stopped clicking the same Import button twice in a row from crashing the game, but “Import Sounds/Images” and “Import Folder” sit right next to each other on the Frame Window settings page, and clicking one, then the other, wasn’t covered — a real sequence if the first click’s dialog opened behind the game window with no visible cue. Every file-picker button on that page (and trainer music import) now checks that none of the others are already waiting on a dialog before starting a new one. The new part: GucciBot checks for a newer release on launch now — nothing shows up if you’re current, but a popup with a direct link appears if you're not.
1.6.4
Two real crashes, both from community bug reports rather than Nigel’s own testing. Saving a macro under a custom theme wrote a filename with no extension at all, so it saved fine but silently vanished from every macro list on the next refresh — the theme-extension getter was dropping its leading dot. And clicking Import (sounds/images on the Frame Window, folder import, trainer music, or a custom theme’s audio) a second time before the first file-picker dialog closed could crash the game outright, since nothing stopped the second click from destroying the first pick while it was still waiting on the OS dialog. A real crash log (GitHub issue #1) made the second one possible to actually pin down instead of guess at.
1.6.3
A rename, not a feature. Nigel changed his GitHub username from guccimanefan to Nigelx1 and asked for the old handle dropped everywhere, not just on GitHub — the mod’s own id (nigelx1.guccibot, was guccimanefan.guccibot), the developer field, the in-game Credits tab, the README, and every mention on this site itself. Existing installs of the old id keep working as-is; grabbing this version means installing fresh under the new id rather than an in-place update, since Geode treats a changed id as a different mod.
1.6.2
Credits reconciled across about.md, the README, the in-game Credits tab, and this site — same people, same order everywhere now. GWDdoS was missing from two of those surfaces, Juice was accidentally credited twice here, kepe’s credit was dropped (no code taken, no personal involvement), ToastexGD’s credit now reflects that ToastyReplay is the actual foundation GucciBot started as, and Tech N9ne (Red Kingdom’s real inspiration) was added after being missed entirely. Also fixed two spots on this site that wrongly credited Nigel with writing the fake Gucci Mane quotes — both are Claude’s.
1.6.1
GucciBot’s first outside pull request, from anticroom: a 7-fix pass on Calculate’s frame-window accuracy. Input matching now checks action type, not just frame/player/holding. Shifting a press now carries its paired release along, so cube/ball/UFO taps keep their original hold duration during a probe shift instead of silently stretching it. Room and shift-bound calculations now check they’re comparing the same player and action stream. A valid-shift counter no longer keeps counting past a known survival gap, and the level-complete screen is suppressed while Calculate is running its own internal simulation. Also bumps the Geode SDK requirement to 5.10.1.
1.6.0
Frame-window analysis gained a third algorithm — Alignment-Independent, which re-tests the previous click’s own timing alongside this one instead of just the click itself — selectable right next to Time-Based and Recovery Range without touching either. A new “Circle Skin” marker style, and Megahack’s Practice Fix is now called out directly as heavily recommended before running Calculate. Three new themes — WakaBot, YoungstaBot, and KnockerzBot — plus Big Brrr tracks finally added for ToosiiBot, SexyyBot, and SaweetieBot, which never got one despite predating the feature. Autoclicker was reworked to match Silicate’s own model: Hold Ticks, Release Ticks, and Clicks Per Hold are now fully independent per player instead of one shared setting forced onto both, and the hitbox trail no longer redraws duplicate samples landing on the same pixel. Also: GucciBot now requires ToastyReplay Lite to be installed (it doesn’t need to be enabled) to run at all.
1.5.2
LemonadeBot’s Big Brrr track got swapped for the correct one — a download-tool mixup had bundled the wrong song entirely. Fixed.
1.5.1
A credits fix. 1.5 shipped Click Indicators — real scoring, matched Perfect / OK / Miss against the macro’s own click bar — without ever crediting where the idea actually started: Bogdaner09’s mod, which Nigel found and GucciBot built its own version around. Fixed.
1.5.0
Click Indicators got real scoring — every press and release you make against the macro’s own click bar gets matched and rated Perfect / OK / Miss, with the last timing delta shown live. The Jupiter My Favourite Trainer also picked up Video Mode: a full-screen review overlay that plays your own footage back riding the exact same click-bar clock as the macro, plus an alignment tool that scrubs the video directly to the first click instead of nudging an offset slider by hand. Improved frame window performance when using an external Practice Fix — native Practice Fix coming soon, hopefully. Five new themes joined the lineup — RomoBot, GrizzleyBot, Red Kingdom, LemonadeBot, and BrrrBot, the last with its own live snow overlay — and you can now build your own: full color palette, your own extension, your own quotes, even your own Big Brrr track.
1.4.0
Compact mode finally does what it’s named for — save, name, run Calculate, and pick a macro without leaving the corner panel. A death-mid-click recording bug that’s been reported (and mis-fixed) more than once finally got tracked down properly, using Juice’s own fix for it instead of guessing again. Rendering got real upgrades too: the FFmpeg setup that used to be an easy-to-miss manual step for every fresh install now just ships with the mod, frame-window cues actually make it into the output video, and there’s an optional 4-track split — combined, music, SFX, and frame-window cues on their own tracks. Also: SaweetieBot and MaybachBot joined the lineup, MaybachBot with its own Big Brrr track.

Full commit-level history: github.com/Nigelx1/GucciBot/releases