{"id":201836,"date":"2025-11-11T08:00:00","date_gmt":"2025-11-11T07:00:00","guid":{"rendered":"https:\/\/fivemx.com\/?p=201836"},"modified":"2026-08-20T22:16:54","modified_gmt":"2026-08-20T20:16:54","slug":"az-scripts-xp-and-level-system-for-qbcore","status":"publish","type":"post","link":"https:\/\/rpcrate.com\/fr\/az-scripts-xp-and-level-system-for-qbcore\/","title":{"rendered":"Syst\u00e8me d'XP et de niveaux AZ Scripts pour FiveM"},"content":{"rendered":"<p>AZ XP System 1.0.1 comprend des chemins QBCore et ESX, de l\u2019XP persistante et des affichages circulaire ou rectangulaire. Le framework est choisi explicitement par Config.Framework, sans d\u00e9tection automatique. Le manifeste exige encore qb-core et commente es_extended ; modifier la configuration seule ne pr\u00e9pare donc pas ESX.<\/p>\n<h2>Aligner framework, manifeste et base<\/h2>\n<p>Gardez azs-xpsystem avec fxmanifest.lua, client, server et html. D\u00e9marrez oxmysql et le framework choisi en premier. Pour ESX, adaptez la d\u00e9pendance du manifeste \u00e0 Config.Framework avant ensure azs-xpsystem. La table player_xp utilise citizenid pour QBCore ou identifier pour ESX. Sauvegardez l\u2019XP existante : CREATE TABLE IF NOT EXISTS ne migre pas une table de l\u2019autre framework.<\/p>\n<p>Les valeurs r\u00e9elles de config.lua sont BaseXPPerLevel=1000, XPMultiplier=1.15, MaxLevel=100 et UIStyle=rectangular. L\u2019exemple README diff\u00e8re. F5 est la touche initiale de \/togglexp ; ShowTime=4000 r\u00e8gle l\u2019affichage temporaire. \u00c9quilibrez la progression d\u2019apr\u00e8s votre configuration install\u00e9e.<\/p>\n<h2>Garder une progression autoritative<\/h2>\n<p>Les exports serveur incluent AddXP, AddLevel et GetPlayerXPData. Les exports client demandent aussi des attributions et une commande de test \/addxp non restreinte est fournie. Leurs \u00e9v\u00e9nements r\u00e9seau acceptent des montants client sans autorisation ni bornes num\u00e9riques. Retirez ou restreignez ce chemin et attribuez la progression depuis une logique serveur fiable avec montants valid\u00e9s.<\/p>\n<p>AddLevel change le niveau et remet current_xp \u00e0 z\u00e9ro sans modifier total_xp. Un chargement ult\u00e9rieur recalcule les donn\u00e9es incoh\u00e9rentes \u00e0 partir de total_xp et peut annuler le changement direct. Rendez ces valeurs coh\u00e9rentes et testez attribution, r\u00e9ouverture de l\u2019interface puis reconnexion.<\/p>\n<p>Les sauvegardes sont asynchrones sans r\u00e9sultat final v\u00e9rifi\u00e9 et les demandes UI relisent la base. Testez erreurs de sauvegarde et attributions concurrentes au lieu de prendre une notification comme preuve de persistance. \u00c0 MaxLevel, AddXP peut encore accumuler current_xp ; d\u00e9finissez le comportement voulu et v\u00e9rifiez les deux styles.<\/p>\n<p>Examin\u00e9 le 11 septembre 2026 \u00e0 la r\u00e9vision 9d53320f9199ba84199f78c81beaa63e23997335. Lua, configuration, manifeste, deux SQL et HTML\/JavaScript NUI ont \u00e9t\u00e9 lus. Aucune attribution XP, modification de niveau, interface en jeu ou migration n\u2019a \u00e9t\u00e9 ex\u00e9cut\u00e9e.<\/p>\n<p><a href=\"https:\/\/github.com\/RAzZ14\/azs-xpsystem\/tree\/9d53320f9199ba84199f78c81beaa63e23997335\">Lire AZ XP System \u00e0 la r\u00e9vision v\u00e9rifi\u00e9e<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Configurer AZ XP System 1.0.1 pour QBCore ou ESX, aligner SQL et manifeste, v\u00e9rifier attributions XP non prot\u00e9g\u00e9es et persistance des niveaux.<\/p>","protected":false},"author":62604,"featured_media":201833,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2297],"tags":[2858,3001,2928,2929,2946,2945,2859,2933],"class_list":["post-201836","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-free","tag-esx","tag-fivem-script","tag-free","tag-map","tag-other","tag-ped","tag-qbcore","tag-standalone"],"_links":{"self":[{"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts\/201836","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/users\/62604"}],"replies":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/comments?post=201836"}],"version-history":[{"count":2,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts\/201836\/revisions"}],"predecessor-version":[{"id":214339,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts\/201836\/revisions\/214339"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/media\/201833"}],"wp:attachment":[{"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/media?parent=201836"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/categories?post=201836"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/tags?post=201836"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}