AI Core

Criando um script

De um modelo vazio a um script com painel de administração, do jeito AI Core.

Crie a partir do modelo

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

Depois adicione ensure ai-garbagejob ao server.cfg. O modelo traz resource/client, resource/server, resource/common, locales/en.json, um CLAUDE.md para preencher e a configuração de build.

Adicione o painel

Escreva resource/server/schema.ts (arquivos, abas, cartões, widgets) e crie new AdminPanel(schema) no servidor. Os dados de que o mundo precisa (lugares, blips, preços que os jogadores veem) são sync: "all" e lidos no cliente com new AdminWorld([...]); todo o resto fica no servidor.

Use a lib para tudo

// cliente: um lugar que os jogadores usam, mostrado como prompt ou opção de 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" }),
});
// servidor: o pedido, verificado antes de qualquer mudança
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 };
  },
);

Verifique e reinicie

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

O jeito mais fácil é pedir para sua IA: abra a pasta do servidor no Claude Code e descreva o script. As regras fazem ela usar o modelo, a lib e o painel. Veja Trabalhando com IA.

Nesta página