AI Core
Référence de l’API

Types partagés

Chaque type vers lequel pointent les pages de l’API, avec chaque champ, son type et une valeur d’exemple.

Les pages de l’API écrivent les types par leur nom (Vec3, ActionResult, InventoryRef...). Cette page explique chacun une seule fois : ses champs, ce que signifie chaque champ, et une valeur d’exemple.

D’où vient un type :

PackageImportTypes
@aicore-fivem/sharedimport type { AiPlayerData } from "@aicore-fivem/shared";Tout ce qui est sur cette page, sauf indication contraire dans le titre.
@aicore-fivem/lib/sharedimport type { Vec3 } from "@aicore-fivem/lib/shared";Vec3, Vec4, AccessRule, BlipStyle, ZoneShape, VehicleProps, VehicleSetup, PlacePed.
@aicore-fivem/lib/clientimport type { ProgressOptions } from "@aicore-fivem/lib/client";ProgressOptions.
@aicore-fivem/lib/serverimport type { ProgressForOptions } from "@aicore-fivem/lib/server";ProgressForOptions.

Lua n’a pas de types à l’exécution. Une table Lua avec les mêmes clés est la même valeur : { x = 1.0, y = 2.0, z = 3.0 } est un Vec3. Les tableaux sont des listes Lua ({ 'police', 'sheriff' }), null est nil. Voir Lib pour Lua pour les vecteurs.

Positions

Vec3

Un point dans le monde, en mètres. Dans GTA, x est l’est, y le nord, z le haut.

Prop

Type

Exemple
const counter: Vec3 = { x: 25.7, y: -1347.3, z: 29.5 };
Lua
local counter = vector3(25.7, -1347.3, 29.5) -- ou { x = 25.7, y = -1347.3, z = 29.5 }

Vec4

Un point avec une orientation : là où se tient un ped ou apparaît un véhicule, et la direction vers laquelle il regarde. Les champs vec4 du panneau et l’outil de point du panneau stockent cette forme.

Prop

Type

Exemple
const spawn: Vec4 = { x: -42.1, y: -1098.4, z: 26.4, heading: 158.0 };

Un vector4 Lua appelle l’orientation w. Les lecteurs de la lib (readVec4) acceptent à la fois heading et w.

ZoneShape

Une zone dans le monde. Utilisée par les Zones côté client et par les vérifications de zone côté serveur (géométrie des zones). C’est l’une de trois formes, choisie par type.

Sphere (une boule autour d’un point) :

Prop

Type

Cylinder (un cercle au sol, qui s’étend vers le haut et vers le bas) :

Prop

Type

Poly (un polygone au sol entre deux hauteurs) :

Prop

Type

Exemple
const yard: ZoneShape = { type: "sphere", center: { x: 440.1, y: -981.2, z: 30.7 }, radius: 25 };
const lot: ZoneShape = {
  type: "poly",
  points: [ { x: 210, y: -810 }, { x: 240, y: -800 }, { x: 230, y: -770 }, { x: 200, y: -780 } ],
  minZ: 28,
  maxZ: 36,
};

Résultats

ActionResult

Ce que chaque action serveur répond à un client : soit un succès, soit une clé de langue que le client affiche comme raison. Des champs supplémentaires peuvent accompagner la branche de succès (ActionResult<{ id: number }>). Le nouvel état lui-même ne voyage jamais dans la réponse : il arrive sous forme de delta.

Succès :

Prop

Type

Refus :

Prop

Type

Exemple
const done: ActionResult = { ok: true };
const created: ActionResult<{ id: number }> = { ok: true, id: 42 };
const refused: ActionResult = { ok: false, error: "NOT_ENOUGH_MONEY" };
Lua
return { ok = true }
return aiLib.fail('NOT_ENOUGH_MONEY') -- { ok = false, error = 'NOT_ENOUGH_MONEY' }

Construisez les refus avec fail ; lisez les réponses avec isActionOk et replyError.

Joueurs et personnages

AiPlayerData

Les données du joueur qu’ai-core pousse vers le propre client d’un joueur : un instantané complet au chargement du personnage, puis seulement la clé qui a changé. Aussi renvoyées par l’export GetPlayerData des deux côtés. D’autres pages peuvent les appeler « données du joueur ».

