HZ Scripts

Changelog

v1.1.1 — Hotfix : ACE Permission Mismatch + Actionable Error

2026-05-18

Bug Fixes

  • ACE fallback inconsistency — when HZBridge.Panel.AcePermission was missing, nil, or empty in config.lua, the panel fell back to "HZ-Bridge.admin" while the documented default (and the config.lua shipped default) were both "admin". Customers with a valid add_ace group.admin admin allow were locked out for no reason. Fallback now correctly resolves to "admin", aligned on config + docs.
  • Fixed in both modules/panel/api_server.lua and modules/panel/theme.lua (the mismatch lived in two places).

Improvements

  • Permission error message is now actionable. When /hzpanel ACE check fails, the server console prints the exact two lines to copy-paste, with the player's license already interpolated:
    add_principal license:abcdef... group.admin
    add_ace group.admin admin allow
  • Chat notification names the missing ACE node explicitly instead of a vague "perm. HZ-Bridge". Players know exactly what to fix.
  • The console output also explicitly flags that command.hzpanel is NOT the right ACE node — customers were trying it out of confusion (most common ticket source pre-v1.1.1).

Upgrade Notes

  • Drop-in replace. No config / DB / event / schema changes.
  • If your panel was working in v1.1.0 it still works in v1.1.1 — the fix only unblocks customers who were locked out by the bad fallback.
  • See the Permissions setup section of the Admin Panel guide for the canonical setup (and the qb-core boilerplate gotcha that explains why so many tickets reference this).

v1.1.0 — Centralised Admin Panel + Theme Cascade

2026-05-15

The headline change: HZ-Bridge ships a full in-game admin panel. Every HZ-Script module now declares its config schema via a small Lua DSL, and the panel auto-builds a typed editor for it. No more per-script commands, no more touching config.lua between every tweak, no more restart-to-apply.

New Features

  • /hzpanel command — opens the central admin panel in-game. ACE-gated (default admin, configurable via HZBridge.Panel.AcePermission). Skips the ACE check entirely when HZBridge.Panel.DevAllowAll = true (dev only — turn off in production).
  • Schema DSL (bridge_schema.lua) — every module declares its config as a sandboxed Lua chunk that calls module() / section() / group() / field() / invariant() / migrations(). The panel auto-builds a typed editor from the declaration. Field types supported: boolean, number, string, enum, color, keybind, list, list, vehicle-list, weapon-list, action, enum-action, view.
  • enum-multi field type — constrained multi-select picker (toggle chips). Stored as list, but the admin can only tick values from a fixed choices array. First consumer: HZ-Weather's BlackoutExceptions.
  • Custom views — modules can register full-width React components in the panel under web/src/views//. Used by HZ-Weather to ship a polygon + circle zone editor, a satellite map, a forecast graph, a calendar, a seasons panel, and a time controller.
  • Theme cascade ("Apparence" tab) — one place to control the visual surface of every HZ NUI. Four orthogonal axes:
  • * Accent (accent / accentHi / gold) — Vice signature pink / hot pink / gold. Presets: Vice, Industrial. * Surfaces (surface / subpanel / tint) — outer panel / inner sub-panel / hover tint. RGB only — opacity decided per consumer via rgb(var(--hz-surface-rgb) / 0.X). * Gradient mode (gradient / solid) — solid collapses every accent gradient to a 1-stop flat fill. * Radii (radiusNone / Xs / Sm / Md / Lg / Xl) — six-tier corner scale. Presets: Sharp (0/2/4/6/8/10), Soft (0/3/6/8/12/16), Round (0/4/8/12/16/20), Industrial (0/0/2/2/4/4).
    • Live broadcastHZ-Bridge:theme:updated (server + client) fires on every save. Resources subscribe and apply applyTheme() to their own NUI. New GetTheme() export returns the current effective theme synchronously.
    • OpenPanel(src, module?) server export — open the panel for a player from another script, optionally preselecting a module's tab.

    Safety + ops

    • Sandboxed schemas — DSL runs without raw io / os / debug, with restricted string / table / math subsets. A buggy bridge_schema.lua fails to load (logged) but can't crash the server.
    • Rate-limited writes — default 10 writes per 5s per source (configurable).
    • Session tokens — every panel open issues a short-lived token (default 5 min TTL) that gates every save.
    • Per-source ACE check on every action — not just at panel open. A revoked admin can't keep editing on an already-open panel.
    • Audit log — every accepted save writes a line to data/audit-YYYY-MM-DD.log. Rolling files older than AuditRetentionDays (default 90) are pruned at boot.
    • Atomic writes — effective config per module is written via tmpfile + rename (data/.json). Pending writes use data/.pending.json and are committed atomically.

    Performance

    • Map tile pre-fetch — the 257 satellite tiles used by HZ-Weather's Map / ZoneEditor views are pre-warmed in CEF's cache at panel mount via requestIdleCallback, capped at 12 concurrent requests. First open of a map view is now instant instead of 1-3s.
    • No backdrop-filter anywhere — compositor blur was removed from every HZ NUI (the previous "allowed on overlays" carve-out is revoked). Even paused overlays cost 8-12 FPS to a single blur. Replaced with deeper alpha scrims (rgba(0,0,0,0.78)+ on backdrops, 0.55–0.92 on glass cards).

    Improvements

    • Mercator-safe circle rendering in HZ-Weather views — Cayo Perico (game Y ≈ -5150) used to render circles too small because the previous ignored Mercator stretch at high latitudes. Now uses a true projected ellipse with local px-per-meter on each axis. Both the editor and the map view agree.
    • Default Apparence colour matches the rest of the HZ ecosystem — Vice palette + Vice surfaces + Sharp radii pre-applied at first boot.

    Upgrade Notes

    • No breaking changes for consumers of the bridge's framework / inventory / notification APIs — those continue to work identically.
    • Resources that want to expose config in the panel ship a bridge_schema.lua at their root. See the Admin Panel guide for the DSL reference.
    • If you set HZBridge.Panel.DevAllowAll = true while iterating, set it back to false before going live — the panel is a serious tool, not something to leave open.

    v1.0.0 — Initial Release

    2026-02-15
    • Universal framework adapter — auto-detects ESX, QBCore, QBX, Ox Core, vRP, or runs standalone
    • Inventory adapter — ox\_inventory, qs-inventory, ps-inventory, codem, core, origen, tgiann, or framework native
    • Notifications adapter — ox\_lib, okokNotify, mythic\_notify, codem, pNotify, framework, or GTA native
    • Target adapter — ox\_target, qb-target, interact, or built-in TextUI fallback
    • Menu / input adapter — ox\_lib (full), qb-menu + qb-input, ESX menu, or GTA native fallback
    • Dispatch adapter — cd\_dispatch, ps-dispatch, qs-dispatch, rcore\_dispatch, emergencydispatch, or built-in
    • Bidirectional callbacks (client ↔ server) with rate limiting + timeout
    • Built-in minigames — progress bar, skill check, sequence
    • Single 'auto' mode that resolves the right backend per system
    HZ Scripts

    Scripts FiveM testés en prod. Compatibles ESX, QBCore, QBox, Standalone. Updates à vie incluses.

    Tebex

    Ce site web et son processus de paiement sont la propriété de Tebex Limited et sont exploités par cette dernière, qui gère l'exécution des commandes, la facturation et les remboursements.

    © 2026 HZ SCRIPT. Tous droits réservés. Nous ne sommes affiliés à aucune marque réelle.Fait avec pour la communauté FiveM

    Propulsé par Tebex Tebex est le revendeur et le marchand officiel.