ox_target para FiveM: o que é, erros comuns e a skill de IA
Atualizado em
Não quer gerenciar as skills por conta própria? Obtenha o app completo.
O ox_target é o recurso de terceiro olho para FiveM. Você adiciona opções de interação a entidades, modelos, jogadores e zonas com exports.ox_target. Este guia cobre a API, os erros que abrem exploits e a skill de IA que os evita.
O ox_target é o recurso de terceiro olho para FiveM. Ele substitui o qb-target e o bt-target e é compatível com ox_core, ESX e qbx_core. Você adiciona opções a entidades, modelos, jogadores e zonas, e o jogador as escolhe com a tecla de target. Todas as funções são chamadas com exports.ox_target:<fn>(...), porque não existe tabela global ox_target.
Referência rápida
Cada função é exports.ox_target:<nome>(...) e roda no cliente. Todas recebem um array de tabelas de opções.
| Export | Use para |
|---|---|
addLocalEntity(entity, options) |
Uma entidade criada localmente |
addEntity(netId, options) |
Uma entidade em rede |
addModel(models, options) |
Todas as instâncias de um modelo |
addGlobalPed / addGlobalVehicle / addGlobalObject / addGlobalPlayer |
Uma categoria inteira |
addGlobalOption(options) |
Tudo, sem filtro |
addBoxZone / addSphereZone / addPolyZone |
Um lugar em vez de uma entidade; retorna um id de zona |
removeZone(zoneId) |
Remove uma zona |
Campos de opção comuns: label, name, icon, distance, groups, items, canInteract, onSelect, serverEvent. Defina name em toda opção que você pretende remover.
O que a skill de ox_target oferece
A skill liga cada alvo à função certa:
addLocalEntitypara uma entidade criada localmente eaddEntitypara uma entidade em rede.addModelpara todas as instâncias de um modelo.addGlobalPed,addGlobalVehicle,addGlobalObjecteaddGlobalPlayerpara categorias inteiras, eaddGlobalOptionpara tudo.addBoxZone,addSphereZoneeaddPolyZonepara um local em vez de uma entidade.
Os arquivos de regras cobrem a instalação, cada campo da tabela de opções, entidades, zonas e a migração do qb-target. A referência original está em overextended.dev/ox_target.
Erros comuns com o ox_target
- Confiar no onSelect. Ele roda no cliente. Tudo que der dinheiro, itens ou mudar o estado deve passar por
serverEvente ser validado de novo no handler do servidor. - Usar sintaxe do qb-target. O formato das opções é diferente. Monte o array com os campos documentados.
- Esquecer o nome da opção. Opções são removidas por nome, não por índice. Passe
nameem cada opção que você pretende remover. - Deixar a distância no padrão. Defina
distanceexplicitamente para qualquer coisa acima de uns 2,5 m. - Checar condições dentro do onSelect. Controle a visibilidade com
groups,itemsoucanInteractpara o jogador não ver opções que não pode usar. - Chamar funções de zona no servidor. Funções de zonas e entidades são só de cliente.
- Iniciar o ox_target antes do ox_lib. Garanta que o
ox_libinicie primeiro noserver.cfg.
Por que assistentes de IA erram no ox_target
Muitos exemplos na internet usam qb-target, então os assistentes costumam gerar chamadas a exports['qb-target'] ou inventar uma tabela global. Os dois casos falham no ox_target. Eles também tendem a colocar a lógica de recompensa dentro do onSelect, o que deixa o servidor aberto a eventos forjados.
A skill do ox_target lista as funções reais e a tabela de decisão para escolher uma. O assistente lê a regra que combina com o seu pedido e escreve código com exports.ox_target e serverEvent para tudo que mude o estado.
Para ver como uma skill se compara a outras configurações de IA para FiveM, leia nosso comparativo.
Instale a skill de ox_target em 30 segundos
- Clique em "Download SKILL.md" no topo desta página.
- Descompacte na pasta de skills ou regras da sua ferramenta de IA. A seção de instalação abaixo mostra o caminho exato para Claude Code, Cursor e VS Code.
- Peça ao assistente algo concreto, como "adicione uma opção de terceiro olho a um ped que abre uma loja", e confira se ele usa
exports.ox_target:addLocalEntitye trata a compra em umserverEvent.
Como instalar esta skill
Baixe o zip, descompacte e coloque a pasta onde a sua ferramenta carrega skills ou regras. O caminho exato depende da ferramenta:
Claude Code
Descompacte em .claude/skills/ox-target/ dentro do projeto (a pasta precisa conter SKILL.md). Para todos os projetos, use ~/.claude/skills/ox-target/.
Cursor
O Cursor carrega as regras do projeto de .cursor/rules/. Adicione ali um arquivo de regra apontando para a skill descompactada, ou cole o conteúdo do SKILL.md e dos arquivos de regras em uma regra. O formato é .mdc com frontmatter e muda entre versões, então confira a documentação da sua versão.
VS Code / Copilot
O Copilot lê arquivos de instruções em .github/instructions/*.instructions.md. Copie o SKILL.md para lá com um glob applyTo para os seus arquivos Lua e mantenha os arquivos de regras ao lado.
O arquivo SKILL.md
Este é o arquivo que o seu assistente de IA lê. Ele aponta para os arquivos de regras incluídos no download.
O conteúdo da skill está em inglês: é documentação técnica feita para agentes de IA.
ox_target
Third-eye targeting for FiveM. Replaces qb-target and bt-target. Supports ox_core, esx and qbx_core.
Activation Contract
Load this skill when the user asks to make something interactable: "press E on this ped", "third eye", "target option", "add an interaction to this vehicle/door/prop", or when migrating from qb-target.
Hard Rules
- Call every function through
exports.ox_target:<fn>(...). There is no globalox_targettable. onSelectruns on the CLIENT. Never trust its arguments server-side: re-validate in theserverEventhandler.- Always pass
nameon an option you intend to remove later. Removal is by name, not by index. distancedefaults to the resource default; set it explicitly for anything above ~2.5m.- Zone and entity functions are CLIENT-side only.
- Prefer
addLocalEntityfor entities you spawned yourself; useaddEntityonly for networked entities and expect the id to change on respawn.
Decision Gates
| Target | Function |
|---|---|
| One entity you spawned locally | addLocalEntity(entities, options) |
| A networked entity (net id) | addEntity(entities, options) |
| Every instance of a model | addModel(models, options) |
| Every ped / vehicle / object / player | addGlobalPed / addGlobalVehicle / addGlobalObject / addGlobalPlayer |
| Everything, no filter | addGlobalOption(options) |
| A location, not an entity | addBoxZone / addSphereZone / addPolyZone |
Execution Steps
- Confirm
ox_targetis started AFTERox_libinserver.cfg. - Pick the function from the Decision Gates table.
- Build the options array. Read rules/options.md for every allowed field.
- Gate visibility with
groups,itemsorcanInteractrather than checking insideonSelect. - Route the action:
onSelectfor client logic,serverEventfor anything that grants money, items or state. - Store the returned zone id if the zone must be removed later.
Output Contract
Return runnable Lua using exports.ox_target. Include the fxmanifest.lua dependency lines when the resource is new. Never emit qb-target syntax.
References
- rules/setup.md — install, fxmanifest, convars, framework support.
- rules/options.md — every field of the option table.
- rules/entities.md — entity, model and global targets.
- rules/zones.md — box, sphere and poly zones.
- rules/migration.md — qb-target to ox_target.
Upstream docs: https://overextended.dev/ox_target
Perguntas frequentes
- Sim. O ox_target substitui o qb-target e o bt-target, e a skill inclui uma regra de migração do qb-target. O formato das opções é diferente, então não cole sintaxe do qb-target.
- Sim. O ox_target é open source e publicado no GitHub pelas equipes Overextended e CommunityOx, então você pode usá-lo em qualquer servidor sem custo.
- Não. O onSelect roda no cliente, então não dá para confiar nos argumentos. Use serverEvent para tudo que der dinheiro, itens ou mudar o estado, e valide de novo no handler do servidor.
O ox_target substitui o qb-target?
O ox_target é gratuito?
É seguro dar itens dentro do onSelect?
Guias relacionados
Leituras mais longas do blog da FiveAI sobre o mesmo tema.