Prop

Type

Exemple
const data: AiPlayerData = {
  character: { id: 12, citizenid: "AB12CD34", slot: 1, firstname: "Jane", lastname: "Doe", birthdate: "1994-05-12", sex: "female", nationality: "American" },
  money: { cash: 500, bank: 5000, black_money: 0, crypto: 0 },
  jobs: [{ job: "police", grade: 2 }],
  duty: "police",
  job: { job: "police", grade: 2 },
  gangs: [],
  activeGang: null,
  metadata: { hunger: 80, thirst: 75 },
};

CharacterInfo

Un personnage tel que le voient les autres ressources (le « character » de GetCharacter, de playerLoaded et d’AiPlayerData.character).

Prop

Type

Exemple
const character: CharacterInfo = {
  id: 12, citizenid: "AB12CD34", slot: 1,
  firstname: "Jane", lastname: "Doe", birthdate: "1994-05-12",
  sex: "female", nationality: "American",
};

JobMembership

Un métier d’un personnage.

Prop

Type

Exemple
const membership: JobMembership = { job: "police", grade: 2 };

GangMembership

Un gang dont fait partie un personnage.

Prop

Type

Exemple
const membership: GangMembership = { gang: "ballas", grade: 0 };

SpawnPoint

Où et comment un personnage chargé apparaît dans le monde (les données qu’ai-core envoie pour placer le personnage dans le monde).

Prop

Type

Exemple
const spawn: SpawnPoint = { x: -1037.6, y: -2737.9, z: 20.2, heading: 330, model: "mp_f_freemode_01", armour: 0, health: 200 };

Branding

Le nom et l’apparence du serveur sur les menus plein écran (réglages General du panneau ; export GetBranding).

Prop

Type

Exemple
const branding: Branding = { name: "Los Santos RP", subtitle: "Serious roleplay", tagline: "Welcome", taglineSub: "Pick a character", background: "skyline" };

PlayerCache

Les valeurs souvent lues du joueur local, tenues à jour par l’unique observateur d’ai-core (cache de la lib côté client). false signifie « aucun ».

Prop

Type

Exemple
const snapshot: PlayerCache = { ped: 258, playerId: 0, serverId: 7, vehicle: 81922, seat: -1, weapon: false };

UnloadReason

Pourquoi un personnage a été libéré.

ValeurSignification
"dropped"Le joueur a quitté le serveur.
"switch"Le joueur est revenu à l’écran des personnages.

Argent

Noms de comptes

L’argent vit dans des comptes nommés. La liste Accounts du panneau fixe ceux qui existent ; ai-core est livré avec ceux-ci :

NomLibelléMontant de départ
cashCash500
bankBank5000
black_moneyDirty money0
cryptoCrypto0

Un propriétaire de serveur peut ajouter, renommer ou supprimer des comptes dans le panneau : lisez donc la liste avec l’export GetAccountTypes au lieu de la supposer. Quand la liste est vide, ai-core garde un seul compte cash.

Exemple
core.AddMoney(source, "bank", 250, "Paycheck");

AccountTypeDefinition

Un type de compte de la liste Accounts du panneau (GetAccountTypes renvoie Record<string, AccountTypeDefinition>, indexé par nom de compte).

Prop

Type

Exemple
const bank: AccountTypeDefinition = { label: "Bank", start: 5000, allowNegative: false };

MoneyRef

Un côté d’un virement d’argent (TransferMoney) : le compte d’un joueur chargé, ou le compte partagé d’un métier ou d’un gang.

Prop

Type

Exemple
const player: MoneyRef = { source: 7, account: "bank" };
const society: MoneyRef = { owner: "job", id: "mechanic", account: "bank" };

Métiers et gangs

GradeDefinition

Un grade d’un métier ou d’un gang (contenu du panneau).

Prop

Type

Exemple
const grade: GradeDefinition = { label: "Sergeant", salary: 400, boss: false };

JobDefinition

Un métier de la liste Jobs du panneau (GetJobDefinition). Le grade n d’un JobMembership est grades[n].

Prop

Type

Exemple
const police: JobDefinition = {
  label: "Police", type: "leo", defaultDuty: false, listed: false,
  grades: [ { label: "Cadet", salary: 200, boss: false }, { label: "Chief", salary: 900, boss: true } ],
};

