Contenido generado con IA — puede contener errores.

El agente

Economía

Dónde encuentra el agente dinero en movimiento — ExyliaLib, Vault, VaultUnlocked, PlayerPoints, ExcellentEconomy y la API —, cómo cuenta cada cambio una sola vez, y qué hace con ello la página Economía.

El informe de economía responde a una pregunta: ¿se acumula el dinero más rápido de lo que la gente juega? Para responderla el agente necesita dos cosas de cada moneda de un servidor: qué se movió (dinero creado y destruido, y por qué) y qué existe (la masa monetaria). Esta página cuenta de dónde saca las dos, y la página del panel que las lee.

La economía es solo de Paper y Spigot; un proxy no mueve dinero. Todo lo de aquí se descarta en el agente cuando el módulo Economía está desactivado.

Las fuentes

Cada cambio de saldo se cuenta una vez, desde la primera fuente que lo ve:

FuenteMonedasMotivo registrado
El evento de cambio de saldo de ExyliaLibCada moneda de ExyliaLib, por su id.El propio motivo de la transacción, como shop:sell o pay:tax.
Un proxy transparente delante de Vaultvaultvault: y el plugin que llamó a Vault, como vault:shopguiplus.
Lo mismo delante de VaultUnlockedvault para la moneda por defecto, si no la moneda indicadavault: y el plugin que lo llamó.
El evento de cambio de PlayerPointsplayerpointsplayerpoints
El evento de cambio de ExcellentEconomyCada moneda por su id; la principal es vault mientras ExcellentEconomy sea la economía de Vault.excellenteconomy
ExyliaAnalytics.economy(...)La que indique el plugin.El que diga el plugin.

Los ids de moneda se pasan a minúsculas y se cortan a 32 caracteres, los motivos a 64. Un cambio de cero se ignora.

El proxy de Vault

Vault no lanza ningún evento cuando se mueve dinero, así que el agente se pone delante: registra su propia economía con la prioridad más alta, reenvía cada llamada intacta a la real y, cuando un ingreso o una retirada ha salido bien, la registra con el plugin que hizo la llamada — el primer plugin de la pila de llamadas que no es Vault, VaultUnlocked, ExyliaLib ni el agente. Nada de lo que hace puede cambiar el resultado de un pago ni hacer que falle.

El proxy no se instala cuando:

  • vault-wrapper: false en config.yml;
  • ExyliaSurvivalCore es la economía de Vault — ya informa de cada cambio a través de ExyliaLib;
  • el plugin de economía se registró antes con la prioridad más alta, así que el proxy no se usaría.

/analytics status dice cuál de estos casos aplica en las líneas Vault y VaultUnlocked.

Plugins que se quedan con la economía que encontraron al arrancar

El proxy se instala en el primer tick del servidor, cuando ya se han activado todos los plugins. Un plugin que buscó la economía de Vault al activarse y se la guardó llama directamente a la economía real, y sus pagos no se ven. El agente vuelve a comprobarlo cada vez que una economía se registra o se da de baja.

Contar cada cambio una vez

Un servidor puede tener varias de estas a la vez, y se llaman entre sí: la moneda vault de ExyliaLib pasa por Vault, VaultUnlocked responde a través de su propia interfaz, y una economía lanza su propio evento mientras Vault mueve el dinero. Las reglas:

  • Un cambio que ocurre dentro de una llamada a Vault a través del proxy es el mismo cambio: cada evento lanzado durante ella se ignora, y se registra la llamada exterior a Vault.
  • La moneda vault de ExyliaLib se descarta cuando Vault ya está cubierto — por el proxy, por ExyliaSurvivalCore o por el propio evento de ExcellentEconomy.
  • La moneda points de ExyliaLib se descarta cuando PlayerPoints está enganchado.

Qué existe: masa monetaria y saldos

Los cambios por sí solos no dicen cuánto dinero hay. Tres fuentes sí:

FuenteQué informaCuándo
ExyliaAnalytics.supply(...)La masa monetaria exacta: todos los saldos sumados y cuántas cuentas tienen dinero, por ámbito de almacenamiento.Cuando el plugin la envía.
Lectura de saldosEl saldo de un jugador: a través de Vault (salvo que lo sirva ExyliaSurvivalCore), PlayerPoints, y cada moneda de ExcellentEconomy distinta de la que se lee por Vault. Se lee fuera del hilo principal.Al entrar y al salir, como mucho una vez por jugador cada 5 minutos.
Lo que se tiene en ExyliaLibLo que un jugador tiene en cada moneda de ExyliaLib de la que no informa ya ninguna fuente anterior.Al entrar, al salir y cada 10 minutos para todos los conectados.

