AI Core

Visión general

Cómo está construido AI Core - repositorios, la compilación, las reglas que sigue cada script.

AI Core es TypeScript de principio a fin. Cada recurso sigue la estructura de overextended/fivem-ts; Lua solo se usa para el puente ESX / QB / Qbox dentro de ai-core y para la parte Lua de ai-lib.

Repositorios

RepositorioQué
Carpeta del servidorserver.cfg y los demás archivos cfg, recipe/ (txAdmin), tools/, template/, las reglas y la documentación para herramientas de IA. También es la raíz del workspace de bun.
ai-core y cada ai-*Un repositorio por script. La compilación (dist/, fxmanifest.lua) se incluye en el repositorio, así que los servidores funcionan sin herramientas de compilación.
packagesLos paquetes npm: @aicore-fivem/lib (utilidades), @aicore-fivem/mysql (motor de base de datos), @aicore-fivem/shared (contratos entre recursos), @aicore-fivem/build (pasos de compilación).

Compilación

bun install            # en la carpeta del servidor: enlaza los paquetes y cada recurso
bun run build          # cada recurso (unos 40 s), o: bun run build ai-core ai-fuel
bun run typecheck
bun run lint

Dentro de un recurso, los mismos scripts se ejecutan solo para ese recurso; bun run dev vigila los cambios. fxmanifest.lua se genera a partir de package.json: nunca lo edites a mano. Tras una compilación, reinicia el recurso (bun tools/rcon.ts "ensure ai-fuel") o todo lo que va después de ai-core (bun tools/restart.ts).

Reglas que sigue cada script

  • El servidor decide. Cada petición del cliente pasa por la puerta de la lib (onClientEvent / onClientCallback): comprobación de jugador real, límite de frecuencia, guardas (administrador, tiene personaje, cerca de un punto), un parser de argumentos. El dinero, los objetos y los permisos nunca cambian en el cliente.
  • Snapshot y delta. Los datos en vivo llegan a los clientes como un snapshot y después solo los cambios, solo a quien los necesita. Sin polling, sin señales de "cambió, vuelve a pedirlo".
  • Primero la lib. Los puntos de interacción, blips, zonas, keybinds, comandos, menús, progreso, vehículos, state bags y el trabajo periódico salen de @aicore-fivem/lib; una segunda copia escrita a mano es un defecto.
  • Todo en el panel. Los ajustes que afina el dueño del servidor están en el panel de administración (schema.ts + data/*.json), nunca en un archivo de configuración.
  • A través de AI Core. Los objetos, las llaves de vehículos, las alertas, el teléfono, el clima, la prisión, la ropa y las muertes pasan por las capas de AI Core, nunca por los exports de un script concreto.
  • Escala primero. Las colecciones se planifican para millones de registros y se miden con benchmarks.

Las reglas completas están en la carpeta del servidor: CLAUDE.md y .claude/rules/.

En esta página