Come funziona un negozio per server FiveM su Skalp: pagamento, consegna in gioco e rimborsi
Un negozio per server su Skalp vende VIP, gradi, oggetti e veicoli ai giocatori del tuo server FiveM. Il giocatore paga sulla pagina del tuo negozio, la risorsa skalp sul tuo server ritira l'acquisto entro circa dieci secondi e lo consegna in gioco, oppure direttamente nel suo personaggio se è offline. Il venditore è Skalp, quindi IVA, fatture, rimborsi e chargeback li gestiamo noi.
Cosa possono comprare i giocatori
Tutto ciò che il tuo server può dare a un giocatore con un comando o uno script. Oggetti e veicoli funzionano subito sui framework più diffusi. Un lavoro, un grado, un posto in whitelist o la priorità in coda passano dai comandi del tuo server. Un VIP mensile può essere un abbonamento che viene consegnato di nuovo a ogni mese pagato, e ogni prodotto può essere acquistato in regalo per un amico.
Il negozio ha un indirizzo suo, tuonome.skalp.gg, oppure il tuo dominio. È elencato nel marketplace di Skalp alla voce Negozi di server, con il numero di giocatori online se aggiungi l'indirizzo del tuo server. I singoli prodotti, come un grado VIP, restano fuori dall'elenco prodotti del marketplace, perché hanno senso solo per i giocatori del tuo server.
Come l'acquisto arriva al giocatore
- Prima di comprare, il giocatore collega il suo account Steam. È così che il tuo server sa chi ha comprato cosa. Paga con carta, Apple Pay, Google Pay o un metodo di pagamento locale.
- La risorsa skalp chiede a Skalp i nuovi acquisti circa ogni dieci secondi. Salva ciascuno nella tabella
skalp_deliveries prima di confermarlo, quindi se il server si blocca nel mezzo, l'acquisto viene scaricato di nuovo e non si perde nulla.
- Un giocatore che è in gioco riceve l'acquisto subito. Se è offline, le ricompense integrate vanno direttamente nel suo personaggio nel tuo database, così al prossimo accesso c'è già tutto. Skalp sceglie l'ultimo personaggio che ha giocato: ox_core e vRP lo collegano a Steam da soli, mentre su ESX, QBCore e Qbox la risorsa lo impara la prima volta che il giocatore carica un personaggio con la risorsa 3.2 o più recente. Fino ad allora, e per tutto ciò che non si può scrivere in sicurezza mentre il giocatore è assente, la consegna aspetta che entri.
- L'ordine nella tua dashboard mostra se è stato consegnato, è in attesa o è fallito, e perché.
Collegare il server
Nella dashboard del negozio apri Server di gioco e clicca su Collega il server. Scarica la risorsa, metti la cartella skalp in resources e incolla in server.cfg le tre righe che trovi nella dashboard:
ensure skalp
set skalp_key "la chiave dalla dashboard"
add_ace resource.skalp command allow
Dopo un riavvio la console stampa Connected to Skalp e la dashboard mostra il server come collegato. La chiave si vede una sola volta. Se la perdi, creane una nuova: quella vecchia smette subito di funzionare.
I giocatori vengono riconosciuti tramite Steam, quindi il server ha bisogno di una chiave Steam Web API (steam_webApiKey in server.cfg). La risorsa funziona su ESX e sui suoi fork, QBCore, Qbox, ox_core e vRP, con ox_inventory o con l'inventario del framework. Un server senza framework può comunque consegnare con comandi e script propri. oxmysql è facoltativo: con esso le consegne restano nel tuo database, senza vengono salvate nell'archivio della risorsa.
Nulla si collega al tuo server, quindi non ci sono porte da aprire né URL da impostare. È il tuo server a chiedere gli acquisti a Skalp, e tutto ciò che viene inviato in entrambe le direzioni è cifrato e firmato con la tua chiave. La chiave stessa non lascia mai il server, perciò un'API falsa o una connessione intercettata non possono fargli consegnare nulla.
Cosa dà un prodotto
Su ogni prodotto scrivi cosa dà sotto forma di comando. Con la risorsa arrivano comandi che funzionano allo stesso modo su ogni framework, per esempio:
| Comando | Cosa fa |
skalp_item {playerId} bread 5 | Aggiunge un oggetto tramite ox_inventory, qb-inventory o il framework. |
skalp_vehicle {playerId} sultanrs | Salva il veicolo con una targa libera nel garage del giocatore. |
Funziona anche qualsiasi altro comando registrato da una risorsa del tuo server, per esempio setjob {playerId} police 0. Separa più passaggi con ;. Skalp compila {playerId}, {steamhex}, {steamid}, {quantity}, {orderId}, {productSlug} e {buyerName}. Un comando che usa {citizenid}, {charId} o {license} al posto di {playerId} parte anche mentre il giocatore è offline. Al checkout puoi anche fare all'acquirente fino a dieci domande, per esempio il testo di una targa personalizzata, e usare la risposta come {field_plate}. Le risposte scritte dall'acquirente vengono ridotte a lettere, cifre e _.:-[], così nessuno può infilare un secondo comando.
I comandi vengono eseguiti come console del server, e gira solo ciò che una risorsa di gioco ha registrato. I comandi di console del server stesso, come quit, exec o add_ace, e quelli di txAdmin non vengono mai eseguiti, qualunque cosa dica un prodotto, e in Config.BlockedCommands puoi bloccarne altri. Un comando che non esiste sul tuo server fa fallire la consegna indicandone il nome, così un errore di battitura si vede nell'ordine.
Sistemi personalizzati: il tuo garage, VIP o script del negozio
Se il tuo server consegna le cose tramite uno script suo, per esempio un garage o un sistema VIP personalizzato senza comando da console, registra un handler nella tua risorsa. Un handler subentra al comando del prodotto:
local function register()
exports.skalp:RegisterHandler('sultan-rs', function(ctx)
local ok, err = exports.my_garage:GiveCar(ctx.playerId, 'sultanrs')
if not ok then return false, err end
return true
end)
end
AddEventHandler('onResourceStart', function(name)
if name == 'skalp' then register() end
end)
if GetResourceState('skalp') == 'started' then register() end
La chiave è lo slug o l'id del prodotto. Restituisci true quando l'acquisto è consegnato, false, 'motivo' quando è fallito (il motivo compare nell'ordine), oppure nil, 'motivo' per lasciarlo in attesa e riprovare più tardi. In ctx trovi l'id del giocatore, il suo identificatore, la quantità, il numero d'ordine, il prodotto e le risposte dell'acquirente alle tue domande.
La risorsa esporta anche GiveItem e GiveVehicle per i tuoi script, e nella sua cartella examples ci sono file pronti per ESX, QBCore e per server senza framework. Gli handler stanno nella tua risorsa, quindi aggiornare skalp non li sovrascrive mai.
Gli handler girano quando il giocatore è in gioco. Se il tuo server tiene personaggi, inventari o garage in tabelle proprie, registra handler offline con exports.skalp:RegisterOfflineHandler e la consegna offline funziona anche con la tua configurazione.
Abbonamenti, rimborsi e chargeback
- Un abbonamento viene consegnato di nuovo per ogni periodo pagato. Quando è davvero terminato, parte il comando di revoca del prodotto. Un handler registrato con
RegisterSubscriptionHandler riceve ctx.active e può concedere o togliere il vantaggio da solo.
- Un rimborso completo annulla tutto ciò che è ancora in attesa ed esegue il comando di revoca per ciò che il server ha già consegnato. Un giocatore offline lo perde alla prossima volta che entra.
- Skalp contesta i chargeback con la banca. Se ne perde uno, funziona come un rimborso e inoltre banna l'acquirente dal tuo server, e se poi lo vince il ban viene tolto. Un giocatore che ha ricevuto l'acquisto in regalo non viene bannato per il chargeback di chi lo ha regalato.
Cosa invia il tuo server a Skalp
L'id della connessione, la versione della risorsa, il nome del framework, se i comandi e l'accesso con Steam sono attivi, e il risultato di ogni consegna. Non invia l'elenco dei giocatori, né gli identificatori di chi non ha comprato nulla, né niente dal tuo database. A sua volta Skalp invia al server solo ciò che serve a una consegna, senza l'e-mail dell'acquirente, l'importo pagato o altri dettagli dell'ordine.
Pagamenti, tasse e payout
Skalp vende al giocatore come merchant of record. L'IVA del paese dell'acquirente viene aggiunta al checkout e la fattura la emette Skalp. La commissione è del 10% del prezzo di vendita netto, ovvero del 7% quando le tue vendite negli ultimi 30 giorni raggiungono 20.000 $. L'elaborazione dei pagamenti è inclusa e non c'è nessun canone mensile. Gli ordini diventano liberi 7 giorni dopo il completamento, e da 20 USD puoi richiedere un payout dalla dashboard su un conto bancario intestato a te o alla tua azienda.
Cosa vendere lo decidi tu
Sei tu a decidere quali prodotti vende il tuo negozio. Assicurati che ognuno rispetti le regole del gioco e della piattaforma su cui gira il tuo server.
Domande frequenti
Devo aprire una porta o configurare un webhook?
No. È il tuo server a chiedere a Skalp i nuovi acquisti, quindi nulla deve collegarsi a lui dall'esterno.
Con quali framework funziona?
ESX e i suoi fork, QBCore, Qbox, ox_core e vRP. Un server senza framework può consegnare con comandi e handler propri.
Cosa succede se il giocatore è offline o ha l'inventario pieno?
Le ricompense integrate vanno subito nel personaggio, purché Skalp sappia di quale personaggio si tratta e il giocatore non sia sul server e non l'abbia lasciato negli ultimi due minuti. Gli oggetti che ricevono dati propri alla creazione, come le armi, aspettano che il giocatore entri, e lo stesso vale per tutto quando l'inventario è pieno. Le consegne in attesa restano nella tabella skalp_deliveries, partono quando il giocatore entra e vengono ritentate ogni 30 secondi mentre gioca. Se il giocatore non entra entro 30 giorni, scadono. Con Config.OfflineDelivery = false aspettano sempre il giocatore.
Un acquisto può essere consegnato due volte?
No. Ogni prodotto di un ordine ha una sua riga, e una consegna con più passaggi ricorda quali sono già stati eseguiti.
Come lo provo prima di vendere?
Clicca su Invia un test nella dashboard, e il server lo stampa nella sua console alla prossima richiesta. I comandi delle ricompense funzionano anche nella console del server, per esempio skalp_item 1 bread 5, e skalp status mostra la connessione, il framework e quante consegne sono in attesa o fallite.
Posso vendere anche i miei script ad altri server?
Sì, da un negozio di script, che è un altro tipo di negozio. Skalp protegge i file e li lega a una licenza. Come funziona la vendita di script FiveM.
Skalp è affiliato a Rockstar Games o a qualche piattaforma di gioco?
No. Skalp è un negozio indipendente di beni digitali.