AI Core

Przegląd

Jak zbudowany jest AI Core - repozytoria, build, zasady, których przestrzega każdy skrypt.

AI Core to TypeScript od początku do końca. Każdy zasób ma układ overextended/fivem-ts; Lua jest używane tylko w moście ESX / QB / Qbox wewnątrz ai-core i po stronie Lua w ai-lib.

Repozytoria

RepozytoriumCo
Folder serweraserver.cfg i pozostałe pliki cfg, recipe/ (txAdmin), tools/, template/, zasady i dokumentacja dla narzędzi AI. To też katalog główny workspace bun.
ai-core i każdy ai-*Jedno repozytorium na skrypt. Build (dist/, fxmanifest.lua) jest commitowany, więc serwery działają bez narzędzi do budowania.
packagesPakiety npm: @aicore-fivem/lib (funkcje pomocnicze), @aicore-fivem/mysql (silnik bazy danych), @aicore-fivem/shared (kontrakty między zasobami), @aicore-fivem/build (kroki budowania).

Build

bun install            # w folderze serwera: linkuje pakiety i każdy zasób
bun run build          # każdy zasób (około 40 s), lub: bun run build ai-core ai-fuel
bun run typecheck
bun run lint

W zasobie te same skrypty działają tylko dla tego zasobu; bun run dev obserwuje zmiany. fxmanifest.lua jest generowany z package.json: nigdy nie edytuj go ręcznie. Po buildzie zrestartuj zasób (bun tools/rcon.ts "ensure ai-fuel") lub wszystko po ai-core (bun tools/restart.ts).

Zasady, których przestrzega każdy skrypt

  • Serwer decyduje. Każde żądanie klienta przechodzi przez bramkę lib (onClientEvent / onClientCallback): sprawdzenie, czy to prawdziwy gracz, limit częstotliwości, warunki (administrator, ma postać, blisko punktu), parser argumentów. Pieniądze, przedmioty i uprawnienia nigdy nie zmieniają się na kliencie.
  • Snapshot i delta. Dane na żywo trafiają do klientów jako jeden snapshot, potem tylko zmiany i tylko do tych, którzy ich potrzebują. Bez odpytywania, bez sygnałów „zmieniło się, pobierz ponownie”.
  • Najpierw lib. Punkty interakcji, blipy, strefy, skróty klawiszowe, komendy, menu, postęp, pojazdy, state bagi i praca okresowa pochodzą z @aicore-fivem/lib; druga, ręcznie napisana kopia to błąd.
  • Wszystko w panelu. Ustawienia, które dostraja właściciel serwera, są w panelu administratora (schema.ts + data/*.json), nigdy w pliku konfiguracyjnym.
  • Przez AI Core. Przedmioty, klucze pojazdów, alerty, telefon, pogoda, więzienie, ubrania i śmierci idą przez warstwy AI Core, nigdy przez eksporty konkretnego skryptu.
  • Najpierw skala. Kolekcje są planowane na miliony rekordów i mierzone benchmarkami.

Pełne zasady są w folderze serwera: CLAUDE.md i .claude/rules/.

Na tej stronie