Auto flow: when a widget is hidden (smart hide, rule, script), the widgets stacked behind it on the same anchor slide in and close the gap - vertically (status bar column) and horizontally (icon row). Slides that would overlap another widget are skipped. Toggle: Config.Display.autoCollapse (default true). Saved layouts are not modified; the editor shows saved positions.
Fixed
With the minimap hidden, the minimap-top widgets (compass, street, zone) fell into the bottom-left corner on top of the status bars. They now rest on top of the widgets that take the minimap's corner.
1.0.2
Changed
Framework.IsPhoneOpen() no longer calls GetResourceState for lb-phone / npwd on every HUD tick; the detected phone resource is now cached and only re-checked on onClientResourceStart/Stop, trimming part of the per-tick resmon cost while driving.
1.0.1
Fixed
Vehicle HUD (speed, rpm, gear, fuel, engine, body, seatbelt) never appeared when entering a vehicle on some client builds: DoesEntityExist returned a raw 1/0 instead of a Lua boolean, so the strict ctx.vehicle == true check used everywhere (widget visibility + the vehicle == true rule condition) always failed.
Public client API (widgets, notifications, objective, rules, context, modes) and server Notify export; automatic cleanup when a calling resource stops.
Persistence via oxmysql (auto-migrated) or server KVP; per license or per character.