Un magasin de vêtements se juge sur une question que personne ne pose : que se passe-t-il quand un joueur porte ce qu’il n’a jamais payé ?

Avenida Team, 24 août 2026

Vous ouvrez un fichier de config, vous changez un prix, vous redémarrez le serveur. C’est le quotidien d’un magasin de vêtements FiveM, et ce n’est pas une fatalité : notre éditeur tarife le catalogue depuis le jeu, boutique par boutique et section par section, sans couper personne.

Ça règle le quotidien. Reste ce qui décide de la vie de votre économie, et dont personne ne parle : rien n’empêche un client modifié d’écrire une tenue qu’il n’a pas achetée. Le magasin affiche un prix, le joueur clique, et la protection s’arrête à l’interface. Nous avons écrit avenida_clotheshops autour de ce problème, et cet article dit comment, avec les chiffres et le nom des fichiers pour que vous puissiez vérifier.

Interface du script clothing Avenida, boutique Suburban, section hauts
La boutique Suburban d'Alta Street, capture du 24 août 2026 sur avenida_clotheshops 1.2.0, avec un hébergement de vignettes branché. Section hauts, un prix par vêtement, l'index et la provenance sous chaque vignette. Le maillon sur certaines pièces signale une liaison de composants : ce haut en tirera un autre avec lui. En haut à droite, la bascule entre l'achat à la pièce et le mode tenue.

Que gagne votre serveur avec ce script de vêtements ?

Une économie de vêtements qui tient, et un catalogue que vous réglez sans toucher au code. Le joueur entre, essaie, voit le prix sous chaque vignette, achète à la pièce ou en tenue complète. Vous, vous ouvrez l’éditeur dans le magasin et vous changez un prix, cachez une pièce ou la réservez à un job, en jeu, sans redémarrer.

Ce que vous installezCe que ça change sur votre serveur
21 boutiques préconfigurées, sur les quatre enseignes du jeuVous couvrez la map le jour de l’installation
Un éditeur de catalogue dans le magasinVous tarifez et vous bloquez sans éditer un fichier ni couper le serveur
Un registre de ce que chaque personnage a payéUn client modifié ne peut plus s’habiller gratuitement
Garde-robes d’entrepriseUn job donne ses uniformes sans que personne d’autre y accède
Vêtements en items d’inventaire, en optionUne veste se revend, se donne, se vole
15 langues remplies en jeuVos joueurs lisent l’interface dans leur langue au premier démarrage

Un script de vêtements FiveM, ça doit savoir faire quoi ?

Six choses, et la troisième est celle que personne ne traite. Un magasin de vêtements doit offrir tout le catalogue du jeu, écrire dans le système d’apparence que vous faites déjà tourner, refuser une tenue non payée, gérer les pièces qui en entraînent d’autres, se régler sans redémarrage, et se brancher sur votre framework sans que vous réécriviez sa config.

CritèreCe que ce script vous évite
Offrir tout le catalogue, props comprisUn joueur qui a vu la pièce ailleurs et ne la trouve pas chez vous
Écrire dans le bon système d’apparenceUne tenue qui s’applique puis disparaît à la reconnexion
Vérifier le paiement côté serveurUn client modifié qui s’habille gratuitement
Lier les pièces qui vont ensembleUn haut porté sans ses manches, une robe qui laisse les jambes
Se régler sans redémarrerUne coupure de serveur pour changer un prix
Partager le slot de décoration du pedUne tenue qui efface les tatouages, ou l’inverse

Comment un joueur change-t-il de tenue sur FiveM ?

Il entre dans un magasin de vêtements et ouvre le menu, à condition que le serveur en ait installé un. GTA V a bien ses boutiques en solo et en ligne, mais un serveur FiveM ne les reprend pas tout seul : sans script dédié, le joueur garde ce qu’il a choisi à la création de personnage.

Avec une boutique posée sur la map, il s’approche du point marqué, valide, et le menu s’ouvre. Il parcourt les sections, essaie sur son personnage, voit le prix sous chaque vignette, et paie à la pièce ou en tenue complète. Ses tenues sont sauvegardées, il les rappelle plus tard sans repayer.

Si vous êtes joueur et pas propriétaire de serveur, vous ne pouvez rien installer vous-même, tout se joue côté serveur. Si votre magasin n’a que la moitié des pièces, ou si vos tenues sautent à la reconnexion, c’est à l’équipe de votre serveur qu’il faut le dire. Cet article est écrit pour eux.

