Equilíbrio da economia do servidor FiveM: salários, sumidouros de dinheiro e inflação
Como equilibrar uma economia de servidor FiveM: salários, dinheiro inicial, preços, sumidouros de dinheiro como reparos, combustível, impostos e habitação, dinheiro sujo, e SQL para observar inflação.
O sintoma: novos jogadores compram tudo em um dia, os preços deixam de ter significado, e os jogadores mais ricos têm mais dinheiro do que todo o catálogo de loja custa.
Uma economia tem dois fluxos: dinheiro entrando no jogo (fontes) e dinheiro saindo (sumidouros). Quando fontes ganham por tempo suficiente, você obtém inflação. Este artigo mostra de onde vem o dinheiro, como removê-lo novamente, e como medi-lo com o banco de dados.
Fontes: onde o dinheiro entra
Liste cada fonte antes de alterar qualquer número:
- Salários: um pagamento regular por trabalho e grau, se o jogador trabalha ou fica parado.
- Dinheiro inicial: o que um novo personagem recebe.
- Recompensas de trabalho e atividade: entregas, missões, roubos, vender itens para NPCs ou uma casa de penhores.
- Comandos de admin e presentes: dinheiro que você dá manualmente.
Os salários são a fonte mais silenciosa, porque rodam em um cronômetro. Em QBCore o intervalo de salário e os valores de cash e bank inicial vivem na configuração principal; em ESX Legacy o intervalo e as contas iniciais estão na configuração principal também, e o valor vem do grau do trabalho. Encontre-os em sua versão em vez de adivinhar, e leia o pagamento de grau na configuração de trabalho (ESX, QBCore).
Dica: muitos servidores pagam um salário alto para atrair jogadores, depois se perguntam por que dinheiro é sem valor. Um salário baixo com recompensas de atividades reais mantém os jogadores fazendo algo.
Definindo preços
Ancore tudo a um número: o que um jogador ganha em uma hora de trabalho normal. Depois precifique as coisas em horas:
| Item | Preço razoável |
|---|---|
| Um carro básico | Várias horas de trabalho |
| Um bom carro | Um dia ou dois de jogo |
| Comida e bebida | Minutos de trabalho |
| Uma casa ou apartamento | Muitas horas, com custos contínuos |
Você não precisa de valores exatos. Você precisa de uma ordem: coisas baratas são baratas, itens de status levam tempo real. Visite novamente após a primeira semana com dados reais.
Sumidouros de dinheiro
Um sumidouro tira dinheiro e não dá nada em troca. Os bons também adicionam gameplay:
- Reparos: o mecânico cobra, ou o jogador paga em uma oficina. Veja o mechanic job.
- Combustível: um pequeno custo recorrente que cada motorista paga.
- Impostos: em veículos, propriedade, compras de loja ou lucros da empresa.
- Habitação: aluguel, serviços ou preço de compra. Veja housing and apartments.
- Licenças e multas: licença de direção, licença de arma, multas de polícia.
- Seguros e taxas de impound para veículos.
Não exagere em um deles. Um pequeno custo que acontece frequentemente é melhor do que um custo enorme que parece uma punição.
Dinheiro, banco e dinheiro preto
O dinheiro existe em várias contas, o que importa quando você mede. Dinheiro e banco são dinheiro normal. Dinheiro preto (dinheiro sujo) é uma conta ou item separado, geralmente ganhado de atividade ilegal e lavado em dinheiro limpo. Mantenha sob controle com uma taxa de conversão, então vale menos do que dinheiro limpo, e veja cash, bank and black money para como cada tipo é armazenado e gasto.
Observando inflação com queries
Você não precisa de um dashboard. Uma query na tabela de personagens, executada diariamente, mostra a tendência. O dinheiro é armazenado como JSON em uma coluna, então extraia os valores:
-- 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;Verifique os nomes de coluna em seu próprio banco de dados primeiro, porque alguns servidores os customizam. Armazene o resultado em uma pequena tabela com uma data, para que você possa fazer um gráfico depois:
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
);Duas outras queries valem a pena executar de vez em quando: os dez personagens mais ricos (um outlier enorme aponta um exploit), e o dinheiro médio por personagem. Compare com quantos personagens estão ativos, já que um total dividido por jogadores ativos é um número mais honesto do que o total sozinho. Para ajuda com queries de Lua, veja oxmysql queries.
O que fazer quando inflaciona
- Encontre a fonte: um novo trabalho, um payout de roubo, um bug. Compare as datas.
- Baixe a fonte antes de adicionar sumidouros.
- Adicione ou aumente um sumidouro que toque em todos (combustível, impostos).
- Para um exploit fora de controle, corrija primeiro e depois lide com o dinheiro, porque remover dinheiro enquanto o vazamento está aberto é sem sentido.
Limpar saldos é um último recurso, porque os jogadores perdem a confiança. Opções mais suaves são impostos em saldos grandes, um corte de juros bancários, ou itens de luxo por tempo limitado que absorvem dinheiro.
Lista de verificação
| Sintoma | Solução |
|---|---|
| Tudo acessível em um dia | Diminua o salário e o dinheiro inicial |
| Total de dinheiro sobe toda semana | Diminua fontes, adicione sumidouros que toquem em todos |
| Um personagem tem dinheiro absurdo | Procure um exploit, verifique os logs |
| Preços parecem sem sentido | Precifique em horas de trabalho |
| Dinheiro preto muito forte | Adicione uma perda ao lavá-lo |
| Nenhum dado para decidir | Tire snapshots dos totais diariamente |
Respostas rápidas
Como sei se minha economia está inflacionando?
Some o dinheiro de todos os personagens no banco de dados em um cronograma, por exemplo uma vez por dia, e compare os números. Se o total continuar subindo mais rápido do que sua contagem de jogadores, mais dinheiro está entrando do que saindo.
O que é um sumidouro de dinheiro?
Qualquer coisa que tira dinheiro do jogo para sempre: reparos, combustível, impostos, aluguel, licenças, multas. Sem sumidouros, o dinheiro apenas se acumula.
Onde mudo o salário e o dinheiro inicial?
Na configuração principal de seu framework. ESX e QBCore cada um tem configurações para o intervalo de salário e para o dinheiro que um novo personagem começa, e o pagamento do trabalho é definido por grau.
Scripts sem esse problema
Shop CreatorMonte uma loja em menos de um minuto — donos, funcionários, cofres e assaltos inclusos.Ver script →
Pawn Shop AppUma casa de penhores entre jogadores dentro do lb-phone.Ver script →
Crypto MiningCompre um galpão, monte rigs peça por peça e minere moedas num mercado que se mexe.Ver script →