GangDefinition

Un gang de la liste Gangs du panneau (GetGangDefinition).

Prop

Type

Exemple
const ballas: GangDefinition = { label: "Ballas", grades: [ { label: "Recruit", salary: 0, boss: false } ] };

AccessRule

Qui peut utiliser un lieu (un magasin, un coffre, un garage) : l’un des jobs ou l’un des gangs. Les deux listes vides signifient tout le monde. Vient de @aicore-fivem/lib/shared ; lisez-le avec readAccess.

Prop

Type

Exemple
const armoury: AccessRule = { jobs: ["police"], gangs: [], grades: { police: 2 }, onDuty: true };

Inventaire

InventoryRef

Sur quel inventaire travaille un appel.

ValeurSignification
numberL’id serveur d’un joueur : le propre inventaire de ce joueur.
stringN’importe quel autre inventaire par son id : un nom de coffre, un id de coffre de véhicule ou de boîte à gants.
Exemple
inventory.addItem(source, "water", 2);          // un joueur
inventory.addItem("police_evidence", "phone", 1); // un coffre

ItemMetadata

Données libres stockées sur une pile d’objets (Record<string, unknown>) : un numéro de série, une durabilité, une note. Chaque inventaire affiche lui-même certaines clés (label, description, image dans la plupart).

Exemple
const metadata: ItemMetadata = { serial: "AB-1029", durability: 100 };

Gardez les métadonnées petites et compatibles JSON (chaînes, nombres, booléens, objets et tableaux simples). Deux piles avec des métadonnées différentes ne s’empilent jamais ensemble.

InventoryStack

Une pile dans un inventaire (GetItems renvoie une liste de celles-ci).

Prop

Type

Exemple
const stack: InventoryStack = { name: "water", label: "Water", count: 3, slot: 4, metadata: {} };

UsedItem

La pile que reçoit un handler d’objet utilisable quand un joueur utilise un objet.

Prop

Type

Exemple
const used: UsedItem = { name: "lockpick", slot: 2, count: 1, metadata: { durability: 80 } };

UsableItemHandler

(source: number, item: UsedItem) => unknown : s’exécute quand un joueur utilise l’objet. Renvoyer false garde l’objet dans les inventaires qui retirent eux-mêmes un objet utilisé (ai-inventory retire la quantité consume de l’objet) ; les autres inventaires suivent leurs propres réglages d’objets.

Exemple
const onUse: UsableItemHandler = (source, item) => {
  if (item.metadata.durability === 0) return false; // le garder
  return true;
};

ItemDefinition

Un objet tel que le définit l’inventaire actif (GetItemDefinition). D’autres pages peuvent l’appeler « objet » ou « définition d’objet ».

Prop

Type

Exemple
const water: ItemDefinition = { name: "water", label: "Water", weight: 500, unique: false, close: true, description: "Fresh water" };

StashDefinition

Un coffre tel qu’ai-core le garde (les arguments de RegisterStash).

Prop

Type

Exemple
const evidence: StashDefinition = { name: "police_evidence", label: "Evidence", slots: 50, maxWeight: 100000, jobs: ["police"] };

ShopProduct

Un produit d’un magasin de script.

Prop

Type

Exemple
const product: ShopProduct = { name: "bandage", price: 50 };

ShopDefinition

Un magasin qu’enregistre un script. Le serveur l’ouvre pour un joueur ; il n’a pas de lieu à lui.

Prop

Type

Exemple
const shop: ShopDefinition = { name: "police_armoury", label: "Armoury", items: [{ name: "bandage", price: 50 }] };

HeldWeapon

L’objet arme que tient le joueur local, tel que le connaît l’inventaire.

Prop

Type

Exemple
const held: HeldWeapon = { name: "WEAPON_PISTOL", label: "Pistol" };

Véhicules

VehicleProps

L’apparence et le tuning d’un véhicule sous forme de données simples : couleurs, mods, extras, livrée, roues, néons, teinte, plaque et état. Vient de @aicore-fivem/lib/shared. Le JSON stocké porte v: 1. Vérifiez les données reçues avec toVehicleProps.

Prop

Type

