escrow_ignore in fxmanifest: mantieni config.lua e i file delle lingue aperti

Per i venditori di script: come escrow_ignore mantiene config.lua e i file locali leggibili, cosa rimane aperto, come caricare sul portale Cfx.re e testare la build in escrow.

Vendi script e gli acquirenti hanno bisogno di modificare una config, un file di lingua o un bridge del framework senza toccare il tuo codice principale. L'escrow degli asset di Cfx.re crittografa Lua per impostazione predefinita, quindi i file che gli acquirenti devono modificare devono essere contrassegnati come aperti. Questo è ciò che fa escrow_ignore, e questa guida copre come usarlo e testare il risultato.

Cosa crittografa l'escrow

Quando carichi una risorsa nel sistema escrow, i tuoi script Lua client e server vengono crittografati. Gli acquirenti li eseguono, ma non possono leggerli. I file che non sono codice Lua, come pagine NUI, immagini, audio, modelli e asset stream/, vengono consegnati così come sono.

Qualsiasi cosa di cui un acquirente ha bisogno di configurare deve rimanere leggibile. Se crittografi config.lua, nessuno potrà cambiare i tuoi prezzi o le tue chiavi. Quindi chiedi all'escrow di saltarlo.

La sintassi di escrow_ignore

In 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',
}

I percorsi sono relativi alla cartella della risorsa, e * funziona come wildcard, quindi locales/*.lua lascia aperto ogni file Lua in locales/. Puoi anche elencare singoli file.

Cosa rimane leggibile

Sii deliberato su ciò che apri. Buoni candidati:

  • config.lua: prezzi, lavori, nomi degli oggetti, keybind, toggle delle funzionalità.
  • File locali: in modo che gli acquirenti possano tradurre. Vedi script traducibili.
  • File bridge del framework: piccoli adattatori per ESX, QBCore e QBox, in modo che gli acquirenti possano connettere il loro framework personale o inventario personalizzato.
  • Hook lato client per altri script, ad esempio un file che attiva una notifica o un allarme della polizia.

Mantieni chiuso tutto ciò che è il nucleo del prodotto: logica, convalida, qualsiasi cosa che decida soldi o oggetti. Ricorda che i file aperti sono aperti anche alla copia: un acquirente può incollare la tua config o il tuo bridge nella risorsa di qualcun altro, quindi non mettere logica preziosa in essi.

Suggerimento: ogni file aperto è un onere di supporto. Un acquirente che lo modifica male ti scriverà al riguardo, quindi mantieni i file aperti piccoli e ben commentati.

Carica sul portale Cfx.re

L'escrow funziona attraverso il tuo account Cfx.re:

  1. Prepara la cartella della risorsa con un fxmanifest.lua valido (non un vecchio __resource.lua; vedi fxmanifest vs resource.lua).
  2. Nel portale Cfx.re, apri la sezione asset e carica la risorsa come asset in escrow. Il portale crittografa i file che non sono in escrow_ignore e mantiene leggibile il resto.
  3. Collega l'asset al tuo negozio, in modo che un acquisto dia all'acquirente accesso. Vedi vendere script FiveM per il lato del negozio.

I menu del portale cambiano di volta in volta, quindi segui la documentazione attuale di Cfx.re per i passaggi di caricamento e i limiti esatti.

Testa la build in escrow

Non spedire mai ciò che hai testato solo nella tua cartella di sviluppo. Dopo il caricamento:

  1. Scarica la versione in escrow dal portale, come farebbe un acquirente.
  2. Mettila in un server di test pulito con la tua chiave di licenza legata all'account che possiede l'asset.
  3. Avvialo e percorri il flusso: i file aperti si caricano, le modifiche alla config si applicano, sia gli eventi client che server si attivano.
  4. Modifica un valore in config.lua e riavvia per confermare che il file aperto viene davvero raccolto.
  5. Testa su un secondo framework se ne supporti più di uno.

Se la risorsa non si avvia con un messaggio di diritto, il server di test non utilizza la chiave di un account che possiede l'asset. Mancanza di diritto in escrow elenca le cause.

Dipendenze dai file aperti

Quando alcuni file sono aperti e il resto è crittografato, condividono comunque una risorsa e devono funzionare insieme:

  • I file aperti possono usare i globali e le funzioni che dichiarano, come di norma. Mantieni un config.lua che definisce solo una tabella Config, e il codice crittografato legge Config.
  • L'ordine di caricamento è l'ordine del manifest. Una config deve venire prima del codice che la legge, quindi elencala come shared_script per primo, come sopra.
  • Usa export per la comunicazione tra il tuo codice e la risorsa personale di un acquirente, piuttosto che fare affidamento su globali condivisi. Gli export sono stabili e documentati; vedi export in Lua.
  • Dichiara le dipendenze (dependency 'ox_lib') nel manifest, in modo che una libreria mancante dia un errore chiaro piuttosto che un nil.

Non aprire un file che funziona solo insieme a un file crittografato che hai anche modificato nella stessa versione. Gli acquirenti che hanno modificato quello aperto dovranno unire a mano.

Problemi comuni

  • Un nuovo file aggiunto, ma ancora crittografato: non è stato abbinato da escrow_ignore. Controlla il percorso e il wildcard.
  • Gli acquirenti dicono che la config è illeggibile: il file è stato crittografato al caricamento. Correggi il manifest e carica di nuovo.
  • Funziona per te, non per l'acquirente: hai testato la copia di sviluppo aperta; testa la build escrow scaricata.

Lista di controllo

Sintomo Soluzione
Gli acquirenti non possono modificare config.lua Aggiungilo a escrow_ignore { } e carica di nuovo
Il nuovo file locale è ancora crittografato Usa un wildcard, come locales/*.lua
La build in escrow si comporta diversamente Testa la versione scaricata, non la copia di sviluppo
I valori di config non vengono letti Elenca la config come shared_script prima del codice
Errore di diritto durante il test Usa la chiave dell'account che possiede l'asset
Logica preziosa esposta Spostala da file aperti nel nucleo crittografato

Risposte rapide

Cosa fa escrow_ignore?

Elenca i file nel tuo fxmanifest.lua che l'escrow degli asset di Cfx.re deve lasciare non crittografati, in modo che gli acquirenti possano leggerli e modificarli. Esempi tipici sono config.lua e file locali.

Gli acquirenti possono modificare un file che è escrow_ignored?

Sì, viene consegnato come testo semplice, esattamente come lo hai caricato. Tutto ciò che lasci aperto può anche essere copiato e modificato da chiunque acquisti lo script.

Devo testare la versione in escrow?

Sì. La crittografia può cambiare il comportamento, ad esempio quando i file aperti e crittografati si chiamano tra loro. Esegui la build che hai scaricato dal portale, non solo la tua copia di sviluppo.

Script senza questo problema

Tebex TemplateUn tema premium senza codice per il tuo negozio Tebex, modificabile interamente dal pannello Tebex.Vedi script →Item Creator V2Crea oggetti utilizzabili con animazioni, props, effetti e altro — senza scrivere codice.Vedi script →Shop CreatorCrea un negozio in meno di un minuto — proprietari, dipendenti, casseforti e rapine inclusi.Vedi script →

Continua a leggere