AI Core
Referencia de la APIAI Core: exports de servidor

Metadatos y ajustes

Lee y escribe la bolsa de metadatos de un personaje, lee la marca del servidor y la lista de scripts desactualizados.

GetMeta

Un valor de los metadatos de un personaje: una bolsa libre de valores con nombre que se guarda con el personaje. Los scripts de ESX y QB guardan ahí sus datos extra de personaje a través del puente (hunger, thirst, armor, isdead...), y tu script puede guardar valores pequeños propios.

Lado: Servidor · Espera: no · Lib: ninguna

Firma
GetMeta(src: number, key: string): unknown
Lua
local value = exports['ai-core']:GetMeta(source, 'myscript_xp') -- cualquier valor o nil

Parámetros

Prop

Type

Devuelve

unknown: el valor guardado (número, texto, booleano, lista o tabla), tal como se puso. null cuando la clave no está puesta o el jugador no tiene un personaje cargado. Comprueba el tipo antes de usarlo: el valor puede haberlo escrito otro script o una versión anterior del tuyo.

Ejemplo

import { resourceExport } from "@aicore-fivem/lib/server";

const core = resourceExport("ai-core");

/** The character's fishing level, 1 when none was stored yet. */
export function fishingLevel(source: number): number {
  const value = core.GetMeta(source, "myscript_level");
  return typeof value === "number" && Number.isInteger(value) && value > 0 ? value : 1;
}

SetMeta

Guarda un valor en los metadatos de un personaje. El valor se guarda con el siguiente guardado periódico del personaje (ajuste del panel, cada 5 minutos por defecto), al cerrar sesión y cuando el servidor se detiene.

Lado: Servidor · Espera: no · Lib: ninguna

Firma
SetMeta(src: number, key: string, value: unknown): boolean
Lua
local ok = exports['ai-core']:SetMeta(source, 'myscript_level', 3)

Parámetros

Prop

Type

Devuelve

boolean: true cuando se guardó (o quitó) el valor. false cuando el jugador no tiene un personaje cargado o key no es un texto.

El cambio llega al momento al propio juego del jugador y dispara el evento de servidor ai-core:metaChanged (src, key, value).

Ejemplo

import { resourceExport } from "@aicore-fivem/lib/server";

const core = resourceExport("ai-core");

/** One level up after enough catches. */
export function levelUp(source: number): void {
  const level = core.GetMeta(source, "myscript_level");
  const next = (typeof level === "number" ? level : 1) + 1;
  core.SetMeta(source, "myscript_level", next);
}

Los metadatos son para valores pequeños que pertenecen a un personaje (un nivel, una marca, unos pocos números). Las listas que crecen (un historial, cada captura) y todo lo que buscas o cuentas entre personajes van en tu propia tabla de la base de datos. Los valores de los metadatos no se guardan al momento: el dinero y los objetos nunca van ahí.

GetBranding

El nombre, el subtítulo, los eslóganes y la imagen de fondo del servidor, de los ajustes General del panel. Úsalo para mostrar el mismo nombre en tus propios menús a pantalla completa.

Lado: Servidor · Espera: no · Lib: ninguna

Firma
GetBranding(): Branding
Lua
local brand = exports['ai-core']:GetBranding() -- table

Parámetros

Ninguno.

Devuelve

Branding: una copia con name, subtitle, tagline, taglineSub y background ("skyline" o "wet-drive", una imagen de ai-core). Consulta Branding.

Ejemplo

import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";

const core = resourceExport("ai-core");

// La pantalla de bienvenida muestra el nombre del servidor.
onClientCallback("myscript:welcome", () => {
  const { name, tagline } = core.GetBranding();
  return { ok: true, name, tagline };
});

GetUpdates

Los scripts con una release de GitHub más nueva que la versión en marcha, según la comprobación de actualizaciones de ai-core. ai-core pregunta a GitHub como mucho una vez cada 6 horas por script (y cuando se inicia un script) por cada script iniciado con una línea repository en su fxmanifest.lua, salvo que Check for updates (buscar actualizaciones) esté desactivado en el panel.

Lado: Servidor · Espera: no · Lib: ninguna

Firma
GetUpdates(): UpdateInfo[]
Lua
local outdated = exports['ai-core']:GetUpdates() -- lista de tablas

Parámetros

Ninguno.

Devuelve

UpdateInfo[]: una entrada por script desactualizado con resource, label (el nombre por el que se conoce), current (versión en marcha), latest (release más reciente) y url (la página de la release). Una lista vacía cuando todo está al día o aún no se comprobó nada (la primera comprobación se ejecuta 15 segundos después de iniciar). Consulta UpdateInfo.

Ejemplo

import { addCommand, resourceExport } from "@aicore-fivem/lib/server";

const core = resourceExport("ai-core");

addCommand("outdated", { help: "Lists outdated scripts", restricted: true }, () => {
  for (const u of core.GetUpdates()) console.log(`${u.label}: ${u.current} -> ${u.latest} (${u.url})`);
});

En esta página