AI Core
Référence de l’API

Lib : shared et fivem

@aicore-fivem/lib/shared (sans natives, utilisable partout) et /fivem (natives des deux côtés) - chaque utilitaire avec sa signature.

/shared n’appelle jamais de native : utilisez-le dans le code NUI, dans resource/common/ et des deux côtés. /fivem appelle des natives qui existent des deux côtés ; les entrées client et serveur le réexportent.

TypeScript
import { readInt, fail, groupDigits } from "@aicore-fivem/lib/shared";
import { resourceExport, every } from "@aicore-fivem/lib/fivem";

Exports entre ressources (/fivem)

UtilitaireRôle
registerExport(name, handler): voidEnregistre un export, aussi sous son jumeau à la première lettre de casse inversée (GetItems et getItems).
resourceExport(resource): CitizenExports[K]Accès typé aux exports d’une autre ressource ; un handle par fichier.
optionalExport(resource): CitizenExports[K] | nullLa même chose pour une ressource qui peut ne pas tourner (null tant qu’elle est arrêtée).
callExport(resource, name, ...args): unknownUn export d’un script sans types ici ; analysez le résultat.
provideExport(resource, name, fn): voidRépond à exports["<resource>"].<name> pour un nom dont cette ressource fait provide.
isResourceStarted(resource): booleanSi une ressource tourne en ce moment.

Ressources, planification, état (/fivem)

UtilitaireRôle
every(ms, fn, { active?, name? }): JobL’unique planificateur de la ressource : 0 = chaque frame. job.set(active), job.stop(), job.running.
caller(): stringLa ressource qui appelle cet export (celle-ci en local).
onStop(fn): voidS’exécute quand cette ressource s’arrête.
new ByResource({ onDrop? }): set(key, value, owner = caller()), get, delete, ownerOf, values, entriesEntrées par ressource appelante, retirées quand cette ressource s’arrête.
new Reasons(): set(reason, on, owner?), has, any(), onChangeUn état qui tient tant qu’un motif est posé (HUD masqué, synchro en pause).
plateOf(vehicle): stringLa plaque d’un véhicule, sans espaces autour et en majuscules.
createLocale(), loadLocaleTexts(resource?)Les textes de langue de la ressource (t(key, ...args)), et la table complète pour une NUI.
new EntityState(key, parse), new PlayerState(key, parse), new GlobalKey(key, parse), new GlobalGroup(prefix, parse)Lecteurs de state bags : get, onChange ; EntityState.getByNetId, GlobalGroup.ids().
stateNumber, stateBoolean, stateStringParseurs pour les classes d’état.
TypeScript
const fuel = new EntityState("fuel", stateNumber);
const job = every(1000, () => {
  if (cache.vehicle) updateGauge(fuel.get(cache.vehicle) ?? 100);
});

Actions et entrées (/shared)

UtilitaireRôle
fail("LANG_KEY")Un refus { ok: false, error } pour un ActionResult.
isActionOk(reply), replyError(reply, fallback)Lire une réponse à la main.
readInt(value, min, max), readFinite(value), readId(value), readText(value, max)Lecteurs stricts pour les valeurs client ; null refuse (NaN, Infinity, fractions).
readVec3(value), readVec4(value)Points venant du client ou d’un export (objets ou vecteurs Lua) ; null sur une mauvaise valeur.
oneArg(read)Un parseur args à une valeur pour les callbacks : { args: oneArg(readId) }.
asArgs(value)Une valeur analysée comme résultat args.
num, int, bool, str, record, vec4 (value, fallback, ...)Lecteurs de contenu du panneau avec valeur de repli.
isRecord(value)Vérifie un objet simple.

Nombres, texte, positions (/shared)

UtilitaireRôle
round(value, decimals = 0), groupDigits(value, separator = ",")1,234,567.
formatWeight(grams)750 g, 1.5 kg.
normalizePlate(text)Une plaque comme clé ou pour comparer.
stripGameText(text)HTML et codes ~r~ retirés du texte d’un autre script.
formatText(template, args)Marqueurs {0}.
new LangTexts(): set, translate, subscribe, snapshotLes textes de langue d’une page NUI.
logSafe(text, max), previewJson(value, max)Textes et données non fiables rendus sûrs pour la console.
createLogger(resource)info, warn, error précédés du nom de la ressource.
distance(a, b), flatDistance(a, b), headingTo(from, to), nearestOf(items, point, pos, max?)Calcul vectoriel (Vec3).
randomInt(min, max), pickRandom(list), rollChance(percent)Utilitaires aléatoires.
sleep(ms), waitFor(check, timeoutMs = 10000, intervalMs = 0)Attente.
new ServerClock(): sync(serverNow), now(), toLocal(serverTime)L’horloge du serveur sur un client, pour les comptes à rebours.
gridCell(x, y, size), cellKey(cx, cy)Cellules de grille pour AreaStream.
zoneContains(shape, x, y, z), zoneBounds(shape), polyFromCorners(corners, height)Géométrie des zones.
vehicleTypeOfClass(vehicleClass)Une classe de véhicule vers le type de CreateVehicleServerSetter.
toVehicleProps(value), toVehicleSetup(value)Apparence d’un véhicule depuis une entrée non fiable, ou null.

Données du panneau (/shared)

UtilitaireRôle
spec.int(min, max, optional?), spec.num(min, max, optional?)Constructeurs de spécifications de données pour schema.ts.
readAccess(record), ACCESS_FIELDS, accessFields(), isPublic(rule), decideAccess(...)Qui peut utiliser un lieu : métiers, gangs, grades, en service.
readBlipStyle(value, fallback), BLIP_STYLE_FIELDSUn style de blip du panneau.
PLACE_PED_SPEC, placePedFields(path?), readPlacePed(value)Le PNJ d’un lieu dans le panneau.
readRecords(raw, readOne)Un fichier d’enregistrements analysé une fois.
new RecordObjects(source, file, readOne | records, build): rebuild(key), rebuildAll()Points, blips et peds d’un fichier d’enregistrements ; un enregistrement modifié ne reconstruit que ses propres objets.
withoutSchemaKey(value)Un fichier de données sans sa clé $schema.

Sur cette page