Balance de economía de servidor FiveM: salarios, sumideros de dinero e inflación
Cómo equilibrar una economía de servidor FiveM: salarios, dinero de inicio, precios, sumideros de dinero como reparaciones, combustible, impuestos y vivienda, dinero sucio, y SQL para vigilar la inflación.
El síntoma: los jugadores nuevos compran todo en un día, los precios dejan de significar algo, y los jugadores más ricos tienen más dinero que lo que todo el catálogo de la tienda cuesta.
Una economía es dos flujos: dinero entrando en el juego (grifos) y dinero saliendo de él (sumideros). Cuando los grifos ganan lo suficiente, obtienes inflación. Este artículo muestra de dónde viene el dinero, cómo sacarlo de nuevo, y cómo medirlo con la base de datos.
Grifos: por dónde entra el dinero
Lista cada fuente antes de cambiar cualquier número:
- Salarios: un pago regular por trabajo y grado, ya sea que el jugador trabaje o se quede quieto.
- Dinero de inicio: lo que recibe un nuevo personaje.
- Recompensas de trabajo y actividad: entregas, misiones, robos, vendiendo objetos a NPCs o una casa de empeños.
- Comandos de admin y regalos: dinero que das a mano.
Los salarios son el grifo más silencioso, porque se ejecutan en un temporizador. En QBCore el intervalo de salario y los valores de efectivo y banco de inicio viven en la configuración principal; en ESX Legacy el intervalo y las cuentas de inicio también están en la configuración principal, y la cantidad proviene del grado del trabajo. Encuéntralos en tu versión en lugar de adivinar, y lee el pago del grado en la configuración del trabajo (ESX, QBCore).
Consejo: muchos servidores pagan un salario alto para atraer jugadores, luego se preguntan por qué el dinero no vale nada. Un salario bajo con recompensas de actividad reales mantiene a los jugadores haciendo algo.
Establecer precios
Ancla todo a un número: lo que un jugador gana en una hora de trabajo normal. Luego precio las cosas en horas:
| Objeto | Precio razonable |
|---|---|
| Un auto básico | Varias horas de trabajo |
| Un auto bueno | Un día o dos de juego |
| Comida y bebida | Minutos de trabajo |
| Una casa o apartamento | Muchas horas, con costos continuos |
No necesitas valores exactos. Necesitas un orden: las cosas baratas son baratas, los objetos de estado toman tiempo real. Revisite después de la primera semana con datos reales.
Sumideros de dinero
Un sumidero saca dinero y no devuelve nada. Los buenos también añaden gameplay:
- Reparaciones: el mecánico cobra, o el jugador paga en un taller. Ver el trabajo de mecánico.
- Combustible: un pequeño costo recurrente que cada conductor paga.
- Impuestos: en vehículos, propiedades, compras de tienda o ganancias de empresa.
- Vivienda: renta, servicios o un precio de compra. Ver vivienda y apartamentos.
- Licencias y multas: licencia de conducir, licencia de armas, multas de policía.
- Seguro e impuesto de impugnación para vehículos.
No exageres uno de ellos. Un pequeño costo que sucede a menudo es mejor que un costo enorme que se sienta como un castigo.
Efectivo, banco y dinero sucio
El dinero existe en varias cuentas, que importa cuando mides. El efectivo y el banco son dinero normal. El dinero sucio (dinero sucio) es una cuenta u objeto separado, generalmente ganado de actividad ilegal y lavado en dinero limpio. Mantenlo bajo control con una tasa de conversión, así vale menos que dinero limpio, y ver efectivo, banco y dinero sucio para cómo se almacena y gasta cada tipo.
Vigilando la inflación con consultas
No necesitas un panel. Una consulta en la tabla de personajes, ejecutada diariamente, muestra la tendencia. El dinero se almacena como JSON en una columna, así que extrae los 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;Comprueba los nombres de columna en tu propia base de datos primero, porque algunos servidores los personalizan. Almacena el resultado en una pequeña tabla con una fecha, así puedes gráficarlo más tarde:
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
);Otras dos consultas valen la pena ejecutar de vez en cuando: los diez personajes más ricos (un valor atípico enorme señala un exploit), y el dinero promedio por personaje. Compara estos con cuántos personajes están activos, ya que un total dividido por jugadores activos es un número más honesto que el total solo. Para ayuda con consultas desde Lua, ver consultas oxmysql.
Qué hacer cuando se infla
- Encuentra el grifo: un nuevo trabajo, un pago de robo, un bug. Compara las fechas.
- Baja el grifo antes de añadir sumideros.
- Añade o sube un sumidero que toque a todos (combustible, impuestos).
- Para un exploit desbocado, arréglalo primero y luego trata el dinero, porque remover dinero mientras la fuga está abierta es inútil.
Limpiar saldos es un último recurso, porque los jugadores pierden confianza. Opciones más suaves son impuestos en saldos grandes, un corte de interés bancario, u objetos de lujo de tiempo limitado que absorban dinero.
Checklist
| Síntoma | Solución |
|---|---|
| Todo es asequible en un día | Baja el salario y el dinero de inicio |
| El dinero total sube cada semana | Baja grifos, añade sumideros que toquen a todos |
| Un personaje tiene dinero absurdo | Busca un exploit, comprueba los registros |
| Los precios se sienten sin significado | Precio en horas de trabajo |
| Dinero sucio demasiado fuerte | Añade una pérdida al lavarlo |
| Sin datos para decidir | Captura las totales diariamente |
Respuestas rápidas
¿Cómo sé si mi economía está inflándose?
Suma el dinero de todos los personajes en la base de datos en un cronograma, por ejemplo una vez al día, y compara los números. Si el total sigue subiendo más rápido que tu conteo de jugadores, más dinero entra que sale.
¿Qué es un sumidero de dinero?
Cualquier cosa que saca dinero del juego para siempre: reparaciones, combustible, impuestos, renta, licencias, multas. Sin sumideros, el dinero solo se acumula.
¿Dónde cambio el salario y el dinero de inicio?
En la configuración principal de tu framework. ESX y QBCore cada uno tienen configuraciones para el intervalo de salario y para el dinero que comienza un nuevo personaje, y el pago del trabajo se define por grado.


