Cada script lleva la misma capa de bridges. Detecta lo que corre en tu servidor, elige un target y te dice cuál. Nada que instalar, nada que parchear, y los archivos que hacen el trabajo se pueden leer.
Qué frameworks están realmente soportados
ESX, QBCore y vRP tienen una rama dedicada, probada sobre los exports reales. El modo standalone no necesita ningún framework, y custom es una rama vacía que rellenas tú. Qbox y ox_core pasan por el camino standalone o custom en vez de por un target probado, y lo decimos en vez de afirmar un soporte que no hemos verificado.
esx, probado sobre es_extended
qbcore, probado sobre qb-core
vrp, hablado a través de su bus de eventos y no de su lib
standalone, sin framework
custom, un punto de extensión documentado
Cómo funciona la detección
La detección corre al arrancar y sondea el export real, no solo si el recurso está iniciado. Un framework que arranca después de nosotros no nos fija para siempre: el bridge reintenta, luego se rinde y cae a standalone. Cada bridge levanta una bandera Ready, y el resto del recurso espera esa bandera en lugar de un retraso adivinado. Un Wait adivinado ya provocó que ningún artículo de ropa se registrara en un servidor lento.
Pon Config.Debug = true y reinicia. La consola imprime una línea por categoría de bridge nombrando el target elegido. Vuelve a false cuando las líneas coincidan con tu servidor, porque los comandos de diagnóstico que desbloquea cuestan un tirón de frame.
Forzar un target en vez de detectarlo
Sustituye auto por el nombre que quieras. La detección se salta entonces por completo para esa categoría, que es lo que interesa en una instalación muy modificada donde el sondeo da la respuesta equivocada. Las cinco categorías son independientes: puedes forzar el framework y dejar las notificaciones en auto.
Para qué sirve la rama custom
Cada archivo de bridge lleva una rama custom con un comentario que indica dónde enganchar tu propio código. Nunca se selecciona automáticamente, solo cuando la nombras, porque un fallback que aterrizara en silencio en una rama vacía sería peor que uno que aterriza en standalone.
Por qué vRP se habla por eventos
Una dependencia dura en el manifiesto, la línea @vrp/lib/utils.lua que se ve por todas partes, impide que el recurso arranque en cualquier servidor sin vRP. El bridge habla por tanto directamente con el bus de eventos de vRP. El beneficio secundario es real: las diferencias de convención entre forks viven en ese helper, así que ir directo las elimina todas. vRP 2 y vRP 0.5 no están soportados, y el recurso lo dice en consola en vez de comportarse mal en silencio.
Preguntas
¿Funciona en Qbox o en ox_core?
Funciona, por el camino standalone o custom, pero no por una rama que probemos. Qbox está lo bastante cerca de QBCore como para que forzar qbcore funcione en la mayoría de builds. Preferimos escribirlo antes que afirmar un soporte sin verificar.
¿Qué pasa si mi framework arranca después del script?
No se rompe nada. La detección reintenta en vez de fijar una respuesta equivocada a la primera, y el recurso espera la bandera Ready del bridge antes de tocar nada. Un recurso que no está instalado se descarta de inmediato, para que otros servidores no paguen la espera.
¿Puedo usar dos scripts de Avenida a la vez?
Sí, están hechos para eso. Cada uno posee su mitad de la única ranura de decoración del ped y devuelve el resto tras un redraw. Lo que no debes hacer es correr los recursos por separado y el pack al mismo tiempo, y la consola lo avisa al arrancar si lo haces.
¿Necesito ox_lib?
No. bridges/compat.lua aporta una implementación nativa de lo que usamos, así que ox_lib se aprovecha cuando está y se sustituye cuando no. Nada en el manifiesto depende de él.