Todo lo que puedes cambiar está en dos sitios: config.lua para el comportamiento, y la carpeta bridge/ para cómo la cuerda se comunica con tu framework, tu target y tu text UI. Ambos están abiertos (listados en escrow_ignore); client/client.lua y server.lua llevan escrow.
| Archivo | Qué decide |
|---|
config.lua | Framework, nombre del ítem, sistema de interacción, textos, teclas, distancias, longitud y física de la cuerda, marcador, cooldown, límite de tiempo |
bridge/server_bridge.lua | Obtener el framework, registrar el ítem rope como usable, comprobar que el jugador lo lleva |
bridge/client_bridge.lua | El texto 3D y el marcador que se dibujan en modo drawtext, y el evento de cliente que saca la cuerda |
bridge/target.lua | Las opciones de ox_target y qb-target, y el paso a drawtext como alternativa |
bridge/README.md | Notas breves sobre el bridge (en español) |
inventory/ | Definiciones de ítem listas para ox_inventory, QBCore y ESX |
stream/ | El modelo y la textura del prop de la cuerda |
No hay carpeta locales/. El único texto que ven los jugadores son los textos de Config.Labels.
| Opción | Qué hace | Por defecto |
|---|
Config.Framework | esx o qbcore. En QBox, usa qbcore — QBox ejecuta los recursos de QBCore a través de su capa de compatibilidad. Cualquier otro valor detiene el recurso al arrancar | esx |
Config.Item | El ítem de inventario que hace de cuerda | rope |
| Opción | Qué hace | Por defecto |
|---|
Config.InteractionSystem | ox_target, qb-target o drawtext. Un target que no está en marcha pasa a drawtext hasta que arranca | ox_target |
Config.Labels | El texto de cada acción: grab (Drag with rope), release (Release player), attach (Tie to vehicle), detach (Untie from vehicle) | Inglés |
Config.KeyLabels | Los nombres de tecla que se muestran en modo drawtext: Attach y Vehicle | E, Y |
Config.ShowInteractionMarkers | Dibuja un marcador sobre el jugador o vehículo con el que puedes interactuar. Solo en modo drawtext | true |
Qué hace cada acción:
| Acción | Quién puede hacerla | Qué ocurre |
|---|
| Drag with rope | Tú, con la cuerda en la mano, cerca de un jugador a pie | Ese jugador queda atado a tu mano |
| Release player | Quien arrastra | Se quita la cuerda y el jugador se levanta |
| Tie to vehicle | Quien arrastra, cerca de un vehículo | La cuerda pasa de tu mano a la parte trasera del vehículo |
| Untie from vehicle | Quien la ató | La cuerda vuelve a tu mano, con el jugador todavía atado |
| Release player (en el vehículo) | Quien la ató | El jugador queda libre del vehículo |
Las teclas son números de control de FiveM. Las flechas funcionan en todos los modos; E e Y solo importan en modo drawtext (con un target, eliges la acción en el menú).
| Opción | Qué hace | Por defecto |
|---|
Config.AttachKey | Agarrar o soltar a un jugador | 38 (E) |
Config.AttachToVehicleKey | Atar a un vehículo o desatar de él | 246 (Y) |
Config.AdjustLengthUpKey | Mantener para alargar la cuerda | 172 (flecha arriba) |
Config.AdjustLengthDownKey | Mantener para acortar la cuerda | 173 (flecha abajo) |
Si cambias AttachKey o AttachToVehicleKey, cambia también Config.KeyLabels, o el aviso mostrará la tecla antigua.
| Opción | Qué hace | Por defecto |
|---|
Config.MaxDetectionDistance | A qué distancia (m) debe estar un jugador para poder agarrarlo. También es la distancia del target para jugadores | 2.0 |
Config.MaxVehicleAttachDistance | A qué distancia (m) debe estar un vehículo para atarle la cuerda. También es la distancia del target para vehículos | 5.0 |
Config.MarkerVisibilityDistance | Sigue en config.lua, pero la versión actual no la lee — el aviso aparece para quien esté dentro de las dos distancias anteriores | 20.0 |
| Opción | Qué hace | Por defecto |
|---|
Config.InitialRopeLength | Longitud (m) al empezar a arrastrar | 3.0 |
Config.MinRopeLength | Lo más corta que pueden dejarla las flechas | 1.0 |
Config.MaxRopeLength | Lo más larga que pueden dejarla las flechas | 100.0 |
Config.RopeType | El tipo de cuerda del juego | 1 |
Config.RopeSlack | Sigue en config.lua, pero la versión actual no la lee — la holgura de la cuerda viene de su longitud | 0.5 |
Config.RopePropModel | El prop en la mano del jugador. El de por defecto se carga desde stream/ | prop_stag_do_rope |
| Opción | Qué hace | Por defecto |
|---|
Config.MarkerType | El tipo de marcador del juego | 2 |
Config.MarkerHeightOffset | Altura (m) sobre el jugador a la que se colocan el aviso y el marcador | 1.0 |
Config.MarkerScale | Tamaño del marcador | 0.3 |
Config.MarkerColor | Color del marcador, como rojo, verde, azul y alfa | rojo, alfa 150 |
| Opción | Qué hace | Por defecto |
|---|
Config.DragCooldown | Milisegundos entre dos acciones de cuerda | 1000 |
Config.DisableControls | Bloquea todos los controles del jugador arrastrado. Desactivado, puede seguir usando sus controles mientras está en ragdoll | true |
Config.EnableMaxDragTime | Rompe la cuerda sola tras MaxDragTime | false |
Config.MaxDragTime | Segundos antes de que se rompa la cuerda, cuando la opción anterior está activada | 100 |
Config.NeedItemToRelease | A pie, para soltar hace falta tener la cuerda en la mano. El dueño siempre puede soltar a alguien atado a un vehículo | true |
El jugador arrastrado queda en ragdoll, no puede disparar y es invencible hasta que le quitan la cuerda.
No hay archivo de idioma. Traduce los cuatro textos de Config.Labels, y Config.KeyLabels si tus jugadores usan otros nombres para las teclas.
La carpeta bridge/ está abierta para que puedas adaptar la cuerda a un entorno que no conoce. La física de la cuerda y los eventos de red se quedan en los archivos con escrow y no hace falta tocarlos.
server_bridge.lua — framework e inventario. Obtiene ESX o QBCore, registra Config.Item como ítem usable y responde a “¿lleva este jugador una cuerda?” cuando empieza un arrastre. Para un framework personalizado o un inventario con su propia API, reescribe Bridge.GetPlayer, Bridge.HasRope y Bridge.RegisterRopeItem. Registra el ítem en un solo sitio — dos integraciones que registren el mismo ítem lo dispararán dos veces.
client_bridge.lua — texto y marcador. Bridge.DrawText y Bridge.DrawMarker dibujan el aviso de drawtext en cada frame en que es visible. Sustitúyelos para usar tu propio recurso de texto 3D o de TextUI. También escucha el evento de cliente mic_drag:useRope, que saca o guarda la cuerda — dispáralo desde el callback de uso de un inventario personalizado si no usas los ítems usables del framework.
target.lua — menús de target. Añade y quita las opciones globales de jugador y de vehículo para ox_target y qb-target, y pasa a drawtext cuando el target se detiene. Aquí es donde añadirías otro recurso de target.
| Export (cliente) | Devuelve |
|---|
GetInteractionState | Una tabla: mode (la interacción en uso), hasRope (cuerda en la mano), targetServerId (a quién estás arrastrando), vehicle (el vehículo al que está atada la cuerda), beingDragged, busy |
Es de solo lectura: útil para un HUD, o para que otro script sepa que no debe actuar sobre un jugador que está atado a una cuerda.