Skip to content

Conversation

@StaticSweep
Copy link
Owner

@StaticSweep StaticSweep commented Dec 19, 2025

PR #46: Interface Revamp, Humanized Mouse & Performance Overhaul

This is a massive update that updates almost every part of the bot. I wanted to make the client look better, feel more human, and run a lot smoother.

Complete Web Interface Rehaul

The frontend has been completely rebuilt with a modern GlassMorphism aesthetic. Theres also several components in the tech stack which have been created to utilise WebSockets for real time updates.

  • Live Debug Viewport: You can now see exactly what the bot "sees" in real-time. The ColourContours and TemplateMatching logic push their state directly to the browser. If the stream gets overloaded, the system discards old frames to keep the bot logic running.
  • Reactive Status: The header now displays the live sensor state (SEARCHING, ACTING, WAITING, ERROR) so you know exactly what the bot is thinking.
  • Live Statistics: Runtime, cycles, and inputs are streamed live.
  • Smart Logs: Console logs are now colour-coded by severity in the web UI.
  • Better Controls: Fixed the sliders (you can no longer break them by pushing min past max), and added a Copy Button to the colour picker. You can now generate the Java code for a ColourObj and paste it directly into your script.
  • Slider performance Slider performance has been greatly improved by no longer writing modified.png to disk.

WindMouse Integration

I’ve completely replaced the old MousePathing with WindMouse.

  • Instead of calculating a geometric path, WindMouse simulates a physical cursor with mass. It uses gravity to pull towards the target and wind to apply randomness making it pixel imperfect.
  • Movement includes natural overshoots, micro-jitters, and variable speeds, As a result, overshoot and undershoot methods are now deprecated and removed.

Performance & Multithreading

We've moved to a Producer -> Consumer threading model for inputs. The physics engine calculates mouse movement on one thread, while a separate background thread handles the hardware remote inputs. If the hardware input lag spikes, the physics calculation remains accurate.

OpenCV Improvements:

  • Font Caching: OCR no longer lazy loads on each OCR call, it's cached in memory at startup.
  • Viewport: The state tracker uses a no-op interface by default and is only hooked up when Spring loads, preventing memory leaks during headless runs.

Background Mode

This is probably the biggest Quality of Life improvement You can now hide RuneLite.

I replaced the standard Java Robot capture with native Windows calls. This reads the window's device context directly and writes it into a buffer.

The bot can see and use the game window even if it is covered by another window. You can finally use your laptop for other things while the bot runs in the background!

You can't minimise it, however you can maximise other things and cover it completely.

New Actions Utility

You can now call ItemDropper.dropAll(controller()); to drop all the items in your inventory.
There are also different dropping patterns to choose from, see the class.

BREAKING CHANGES:

  • VirtualMouseUtils.moveToPause() & VirtualMouseUtils.moveToAndOvershoot() have been removed.
  • There is no longer a "fastest" option in mouse.moveTo().

@StaticSweep StaticSweep changed the title Implement debug viewport, live statistics, slider validation and CSS Interface Revamp, Upgrade Mouse Integration & Performance Enhancements Dec 20, 2025
@StaticSweep StaticSweep marked this pull request as ready for review December 20, 2025 09:30
@StaticSweep
Copy link
Owner Author

Also deleted MinHook as a dependency, because remote input works without it 👍

@StaticSweep StaticSweep marked this pull request as draft December 20, 2025 16:09
@StaticSweep StaticSweep marked this pull request as ready for review December 21, 2025 10:36
@StaticSweep StaticSweep merged commit 9b0ebcf into main Dec 21, 2025
1 check passed
@StaticSweep StaticSweep deleted the development branch December 21, 2025 10:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants