
Clothingstore
Magasin de vêtements avec aperçu en direct : les joueurs changent de vêtements, enregistrent des looks comme tenues contre de l'argent liquide et les partagent avec les autres. Avec le sac de vêtements, ils peuvent aussi porter leurs tenues en déplacement. En plus, il y a un barbier et un salon de tatouage avec leurs propres emplacements, blips et menus.
- ESX Legacy (
es_extended) - oxmysql
- skinchanger et esx_skin (inclus avec ESX Legacy)
- OneSync (obligatoire)
- Pour le sac de vêtements : un inventaire avec des items ESX (table
items), p. ex. off_inventory
Fonctionnalités
- Aperçu en direct avec une caméra sur la partie du corps concernée. Glisser fait tourner le personnage, la molette zoome.
- 14 catégories avec Modèle et Style.
- Tenues par personnage : les enregistrer contre un prix fixe, les porter, renommer, partager et supprimer.
- Partagées : porter gratuitement les tenues des autres joueurs (les 100 plus récentes).
- Sac de vêtements (item
clothbag) : le poser au sol et y porter tes propres tenues. - Tout le monde voit le sac et peut l'utiliser.
- Seul le propriétaire peut le ramasser. S'il est hors ligne, tout le monde peut le ramasser.
- Les sacs posés restent même après un redémarrage.
/clearbagssupprime tous les sacs posés.- Barbier avec aperçu en direct et caméra sur la tête :
- toutes les coiffures et variantes du modèle de personnage, toutes les couleurs de cheveux avec mèches
- barbe, sourcils, poils du torse, maquillage, blush et rouge à lèvres avec forme, opacité et couleur (barbe et poils du torse uniquement pour les personnages masculins)
- Tu paies par catégorie modifiée. Annuler rétablit l'ancien look.
- Salon de tatouage avec tous les tatouages de GTA, DLC compris, lus directement depuis le jeu :
- triés par tête, torse, bras et jambes, avec recherche et filtre Les miens
- aperçu sur le personnage, tatouer et retirer pour un prix fixe
- enregistrés par personnage et réappliqués automatiquement après la connexion, le respawn et chaque changement de skin
- Le barbier et le salon de tatouage prennent d'abord l'argent liquide, le reste à la banque.
Installation
- Place le dossier
off_clothingstoredans ton dossierresources. - Dans le
server.cfg, après oxmysql, ESX et skinchanger :
ensure oxmysql
ensure es_extended
ensure skinchanger
ensure esx_skin
ensure off_clothingstore- Supprime
esx_clotheshopou d'autres magasins de vêtements aux mêmes endroits.
Au premier démarrage, le script crée automatiquement :
- les tables
off_clothing_outfits,off_clothing_bagsetoff_clothing_tattoos - l'item
clothbagdans la tableitems, s'il manque
Configuration
config/settings/config.lua
| Option | Par défaut | Description |
|---|---|---|
serverInfo.name | 'OFF SCRIPTS' | Nom du serveur, affiché dans l'interface à la place de « OFF SCRIPTS » |
serverInfo.locale | 'de' | Langue : de, en, pl, fr, es, it ou nl |
serverInfo.color | { 155, 89, 255 } | Couleur de l'UI (RGB) |
serverInfo.design | 3 | Design de l'interface : 1 = Classique, 2 = Ticket, 3 = Storefront |
blur | true | Arrière-plan flou tant que le menu du sac est ouvert. Le magasin reste net, car on y voit son propre personnage |
outfitPrice | 250 | Prix par tenue enregistrée (argent liquide), 0 = gratuit |
maxOutfits | 25 | Max. de tenues par personnage |
marker | Disque, 3 m | Cercle : type, size (zone pour ouvrir), drawDistance, color, alpha |
blip | Icône 73 | Icône sur la carte (enabled, sprite, color, scale) |
locations | 14 magasins | Centre du cercle au sol en vec3 |
barber | activé, 7 emplacements | Barbier, voir plus bas |
tattoo | activé, 6 emplacements | Salon de tatouage, voir plus bas |
config/settings/config.categories.lua – Catégories
Seules ces catégories apparaissent dans le magasin et seules elles sont enregistrées dans les tenues, dans l'ordre du fichier.
{ icon = 'shoes', label = 'Schuhe', variant = 'shoes_1', color = 'shoes_2', camOffset = vec3(0, 0.9, -0.8) },| Champ | Description |
|---|---|
icon | bag, chain, earrings, glasses, gloves, hat, jacket, mask, ring, shirt, shoes, shorts, vest, watch ou une icône Phosphor avec ph- |
label | Nom dans le magasin |
variant / color | Valeurs skinchanger pour Modèle et Style |
camOffset | Caméra : x = gauche/droite, y = distance vers l'avant, z = hauteur |
config/settings/config.bag.lua – Sac de vêtements
| Option | Par défaut | Description |
|---|---|---|
enabled | true | false = sac de vêtements entièrement désactivé (pas d'item, pas de sacs) |
item | 'clothbag' | Nom de l'item, créé au démarrage dans la table items |
weight | 1 | Poids de l'item |
model | 'prop_cs_heist_bag_02' | Objet du sac au sol |
max | 1 | Nombre de sacs qu'un joueur peut poser en même temps |
distance | 2.0 | Distance en mètres pour utiliser et ramasser |
clearCommand | 'clearbags' | Commande qui supprime tous les sacs posés, '' = désactivée |
clearGroups | { 'projektleitung' } | Groupes autorisés à utiliser la commande (la console serveur toujours) |
Avec enabled = false, les sacs posés restent dans la base de données. Ils reviennent dès que le sac est réactivé.
config/settings/config.lua – Barbier et salon de tatouage
Les deux ont leurs propres emplacements et blips, le cercle (marker) est le même que pour le magasin.
barber = {
enabled = true,
price = 150,
blip = { enabled = true, sprite = 71, color = 0, scale = 0.8 },
locations = { vec3(-814.3, -183.8, 36.6), ... },
},| Option | Par défaut | Description |
|---|---|---|
enabled | true | false = barbier ou salon de tatouage entièrement désactivé |
price | 150 / 500 | Barbier : prix par catégorie modifiée · Salon de tatouage : prix par tatouage, 0 = gratuit |
removePrice | 250 | Salon de tatouage uniquement : prix pour retirer un tatouage, 0 = gratuit |
blip | Icône 71 / 75 | Icône sur la carte (enabled, sprite, color, scale) |
locations | 7 / 6 emplacements | Centre du cercle au sol en vec3 |
Le paiement prend d'abord l'argent liquide, le reste à la banque. Les prix n'existent que sur le serveur, le client ne peut pas les modifier. Les tatouages sont enregistrés dans la table off_clothing_tattoos, 100 au maximum par personnage.
config/functions.lua
C'est ici que tu connectes tes propres scripts.
| Fonction | Côté | Utilité |
|---|---|---|
Notify(source, message, type) | Serveur | Message à un joueur (sac de vêtements, /clearbags) |
Notify(message, type) | Client | Message sur le client (p. ex. trop loin, pas de modèle freemode au salon de tatouage) |
HelpNotify(text) | Client | Texte d'aide dans le cercle devant le magasin, le barbier et le salon de tatouage (par défaut : ESX.ShowHelpNotification) |
La version serveur envoie le message directement via ESX. Si tu utilises ton propre script de notification, adapte les deux fonctions Notify.
Langues
Tous les textes se trouvent dans config/locales/<langue>.json, la devise et le format des nombres sous ui (currency, intl). Pour ta propre langue, copie un fichier, traduis-le et définis serverInfo.locale. Les placeholders comme %d et {price} doivent rester. Les noms des catégories se trouvent dans config/settings/config.categories.lua (label). Les noms des catégories du barbier et des zones du corps se trouvent sous ui.barber.groups et ui.tattoo.zones, les noms des tatouages viennent de GTA dans la langue du jeu.
En jeu
Magasin
Appuie sur E dans le cercle devant le magasin, QUITTER ou ESC ferme.
- Vêtements : modifier des pièces et les enregistrer comme tenue.
- Enregistrées : porter, renommer, partager et supprimer tes propres tenues.
- Partagées : porter les tenues des autres joueurs.
Sac de vêtements
- Poser : utilise l'item
clothbagdans ton inventaire, le sac est posé au sol devant toi. Ça ne marche pas en véhicule, mort ou dans une autre dimension. - Au-dessus du sac s'affiche [E] Utiliser. Le propriétaire voit en plus [H] Ramasser. Si le propriétaire est hors ligne, tout le monde voit [H] Ramasser.
- E ouvre à gauche une liste de tes tenues enregistrées. Porter met la tenue, la liste reste ouverte. ESC ou QUITTER la ferme, de même quand tu t'éloignes.
- H remet le sac dans ton inventaire. Tu peux changer la touche dans les raccourcis clavier de FiveM.
Barbier
Appuie sur E dans le cercle devant le barbier. Le chapeau et le masque sont retirés pour l'aperçu, la caméra montre la tête.
- Choisis la catégorie en haut : Cheveux, Barbe, Sourcils, Poils du torse, Maquillage, Blush ou Rouge à lèvres.
- Change Forme et Variante avec les flèches ou en cliquant sur le nombre, Opacité avec le curseur, Couleur et Mèches dans la palette.
- Faire glisser fait tourner le personnage, la molette zoome.
- Payer affiche le coût (prix × catégories modifiées) et enregistre le look. Annuler, QUITTER ou ESC réinitialise tout ce qui n'est pas encore payé.
Salon de tatouage
Appuie sur E dans le cercle devant le salon. Le personnage est déshabillé pour l'aperçu, les vêtements reviennent quand tu pars.
- Choisis la zone en haut, la caméra s'y déplace. Le nombre indique les tatouages faits / tous les tatouages de la zone.
- Un clic sur un tatouage l'affiche en aperçu sur le personnage, un autre clic le masque. Rechercher un tatouage filtre par nom, Les miens n'affiche que ceux déjà faits.
- Tatouer achète le tatouage, Retirer enlève un tatouage fait pour le prix de retrait.
- Terminé, QUITTER ou ESC ferme le salon.
Commandes
| Commande | Qui | Ce qui se passe |
|---|---|---|
/clearbags | Groupes de clearGroups, console serveur | Supprime tous les sacs posés. Les propriétaires en ligne récupèrent leur item. Les sacs des joueurs hors ligne sont seulement supprimés. |
Console
Au démarrage, le script vérifie l'installation et signale les erreurs et remarques dans la console serveur. Si tout va bien, tu y vois « a démarré avec succès ». Si ce message manque, lis les erreurs au-dessus, corrige-les et redémarre. Si l'item clothbag est créé, la console le signale aussi. Si le barbier ou le salon de tatouage est activé mais sans locations, un avertissement apparaît.
Problèmes fréquents
| Problème | Solution |
|---|---|
| Rien ne se passe avec E | Place-toi au centre du cercle. skinchanger et esx_skin doivent démarrer avant. |
| Le cercle flotte ou est dans le sol | Ajuste la hauteur (z) dans locations. |
| Look perdu après une reconnexion | Seul enregistrer ou porter une tenue garde le look, abandonner réinitialise tout. |
| La catégorie n'affiche que 0 modèles | La pièce n'existe pas pour ton modèle de personnage (GTA ou addons de vêtements). |
| Le sac est invisible | Vérifie model dans config/settings/config.bag.lua, l'objet doit exister dans GTA. |
L'item clothbag manque | Vérifie la console. Si l'item n'est pas créé, ajoute-le à la main dans la table items. |
| [H] Ramasser n'apparaît pas | Seul le propriétaire peut ramasser. Les autres seulement quand le propriétaire est hors ligne. |
| H ne ramasse rien | Dans les raccourcis clavier de FiveM, vérifie si une autre touche est définie pour « Ramasser le sac de vêtements ». |
| « Tu as déjà posé un sac. » | Ramasse d'abord ton propre sac ou augmente max. |
| Tatouages absents après un changement de skin | Ils sont réappliqués automatiquement peu après. N'utilise pas d'autres scripts qui posent eux-mêmes des tatouages. |
| « Les tatouages sont uniquement disponibles pour les personnages normaux » | Seuls mp_m_freemode_01 et mp_f_freemode_01 ont des tatouages. |
| Barbe et poils du torse absents chez le barbier | Masqués pour les personnages féminins, comme dans GTA Online. |
| Look du barbier perdu après une reconnexion | Seul Payer enregistre le look, annuler le réinitialise. |
Pas encore acheté ?
Voir Clothingstore dans la boutique