AI Core

Обзор

Как устроен AI Core - репозитории, сборка, правила, которым следует каждый скрипт.

AI Core целиком написан на TypeScript. Каждый ресурс следует структуре overextended/fivem-ts; Lua используется только для моста ESX / QB / Qbox внутри ai-core и для Lua-части ai-lib.

Репозитории

РепозиторийЧто
Папка сервераserver.cfg и другие cfg-файлы, recipe/ (txAdmin), tools/, template/, правила и документация для ИИ-инструментов. Это также корень bun workspace.
ai-core и каждый ai-*Один репозиторий на скрипт. Сборка (dist/, fxmanifest.lua) хранится в репозитории, поэтому серверы работают без инструментов сборки.
packagesnpm-пакеты: @aicore-fivem/lib (вспомогательные функции), @aicore-fivem/mysql (движок базы данных), @aicore-fivem/shared (контракты между ресурсами), @aicore-fivem/build (шаги сборки).

Сборка

bun install            # в папке сервера: связывает пакеты и все ресурсы
bun run build          # все ресурсы (около 40 с), или: bun run build ai-core ai-fuel
bun run typecheck
bun run lint

Внутри ресурса те же скрипты работают только для этого ресурса; bun run dev следит за изменениями. fxmanifest.lua генерируется из package.json: никогда не редактируйте его вручную. После сборки перезапустите ресурс (bun tools/rcon.ts "ensure ai-fuel") или всё, что идёт после ai-core (bun tools/restart.ts).

Правила, которым следует каждый скрипт

  • Решает сервер. Каждый запрос клиента проходит через шлюз библиотеки (onClientEvent / onClientCallback): проверка, что это настоящий игрок, ограничение частоты, условия доступа (администратор, есть персонаж, рядом с точкой), парсер аргументов. Деньги, предметы и права никогда не меняются на клиенте.
  • Снимок и дельта. Живые данные уходят клиентам одним снимком, затем только изменения и только тем, кому они нужны. Никакого опроса, никаких сигналов «изменилось, загрузи заново».
  • Сначала библиотека. Точки взаимодействия, блипы, зоны, привязки клавиш, команды, меню, прогресс, транспорт, state bags и периодическая работа берутся из @aicore-fivem/lib; вторая копия, написанная вручную, считается дефектом.
  • Всё в панели. Настройки, которые меняет владелец сервера, находятся в админ-панели (schema.ts + data/*.json), а не в конфиг-файле.
  • Через AI Core. Предметы, ключи от транспорта, вызовы, телефон, погода, тюрьма, одежда и смерти проходят через слои AI Core, а не через экспорты конкретного скрипта.
  • Сначала масштаб. Коллекции рассчитаны на миллионы записей и измеряются бенчмарками.

Полные правила лежат в папке сервера: CLAUDE.md и .claude/rules/.

На этой странице