Exemple
const props: VehicleProps = {
  v: 1, model: 1032823388, plate: "AI 123", plateIndex: 0,
  colors: [12, 12], extraColors: [0, 156], customPrimary: null, customSecondary: null,
  wheelType: 0, windowTint: -1, livery: -1, mods: { 11: 2, 18: 1 }, xenonColor: 255,
  neon: [false, false, false, false], neonColor: [255, 0, 255], tyreSmoke: [255, 255, 255],
  extras: { 1: true }, dirt: 0, engineHealth: 1000, bodyHealth: 1000,
};

VehicleSetup

Ce que reçoit un véhicule tout juste apparu en plus des valeurs par défaut du modèle (le setup de spawnVehicle de la lib, la couleur choisie dans un magasin). Vient de @aicore-fivem/lib/shared. Chaque champ est facultatif. Vérifiez les données reçues avec toVehicleSetup.

Prop

Type

Exemple
const setup: VehicleSetup = { colors: [27, 27], windowTint: 1, engineOn: true };

KeyPurpose

Pourquoi un joueur reçoit la clé d’un véhicule. Les scripts de clés traitent chacun différemment. Toute valeur inconnue compte comme "temporary".

ValeurÀ utiliser quand
"purchase"Le joueur possède maintenant le véhicule (concession, don par un admin) : une nouvelle clé, les anciennes copies cessent de fonctionner.
"garage"Un véhicule possédé sort du stockage : le propriétaire a déjà la clé.
"job"Un véhicule de travail pour le service.
"rental"Un véhicule loué pour la durée de location.
"temporary"Tout le reste de courte durée (apparition par un admin, essai, véhicule de braquage). La valeur par défaut.
Exemple
vehicleKeys.give(source, vehicle, "rental");

VehicleOwner

Qui possède un véhicule d’ai-vehicles.

Prop

Type

Exemple
const owner: VehicleOwner = { type: "character", id: "12" };

OwnedVehicle

Un véhicule possédé tel qu’ai-vehicles le garde (GetVehicle).

Prop

Type

Exemple
const car: OwnedVehicle = {
  id: 7, plate: "AI 123", owner: { type: "character", id: "12" }, model: "sultan",
  props: null, setup: null, state: "garage", garage: "legion", fuel: 100, engine: 1000, body: 1000,
};

Monde

Weather

Un nom de type de météo du contrat de qb-weathersync, en majuscules exactes : "EXTRASUNNY", "CLEAR", "NEUTRAL", "SMOG", "FOGGY", "OVERCAST", "CLOUDS", "CLEARING", "RAIN", "THUNDER", "SNOW", "BLIZZARD", "SNOWLIGHT", "XMAS", "HALLOWEEN". La liste est la constante WEATHERS ; isWeather(value) vérifie une valeur.

Exemple
import { isWeather, type Weather } from "@aicore-fivem/shared";

const next: Weather = "RAIN";
if (isWeather(input)) world.setWeather(input);

BlipStyle

L’apparence d’un blip telle que la stocke le widget blip du panneau. Vient de @aicore-fivem/lib/shared ; lisez-la avec readBlipStyle.

Prop

Type

Exemple
const style: BlipStyle = { sprite: 52, color: 2, scale: 0.8 };

PlacePed

Un PNJ qui se tient à un lieu (un commerçant, un employé). Vient de @aicore-fivem/lib/shared ; lisez-le avec readPlacePed.

Prop

Type

Exemple
const clerk: PlacePed = { model: "mp_m_shopkeep_01", scenario: "WORLD_HUMAN_STAND_IMPATIENT", coords: { x: 24.5, y: -1346.6, z: 29.5, heading: 270 } };

Interface joueur

NotificationKind

La couleur et l’icône d’une carte de notification : "success", "error", "info" ou "warning". D’autres pages peuvent l’appeler « notify kind ».

Exemple
notify(source, "Vehicle stored", "success"); // notify(source, text, kind?, duration?) de la lib serveur

Notification

Une carte de notification. ai-lib la dessine ; les textes sont déjà traduits par l’expéditeur.

Prop

Type

Exemple
const card: Notification = { text: "Vehicle stored", kind: "success", duration: 3000 };

ProgressOptions

Ce qu’affiche la barre de progression client (progress de la lib côté client) et comment le joueur peut bouger pendant qu’elle avance. Vient de @aicore-fivem/lib/client.

