AI Core
Référence de l’APIAI Core : exports serveur

Métadonnées et réglages

Lire et écrire le sac de métadonnées d’un personnage, lire l’identité visuelle du serveur et la liste des scripts obsolètes.

GetMeta

Une valeur des métadonnées d’un personnage : un sac libre de valeurs nommées enregistré avec le personnage. Les scripts ESX et QB y gardent leurs données de personnage supplémentaires via le pont (hunger, thirst, armor, isdead...), et votre script peut y garder de petites valeurs à lui.

Côté : Serveur · Attend : non · Lib : aucune

Signature
GetMeta(src: number, key: string): unknown
Lua
local value = exports['ai-core']:GetMeta(source, 'myscript_xp') -- n’importe quelle valeur ou nil

Paramètres

Prop

Type

Retour

unknown : la valeur stockée (nombre, texte, booléen, liste ou table), telle qu’elle a été définie. null quand la clé n’est pas définie ou que le joueur n’a pas de personnage chargé. Vérifiez le type avant de l’utiliser : la valeur a pu être écrite par un autre script ou par une ancienne version du vôtre.

Exemple

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

Stocke une valeur dans les métadonnées d’un personnage. La valeur est enregistrée lors du prochain enregistrement périodique du personnage (réglage du panneau, toutes les 5 minutes par défaut), à la déconnexion et à l’arrêt du serveur.

Côté : Serveur · Attend : non · Lib : aucune

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

Paramètres

Prop

Type

Retour

boolean : true quand la valeur a été stockée (ou supprimée). false quand le joueur n’a pas de personnage chargé ou que key n’est pas un texte.

Le changement atteint tout de suite le propre jeu du joueur et déclenche l’événement serveur ai-core:metaChanged (src, key, value).

Exemple

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

Les métadonnées servent aux petites valeurs qui appartiennent à un personnage (un niveau, un drapeau, quelques nombres). Les listes qui grandissent (un historique, chaque prise) et tout ce que vous recherchez ou comptez entre personnages vont dans votre propre table de base de données. Les valeurs des métadonnées ne sont pas enregistrées tout de suite : l’argent et les objets n’y vont jamais.

GetBranding

Le nom, le sous-titre, les slogans et l’image de fond du serveur depuis les réglages General du panneau. Utilisez-le pour afficher le même nom sur vos propres menus plein écran.

Côté : Serveur · Attend : non · Lib : aucune

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

Paramètres

Aucun.

Retour

Branding : une copie avec name, subtitle, tagline, taglineSub et background ("skyline" ou "wet-drive", une image dans ai-core). Voir Branding.

Exemple

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

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

// L’écran de bienvenue affiche le nom du serveur.
onClientCallback("myscript:welcome", () => {
  const { name, tagline } = core.GetBranding();
  return { ok: true, name, tagline };
});

GetUpdates

Les scripts qui ont une release GitHub plus récente que la version en cours, d’après la vérification des mises à jour d’ai-core. ai-core interroge GitHub au plus une fois toutes les 6 heures par script (et au démarrage d’un script) pour chaque script démarré qui a une ligne repository dans son fxmanifest.lua, sauf si Check for updates (vérifier les mises à jour) est désactivé dans le panneau.

Côté : Serveur · Attend : non · Lib : aucune

Signature
GetUpdates(): UpdateInfo[]
Lua
local outdated = exports['ai-core']:GetUpdates() -- liste de tables

Paramètres

Aucun.

Retour

UpdateInfo[] : une entrée par script obsolète avec resource, label (le nom sous lequel on le connaît), current (version en cours), latest (release la plus récente) et url (la page de la release). Une liste vide quand tout est à jour ou que rien n’a encore été vérifié (la première vérification a lieu 15 secondes après le démarrage). Voir UpdateInfo.

Exemple

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

Sur cette page