ox_target vs qb-target: elige según tus scripts y la migración
Por Luke, RPScripts
Elige el target que tus scripts imprescindibles admiten de forma nativa. Conserva qb-target en una instalación QB estable si el cambio no resuelve un problema demostrado. Elige ox_target cuando los recursos seleccionados utilicen su API y sus integraciones documentadas con frameworks. Ninguna opción hace compatible un script por sí sola; renombrar un export no es una migración.
Esta comparación revisa la documentación oficial y los archivos fuente a fecha de 1 de noviembre de 2026. No es un benchmark en ejecución. Los ejemplos muestran el registro en el cliente; no implementan una tienda, un inventario ni un trabajo seguros. Ambos proyectos publican su código fuente. Revisa la licencia de cada repositorio antes de redistribuir.
Comparación rápida
| Decisión | ox_target | qb-target |
|---|---|---|
| Biblioteca necesaria | ox_lib | PolyZone |
| Límite del framework | Targeting standalone; integraciones adicionales documentadas para ox_core, ESX y qbx_core | QBCore es opcional; las comprobaciones ligadas al framework necesitan la integración correspondiente |
| Registro de una zona rectangular | addBoxZone con una tabla de parámetros | AddBoxZone con argumentos separados de geometría y opciones |
| Opciones relacionadas con permisos | groups, items, canInteract | job, gang, citizenid, item, canInteract |
| Atajo de migración | Compatibilidad parcial con qtarget; sin garantía general como sustituto de qb-target | Las integraciones nativas existentes de qb-target pueden permanecer sin cambios |
Qué hace realmente el target
Un recurso de target permite a los jugadores seleccionar interacciones en entidades, modelos o zonas. El recurso que ejecuta la acción sigue siendo responsable de su lógica: abrir un garaje, comprar un objeto o entrar de servicio. Evalúa los requisitos de esa acción por separado del icono del ojo o del diseño del menú.
Empieza por un inventario del framework y las dependencias. Para cada script imprescindible, anota el nombre del target, la versión compatible, el selector de configuración y los archivos de integración editables. Una etiqueta QBCore no demuestra compatibilidad con ox_target. En Qbox, el puente del core y la integración de target son comprobaciones distintas; las notas de instalación de Qbox explican el resto de la instalación.
APIs nativas: la misma interacción sencilla de prueba
Estos ejemplos originales de cliente registran una caja de dos metros alrededor de coordenadas ilustrativas. Usa uno en un recurso de desarrollo después de arrancar sus dependencias. Mueve la caja a un lugar de prueba accesible. Al pulsar solo se escribe un mensaje en la consola del cliente; no se modifica dinero, inventario ni permisos.
qb-target
exports['qb-target']:AddBoxZone('comparison_demo', vector3(100.0, 200.0, 30.0), 2.0, 2.0, {
name = 'comparison_demo',
heading = 0,
debugPoly = true,
minZ = 29.0,
maxZ = 31.0
}, {
options = {
{
label = 'Probar interacción',
icon = 'fas fa-circle',
action = function()
print('comparison_demo selected')
end
}
},
distance = 2.0
})
ox_target
local zoneId = exports.ox_target:addBoxZone({
name = 'comparison_demo',
coords = vector3(100.0, 200.0, 30.0),
size = vector3(2.0, 2.0, 2.0),
rotation = 0,
debug = true,
options = {
{
name = 'comparison_demo_option',
label = 'Probar interacción',
icon = 'fas fa-circle',
distance = 2.0,
onSelect = function()
print('comparison_demo selected')
end
}
}
})
-- Elimina esta zona de demostración cuando ya no sea necesaria:
-- exports.ox_target:removeZone(zoneId)
No hagas una sustitución global en el código de producción. La forma y altura de la zona, los nombres de opciones, los argumentos de callbacks y los identificadores de entidades requieren revisión. En ox_target, addEntity recibe IDs de red y addLocalEntity recibe handles locales. Comprueba cada llamada real en lugar de asumir que un entero significa lo mismo en ambas APIs.
La compatibilidad no termina al mostrar una opción
Los campos groups e items de ox_target dependen de la integración con el framework. Una condición de trabajo QBCore no se convierte en una comprobación de grupo válida solo porque se abra el menú. La capa de compatibilidad qtarget cubre parte de otra API. El manifiesto proporciona qtarget; no garantiza el funcionamiento de todo recurso que llame a qb-target.
La visibilidad en el cliente no es autorización. Un jugador puede intentar activar un evento del servidor sin seleccionar la opción de target. El servidor debe validar por su cuenta el rol, la posición, los objetos necesarios y la transacción permitida. Ocultar un botón con canInteract no protege una recompensa ni una compra.
Lista de migración con un punto de retorno
- Haz una copia de los archivos y la configuración. Enumera llamadas nativas de target, selectores de configuración, dependencias, comprobaciones de trabajos/objetos y funciones de limpieza.
- Instala el target elegido y sus bibliotecas en una copia. Arranca las dependencias antes de los recursos consumidores, sin modificar el directorio en producción.
- Adapta una interacción. Prueba usuarios autorizados y rechazados, límites de distancia, altura de zona, argumentos de la acción y reinicio del recurso. Busca opciones duplicadas.
- Prueba los flujos reales por separado: el garaje recupera el vehículo correcto; una acción de trabajo comprueba servicio y grado; una tienda verifica pago e inventario en el servidor.
- Elimina o desactiva el registro anterior solo después de validar el sustituto. Conserva los archivos y la configuración anteriores listos para restaurar. Repite la auditoría para cada recurso consumidor.
Rendimiento, mantenimiento y decisión de compra
Esta revisión no ofrece un benchmark comparable. Mide el tiempo del recurso y el comportamiento de los fotogramas en tu cliente con el mismo mapa, las mismas interacciones y acciones de los jugadores. Separa el target en reposo, la lista de opciones abierta y el trabajo de la propia acción. Una interfaz que parece más rápida no demuestra un menor coste en el servidor.
Antes de comprar nuevos recursos de interacción y menús, revisa la API de target y la versión exactas. La categoría contiene distintos estilos de interacción; no promete que cada ficha admita ambos sistemas. Prefiere un selector existente documentado a un adaptador propio que debas mantener. En un servidor estable, evitar una conversión innecesaria es una decisión técnica y comercial válida.
Preguntas frecuentes
¿Puedo sustituir qb-target por ox_target sin editar scripts?
Solo cuando todos los recursos consumidores ya admiten la integración elegida o has verificado un puente adecuado. La capa parcial de qtarget no basta para demostrarlo.
¿ox_target es exclusivo de Qbox?
No. Ofrece targeting standalone con integraciones adicionales de framework documentadas. Las condiciones específicas del framework siguen necesitando el soporte correspondiente.
¿Debería ejecutar ambos?
Evalúa cualquier necesidad de coexistencia en una prueba aislada. Los registros solapados pueden confundir a los jugadores y dificultar el diagnóstico. Elige una vía compatible para cada interacción y verifica las teclas y los menús.
El centro de comparaciones FiveM conecta esta decisión de target con el framework, el inventario y las demás dependencias.
Referencias primarias
- ox_target: instalación e integraciones de framework
- ox_target: opciones y callbacks
- ox_target: exports del cliente y geometría de zonas
- Referencia de la API qb-target
- qb-target: código fuente, dependencias y licencia
- Manifiesto de ox_target e implementación de compatibilidad qtarget
- Cfx.re: proteger eventos del servidor