Prop

Type

Exemple
const repair: ProgressOptions = {
  label: "Repairing",
  duration: 8000,
  anim: { dict: "mini@repair", clip: "fixing_a_player" },
  canCancel: true,
  disable: { move: true, combat: true },
};

ServerProgress

La barre qu’un flux serveur lance sur le client d’un joueur (progressFor de la lib). Les mêmes champs que ProgressOptions sans whileDead. ProgressForOptions (de @aicore-fivem/lib/server) ajoute un champ :

Prop

Type

Exemple
const bar: ProgressForOptions = { label: "Picking the lock", duration: 6000, scenario: "PROP_HUMAN_PARKING_METER", minRatio: 0.9 };

Une ligne d’un menu.

Prop

Type

Exemple
const row: MenuItem = { id: "water", label: "Water ($5)", icon: "bottle-water" };

Un menu à afficher (menu de la lib, aiLib.menu.show en Lua).

Prop

Type

Exemple
const shop: MenuRequest = {
  title: "24/7",
  items: [ { id: "water", label: "Water ($5)" }, { id: "bread", label: "Bread ($3)" } ],
};

InputField

Un champ d’une boîte de saisie. C’est un champ nombre ou un champ texte, choisi par type.

Champ nombre :

Prop

Type

Champ texte :

Prop

Type

InputRequest

Une boîte de saisie à afficher (input de la lib, aiLib.input en Lua).

Prop

Type

Exemple
const fine: InputRequest = {
  title: "Write a fine",
  confirm: "Send",
  fields: [
    { name: "amount", label: "Amount", type: "number", min: 1, max: 10000 },
    { name: "reason", label: "Reason", type: "text", maxLength: 80 },
  ],
};

PromptAnchor

Où flotte une invite dans le monde : un point fixe, ou des emplacements sur des entités. Les décalages d’entité sont dans l’espace propre de l’entité, si bien que l’invite bouge et tourne avec elle (une porte qui pivote). Parmi plusieurs emplacements d’entité, celui le plus proche du joueur est affiché à chaque frame.

Point :

Prop

Type

Emplacements d’entité :

Prop

Type

Exemple
const atPoint: PromptAnchor = { x: 25.7, y: -1347.3, z: 30.2 };
const onDoor: PromptAnchor = { anchors: [{ entity: door, offset: { x: 0.5, y: 0, z: 0 } }] };

ItemPickerRequest

Le sélecteur d’objets d’ai-core pour les outils d’administration : chaque objet de l’inventaire actif avec son image, une recherche et une quantité.

Prop

Type

Exemple
const request: ItemPickerRequest = { title: "Give items", target: 7 };

PickedItem

Une ligne que répond le sélecteur d’objets.

Prop

Type

SkillDifficulty

La difficulté d’une étape de test d’adresse : "easy", "medium", "hard", ou la forme propre d’ox_lib { areaSize: number; speedMultiplier: number }. Les étapes nommées : easy = arc vert de 50 degrés à 0.6 tour par seconde, medium = 40 à 0.85, hard = 25 à 1.

Exemple
const stages: SkillDifficulty[] = ["easy", "medium", { areaSize: 30, speedMultiplier: 1.2 }];

LockpickResult

Ce que répond le crochetage : "opened" (la serrure s’est ouverte), "broken" (le joueur a cassé tous les crochets) ou "cancelled" (le joueur l’a fermé).

RadialItem

Une entrée de la roue radiale (radial de la lib). Ses fonctions s’exécutent dans la ressource qui l’a ajoutée ; ai-core retire l’entrée quand cette ressource s’arrête.

Prop

Type

Exemple
const item: RadialItem = {
  id: "engine", label: "Engine", icon: "car", parent: "vehicle",
  canShow: () => cache.seat === -1,
  onPressed: () => SetVehicleEngineOn(cache.vehicle as number, !GetIsVehicleEngineRunning(cache.vehicle as number), false, true),
};

KeyHintRequest

Une ligne d’aide de touche qu’un script affiche pendant un moment (touches de noclip d’admin). Donnez keybind ou key.

Prop

Type

Exemple
const hint: KeyHintRequest = { label: "Speed up", key: "SHIFT", icon: "gauge-high" };

