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:

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:

  1. Prepara la carpeta de recursos con un fxmanifest.lua válido (no un antiguo __resource.lua; ve fxmanifest vs resource.lua).
  2. 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_ignore y mantiene el resto legible.
  3. 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:

  1. Descarga la versión escrow de vuelta desde el portal, de la manera en que un comprador la recibiría.
  2. Ponla en un servidor de prueba limpio con tu propia clave de licencia vinculada a la cuenta que posee el activo.
  3. 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.
  4. Cambia un valor en config.lua y reinicia para confirmar que el archivo abierto realmente se recoge.
  5. 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.lua que solo defina una tabla Config, y el código encriptado lee Config.
  • 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_script primero, 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 →

Sigue leyendo