> For the complete documentation index, see [llms.txt](https://docs.perfectcs2.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.perfectcs2.com/comecando/host-perfect.md).

# Integração na Perfect

Onde ficam os scripts e como eles usam o jogo.

A aba **Scripts**, em PRESETS, usa o mesmo visual da UI v4. Está disponível em todas as versões; `menu.list()` e `menu.set()` respeitam os recursos de cada build.

## Arquivos e uso

A pasta é **Documentos\Perfect\Scripts**, ao lado de `CustomModels`. O botão da pasta abre o caminho efetivamente usado (inclusive quando Documentos foi redirecionado pelo Windows).

1. Coloque um arquivo `.lua` nessa pasta, ou use **New script**.
2. Selecione o arquivo e carregue-o pelo switch ou **Load**.
3. **Options** mostra os controles criados pelo script; **Console** mostra mensagens e erros.
4. **Edit** abre o editor com destaque de sintaxe. Salve e use **Reload** para aplicar as mudanças.
5. **Auto-load** é uma escolha explícita por arquivo, lembrada em `autoload.txt`. Arquivos novos não executam automaticamente.

Lua 5.4 está ligado estaticamente à DLL; não é necessário instalar Lua ou distribuir uma DLL adicional.

## Integração com o jogo

* `engine.is_in_game`, `engine.map_name`, `globals.curtime/tickcount/tickinterval`: dados da sessão real.
* `entities.local_player`, `entities.players`, `entities.get`: cópias dos dados, sem ponteiros para entidades. `index` é o índice do controller; os campos de jogador dos eventos usam o mesmo índice.
* A cabeça usa o osso `head_0` quando disponível, com posição dos olhos como alternativa. `visible` é uma linha de visão geométrica para a cabeça, não uma avaliação de smoke ou penetração.
* Dinheiro, ping, estatísticas e munição reserva são resolvidos pelo schema. Campos indisponíveis são `nil`; não são números de demonstração.
* `world_to_screen` usa a matriz real e a área de desenho da UI, inclusive em resolução não nativa.
* `create_move` roda depois dos controles nativos e antes da validação final do comando. Movimento é normalizado em -1 a 1; ângulos são validados. Safe Mode impede alterações ao comando. Builds sem Aimbot/Miscellaneous recebem o callback, mas não aplicam suas alterações.
* `send_packet=false` não é suportado e gera erro no script. Não há simulação de envio de pacotes.
* `engine.execute`, `engine.say` e mudanças de câmera são enfileirados para execução na thread do jogo. `say` remove separadores e aspas da mensagem. Mudanças de câmera respeitam Safe Mode e os recursos da build.
* `frame_stage` recebe a etapa real. O snapshot completo de jogadores é renovado no estágio 6.
* `events.on` registra um listener nativo enquanto houver assinantes. O hook existente é o único despachante, evitando eventos duplicados. Campos comuns de dano, disparo, round, bomba, coordenadas e jogadores são fornecidos; campos específicos adicionais de um evento não são descobertos automaticamente.

## Opções nativas

Use `menu.list()` e `menu.info(path)` como referência da build em execução. O catálogo da UI de demonstração foi adaptado às variáveis reais da v3: cinco grupos do Legitbot, nove do Ragebot, controles globais do Ragebot, materiais atuais e demais opções disponíveis. Não existe grupo General fictício. IDs antigos da referência podem ter sido alterados; consulte `menu.list()`.

## Ciclo de vida e limites

Cada script tem seu próprio estado Lua, console e armazenamento. Os dados de `storage` ficam em `Scripts\data`. Carregamento tem limite de 2 segundos; callbacks, 10 ms. O limite de memória do estado Lua é 64 MB. Erros interrompem o script e aparecem no console. Chamadas protegidas não podem absorver o limite de tempo. Callbacks de controles são processados no frame seguinte, para não invalidar controles durante o desenho.

O runtime e o menu são serializados. Scripts pesados ainda podem afetar FPS: mantenha callbacks curtos. Sem `io`, `package`, `debug`, execução de processos ou acesso arbitrário à memória. `require` aceita módulos Lua locais.

## API de serviços 1.1

Consulte [services.md](/documentacao/services.md) para inventário, custom models, configs, Walkbot, Grenade Helper, JSON e operações assíncronas.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.perfectcs2.com/comecando/host-perfect.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
