escrow_ignore dans fxmanifest : gardez config.lua et les fichiers de locale ouverts
Pour les vendeurs de scripts : comment escrow_ignore garde config.lua et les fichiers de locale lisibles, ce qui reste ouvert, comment télécharger sur le portail Cfx.re et tester la version escrowed.
Vous vendez des scripts, et les acheteurs ont besoin de modifier une config, un fichier de langue ou un pont de framework sans toucher à votre code principal. L'escrow d'actifs de Cfx.re chiffre le Lua par défaut, donc les fichiers que les acheteurs doivent modifier doivent être marqués comme ouverts. C'est ce que fait escrow_ignore, et ce guide couvre son utilisation et le test du résultat.
Ce que l'escrow chiffre
Quand vous téléchargez une ressource sur le système d'escrow, vos scripts Lua client et serveur sont chiffrés. Les acheteurs les exécutent, mais ne peuvent pas les lire. Les fichiers qui ne sont pas du code Lua, comme les pages NUI, les images, l'audio, les modèles et les actifs stream/, sont livrés tels qu'ils sont.
N'importe quoi qu'un acheteur doit configurer doit rester lisible. Si vous chiffrez config.lua, personne ne peut changer vos prix ou clés. Vous demandez donc à l'escrow de le sauter.
La syntaxe escrow_ignore
Dans fxmanifest.lua :
fx_version 'cerulean'
game 'gta5'
shared_script 'config.lua'
client_script 'client/main.lua'
server_script 'server/main.lua'
escrow_ignore {
'config.lua',
'locales/*.lua',
'bridge/*.lua',
}Les chemins sont relatifs au dossier de ressource, et * fonctionne comme un caractère générique, donc locales/*.lua laisse chaque fichier Lua dans locales/ ouvert. Vous pouvez aussi lister des fichiers individuels.
Ce qui reste lisible
Soyez intentionnel sur ce que vous ouvrez. Les bons candidats sont :
config.lua: prix, emplois, noms d'articles, touches de raccourci, basculements de fonctionnalités.- Fichiers de locale : pour que les acheteurs puissent traduire. Voir scripts traduisibles.
- Fichiers pont framework : petits adaptateurs pour ESX, QBCore et QBox, pour que les acheteurs puissent connecter leur propre framework ou inventaire personnalisé.
- Hooks côté client pour d'autres scripts, comme un fichier qui déclenche une notification ou une alerte de police.
Gardez fermé tout ce qui est le cœur du produit : logique, validation, tout ce qui décide l'argent ou les articles. N'oubliez pas que les fichiers ouverts sont aussi ouverts à la copie : un acheteur peut coller votre config ou pont dans la ressource de quelqu'un d'autre, ne mettez donc pas de logique précieuse dans ces fichiers.
Astuce : chaque fichier ouvert est un fardeau d'assistance. Un acheteur qui le modifie mal vous écrira à ce sujet, gardez donc les fichiers ouverts petits et bien commentés.
Téléchargez sur le portail Cfx.re
L'escrow fonctionne via votre compte Cfx.re :
- Préparez le dossier de ressource avec un
fxmanifest.luavalide (pas un ancien__resource.lua; voir fxmanifest vs resource.lua). - Dans le portail Cfx.re, ouvrez la section des actifs et téléchargez la ressource en tant qu'actif escrow. Le portail chiffre les fichiers qui ne sont pas dans
escrow_ignoreet garde le reste lisible. - Liez l'actif à votre boutique, pour qu'un achat donne à l'acheteur accès. Voir vendre des scripts FiveM pour le côté boutique.
Les menus du portail changent de temps en temps, suivez donc la documentation Cfx.re actuelle pour les étapes exactes de téléchargement et les limites.
Testez la version escrowed
Ne livrez jamais ce que vous avez testé seulement dans votre dossier de développement. Après le téléchargement :
- Retéléchargez la version escrowed du portail, de la façon qu'un acheteur la recevrait.
- Mettez-la sur un serveur de test propre avec votre propre clé de licence liée au compte qui possède l'actif.
- Démarrez-la et parcourez le flux : les fichiers ouverts se chargent, les modifications de config s'appliquent, les événements client et serveur se déclenchent.
- Modifiez une valeur dans
config.luaet redémarrez pour confirmer que le fichier ouvert est vraiment repris. - Testez sur un deuxième framework si vous en supportez plus d'un.
Si la ressource ne démarre pas avec un message d'entitlement, le serveur de test n'utilise pas la clé d'un compte qui possède l'actif. Escrow lack entitlement répertorie les causes.
Dépendances des fichiers ouverts
Quand certains fichiers sont ouverts et le reste chiffré, ils partagent toujours une ressource et doivent fonctionner ensemble :
- Les fichiers ouverts peuvent utiliser les globales et les fonctions qu'ils déclarent, normalement. Gardez un
config.luaqui ne définit qu'une tableConfig, et le code chiffré litConfig. - L'ordre de chargement est l'ordre du manifeste. Un config doit venir avant le code qui le lit, donc listez-le comme un
shared_scriptd'abord, comme ci-dessus. - Utilisez les exports pour communiquer entre votre code et la ressource propre d'un acheteur, plutôt que de vous fier aux globales partagées. Les exports sont stables et documentés ; voir exports en Lua.
- Déclarez les dépendances (
dependency 'ox_lib') dans le manifeste, pour qu'une bibliothèque manquante donne une erreur claire plutôt qu'un nil.
N'ouvrez pas un fichier qui ne fonctionne que conjointement avec un fichier chiffré que vous avez aussi modifié dans la même version. Les acheteurs qui ont modifié le fichier ouvert devront fusionner à la main.
Problèmes courants
- Un nouveau fichier ajouté, mais toujours chiffré : il n'a pas été mis en correspondance par
escrow_ignore. Vérifiez le chemin et le caractère générique. - Les acheteurs disent que la config est illisible : le fichier a été chiffré lors du téléchargement. Corrigez le manifeste et téléchargez à nouveau.
- Fonctionne pour vous, pas pour l'acheteur : vous avez testé la copie de développement ouverte ; testez la version escrowed téléchargée.
Liste de vérification
| Symptôme | Correction |
|---|---|
Les acheteurs ne peuvent pas modifier config.lua |
Ajoutez-le à escrow_ignore { } et retéléchargez |
| Le nouveau fichier de locale toujours chiffré | Utilisez un caractère générique, tel que locales/*.lua |
| La version escrowed se comporte différemment | Testez la version téléchargée, pas la copie dev |
| Les valeurs de config ne sont pas lues | Listez la config comme un shared_script avant le code |
| Erreur d'entitlement lors du test | Utilisez la clé du compte qui possède l'actif |
| Logique précieuse exposée | Déplacez-la des fichiers ouverts vers le cœur chiffré |
Réponses rapides
Que fait escrow_ignore ?
Il répertorie les fichiers de votre fxmanifest.lua que l'escrow d'actifs Cfx.re doit laisser non chiffrés, pour que les acheteurs puissent les lire et les modifier. Les exemples typiques sont config.lua et les fichiers de locale.
Les acheteurs peuvent-ils modifier un fichier qui est escrow_ignored ?
Oui, il est livré en texte brut, exactement comme vous l'avez téléchargé. N'importe quel fichier que vous laissez ouvert peut aussi être copié et modifié par quiconque achète le script.
Dois-je tester la version escrowed ?
Oui. Le chiffrement peut changer le comportement, par exemple quand les fichiers ouverts et chiffrés s'appellent. Exécutez la version que vous avez retéléchargée du portail, pas seulement votre copie de développement.
Des scripts sans ce problème
Tebex TemplateUn thème premium sans code pour votre boutique Tebex, entièrement modifiable depuis le panel Tebex.Voir le script →
Item Creator V2Créez des items utilisables avec animations, props, effets et plus — sans écrire une ligne de code.Voir le script →
Shop CreatorCréez un magasin en moins d’une minute — propriétaires, employés, coffres et braquages inclus.Voir le script →