KeyHintWhen

Quand l’aide d’un raccourci s’affiche dans les HUD : "foot" (à pied), "vehicle" (en véhicule) ou "always". Le propriétaire du serveur peut le changer dans le panneau ; un raccourci sans cette valeur n’affiche jamais d’aide.

KeyHintView

Une ligne des aides de touches qu’affiche un HUD (export client GetKeyHints, événement ai-core:client:keyHints) : la touche telle que le joueur l’a associée, et ce qu’elle fait.

Prop

Type

Exemple
const row: KeyHintView = { id: "noclip_speed", key: "SHIFT", label: "Speed up", icon: "gauge-high" };

Logs, alertes, téléphone

LogOptions

Détails supplémentaires d’une ligne de log (aiLog de la lib, export Log).

Prop

Type

Exemple
aiLog("payments", "Paid a bill", { source, metadata: { amount: 250 } });

LogLevel

Gravité d’une ligne de log : "debug", "info", "warn" ou "error".

LogChannel

Comment une ressource décrit l’un de ses canaux de log (aiLogChannels de la lib, export LogChannels, appelé une fois au démarrage). Les urls de webhook ne sont jamais ici : le propriétaire du serveur les fixe dans le panneau d’ai-core.

Prop

Type

Exemple
aiLogChannels({ payments: { dataset: "my-shop" }, debug: { active: false } });

DispatchAlert

Une alerte police (ou d’un autre métier). Le script d’alertes actif la montre aux membres en service de jobs. Les textes sont déjà traduits.

Prop

Type

Exemple
const alert: DispatchAlert = { code: "10-71", title: "Shots fired", source, jobs: ["police"], priority: "high" };

PhoneMail

Un mail qu’un script envoie sur le téléphone d’un joueur.

Prop

Type

Exemple
const mail: PhoneMail = { sender: "Los Santos Customs", subject: "Your car is ready", message: "Pick it up at the garage." };

PhoneNotification

Une notification sur le téléphone d’un joueur.

Prop

Type

Exemple
const note: PhoneNotification = { title: "Bank", message: "You received $250", app: "bank" };

Factures, MDT, EMS, garages

BillRequest

Une facture qu’envoie un script (billing.send de la lib) : d’un métier (amendes, frais de service) ou d’un joueur, à un joueur. Les textes sont déjà traduits.

Prop

Type

Exemple
const bill: BillRequest = { to: 7, amount: 250, label: "Speeding", from: source, job: "police" };

UnpaidBill

Une facture ouverte d’un joueur.

Prop

Type

MdtRecord

Un enregistrement qu’un script écrit dans le MDT de police (mdt.record de la lib). Les textes sont déjà traduits.

Prop

Type

Exemple
const record: MdtRecord = { kind: "jail", target: 7, by: source, title: "Armed robbery", minutes: 20 };

MdtRecordKind

Ce que concerne un enregistrement MDT : "fine", "warrant", "arrest" ou "jail".

DistressCall

L’appel aux médecins d’un joueur à terre (ems.distress de la lib).

Prop

Type

Exemple
const call: DistressCall = { jobs: ["ambulance"], message: "Unconscious" };

GaragedVehicle

L’un des véhicules d’un joueur gardés par un script de garages.

Prop

Type

Apparences

CharacterAppearance

Une apparence telle que la distribue la couche d’apparence d’ai-core : le modèle de ped et les données propres du script de vêtements. Traitez data comme opaque : rendez tout l’objet inchangé à ApplyAppearance.

Prop

Type

ClothingMenu

Un menu de script de vêtements qu’ouvrent les autres scripts : "clothing" (magasin de vêtements), "barber" ou "outfits" (les tenues enregistrées du joueur).

JobOutfit

Une tenue de métier (uniforme) pour le modèle freemode que porte le joueur. Seules les pièces listées changent.

Prop

Type

OutfitPiece

Une pièce d’une tenue de métier.

Prop

Type

Exemple
const uniform: JobOutfit = {
  components: [ { id: 11, collection: "", index: 55, texture: 0 }, { id: 4, collection: "", index: 35, texture: 0 } ],
  props: [ { id: 0, collection: "", index: 46, texture: 0 } ],
};

Commandes

CommandInfo

