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.
import { readInt, fail, groupDigits } from "@aicore-fivem/lib/shared";
import { resourceExport, every } from "@aicore-fivem/lib/fivem";Exports entre ressources (/fivem)
| Utilitaire | Rôle |
|---|---|
registerExport(name, handler): void | Enregistre 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] | null | La même chose pour une ressource qui peut ne pas tourner (null tant qu’elle est arrêtée). |
callExport(resource, name, ...args): unknown | Un export d’un script sans types ici ; analysez le résultat. |
provideExport(resource, name, fn): void | Répond à exports["<resource>"].<name> pour un nom dont cette ressource fait provide. |
isResourceStarted(resource): boolean | Si une ressource tourne en ce moment. |
Ressources, planification, état (/fivem)
| Utilitaire | Rôle |
|---|---|
every(ms, fn, { active?, name? }): Job | L’unique planificateur de la ressource : 0 = chaque frame. job.set(active), job.stop(), job.running. |
caller(): string | La ressource qui appelle cet export (celle-ci en local). |
onStop(fn): void | S’exécute quand cette ressource s’arrête. |
new ByResource({ onDrop? }): set(key, value, owner = caller()), get, delete, ownerOf, values, entries | Entrées par ressource appelante, retirées quand cette ressource s’arrête. |
new Reasons(): set(reason, on, owner?), has, any(), onChange | Un état qui tient tant qu’un motif est posé (HUD masqué, synchro en pause). |
plateOf(vehicle): string | La 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, stateString | Parseurs pour les classes d’état. |
const fuel = new EntityState("fuel", stateNumber);
const job = every(1000, () => {
if (cache.vehicle) updateGauge(fuel.get(cache.vehicle) ?? 100);
});Actions et entrées (/shared)
| Utilitaire | Rô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)
| Utilitaire | Rô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, snapshot | Les 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)
| Utilitaire | Rô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_FIELDS | Un 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. |