Pourquoi un joueur peut-il porter ce qu’il n’a pas acheté ?

Parce que la plupart des scripts vérifient le prix dans l’interface, et que l’interface tourne chez le joueur. Le menu affiche 1 500 dollars, le serveur retire 1 500 dollars, et tout va bien tant que le joueur passe par le menu. Un client modifié, lui, envoie directement l’ordre d’habillage, sans jamais ouvrir la boutique.

Notre serveur tient donc un registre de ce que chaque personnage a payé, et il refuse une écriture de vêtement qui pose sur le personnage une pièce qui n’y figure pas. Ce n’est pas un contrôle de l’interface, c’est un contrôle de la donnée écrite.

Les trois chemins légitimes passent par le même registre : porter une pièce achetée, appliquer une tenue sauvegardée, enfiler un uniforme d’entreprise. Et les personnages qui existaient avant l’installation gardent tout ce qu’ils portent déjà, sinon la migration viderait la garde-robe de tout le monde le premier jour.

Ce réglage se coupe, et voici quand. Config.Clothes.RequireOwnership = false désactive le registre. C’est le bon choix si votre serveur donne déjà les vêtements par un autre chemin que la boutique, par exemple un système de loot ou de récompense qui écrit directement dans l’apparence. Le registre refuserait ces pièces-là, et vous passeriez vos soirées à débloquer des joueurs légitimes.

Quelle interface pour un magasin de vêtements FiveM ?

Une grille qui montre les pièces, pas une liste qui les nomme. C’est le point où la taille du catalogue change tout : GTA V compte plus de mille hauts pour un seul modèle de personnage, et un menu natif en liste demande de faire défiler des index sans jamais voir ce qu’on achète.

La nôtre est en Svelte 5, servie par la ressource, polices comprises : aucun CDN, et rien du client de vos joueurs ne part chez un tiers. La seule requête sortante possible est celle que vous activez vous-même pour les vignettes, et la section suivante lui est consacrée. Chaque vignette porte son prix et sa provenance, et la caméra suit la section : ouvrez les chaussures et elle descend aux pieds, comme sur la seconde capture. Les commandes de caméra restent affichées en bas, zoom, rotation du personnage et hauteur.

Un maillon apparaît sur les pièces qui en entraînent d’autres. C’est la liaison de composants, et c’est le mécanisme le plus dense du script : un haut qui exige ses manches, une robe qui masque les jambes, un casque qui impose une coiffure.

Section chaussures du script clothing Avenida, la caméra descend aux pieds
Même boutique, même jour, même hébergement de vignettes. Section chaussures : la caméra est descendue toute seule au niveau des pieds, et le compteur affiche le 89e modèle sur 245. Le prix est ici uniforme à 400 dollars parce que cette section est réglée en mode forfaitaire, un des trois modes de tarification disponibles par section.

Peut-on donner les vêtements en items d’inventaire ?

Oui, et c’est désactivé par défaut, pour une raison technique qu’il faut connaître avant d’acheter. Avec Config.Clothes.GiveAsItems = true, un achat pose la pièce dans l’inventaire au lieu de l’habiller directement. Le joueur la porte, la jette, la revend, et l’utilise pour l’enfiler.

Ça exige un inventaire capable de stocker des métadonnées sur un item, puisque c’est là qu’on écrit de quel vêtement il s’agit. ox_inventory et qb-inventory le savent, l’inventaire ESX d’origine non, il garde un nom et un compte et rien d’autre. Un item vRP non plus. Sur ces deux-là, laissez l’option coupée ou installez ox_inventory.

Les quatorze items se déclarent dans votre propre liste, nous n’y touchons pas. Un piège nous a coûté du temps et il est documenté : sans consume = 0, ox_inventory mange le vêtement à la première mise. Et stack = false compte autant, parce que deux vestes ne sont pas la même veste et que les empiler fusionnerait leurs métadonnées.

Faut-il héberger ses propres images de vêtements ?

Oui si vous les voulez, et nous préférons vous le dire avant l’achat plutôt qu’après. Le script ne livre aucun pack d’images. Par défaut, Config.Clothes.Images.Enabled est à false et la grille affiche des vignettes numérotées. Les deux captures de cette page ont été prises avec un hébergement branché, sinon vous verriez des numéros.

