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:
-- 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;-- 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:
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
- Trova il rubinetto: un nuovo lavoro, un pagamento di rapina, un bug. Confronta le date.
- Abbassa il rubinetto prima di aggiungere assorbimenti.
- Aggiungi o alza un assorbimento che tocca tutti (carburante, tasse).
- 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 →