Lo que se tiene importa para las monedas que cambian sin transacción: una barra de experiencia crece por un mob, un objeto-moneda se recoge del suelo. Para esas, contar lo que lleva la gente es la única masa monetaria que existe. ExyliaLib hace cada recuento en el hilo dueño del jugador, y un recuento que llega después de que el jugador se fue — que daría cero porque el inventario ya no está — se descarta en vez de registrarse como un bolsillo vacío. Hace falta un ExyliaLib lo bastante reciente para contar fuera del hilo del jugador; con uno más antiguo el estado dice ExyliaLib (flows only).

Cómo se envía

Los cambios se suman por jugador, moneda y motivo y se envían una vez por minuto como un economy.flow cada uno: cuántos cambios, el total ganado, el total gastado y el saldo tras el último. Una varita de venta que se dispara mil veces por minuto cuesta un evento. Como mucho se guardan 50.000 de esas claves a la vez; por encima, las nuevas esperan al minuto siguiente. Al apagarse, el último minuto parcial se envía con el resto.

La página Economía

Elige una moneda; la lista muestra cuántos jugadores tiene cada una. El filtro de servidor elige un servidor de juego o todos.

SecciónMuestra
KPIsMasa monetaria, masa por jugador activo, dinero creado y destruido, y el ratio de sumidero.
VeredictoLa masa por jugador activo de las últimas 8 semanas completas con una recta ajustada: Inflación por encima de +5% a la semana, Deflación por debajo de −5%, si no Estable. Necesita al menos 3 semanas de datos.
Masa monetariaTodos los saldos sumados, por periodo.
Masa por jugador activoMasa monetaria ÷ jugadores activos en los últimos 30 días. Si sube más rápido que el juego, hay inflación.
Dinero creado y destruidoPor periodo, lo que creó cada motivo (sobre la línea) y lo que destruyó (debajo).
Fuentes y sumiderosCada motivo por el que se movió dinero, de mayor a menor neto: entrado, salido, neto, proporción, jugadores, y si es fuente, sumidero o transferencia. Los motivos de Vault muestran el plugin que llamó, marcados vía Vault.
Quién tiene el dineroSaldo mediano, Gini, la parte del 1% y el 10% más ricos, y el dinero ocioso — en manos de jugadores ausentes 30 días o más.
Progreso de los nuevosSaldo mediano de los jugadores nuevos 1, 7 y 30 días después de su primera sesión.

Definiciones

MétricaDefinición
Masa monetariaPor periodo, el último informe supply de cada ámbito de almacenamiento, sumado entre ámbitos. Un periodo sin informe queda vacío, nunca se arrastra.
Masa monetaria estimadaPara una moneda de la que nadie informa la masa: la suma del último saldo conocido de cada jugador (por debajo de cero cuenta como cero), arrastrada entre cambios. Faltan los jugadores no vistos desde que empezó el seguimiento, así que se queda por debajo de la real; la página la marca como estimada con el número de jugadores que tiene detrás.
Neto de un motivoDinero entrado − dinero salido de un motivo, entre todos los jugadores. Un pago entre jugadores se anula dentro de su motivo.
Creado / destruidoLos netos de motivo positivos / negativos.
Ratio de sumideroDestruido ÷ creado. Por debajo de 1 el dinero se acumula; por encima se drena.
Fuente, sumidero, transferenciaUna transferencia cuando el neto queda dentro del 5% del mayor de su bruto entrado y salido; si no, una fuente (positivo) o un sumidero (negativo).
Último saldo conocidoEl saldo más reciente de un jugador, de un cambio o de una lectura de saldo.
Gini0 cuando todos tienen lo mismo, 1 cuando un jugador lo tiene todo.
Economías compartidas o separadas

Cada servidor envía los mismos ids de moneda (vault, playerpoints), compartan una economía o tenga cada uno la suya. Sobre todos los servidores, el saldo de un jugador es el último que se informó en cualquiera — correcto para una economía compartida, y uno de dos saldos para economías separadas. Lee las economías separadas servidor a servidor.

¿Falta algo en esta página? Dínoslo en Discord