Vous pointez BaseUrl vers votre propre hôte et l’interface va y chercher les images, au format <sex>/<section>/<number>_<piece>_<variant>.webp, par exemple https://cdn.example.com/clothes/male/tops/11_42_0.webp. La raison de ce choix est la même que pour nos autres scripts : ces visuels sont des rendus des vêtements du jeu, et les redistribuer avec une ressource vendue n’est pas quelque chose que nous ferons.

Le mode numéroté n’est pas un pis-aller. Si votre serveur charge des packs de vêtements add-on, les vignettes numérotées restent justes alors qu’un pack de rendus ne couvrira jamais vos pièces custom : vous auriez des cases vides au milieu de la grille. Sur un serveur fortement moddé, le mode par défaut est donc souvent le bon choix, et pas seulement le choix économique.

Que gagnez-vous selon votre système d’apparence ?

Tout le catalogue, et sur vRP vous gagnez davantage que ce que votre framework sait faire seul. Le script écrit dans la ressource d’apparence que vous faites déjà tourner. Nous parlons en interne la forme qb-clothing et nous convertissons à la sortie, cible par cible.

Votre systèmeCe que vous gagnez
qb-clothing, table propreL’intégralité. C’est la forme native du script.
illenium-appearance, fivem-appearanceTout, à ceci près que la seconde couleur d’un overlay bicolore se replie sur la première, leur schéma n’en gérant qu’une.
esx_skinOverlays et composants. Les props, montre et bracelet, ne sont pas dans ce schéma et le script les tient à part.
vRPPlus que ce que vRP sait faire seul. vRP n’a nulle part où ranger la moitié coiffure et visage d’un personnage, donc le script prend en charge l’apparence entière.

ESX, QBCore, vRP, standalone : qu’est-ce qui change vraiment ?

Rien pour vous, et c’est le but. Le framework est détecté au démarrage à travers neuf fichiers de bridge ouverts, un par point de contact : framework, notifications, interaction, apparence, inventaire, décorations, photo, compatibilité et vRP. Chacun documente ses cibles, ce qu’il détecte, et ce que chaque cible vous coûte.

La détection sonde l’export réel, pas seulement le fait que la ressource soit démarrée. Une version dont un export a été renommé se dégrade en silence au lieu de planter au boot, et vous pouvez toujours forcer la cible si la détection se trompe.

Ce que ça ne couvre pas, et nous le disons en console : vRP 2 et vRP 0.5 ne sont pas supportés. vRP 2 est un autre framework qui a gardé le nom, et le proxy de la 0.5 n’a pas de canal de réponse.

Quoi de neuf sur les clothing shop FiveM en 2026 ?

Le catalogue complet n’est plus un argument, c’est devenu le minimum. Ce qui distingue les magasins de vêtements en 2026 se joue sur trois points : ce qu’on peut régler sans redémarrer, ce qui se passe quand un client ment, et la façon dont les pièces se lient entre elles.

Notre dernière version publiée est la 1.2.0. Cette page suit les versions : quand la ressource évolue, la date en bas de l’article avance et l’historique dit ce qui a changé.

Notre observation, sur trois points que les fiches ne disent pas

Le fichier de réglages est écrit par le jeu, pas par vous

config/clothes_overrides.lua compte 4644 réglages et il est régénéré en entier à chaque sauvegarde de l’éditeur. Une modification faite à la main y est donc perdue à la prochaine sauvegarde, et c’est écrit en tête du fichier. Les changements permanents vont dans les trois fichiers voisins, prix, blocages et VIP.

La répartition dit ce que le script fait vraiment : 2274 liaisons de composants, 933 prix, 848 coiffures qui basculent sous un masque ou un casque, 265 pièces réservées aux jobs, 92 sacs qui portent une vraie capacité, et 38 têtes rétrécies sous un masque.

L’éditeur est fermé deux fois, pas une

Il exige une permission ACE et Config.DevMode.Enabled, et la permission est revérifiée côté serveur à chaque sauvegarde. Se donner le droit en jeu ne suffit donc pas si le mode est coupé, et couper le mode ne suffit pas si la permission traîne. Config.Debug est un troisième réglage, séparé, qui ne pilote que les logs.

Une boutique refuse de s’ouvrir sur un personnage déguisé

