NullSect
Systems nominal

Docs / HUD / Changelog

Changelog

1.6.0

Added

  • Freecam lock & play: set up a shot (orbit, follow or free), press K (or Lock & play in the panel's Camera tab) and the camera stays at that angle while you get your controls back: walk, run or drive and it follows you at the same offset. Orbit / follow locks keep looking at you, a free lock keeps its own angle. On foot the camera keeps its world angle and W walks into the screen; in a vehicle it swings round with the car (Turn with the vehicle, on by default, saved per player). K again goes back to editing, Backspace / Esc exits. Walls still stop the camera.
  • Config.Freecam.play: enabled, maxDistance (15 m; a camera further away is pulled in when locking; admins admin.playMaxDistance, default unlimited), allowCombat (default off: aiming, shooting and melee are blocked while locked), turnSpeed. New control lock = 311 (K) with its hint label.
  • Local event ns-hud:cl:freecamplay (playing).

Verified (offline)

  • Freecam suite 134/134 (new: lock keeps the pose, game controls stay enabled while the exit / lock / Esc / V keys and aiming are held, W no longer flies the camera, the camera follows the character at the same offset and keeps looking at it, on foot the world angle stays and the gameplay camera heading is synced as a float, getting in a vehicle does not jump, the camera swings round with the vehicle and does not with Turn with the vehicle off, walls, unlock back to editing, pull-in to the play range, a free lock keeps its angle, exit while locked, combat allowed, the panel button, play disabled / missing from the server reply). The vehicle swing and on-foot heading checks fail with those lines removed. Server 66/66 (play limits for players / admins / disabled), client 83/83, car control 61/61, car control client 68/68, NUI freecam 37/37 in Chromium (lock hint, play section + button, locked overlay with only the K / Backspace hints and no crosshair, play off hides both; the slider throttle check now sends its burst in one page call because separate round-trips could exceed the 50 ms window). ns-check 0 fail. Not yet tested in game: SetGameplayCamRelativeHeading steering on-foot movement while a script camera renders, how the vehicle swing feels, K (control 311) read as a disabled control, DisablePlayerFiring while locked.

1.5.0

Added

  • Car control: Alt hides the cursor while the panel stays open, so the mouse controls the game again (camera, and with keepDriving everything the panel normally blocks); Alt again brings the cursor back. A key chip in the panel header shows the key and the state (Hide cursor / Show cursor) and hides the cursor when clicked. With the cursor off the panel content is dimmed and keeps updating. ESC still closes the panel. Alt+Tab does not toggle it. Configurable as Config.CarControl.cursorToggle (GTA control id + browser key name).

Verified (offline)

  • Car control client suite 68/68 (new: cursor off releases the focus and mouse look / shooting with the panel open, the same Alt press is not counted twice, Alt in game brings the cursor and keep-driving back, ESC closes with the cursor off, a reopened panel starts with the cursor on). NUI car control suite 45/45 in Chromium (new: chip shows the key, Alt+Tab does nothing, Alt posts the intent, dimmed state, chip click without starting a drag; 720p still needs no inner scroll). Car control 61/61, client 83/83, server 63/63, freecam 102/102. Not yet tested in game: control 19 (Left Alt) as IsDisabledControlJustReleased while the NUI has no focus, and the Alt key reaching CEF while it has focus.

1.4.2

Removed

  • Freecam slow motion. SetTimeScale slows the whole local simulation, so entities this client owns (your vehicle, nearby traffic) would also move slowly for other players, and other players never looked slowed on your screen. Config.Freecam.world.slowMotion and minTimeScale are gone; a saved slow motion setting is ignored.

Fixed

  • Freecam: a slider pulled all the way to its end did nothing. Filter strength, motion blur, depth of field strength and shake amplitude vanished at their maximum (and slow motion froze the game at ×1.00). The panel sends slider ends as whole numbers (1, 2, 200) and those reached the game's float natives as integers. Every freecam number setting (and its default) is now kept as a decimal number.

Verified (offline)

  • Freecam suite 102/102 (new: every number setting is a float at both ends and as default; slider ends reach SetTimecycleModifierStrength, SetCamShakeAmplitude, SetCamMotionBlurStrength, SetCamDofStrength as floats; a slow motion request is rejected and SetTimeScale is never called). The float checks fail on 1.4.1. Client 83/83, server 63/63, NUI freecam 28/28 (the world tab no longer shows slow motion). Not yet tested in game.

1.4.1

Fixed

  • Switching the theme in the editor (Layouts → Theme) kept the previous theme's widget sizes, so e.g. Classic → Neon showed long stretched hex cells instead of square ones. Picking a theme now also applies its layout (sizes, positions, variants) as one undo step; script widgets keep their places.

Verified (offline)

  • Theme switch in Chromium (8 checks): Classic → Neon gives 36x40 hex cells (fuel keeps its bar override), → Glass 44x44 badges, → Classic 150x18 bars again, one undo restores theme + sizes, no page errors. The same check fails on 1.4.0 (150x18 hex). Not yet tested in game.

1.4.0

Added

  • Car control (/carcontrol, bindable with no default key, ox_lib radial item while in a vehicle, exports OpenCarControl / CloseCarControl / IsCarControlOpen): a draggable panel (position remembered) with a live top-down car diagram that mirrors doors, hood, trunk, windows, seats, indicators, interior light and neon. Controls: engine, every door + hood + trunk, every window, open / close all, all windows down / up, seats (click a seat in the diagram; vans and buses get extra seat chips), left / right / hazard, interior light, neon, convertible roof, boat anchor, vehicle extras. Readouts: speed, engine and body health, fuel (warning / critical colours).
  • Synced through a server-checked vehicle state bag (nsCar): everyone sees doors, windows, indicators, interior light, neon and roof the same way, including players who arrive later.
  • Per-seat access (Config.CarControl.access: driver / front / any / none, own door / own window for passengers) checked by the server; on-foot control next to your vehicle (doors, hood, trunk, windows, lights) with the keys or an unlocked car.
  • Cruise control that holds the speed (throttle + speed cap), overtakes while you accelerate and returns when you release, cancels on brake / handbrake / engine off. Speed limiter. Both adjustable in steps of the player's unit and shown on the new cruise HUD widget.
  • Indicators that switch off by themselves after a turn, and a new indicators HUD widget with blinking arrows. Commands /cruise, /limiter, /indleft, /indright, /hazard (bindable, no default keys).
  • Keep driving while the panel is open (keepDriving): the panel takes the mouse, the keyboard still drives.
  • Fair-play rules: neon only on vehicles with a neon kit (the server never lights sides the vehicle was not seen with), engine start needs keys (qbx_vehiclekeys), no seat change above 10 km/h, belted or cuffed, toggling extras keeps the damage, passengers are not auto-shuffled into the driver seat.

Verified (offline)

  • Car control suite (61 checks): op validation (NaN / ranges / types), seat access matrix incl. own door / window, state merge + diff (stream-in, re-apply of the same value, neon side limits), cruise throttle, indicator turn tracker (left / right / across 0-360 / lane wobble), server handler: seats, refused ops + flags, bad net ids, non-vehicle entities, rate limit, on-foot distance (limit + slack), locked vehicle, qbx_vehiclekeys keys yes / no, feature off, foreign state bag write flagged and restored.
  • Car control client suite (62 checks): panel open / readout / close paths (walk away, ESC, deleted vehicle, disabled class, editor open), prediction + restore on refusal, local-only vehicles, state bag apply (other player, same value, stream-in, new entity handle), engine (keys, broken), seats (speed, taken, belt, back and forth), passenger limits, extras keep damage, neon side memory, cruise (min speed, cap, throttle, step, overtake + resume, brake), limiter (fallback, lower cap wins, step), reset when leaving the driver seat, indicator auto-cancel, outside mode, position storage, resource stop cleanup.
  • NUI car control suite in Chromium (39 checks): render, intents, pending state, disabled parts, drag + stored position clamped on screen, ESC, outside / passenger / bike / bus / boat layouts, HUD widgets, no overflow and no inner scroll at 1280x720, 1920x1080, 3440x1440.
  • Existing server (63), client (83), freecam (99), NUI (97), NUI freecam (28) and locale checks still pass.
  • Not yet tested in game. Natives used for the first time here and unverified in game: SetVehicleMaxSpeed(veh, 0.0) as reset, SetControlNormal(0, 71, x) as cruise throttle, SetVehicleAutoRepairDisabled, IsBoatAnchored, GetConvertibleRoofState.

1.3.0

Added

  • Freecam / photo mode (/freecam, bindable, no default key): free / orbit / follow camera with smoothing, speed control (Shift / Ctrl, Shift + wheel), zoom on the mouse wheel, roll (right mouse), level horizon (R).
  • Lens: depth of field (auto focus on the character or the screen centre, F to focus on what you aim at, depth + strength), camera shake (5 types + amount), motion blur.
  • Effects: 17 screen filters (8 film looks from the Rockstar Editor set, B&W, noir, cinema, muted, CCTV, security cam, heli cam, drunk, dream) with strength, letterbox (2.39 / 2.00 / 1.85 / 1.33, pillarbox on narrow screens), rule-of-thirds / centre / golden-ratio grid, vignette.
  • World (local only, each switchable in config): time of day, weather, slow motion, hide your character.
  • Camera path: add up to 24 keyframes (G), play them back on a Catmull-Rom spline (Enter) with duration, loop and ease in / out; jump to / delete keyframes in the panel.
  • Viewfinder overlay with mode, FOV, speed, roll, range, focus and keyframe readouts, key hints, playback progress; H hides it for clean shots. Effects panel on Tab (camera, lens, effects, world, path).
  • Server-side access control (Config.Freecam.permission: everyone / ace / admin) and limits: max distance from the character (default 40 m) and wall collision for players, unlimited for admins.
  • Exports IsFreecamActive(), StopFreecam() and local event ns-hud:cl:freecam.

Verified (offline)

  • Freecam suite (99 checks): sanitiser (NaN / infinity / types / enums / world gates), angle + spline math, permission denial, movement, range + wall collision, zoom / roll clamps, modes, every effect native, world overrides, keyframe playback, panel focus, all exit paths and full cleanup (incl. a timecycle modifier owned by another script).
  • Server suite +8 checks (63): freecam permission modes, admin limits, rate limit, disabled state.
  • NUI freecam suite in Chromium (28 checks): overlay, letterbox maths, panel tabs without overflow at 720p / 1080p / 3440x1440, throttled slider intents, Esc, clean mode, markup-free key labels, Turkish uppercase.
  • Existing client (83), NUI (97) and locale checks still pass.
  • Not yet tested in game.

1.2.0

Added

  • Themes + layouts Glass (round badge statuses with a progress ring, gauge speedometer with the gear in its open bottom, glass chips) and Neon (hexagon status cells that fill from the bottom, big digital speed, skewed RPM segments, neon accent).
  • Status variants badge and hex, selectable per widget in the editor.
  • Speedometer: dimmed leading zeros (074), gauge tick marks, redline zone and a dark backdrop for readability.
  • Focus mode now announces itself with a notification when toggled, and again on join while it is still on.

Changed

  • Refreshed visuals of the existing themes: glossy status bars, ring backdrop, notification cards with an icon tile and a type-coloured glow.
  • Config.Keybinds.focus default is now empty (was F7).

Fixed

  • Notifications always appeared top-right whatever the player chose: ox_lib / qbx callers send position = 'top-right' by convention and it overrode the player's setting. Caller positions are now ignored unless Config.Notifications.callerPosition = true.
  • Most of the HUD "disappeared": F7 was bound to both hudfocus and ns-vehiclehandling's vhfocus, so leaving a handling test drive silently turned on focus mode (which hides everything but speed / compass / objective / gear) and saved it.
  • Modern / RP pill status: the track layer covered the icon and value.

1.1.0

Added

  • 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.

1.0.0

Added

  • Widget-based HUD engine with 27 built-in widgets (player, core, vehicle, weapon, job, notifications).
  • Live in-game editor (/hud): drag & drop, resize, anchors incl. minimap anchors, scale, opacity, rotation, colour, icon, font, spacing, variant, visibility, smart-hide, snap grid, undo/redo, keyboard nudging, movable / dockable panel.
  • Ready layouts (Classic, Minimal, RP, Racing, Streamer) and up to 10 personal layouts per player.
  • Themes: Classic, Minimal, Modern, Racing (CSS variables + widget variants).
  • Data-driven rule system (config, per layout with UI rule editor, script API).
  • Notification manager: levels, stacking, priority queue, de-duplication, per-resource rate limit, synthesized sounds.
  • Focus mode, cinematic mode (black bars), phone behaviour, pause / death handling.
  • Accessibility: scales, opacity, animation speed, UI volume, high contrast, larger text, reduced motion, colour-blind palettes.
  • 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.
  • Bridges: Qbox, QBCore, ESX, standalone; voice: pma-voice, SaltyChat, mumble.
  • Turkish and English locales.

Verified (offline)

  • Server suite (55 checks): validation, ownership, rate limits, flood, locks, permissions, profile limit, persistence across restart, admin reset.
  • Client suite (78 checks): widget API + sanitisation, resource-restart cleanup, context (vehicle / weapon / phone), rules, NUI diff + batching (no traffic when idle), notification limits, focus / cinematic / toggle, editor lifecycle, request retry.
  • NUI suite in Chromium (74 checks): 5 layouts × 6 resolutions (720p → 4K, 21:9, 32:9) without overflow, safezone clamping, editor drag / resize / undo / save / ESC flow, modes, notification stack + XSS escaping.
  • Locale parity (en / tr) and key coverage.

Cart

Your cart is empty.