Une commande d’addCommand de la lib, telle que la ressource l’annonce à ai-core (l’onglet Commands du panneau la liste).

Prop

Type

Exemple
const info: CommandInfo = { names: ["jail", "prison"], help: "Jails a player", params: [{ name: "id", type: "playerId" }], aces: ["ai.admin"] };

CommandParam

Un argument d’une commande addCommand de la lib, analysé et vérifié avant l’exécution du handler.

Prop

Type

Exemple
const params: CommandParam[] = [
  { name: "id", type: "playerId", help: "Player id" },
  { name: "reason", type: "longString", help: "Reason", optional: true },
];

Panneau d’administration

PanelSchema

Le panneau d’administration d’un script : quels fichiers de données il a et comment le panneau les dispose. Une ressource le confie à AdminPanel de la lib (voir Panneau d’administration). Chaque champ texte est une clé de langue des locales/*.json de la ressource.

Prop

Type

Exemple
const schema: PanelSchema = {
  title: "ADMIN_TITLE",
  icon: "store",
  files: { shops: { kind: "records", sync: "all", labelPath: "label", sections: { label: { type: "text", min: 1, max: 48 }, coords: { type: "vec3" } } } },
  tabs: [{ id: "shops", file: "shops", icon: "store", label: "ADMIN_TAB_SHOPS", desc: "ADMIN_TAB_SHOPS_DESC", cards: [] }],
};

FileSpec

Un fichier de données d’un panneau.

Prop

Type

TabSpec

Un onglet du panneau, qui montre un fichier.

Prop

Type

CardSpec

Une carte de champs dans un onglet.

Prop

Type

Exemple
const card: CardSpec = {
  icon: "location-dot",
  title: "ADMIN_CARD_PLACE",
  fields: [{ widget: "point", path: "coords", label: "ADMIN_F_COORDS", hint: "ADMIN_H_COORDS" }],
};

LookupSource

Une liste de valeurs dans laquelle choisit un champ du panneau. Un lookup sur un champ texte ou de noms fait refuser par le serveur toute autre valeur et fait proposer la liste par le panneau.

ValeurLa liste
"item"Objets de l’inventaire actif.
"job"Métiers de la liste Jobs du panneau.
"gang"Gangs de la liste Gangs du panneau.
"account"Comptes d’argent.
"resource"Ressources démarrées.
"player"Joueurs en ligne, par citizen id.
"vehicle"Chaque modèle de véhicule que possède le jeu de l’admin, addons compris. Jamais refusé par le serveur (il ne peut pas lister les modèles).
"ped"Les modèles de ped de GTA. Jamais refusé par le serveur.

AdminDelta

Un enregistrement modifié d’un fichier de panneau, transmis aux admins qui ont le panneau ouvert (export AdminPanelChanged).

Prop

Type

Exemple
const delta: AdminDelta = { resource: "my-shop", file: "shops", key: "legion", value: { label: "Legion" } };

UpdateInfo

Un script dont la release GitHub est plus récente que la version en cours (vérification des mises à jour d’ai-core, export GetUpdates).

Prop

Type

Exemple
const update: UpdateInfo = { resource: "ai-core", label: "ai-core", current: "1.4.0", latest: "1.5.0", url: "https://github.com/..." };

Pont vRP

VrpConfig

La correspondance des permissions vRP du panneau (data/vrp.json), telle que la lit le pont vRP d’ai-core (export serveur GetVrpConfig ; l’événement local ai-core:vrp:config transporte la même forme après un changement).

Prop

Type

VrpPermissionRule : accorde permission à quiconque correspond à l’une des cibles remplies.

Prop

Type

VrpGroupAlias : un nom de groupe vRP qui signifie un grade de métier ou de gang, ou admin (rangs de style vRPex comme "Coronel").

Prop

Type

Exemple
const config: VrpConfig = {
  defaults: { jobPrefix: true, jobOnDuty: true, adminPrefix: true, playerPrefix: true },
  permissions: [{ permission: "police.armory", job: "police", gang: "", group: "", grade: 2, onDuty: true, admin: false, everyone: false }],
  groups: { Coronel: { job: "police", gang: "", grade: 4, admin: false } },
  items: { "edible|tacos": "tacos" },
};

Sur cette page