Si votre serveur met les joueurs dans un autre ped, un animal, un déguisement, un événement, le script refuse d’ouvrir la boutique tant qu’ils y sont. Sans ça, ce qu’ils changent serait sauvegardé sur le mauvais personnage. Vous branchez votre propre ressource de déguisement par un export, dans bridges/compat.lua.

La checklist avant d’acheter un script de vêtements

À vérifierLa réponse attendue
Le serveur refuse-t-il une tenue non payée ?Oui, sinon l’économie ne tient pas
Peut-on changer un prix sans redémarrer ?Oui, depuis le jeu
Les pièces qui vont ensemble sont-elles liées ?Oui, et la liste doit être ouverte
Les vêtements en items sont-ils possibles ?Oui, avec un inventaire à métadonnées
Les garde-robes d’entreprise sont-elles séparées ?Oui, sinon tout le monde y accède
Le slot de décoration du ped est-il partagé ?Oui, sinon les tatouages sautent
Config, langues et bridges sont-ils hors escrow ?Oui, sinon vous n’adaptez rien

Questions fréquentes

Combien de boutiques sont préconfigurées ?

Vingt et une, sur les quatre enseignes du jeu, Binco, Suburban, Ponsonbys et les boutiques de masques et de sacs. Chacune a son point d’interaction, son blip, sa méthode de paiement, sa taxe et sa remise, dans un fichier de config ouvert.

Peut-on facturer différemment selon la boutique ?

Oui, et selon la section. Trois modes existent par section : un tarif unique, un tarif qui croît avec l’index, ou une table prix par prix. Une taxe et une remise s’appliquent ensuite au panier, par boutique.

Les vêtements peuvent-ils devenir des items ?

Oui, quatorze items à déclarer dans votre inventaire. Il faut ox_inventory ou qb-inventory : l’inventaire ESX d’origine et les items vRP ne stockent pas de métadonnées, donc ils ne peuvent pas retenir de quel vêtement il s’agit. Un piège à connaître, sans consume = 0 ox_inventory mange le vêtement à la première mise.

Faut-il une ressource d’apparence à côté ?

Non, mais c’est le cas le plus courant. Si vous en avez une, le script écrit dedans et elle reste propriétaire du personnage. Si vous n’en avez aucune, Config.ManagePlayerSkin lui fait tenir les personnages dans sa propre table. Ne jamais faire tourner les deux à la fois. La documentation détaille l’installation et les exports.

Combien de langues sont livrées en jeu ?

Quinze, remplies et modifiables. Ce sont les langues que voient vos joueurs, à ne pas confondre avec les six langues de ce site. Elles sont traduites et relues par nous, pas par un natif de chacune des quinze, et nous préférons l’écrire.

Les autres scripts de vêtements du marché

Pour situer, voici quelques noms que vous croiserez en cherchant. La liste n’a rien d’exhaustif et nous ne mettons pas de liens, chacun se trouve sous son nom.

illenium-appearance · fivem-appearance · rcore clothing · vms_clothing · qb-clothing

Ce qui les sépare du nôtre n’est pas le catalogue, ils l’ont aussi. Plusieurs d’entre eux sont d’ailleurs des systèmes d’apparence complets, donc des voisins plutôt que des concurrents : nous écrivons dedans. Si votre serveur cherche d’abord un créateur de personnage plutôt qu’un magasin, ils sont taillés pour ça, et nous ne prétendons pas l’inverse.

Sources

Tout ce que cet article affirme vient de fichiers que vous pouvez lire vous-même, avant achat comme après :

  • le README.md de la ressource, pour les neuf bridges, les quatorze items et le tableau de compatibilité ;
  • config/clothes_shops.lua, pour les vingt et une boutiques et les trois modes de tarification ;
  • config/clothes_overrides.lua, pour les 4644 réglages que vous pouvez compter ;
  • son fxmanifest.lua, pour l’escrow_ignore et les quinze fichiers de langue.

Ces quatre fichiers sont hors escrow. Le slot de décoration partagé, que ce script remet en place à chaque redessin, est le même que celui de avenida_barber et de avenida_tattoo. Les captures de cette page viennent de la version 1.2.0, prises le 24 août 2026.

Historique de cette page

  • 24 août 2026 · première publication, sur avenida_clotheshops 1.2.0.

Une question sur un inventaire que nous n’avons pas listé, une liaison de composants qui manque ou un fork de vRP ? Le Discord est l’endroit, et c’est le développeur qui a écrit le script qui répond.