AI Core

Создание скрипта

От пустого шаблона до скрипта с админ-панелью, по правилам AI Core.

Создайте его из шаблона

bun run new garbagejob "Garbage routes with pay per stop"
bun install
cd resources/[ai]/ai-garbagejob && git init && bun run build

Затем добавьте ensure ai-garbagejob в server.cfg. Шаблон даёт вам resource/client, resource/server, resource/common, locales/en.json, CLAUDE.md, который нужно заполнить, и настройку сборки.

Добавьте панель

Напишите resource/server/schema.ts (файлы, вкладки, карточки, виджеты) и создайте new AdminPanel(schema) на сервере. Данные, которые нужны миру (места, блипы, цены, которые видят игроки), получают sync: "all" и читаются на клиенте через new AdminWorld([...]); всё остальное остаётся на сервере.

Используйте библиотеку для всего

// клиент: место, которым пользуются игроки, показывается как prompt или опция target
const points = new Points();
points.add("depot", {
  coords: route.depot,
  label: Locale("PROMPT_START"),
  icon: "truck",
  canShow: () => hasJob(["garbage"]),
  onPressed: () => callAction(EVENTS.start, [route.id], { fallback: "ERR_FAR" }),
});
// сервер: запрос проверяется до того, как что-либо изменится
onClientCallback(
  EVENTS.start,
  { args: oneArg((v) => readText(v, 32)), guards: [hasCharacter()], lock: true },
  (source, id) => {
    if (!isNear(source, route.depot, 3)) return fail("ERR_FAR");
    return { ok: true };
  },
);

Проверьте и перезапустите

bun run typecheck && bun run lint && bun run build
bun tools/rcon.ts --log ../logs/fxserver.log --wait 3 "ensure ai-garbagejob"

Проще всего попросить ИИ: откройте папку сервера в Claude Code и опишите скрипт. Правила заставят его использовать шаблон, библиотеку и панель. См. Работа с ИИ.

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