Vue d’ensemble
Comment AI Core est construit - dépôts, le build, les règles que suit chaque script.
AI Core est en TypeScript de bout en bout. Chaque ressource suit la structure overextended/fivem-ts ; Lua n’est utilisé que pour le pont ESX / QB / Qbox dans ai-core et pour le côté Lua d’ai-lib.
Dépôts
| Dépôt | Contenu |
|---|---|
| Dossier du serveur | server.cfg et les autres fichiers cfg, recipe/ (txAdmin), tools/, template/, les règles et la documentation pour les outils d’IA. C’est aussi la racine du workspace bun. |
ai-core et chaque ai-* | Un dépôt par script. Le build (dist/, fxmanifest.lua) est commité, donc les serveurs tournent sans outils de build. |
packages | Les paquets npm : @aicore-fivem/lib (utilitaires), @aicore-fivem/mysql (moteur de base de données), @aicore-fivem/shared (contrats entre ressources), @aicore-fivem/build (étapes de build). |
Build
bun install # dans le dossier du serveur : lie les paquets et chaque ressource
bun run build # chaque ressource (environ 40 s), ou : bun run build ai-core ai-fuel
bun run typecheck
bun run lintDans une ressource, les mêmes scripts tournent pour cette seule ressource ; bun run dev surveille les changements. fxmanifest.lua est généré à partir de package.json : ne le modifiez jamais à la main. Après un build, redémarrez la ressource (bun tools/rcon.ts "ensure ai-fuel") ou tout ce qui vient après ai-core (bun tools/restart.ts).
Règles que suit chaque script
- Le serveur décide. Chaque requête client passe par la porte d’entrée de la lib (
onClientEvent/onClientCallback) : vérification du vrai joueur, limite de fréquence, garde-fous (admin, a un personnage, près d’un point), un parseur d’arguments. L’argent, les objets et les permissions ne changent jamais côté client. - Snapshot et delta. Les données en direct partent vers les clients sous forme d’un snapshot, puis seulement les changements, seulement vers ceux qui en ont besoin. Pas de polling, pas de signaux « changé, recharge ».
- La lib d’abord. Les points d’interaction, blips, zones, raccourcis clavier, commandes, menus, progression, véhicules, state bags et tâches périodiques viennent de
@aicore-fivem/lib; une seconde copie écrite à la main est un défaut. - Tout dans le panneau. Les réglages qu’un propriétaire de serveur ajuste se trouvent dans le panneau d’administration (
schema.ts+data/*.json), jamais dans un fichier de config. - Via AI Core. Objets, clés de véhicule, alertes, téléphone, météo, prison, vêtements et morts passent par les couches d’AI Core, jamais par les exports d’un script précis.
- L’échelle d’abord. Les collections sont prévues pour des millions d’enregistrements et mesurées avec des benchmarks.
Les règles complètes se trouvent dans le dossier du serveur : CLAUDE.md et .claude/rules/.