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:

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;

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:

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
);

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

  1. Encontre a fonte: um novo trabalho, um payout de roubo, um bug. Compare as datas.
  2. Baixe a fonte antes de adicionar sumidouros.
  3. Adicione ou aumente um sumidouro que toque em todos (combustível, impostos).
  4. 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 →

Continue lendo