Bilanciamento dell'economia del server FiveM: stipendi, assorbimento di denaro e inflazione

Come bilanciare l'economia di un server FiveM: stipendi, denaro di inizio, prezzi, assorbimento di denaro come riparazioni, carburante, tasse e alloggi, denaro sporco, e SQL per controllare l'inflazione.

Il sintomo: i nuovi giocatori comprano tutto in un giorno, i prezzi smettono di significare qualcosa, e i giocatori più ricchi hanno più denaro di quanto costa l'intero catalogo del negozio.

Un'economia è due flussi: denaro che entra nel gioco (rubinetti) e denaro che lo lascia (assorbimenti). Quando i rubinetti vincono per abbastanza tempo, ottieni inflazione. Questo articolo mostra da dove viene il denaro, come rimuoverlo di nuovo, e come misurarlo con il database.

Rubinetti: da dove entra il denaro

Elenca ogni fonte prima di cambiare qualsiasi numero:

  • Stipendi: un pagamento regolare per lavoro e grado, se il giocatore lavora o sta fermo.
  • Denaro di inizio: quello che un nuovo personaggio riceve.
  • Ricompense di lavoro e attività: consegne, missioni, rapine, vendita di oggetti a NPC o un negozio di prestiti.
  • Comandi admin e regali: denaro che dai a mano.

Gli stipendi sono il rubinetto più tranquillo, perché funzionano su un timer. In QBCore l'intervallo dello stipendio e i valori di contante e banca di inizio vivono nel config principale; in ESX Legacy l'intervallo e gli account di inizio sono anche nel config principale, e l'importo viene dal grado del lavoro. Trovali nella tua versione piuttosto che indovinare, e leggi il pagamento del grado nella configurazione del lavoro (ESX, QBCore).

Suggerimento: molti server pagano uno stipendio alto per attirare i giocatori, poi si chiedono perché il denaro non vale nulla. Uno stipendio basso con vere ricompense di attività mantiene i giocatori che fanno qualcosa.

Impostazione dei prezzi

Ancora tutto a un numero: quello che un giocatore guadagna in un'ora di lavoro normale. Quindi prezza le cose in ore:

Elemento Prezzo ragionevole
Un'auto base Diverse ore di lavoro
Un'auto buona Un giorno o due di gioco
Cibo e bevande Minuti di lavoro
Una casa o un appartamento Molte ore, con costi continui

Non hai bisogno di valori esatti. Hai bisogno di un ordine: le cose economiche sono economiche, gli elementi di stato richiedono tempo reale. Rivisitalo dopo la prima settimana con dati reali.

Assorbimenti di denaro

Un assorbimento toglie denaro e non dà nulla in cambio. Quelli buoni aggiungono anche gameplay:

  • Riparazioni: il meccanico addebita, o il giocatore paga in un'officina. Vedi il lavoro meccanico.
  • Carburante: un piccolo costo ricorrente che ogni conducente paga.
  • Tasse: su veicoli, proprietà, acquisti negozio o profitti aziendali.
  • Alloggi: affitto, utenze o un prezzo di acquisto. Vedi alloggi e appartamenti.
  • Licenze e ammende: patente di guida, patente d'armi, ammende della polizia.
  • Assicurazione e tasse di sequestro per veicoli.

Non esagerare con uno di loro. Un piccolo costo che accade spesso è meglio di un costo enorme che sembra una punizione.

Contanti, banca e denaro sporco

Il denaro esiste in diversi account, il che importa quando misuri. Contanti e banca sono denaro normale. Denaro sporco (denaro illegale) è un account o un elemento separato, di solito guadagnato dall'attività illegale e lavato in denaro pulito. Mantienilo sotto controllo con un tasso di conversione, quindi vale meno del denaro pulito, e vedi contanti, banca e denaro sporco per come ogni tipo è memorizzato e speso.

Controllare l'inflazione con le query

Non hai bisogno di un dashboard. Una query sulla tabella dei personaggi, eseguita quotidianamente, mostra la tendenza. Il denaro è memorizzato come JSON in una colonna, quindi estrai i valori:

sql
-- ESX Legacy: users.accounts holds {"money":..,"bank":..,"black_money":..}
SELECT
  COUNT(*) AS characters,
  SUM(CAST(JSON_UNQUOTE(JSON_EXTRACT(accounts, '$.money')) AS DECIMAL(20,0))) AS cash,
  SUM(CAST(JSON_UNQUOTE(JSON_EXTRACT(accounts, '$.bank')) AS DECIMAL(20,0))) AS bank,
  SUM(CAST(JSON_UNQUOTE(JSON_EXTRACT(accounts, '$.black_money')) AS DECIMAL(20,0))) AS black
FROM users;
sql
-- QBCore and QBox: players.money holds {"cash":..,"bank":..,"crypto":..}
SELECT
  COUNT(*) AS characters,
  SUM(CAST(JSON_UNQUOTE(JSON_EXTRACT(money, '$.cash')) AS DECIMAL(20,0))) AS cash,
  SUM(CAST(JSON_UNQUOTE(JSON_EXTRACT(money, '$.bank')) AS DECIMAL(20,0))) AS bank
FROM players;

Controlla prima i nomi delle colonne nel tuo database, perché alcuni server le personalizzano. Memorizza il risultato in una piccola tabella con una data, in modo che tu possa rappresentarla graficamente in seguito:

sql
CREATE TABLE IF NOT EXISTS economy_snapshots (
  id INT AUTO_INCREMENT PRIMARY KEY,
  taken_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  characters INT,
  cash BIGINT,
  bank BIGINT
);

Due altre query vale la pena eseguire di tanto in tanto: i dieci personaggi più ricchi (un outlier enorme punti su un exploit), e il denaro medio per personaggio. Confronta questi con quanti personaggi sono attivi, poiché un totale diviso per giocatori attivi è un numero più onesto del totale da solo. Per aiuto con le query da Lua, vedi query oxmysql.

Cosa fare quando si gonfia

  1. Trova il rubinetto: un nuovo lavoro, un pagamento di rapina, un bug. Confronta le date.
  2. Abbassa il rubinetto prima di aggiungere assorbimenti.
  3. Aggiungi o alza un assorbimento che tocca tutti (carburante, tasse).
  4. Per un exploit fuggito, correggilo prima e poi affronta il denaro, perché rimuovere denaro mentre la fuga è aperta è inutile.

Cancellare i saldi è un'ultima risorsa, perché i giocatori perdono fiducia. Opzioni più gentili sono le tasse sui saldi elevati, un taglio degli interessi bancari, o elementi di lusso a tempo limitato che assorbono denaro.

Elenco di controllo

Sintomo Soluzione
Tutto abbordabile in un giorno Abbassa lo stipendio e il denaro di inizio
Il denaro totale sale ogni settimana Abbassa i rubinetti, aggiungi assorbimenti che toccano tutti
Un personaggio ha denaro assurdo Cerca un exploit, controlla i log
I prezzi sembrano senza significato Prezza in ore di lavoro
Denaro sporco troppo forte Aggiungi una perdita quando lo lavi
Nessun dato per decidere Fai uno snapshot dei totali quotidianamente

Risposte rapide

Come faccio a sapere se la mia economia si sta gonfiando?

Somma il denaro di tutti i personaggi nel database su un programma, ad esempio una volta al giorno, e confronta i numeri. Se il totale continua a salire più velocemente del numero di giocatori, più denaro entra di quanto esce.

Cos'è un assorbimento di denaro?

Qualsiasi cosa che toglie denaro dal gioco per sempre: riparazioni, carburante, tasse, affitti, licenze, ammende. Senza assorbimenti, il denaro si accumula solo.

Dove cambio lo stipendio e il denaro di inizio?

Nel config principale del tuo framework. ESX e QBCore hanno entrambi impostazioni per l'intervallo dello stipendio e per il denaro che un nuovo personaggio inizia, e il pagamento del lavoro è definito per grado.

Script senza questo problema

Shop CreatorCrea un negozio in meno di un minuto — proprietari, dipendenti, casseforti e rapine inclusi.Vedi script →Pawn Shop AppUn banco dei pegni tra giocatori dentro lb-phone.Vedi script →Crypto MiningCompra un magazzino, costruisci rig pezzo per pezzo e mina monete su un mercato che si muove.Vedi script →

Continua a leggere