ox-target: skill de FiveM para Cursor, VS Code y Claude Code
Trigger: ox_target, third-eye, targeting, interaction zone, qb-target migration. Add targetable entities, models, players and zones with exports.ox_target.
¿No quieres gestionar las skills tú mismo? Consigue la app completa.
Cómo instalar esta skill
Descarga el zip, descomprímelo y coloca la carpeta donde tu herramienta carga skills o reglas. La ruta exacta depende de la herramienta:
Claude Code
Descomprime en .claude/skills/ox-target/ dentro del proyecto (la carpeta debe contener SKILL.md). Para todos los proyectos, usa ~/.claude/skills/ox-target/.
Cursor
Cursor carga las reglas del proyecto desde .cursor/rules/. Añade ahí un archivo de regla que apunte a la skill descomprimida, o pega el contenido de SKILL.md y los archivos de reglas en una regla. El formato es .mdc con frontmatter y cambia entre versiones, así que revisa la documentación de tu versión.
VS Code / Copilot
Copilot lee archivos de instrucciones desde .github/instructions/*.instructions.md. Copia SKILL.md ahí con un glob applyTo para tus archivos Lua y deja los archivos de reglas al lado.
El archivo SKILL.md
Este es el archivo que lee tu asistente de IA. Enlaza a los archivos de reglas incluidos en la descarga.
El contenido de la skill está en inglés: es documentación técnica pensada 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