escrow_ignore en fxmanifest: mantener config.lua y locales abiertos
Para vendedores de scripts: cómo escrow_ignore mantiene config.lua y archivos de idioma legibles, qué se mantiene abierto, cómo subir al portal Cfx.re y probar la compilación escrow.
Vendes scripts, y los compradores necesitan cambiar una configuración, un archivo de idioma o un puente de framework sin tocar tu código principal. El escrow de activos de Cfx.re encripta Lua por defecto, así que los archivos que los compradores deben editar tienen que estar marcados como abiertos. Eso es lo que hace escrow_ignore, y esta guía cubre cómo usarlo y probar el resultado.
Qué encripta escrow
Cuando subes un recurso al sistema de escrow, tus scripts Lua de cliente y servidor están encriptados. Los compradores los ejecutan, pero no pueden leerlos. Los archivos que no son código Lua, como páginas NUI, imágenes, audio, modelos y activos stream/, se entregan tal como están.
Cualquier cosa que un comprador necesite configurar tiene que mantenerse legible. Si encriptas config.lua, nadie puede cambiar tus precios o claves. Así que le pides al escrow que lo omita.
La sintaxis de escrow_ignore
En 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',
}Las rutas son relativas a la carpeta de recursos, y * funciona como un comodín, así que locales/*.lua deja abierto cada archivo Lua en locales/. También puedes listar archivos individuales.
Qué se mantiene legible
Sé deliberado sobre qué abres. Buenos candidatos:
config.lua: precios, trabajos, nombres de artículos, atajos de teclado, activadores de funciones.- Archivos de idioma: para que los compradores puedan traducir. Ve translatable scripts.
- Archivos puente de framework: adaptadores pequeños para ESX, QBCore y QBox, para que los compradores puedan conectar su propio framework o inventario personalizado.
- Hooks del lado del cliente para otros scripts, como un archivo que dispara una notificación o una alerta de policía.
Mantén cerrado todo lo que es el núcleo del producto: lógica, validación, cualquier cosa que decida dinero o artículos. Recuerda que los archivos abiertos también están abiertos al copiado: un comprador puede pegar tu configuración o puente en el recurso de otra persona, así que no pongas lógica valiosa en ellos.
Consejo: cada archivo abierto es una carga de soporte. Un comprador que lo edite mal te escribirá sobre ello, así que mantén los archivos abiertos pequeños y bien comentados.
Subir al portal Cfx.re
El escrow funciona a través de tu cuenta de Cfx.re:
- Prepara la carpeta de recursos con un
fxmanifest.luaválido (no un antiguo__resource.lua; ve fxmanifest vs resource.lua). - En el portal Cfx.re, abre la sección de activos y sube el recurso como un activo de escrow. El portal encripta los archivos que no están en
escrow_ignorey mantiene el resto legible. - Vincula el activo a tu tienda, para que una compra le dé acceso al comprador. Ve selling FiveM scripts para el lado de la tienda.
Los menús del portal cambian de vez en cuando, así que sigue la documentación actual de Cfx.re para los pasos de subida exactos y los límites.
Prueba la compilación de escrow
Nunca distribuyas lo que probaste solo en tu carpeta de desarrollo. Después de la subida:
- Descarga la versión escrow de vuelta desde el portal, de la manera en que un comprador la recibiría.
- Ponla en un servidor de prueba limpio con tu propia clave de licencia vinculada a la cuenta que posee el activo.
- Inicia y recorre el flujo: los archivos abiertos se cargan, los cambios de configuración se aplican, ambos eventos de cliente y servidor se disparan.
- Cambia un valor en
config.luay reinicia para confirmar que el archivo abierto realmente se recoge. - Prueba en un segundo framework si admites más de uno.
Si el recurso falla al iniciar con un mensaje de derechos, el servidor de prueba no está usando la clave de una cuenta que posee el activo. Escrow lack entitlement enumera las causas.
Dependencias en archivos abiertos
Cuando algunos archivos están abiertos y el resto encriptado, aún comparten un recurso y deben trabajar juntos:
- Los archivos abiertos pueden usar los globales y funciones que declaran, como es normal. Mantén un
config.luaque solo defina una tablaConfig, y el código encriptado leeConfig. - El orden de carga es el orden del manifiesto. Una configuración debe venir antes del código que la lee, así que lista la como
shared_scriptprimero, como arriba. - Usa exportaciones para la comunicación entre tu código y el recurso propio de un comprador, en lugar de depender de globales compartidas. Las exportaciones son estables y documentadas; ve exports in Lua.
- Declara dependencias (
dependency 'ox_lib') en el manifiesto, para que una biblioteca faltante dé un error claro en lugar de un nil.
No abras un archivo que solo funcione junto con un archivo encriptado que también cambiaste en la misma versión. Los compradores que editaron el abierto tendrán que fusionar a mano.
Problemas comunes
- Un archivo nuevo añadido, pero aún encriptado: no coincidió con
escrow_ignore. Comprueba la ruta y el comodín. - Los compradores dicen que la configuración es ilegible: el archivo fue encriptado en la subida. Arregla el manifiesto y sube de nuevo.
- Funciona para ti, no para el comprador: probaste la copia de desarrollo abierta; prueba la compilación de escrow descargada.
Lista de verificación
| Síntoma | Solución |
|---|---|
Los compradores no pueden editar config.lua |
Añádelo a escrow_ignore { } y sube de nuevo |
| El nuevo archivo de idioma aún está encriptado | Usa un comodín, como locales/*.lua |
| La compilación de escrow se comporta de manera diferente | Prueba la versión descargada, no la copia de desarrollo |
| Los valores de configuración no se leen | Lista la configuración como shared_script antes del código |
| Error de derechos durante la prueba | Usa la clave de la cuenta que posee el activo |
| Lógica valiosa expuesta | Muévela fuera de los archivos abiertos al núcleo encriptado |
Respuestas rápidas
¿Qué hace escrow_ignore?
Lista archivos en tu fxmanifest.lua que el escrow de activos de Cfx.re debe dejar sin encriptar, para que los compradores puedan leerlos y editarlos. Los ejemplos típicos son config.lua y archivos de idioma.
¿Pueden los compradores editar un archivo que está escrow_ignored?
Sí, se entrega como texto plano, exactamente como lo subiste. Cualquier archivo que dejes abierto también puede ser copiado y cambiado por cualquiera que compre el script.
¿Necesito probar la versión escrow?
Sí. La encriptación puede cambiar el comportamiento, por ejemplo cuando archivos abiertos y encriptados se llaman entre sí. Ejecuta la compilación que descargaste de vuelta desde el portal, no solo tu copia de desarrollo.
Scripts que evitan este problema
Tebex TemplateUn tema premium para tu tienda Tebex, sin código y editable desde el panel.Ver script →
Item Creator V2Crea items usables con animaciones, props, efectos y más — sin escribir código.Ver script →
Shop CreatorCrea una tienda en menos de un minuto — dueños, empleados, caja fuerte y atracos.Ver script →