RustForge Sign Painter · published · build 25267868

Transmission from RustForge 🎙️
Update 6.7.0.0 delivers a massive upgrade to painting speed and hardware-level input precision. I took some time to dive deeper into how the Windows Desktop Window Manager, and Unity Engine handles rapid micro-movements, I've successfully bypassed the OS-level input throttling that previously held back most mid-tier and low-tier machines. Under the hood, the input pipeline now forces raw coordinate data directly into the input buffer, completely eliminating skipped pixels on fast, complex curves, and images with loads of varying gradients. To capitalize on this new stability, I've unlocked the absolute lowest timing floors physically possible within the Unity engine and introduced a brand new maximum speed tier, "Max (Experimental+)".
Raw Hardware Input Processing: Bypassed Windows Mouse Coalescing. The engine now forces Windows to push every single coordinate directly into the raw hardware buffer without merging them, preserving perfect stroke fidelity.
Max Speed (Experimental+): Added a brand new, ultra-fast painting speed. Thanks to the new coalescing bypass, this is now the absolute fastest possible drawing speed for most hardware, it is still highly experimental.
Hyper-Precision Timing Floors: Changed the absolute minimum threshold for both End of Line Delay and Precision Timing Delay from 5ms down to 1ms, unlocking extreme micro-tuning for advanced users with high refresh rates, and capable hardware.
The Windows Coalescing Bottleneck
The Challenge: To conserve CPU power, the Windows OS automatically intercepts and merges (coalesces) rapid mouse micro-movements into single, larger jumps. When RustForge sent coordinates every few milliseconds, Windows would collapse them, causing the in-game brush to skip intermediate pixels and draw jagged lines during rapid curved strokes, or cause the occasional missed stroke during rapid mouse movements and clicks when GC (Garbage Collection), or an fps drop/lag spike occurred.
The Fix: Forced raw coordinates into the mouse movement event packets. This explicitly instructs the Windows input dispatcher to never merge RustForge's pathing data, ensuring every single coordinate is delivered sequentially to the game client.
Breaking the Speed Limit
The Challenge: Previous engine safety floors hard-capped delay timers at a minimum of 5ms to prevent the Unity engine from dropping inputs. This artificially throttled users with high-end processors and 144+ FPS who could mathematically paint much faster.
The Fix: With the new unmerged hardware buffer stabilizing the strokes, I was able to safely lower the absolute minimum delays for both Precision Timing and End of Line pauses down to 1ms. This paved the way for the new "Maximum (Experimental+)" speed, pushing the painting engine to the absolute limit of what the game can physically register.
HD Canvas Scaling (Zooming): While the new Smart Brush Suggestion feature combats the Moiré effect, if you zoom in/out heavily while painting on canvases like the new Artist DLC Canvas' Large Banner on Pole or the XL Picture Frame, the engine's scaling will change and your paint strokes will misalign. Most large Canvas's require a higher brush size due to its inflated size on screen. Fix: Do not zoom in or out while mapping/painting. If you absolutely must zoom in or zoom out, manually increase/decrease your brush size slightly to bridge the newly created gaps.
Contour Tracing & Smart Pathing (Resume Limitations): With how Contour Tracing and Smart Pathing calculate the most efficient omnidirectional paths for curves and fills, it is mathematically impossible to resume a paused painting from the exact pixel you stopped at. Instead, the engine will resume from the currently painting color, and begin from the start of that specific color layer to ensure nothing is missed. This is an intended feature of these advanced methods. It may add a few minutes to your total paint time if paused and resumed, but this prevents missing structural chunks of your image.