HZ Scripts

Changelog

v1.1.1 — Hotfix : Incoherence de permission ACE + Erreur actionnable

2026-05-18

Corrections de bugs

  • Incoherence du fallback ACE — quand HZBridge.Panel.AcePermission etait manquant, nil ou vide dans config.lua, le panneau se rabattait sur "HZ-Bridge.admin" alors que le defaut documente (et le defaut livre dans config.lua) etaient tous deux "admin". Les clients avec un add_ace group.admin admin allow valide etaient bloques sans raison. Le fallback se resout maintenant correctement vers "admin", aligne sur la config + la doc.
  • Corrige dans modules/panel/api_server.lua et modules/panel/theme.lua (l'incoherence existait aux deux endroits).

Ameliorations

  • Le message d'erreur de permission est maintenant actionnable. Quand la verification ACE de /hzpanel echoue, la console serveur affiche les deux lignes exactes a copier-coller, avec la licence du joueur deja interpolee :
    add_principal license:abcdef... group.admin
    add_ace group.admin admin allow
  • La notification chat nomme explicitement le noeud ACE manquant au lieu d'un vague "perm. HZ-Bridge". Les joueurs savent exactement quoi corriger.
  • La sortie console signale aussi explicitement que command.hzpanel n'est PAS le bon noeud ACE — les clients essayaient par confusion (source de ticket la plus courante avant v1.1.1).

Notes de mise a jour

  • Remplacement direct. Aucun changement de config / DB / evenement / schema.
  • Si votre panneau fonctionnait en v1.1.0, il fonctionne toujours en v1.1.1 — la correction ne debloque que les clients bloques par le mauvais fallback.
  • Consultez la section Configuration des permissions du guide Panneau d'administration pour la configuration canonique (et le piege du boilerplate qb-core qui explique pourquoi tant de tickets font reference a ceci).

v1.1.0 — Panneau d'administration centralise + Cascade de theme

2026-05-15

Le changement majeur : HZ-Bridge embarque un panneau d'administration complet en jeu. Chaque module HZ-Script declare desormais son schema de config via un petit DSL Lua, et le panneau construit automatiquement un editeur type. Plus de commandes par script, plus besoin de toucher config.lua entre chaque ajustement, plus de redemarrage pour appliquer.

Nouvelles fonctionnalites

  • Commande /hzpanel — ouvre le panneau d'administration central en jeu. Protege par ACE (defaut admin, configurable via HZBridge.Panel.AcePermission). Ignore la verification ACE entierement quand HZBridge.Panel.DevAllowAll = true (dev seulement — desactivez en production).
  • DSL de schema (bridge_schema.lua) — chaque module declare sa config comme un chunk Lua sandbox qui appelle module() / section() / group() / field() / invariant() / migrations(). Le panneau construit automatiquement un editeur type a partir de la declaration. Types de champ supportes : boolean, number, string, enum, color, keybind, list, list, vehicle-list, weapon-list, action, enum-action, view.
  • Type de champ enum-multi — selecteur multi-selection contraint (chips toggle). Stocke en list, mais l'admin ne peut cocher que les valeurs d'un tableau choices fixe. Premier consommateur : BlackoutExceptions de HZ-Weather.
  • Vues personnalisees — les modules peuvent enregistrer des composants React pleine largeur dans le panneau sous web/src/views//. Utilise par HZ-Weather pour fournir un editeur de zones polygone + cercle, une carte satellite, un graphique de previsions, un calendrier, un panneau de saisons et un controleur de temps.
  • Cascade de theme (onglet "Apparence") — un seul endroit pour controler la surface visuelle de chaque NUI HZ. Quatre axes orthogonaux :
  • * Accent (accent / accentHi / gold) — Trio signature Vice rose / rose vif / dore. Presets : Vice, Industrial. * Surfaces (surface / subpanel / tint) — panneau exterieur / sous-panneau interieur / teinte hover. RGB seulement — l'opacite est decidee par chaque consommateur via rgb(var(--hz-surface-rgb) / 0.X). * Mode gradient (gradient / solid) — solid aplatit chaque gradient d'accent en remplissage plat a 1 stop. * Arrondis (radiusNone / Xs / Sm / Md / Lg / Xl) — echelle de coins a six niveaux. 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).
    • Diffusion en directHZ-Bridge:theme:updated (serveur + client) se declenche a chaque sauvegarde. Les ressources s'abonnent et appliquent applyTheme() a leur propre NUI. Nouvel export GetTheme() qui retourne le theme effectif actuel de maniere synchrone.
    • Export serveur OpenPanel(src, module?) — ouvre le panneau pour un joueur depuis un autre script, en preselectionnant optionnellement l'onglet d'un module.

    Securite + ops

    • Schemas sandbox — Le DSL s'execute sans io / os / debug bruts, avec des sous-ensembles restreints de string / table / math. Un bridge_schema.lua buggue echoue au chargement (logue) mais ne peut pas crasher le serveur.
    • Ecritures rate-limitees — defaut 10 ecritures par 5s par source (configurable).
    • Tokens de session — chaque ouverture du panneau emet un token ephemere (defaut 5 min TTL) qui protege chaque sauvegarde.
    • Verification ACE par source a chaque action — pas seulement a l'ouverture du panneau. Un admin revoque ne peut pas continuer a editer sur un panneau deja ouvert.
    • Log d'audit — chaque sauvegarde acceptee ecrit une ligne dans data/audit-YYYY-MM-DD.log. Les fichiers rotatifs plus anciens que AuditRetentionDays (defaut 90) sont supprimes au demarrage.
    • Ecritures atomiques — la config effective par module est ecrite via tmpfile + rename (data/.json). Les ecritures en attente utilisent data/.pending.json et sont commitees de maniere atomique.

    Performance

    • Pre-fetch des tuiles de carte — les 257 tuiles satellite utilisees par les vues Map / ZoneEditor de HZ-Weather sont pre-chargees dans le cache CEF au montage du panneau via requestIdleCallback, limitees a 12 requetes simultanees. La premiere ouverture d'une vue carte est maintenant instantanee au lieu de 1-3s.
    • Aucun backdrop-filter nulle part — le flou compositeur a ete supprime de chaque NUI HZ (l'exception precedente "autorise sur les overlays" est revoquee). Meme en pause, les overlays coutaient 8-12 FPS pour un seul flou. Remplace par des scrims alpha plus profonds (rgba(0,0,0,0.78)+ sur les backdrops, 0.55-0.92 sur les cartes glass).

    Ameliorations

    • Rendu de cercle Mercator-safe dans les vues HZ-Weather — Cayo Perico (jeu Y ~ -5150) rendait les cercles trop petits car le precedent ignorait l'etirement Mercator aux hautes latitudes. Utilise maintenant une vraie ellipse projetee avec des px-par-metre locaux sur chaque axe. L'editeur et la vue carte sont d'accord.
    • La couleur Apparence par defaut correspond au reste de l'ecosysteme HZ — palette Vice + surfaces Vice + arrondis Sharp pre-appliques au premier demarrage.

    Notes de mise a jour

    • Aucun changement cassant pour les consommateurs des APIs framework / inventaire / notification du bridge — celles-ci continuent de fonctionner a l'identique.
    • Les ressources qui veulent exposer leur config dans le panneau fournissent un bridge_schema.lua a leur racine. Consultez le guide du Panneau d'administration pour la reference du DSL.
    • Si vous definissez HZBridge.Panel.DevAllowAll = true pendant le developpement, remettez-le a false avant la mise en production — le panneau est un outil serieux, pas quelque chose a laisser ouvert.

    v1.0.0 — Version initiale

    2026-02-15
    • Adaptateur de framework universel — detecte automatiquement ESX, QBCore, QBX, Ox Core, vRP, ou fonctionne en standalone
    • Adaptateur d'inventaire — ox\_inventory, qs-inventory, ps-inventory, codem, core, origen, tgiann, ou natif framework
    • Adaptateur de notifications — ox\_lib, okokNotify, mythic\_notify, codem, pNotify, framework, ou GTA natif
    • Adaptateur de target — ox\_target, qb-target, interact, ou fallback TextUI integre
    • Adaptateur de menu / saisie — ox\_lib (complet), qb-menu + qb-input, ESX menu, ou fallback GTA natif
    • Adaptateur de dispatch — cd\_dispatch, ps-dispatch, qs-dispatch, rcore\_dispatch, emergencydispatch, ou integre
    • Callbacks bidirectionnels (client <-> serveur) avec limitation de debit + timeout
    • Minijeux integres — barre de progression, skill check, sequence
    • Mode unique 'auto' qui selectionne le bon backend par systeme
    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.