Documentación de Desguace de vehículos
Desguace de vehículos (ov_desguace)
Que hace
ov_desguace convierte un desguace del mapa en un trabajo completo para tus jugadores: robar un coche, llevarlo a un puesto, picarlo pieza por pieza y cobrar. Incluye contratos de misión, una tablet de banda con tienda y caja, un impound propio, robos con tarjeta y, de forma opcional, la recuperación de piezas de tuning de jg-mechanic.
- Picado por piezas. El jugador lleva un coche a uno de los puestos, quita cuatro ruedas, cuatro puertas y el capó (nueve piezas), las lleva al punto de venta y cobra. El servidor calcula el pago: el cliente solo indica qué pieza entrega y cada pieza se cobra una sola vez por vehículo. Al terminar las nueve piezas hay un bonus de cierre y el coche desaparece.
- Progreso guardado. Si el jugador se desconecta a medias, al volver a cargar su personaje el coche reaparece en su puesto con las piezas ya retiradas.
- Misiones con contrato. Tres niveles (fácil, medio y difícil) con coche objetivo, zona, guardias con tres estados (vigilancia, alerta y combate), refuerzos, bonus final, espera entre misiones y límite diario.
- Tablet de banda. Tienda de herramientas con carrito, miembros con cinco rangos, caja de la organización con depósito y retiro, historial de vehículos y acceso a las misiones.
- Coches de jugadores. Se pueden desguazar coches de otros jugadores: el coche va al impound del desguace y su dueño lo recupera pagando una tarifa. Por defecto el coche nunca se borra de la base de datos.
- Robos con tarjeta. Tarjetas de Ammunation, Fleeca y Metro: la tarjeta activa el robo, avisa a la policía y la policía confirma y paga la recompensa con
/pagarrobo. - Piezas de tuning (opcional). Al desguazar un coche con tuning de
jg-mechanic, el jugador puede recuperar piezas como objetos usados; un mecánico dejg-mechaniclas reacondiciona. - Español e inglés, tanto en el juego como en la tablet.
El recurso se diseñó con las carpetas editable/ (framework, inventarios, grupos) y locales/ para que el comprador adapte lo que necesite.
Requisitos
Dependencias declaradas en el fxmanifest.lua: ox_lib y oxmysql. Lua 5.4 (lua54 'yes'). Base de datos MySQL o MariaDB mediante oxmysql.
| Obligatorio | Opcional |
|---|---|
ox_lib, oxmysql | Inventario: ox_inventory, qb-inventory, codem-inventory o modo custom (incluye soporte para qs-inventory y origen_inventory) |
QBCore (qb-core) | Target: ox_target o qb-target (o modo custom) |
| Un inventario compatible de la lista | Garajes: jg-advancedgarages, qb-garages o ninguno |
Una tabla player_vehicles de QBCore | Organizaciones: op-crime (o crime-system) o la banda (gang) del framework |
Grupos: bd-groups o ninguno (cada jugador es su propio grupo) | |
Despacho: rcore_dispatch, frkn-dispatch, qs-dispatch o tu propio sistema mediante un evento | |
Combustible: ox_fuel, LegacyFuel, cdn-fuel (o el que indiques en la configuración) | |
Llaves: qs-vehiclekeys, 0r-vehiclekeys o qb-vehiclekeys | |
jg-mechanic, solo para el módulo de piezas de tuning |
Framework. El recurso está hecho para QBCore. Los archivos de client/editable/framework/ y server/editable/framework/ traen una base para ESX y otra para frameworks propios (Config.Core.Framework = 'esx' o 'custom'), pero los robos, la tablet, las misiones, el impound y el módulo de tuning llaman a QBCore directamente. Por eso ESX no está soportado de punta a punta: con ESX o un framework propio tendrías que adaptar esas partes a mano.
Inventarios. Se elige en Config.Core.Inventory. Con custom el recurso detecta origen_inventory, qs-inventory o qb-inventory. El módulo de tuning usa solo las funciones comunes del inventario, así que no depende de uno concreto.
Estado de pruebas. Según el README del recurso, la versión 3.0.0 pasa la comprobación de sintaxis y las pruebas de carga de configuración e idiomas, pero todavía no está probada completa dentro del juego. Pruébala en un servidor de desarrollo antes de llevarla a producción.
Instalacion
- Descarga el recurso desde el Portal de Cfx.re (sección de assets comprados) con la cuenta Cfx.re con la que hiciste la compra. Viene protegido con Asset Escrow de Cfx.re: solo funciona en servidores cuya licencia pertenece a tu cuenta.
- Copia la carpeta
ov_desguacearesourcesde tu servidor. Los archivos que no se cifran, y que puedes editar, son:shared/config.lua,shared/parts.lua,locales/,client/editable/,server/editable/,install/y toda la interfazhtml/. El resto del Lua va cifrado. - Agrega los items de tu inventario: pega
install/items_ox_inventory.luaen elitems.luadeox_inventory, oinstall/items_qb-core.luaen elitems.luadeqb-core. Los items normales de QBCore (lockpick,advancedlockpick,repair_kit,radio...) ya existen en la mayoría de servidores; si falta alguno, agrégalo igual. - Copia las imágenes de
html/img/a la carpeta de imágenes de tu inventario (enox_inventory,web/images/). - Base de datos: las tablas
ov_desguace_*se crean solas al arrancar el recurso. Si usas el módulo de tuning, también se crea solaov_desguace_tuning_recoveries; el archivoinstall/tuning_recoveries.sqles la misma tabla por si prefieres crearla a mano. - En
server.cfg, asegura el recurso después deox_lib,oxmysql, tu framework y tu inventario (y dejg-mechanicsi usas el módulo de tuning):
ensure ox_lib
ensure oxmysql
ensure qb-core
ensure ox_inventory
ensure ov_desguace
- Permisos opcionales (ACE):
add_ace group.admin ov_desguace.bypass allow
add_ace group.admin ov_desguace.admin allow
ov_desguace.bypass salta las restricciones de acceso. ov_desguace.admin permite /desguacejefe (también valen los permisos admin y god de QBCore). Los comandos de administración marcados como restringidos necesitan además command.<nombre> (ver la sección de comandos).
- Arranca el servidor y, desde el juego o la consola, nombra al primer jefe de la organización con
/desguacejefe(ver más abajo). Sin un primer jefe nadie puede reclutar en la tablet. - Abre
shared/config.luay ajústalo. Las coordenadas por defecto corresponden a un MLO concreto de desguace (puestos, puntos de venta, tablet, impound y taller). Si usas otro mapa tienes que cambiarlas a tus propias coordenadas.
Configuracion
Todo está en shared/config.lua (y los precios en shared/parts.lua). Los valores de abajo son los que trae por defecto.
General
| Clave | Por defecto | Para qué sirve |
|---|---|---|
Config.Language | 'es' | Idioma de todo el recurso: 'es' o 'en'. |
Config.Core.Framework | "qb" | 'qb', 'esx' o 'custom' (ver Requisitos). |
Config.Core.Inventory | "ox_inventory" | 'ox_inventory', 'qb-inventory', 'codem-inventory' o 'custom'. |
Config.Core.Target | "ox" | 'ox', 'qb' o 'custom'. |
Config.Core.ProgressBar | "ox" | 'ox', 'qb' o 'custom'. |
Config.Core.GroupsSystem | "none" | 'bd' (bd-groups) o 'none'. |
Config.Core.DebugEnabled | false | Más mensajes de error en consola (por ejemplo del despacho). |
Config.Marker | r=198, g=255, b=30, a=170 | Color y transparencia de los marcadores del suelo. |
Config.BlipColor | 2 | Id de color de GTA para los blips (2 = verde). |
Integraciones (Config.Integrations)
Con 'auto' se usa el recurso que esté arrancado; con 'none' se desactiva.
| Clave | Por defecto | Opciones |
|---|---|---|
Fuel | 'auto' | 'auto', 'ox_fuel', 'LegacyFuel', 'cdn-fuel', 'lc_fuel', 'none' |
VehicleKeys | 'auto' | 'auto', 'qs-vehiclekeys', 'qb-vehiclekeys', '0r-vehiclekeys', 'none' |
Garages | 'auto' | 'auto', 'jg-advancedgarages', 'qb-garages', 'none' |
Organizations | 'auto' | 'auto', 'op-crime', 'framework' |
Dispatch | 'auto' | 'auto', 'rcore_dispatch', 'frkn-dispatch', 'qs-dispatch', 'none' |
Acceso y requisitos
| Clave | Por defecto | Para qué sirve |
|---|---|---|
Config.Access.Enabled | true | Activa la restricción de acceso. |
Config.Access.Mode | "job_or_gang" | 'job', 'gang', 'job_or_gang' o 'job_and_gang'. |
Config.Access.AllowedJobs | { "mechanic" } | Trabajos que pueden operar. |
Config.Access.AllowedGangs | {} | Bandas permitidas; vacío = cualquier banda real. |
Config.Access.AceBypass | Enabled = true, ov_desguace.bypass | Permiso ACE que salta las restricciones. |
Config.Access.AdminAce | "ov_desguace.admin" | Permiso ACE para /desguacejefe. |
Config.StealRequirement | Enabled = true, Items = { "advancedlockpick" } | Item que el jugador debe llevar para poder procesar un coche. |
Vehículos de jugadores e impound
| Clave | Por defecto | Para qué sirve |
|---|---|---|
Config.OwnedVehicleCheck.Enabled | true | Aplica las reglas de coches registrados en player_vehicles. |
Config.OwnedVehicleCheck.SendToImpound | true | El coche del dueño va al impound del desguace en vez de borrarse. |
Config.OwnedVehicleCheck.RemoveFromDatabase | false | false = no se borra de la base de datos. |
Config.OwnedVehicleCheck.FallbackGarage | "Impound" | Garaje al que va el coche si el impound no se puede usar. |
Config.ChopshopImpound.Enabled | true | Activa el impound del desguace. |
Config.ChopshopImpound.Price | 50000 | Tarifa que paga el dueño por recuperar su coche (no va a la caja de la banda). |
Config.ChopshopImpound.AccessCoords / SpawnCoords | del MLO por defecto | Punto de acceso y de salida del coche. |
Config.ChopshopImpound.GarageTag | "ov_desguace_impound" | Etiqueta del impound en el sistema de garajes. |
Ubicaciones
| Clave | Para qué sirve |
|---|---|
Config.JobData | Posición de la tablet y del NPC del desguace (EnablePed = false por defecto: el NPC está desactivado, la tablet funciona igual). |
Config.DeliveryCoords | Los 6 puestos donde se aparca y se pica el coche. |
Config.SellPoints | Los 6 puntos donde se entrega cada pieza y se cobra. |
Config.MisionSpawnLocations | 10 zonas (con nombre) donde puede aparecer el coche de una misión. |
Config.VehicleCoords | Lista de ubicaciones de vehículos; en este recurso se usa para el modo de depuración (/chopdebug). |
Misiones
| Clave | Por defecto | Para qué sirve |
|---|---|---|
Config.MisionTiers[1..3] | Fácil, Medio, Difícil | Vehículos, partsMultiplier (0.4 / 0.65 / 1.0), bonus (15.000 / 30.000 / 45.000), estimate y guardias de cada nivel. |
Config.Missions.Cooldown | 300 | Segundos de espera tras entregar una misión. |
Config.Missions.CancelCooldown | 120 | Segundos de espera si se cancela o se rechazan los contratos. |
Config.Missions.DailyLimit | 6 | Misiones por jugador y día. |
Config.Missions.ResetHour | 0 | Hora del servidor (0-23) a la que se reinicia el contador diario. |
Config.Missions.ContractSeconds | 30 | Tiempo para elegir contrato (la interfaz muestra una cuenta atrás de 30 s). |
Config.GuardBrain | enabled = true, agresividad 2 | Rangos de alerta (32 m) y ataque (18 m), puntería y refuerzos. |
Tienda de la tablet (Config.Shop)
Commission = 0.10 (el 10 % de cada compra va a la caja de la organización). Items es una lista de { name, price, image }; precios por defecto: ganzúa 500, ganzúa avanzada 1.500, juego de destornilladores 800, kit electrónico 3.000, kit de reparación 1.200, binoculares 600, radio 2.500, tarjetas de robo 50.000 cada una, bidón de gasolina 1.000, cortapernos 2.500 y carga térmica 7.500. El nombre y la descripción de cada item salen de locales/ (cl_tab_item_<name>_label y _desc); el servidor valida el precio.
Robos (Config.Robberies)
| Clave | Por defecto | Para qué sirve |
|---|---|---|
Enabled | true | Activa los robos con tarjeta. |
PoliceJob | 'police' | Trabajo que confirma y paga la recompensa. |
ActivationRadius | 15.0 | Metros a la ubicación para poder activar la tarjeta. |
Cooldown | 600 | Segundos entre dos robos del mismo tipo. |
Types.ammunation | item tarjetarobo_ammunation, recompensa 875.000 | 9 ubicaciones. |
Types.fleeca | item tarjetarobo_fleeca, recompensa 4.500.000 | 6 ubicaciones. |
Types.metro | item tarjetarobo_metro, recompensa 2.900.000 | 1 ubicación. |
Cada tipo también define el sprite y el color del blip y minBandits / maxBandits. Los textos del aviso están en locales/server_features.lua.
Otras
Config.ScrapBlacklist: modelos que no se pueden desguazar (policía, ambulancia y plataformas por defecto). Agrega aquí los modelos propios de tu servidor.Config.Tuning:Enabled = true,Provider = 'jg-mechanic'yRefurbish(Enabled,Label = 'Taller'yPointscon las coordenadas del taller de reacondicionado). ConEnabled = falseel desguace funciona igual sin esta parte.Config.StolenFlow,Config.CarTabley otras claves menores: consulta el archivo de configuración, que trae un comentario en cada una.
Precios por pieza (shared/parts.lua)
Por defecto cada rueda (wheel_fl, wheel_fr, wheel_rl, wheel_rr) paga 20.000 y cada puerta (door_fl, door_fr, door_rl, door_rr) y el capó (hood) pagan 25.000; las nueve piezas suman 205.000. DesguaceBonusFinalPorDefecto (20.000) es el bonus de cierre cuando no hay contrato. DesguacePagoMaximo (50.000) es un tope de seguridad por pago: si subes un precio o un bonus por encima, el servidor rechaza el cobro, así que sube también ese tope.
Idiomas
Los textos están en locales/*.lua con AddLocale('es', {...}) y AddLocale('en', {...}). Para agregar un idioma, copia cada bloque AddLocale de todos los archivos de locales/, cámbiale el código (por ejemplo 'pt'), traduce los textos y pon Config.Language = 'pt'. La tablet toma sus textos de html/js/i18n.js: agrega ahí una tabla con el mismo código.
Colores de la interfaz
La interfaz usa la identidad de Otra Vida: negro mate, verde lima (--accent: #C6FF1E) y crema, con esquinas cortadas. Todas las variables están al inicio de html/css/style.css, dentro de :root (--accent, --accent-rgb, --accent-hover, --bg-app, --bg-card, --danger, --text-primary...). Cambia ahí la marca; para que los marcadores y blips del mundo coincidan, ajusta también Config.Marker y Config.BlipColor. (El README del recurso habla de una paleta roja, pero el CSS que se entrega es verde lima.)
Comandos y permisos
Jugadores
| Comando | Efecto |
|---|---|
/desguace | Abre la tablet (requiere acceso según Config.Access). También se abre con E junto a la tablet del desguace. |
/misiond | Pide los tres contratos de misión (lo mismo que el botón "Iniciar Misión" de la tablet). |
/cancelarmision | Cancela la misión activa (aplica la espera de cancelación). |
/abandonardesguace | Abandona el desguace en curso y borra el progreso guardado. |
/limpiardesguace | Comando de emergencia: quita los objetos pegados al jugador y reinicia su estado de desguace. |
/piezas | Vuelve a abrir el diálogo de piezas de tuning recuperables (módulo de tuning). |
/reacondicionar | Abre el reacondicionado de piezas usadas (solo mecánicos de jg-mechanic). |
/pagarrobo | Solo el trabajo de Config.Robberies.PoliceJob: lista los robos activos y confirma el pago. |
Teclas: E para aparcar el coche en un puesto, quitar una pieza, venderla, abrir la tablet, abrir el impound y forzar la cerradura del coche de misión.
Administración
| Comando | Permiso | Efecto | |
|---|---|---|---|
/desguacejefe [id] [rango] | ACE ov_desguace.admin, permisos admin o god de QBCore, o consola | Nombra o cambia el rango de un miembro. Rango 0-4 (por defecto 4 = Jefe); -1 lo saca de la organización. | |
/borrar <placa> | restringido (command.borrar) | Borra del mundo la entidad con esa placa y deja el coche en garaje en la base de datos. | |
/forzarlimpieza [id] | restringido (command.forzarlimpieza) | Fuerza la limpieza de objetos de desguace en un jugador. | |
/chopcheckplate <placa> | sin restricción en el código | Dice si la placa está en player_vehicles y de quién es. | |
/chopdbinfo | sin restricción en el código | Muestra la base de datos activa y el nombre del recurso. | |
/chopdebug y /chopstate | sin restricción en el código | Diagnóstico en el cliente: marcadores de puestos y estado del desguace. | |
| `/tuningver <id\ | matrícula>, /tuningtodo, /tuningcatalogo, /tuningprobar` | restringidos (command.<nombre>) | Diagnóstico del módulo de tuning, solo lectura (/tuningprobar solo desde el juego). |
/tuninglimpiar <matrícula> [categoría] | ACE ov_desguace.bypass | Apaga el tuning que quedó pegado a un vehículo cercano. |
Para los comandos restringidos: add_ace group.admin command.borrar allow (y lo mismo con cada nombre). Si quieres limitar /chopcheckplate, /chopdbinfo, /chopdebug y /chopstate, puedes hacerlo con add_ace/remove_ace del propio comando.
Eventos, exports e integración de despacho
El recurso no declara exports. Eventos que puedes escuchar:
- Servidor
ov_desguace:server:alertaPolicia: se dispara siempre que hay un aviso de robo, además de enviarlo al despacho elegido. Payload (d):code(por defecto'10-90'),title,message(incluye el número de bandidos),coords(vector3) yblip = { sprite, colour, scale }. Título y mensaje salen del idioma activo. - Cliente
ov_desguace:client:modoDesguaceActivado: se dispara al empezar a picar un coche (lo usan el módulo de misiones y el de tuning). - Cliente
ov_desguace:client:robberyStarted/robberyEnded: inicio y fin de un robo.
Para integrar un despacho propio (por ejemplo ps-dispatch o cd_dispatch):
AddEventHandler('ov_desguace:server:alertaPolicia', function(d)
-- d.code, d.title, d.message, d.coords, d.blip.sprite / colour / scale
-- envía el aviso a tu despacho
end)
Pon Config.Integrations.Dispatch = 'none' si no quieres que se envíe a ninguno de los despachos incluidos.
Como se usa
- Acceso. Por defecto pueden operar los jugadores con el trabajo
mechanico que pertenezcan a una banda. Con el permisoov_desguace.bypassse salta la restricción. - Conseguir un coche. Roba un coche de la calle o, con una misión, ve a buscar el coche del contrato. Para procesar un coche necesitas llevar una ganzúa avanzada (
Config.StealRequirement). El minijuego de habilidad aparece al forzar la cerradura del coche de una misión. - Aparcar en un puesto. Entra con el coche en uno de los seis puestos marcados en el suelo y pulsa E. El servidor valida el coche: no puede ser un modelo de la lista negra, ni uno que otro jugador esté picando, y no puedes desguazar un coche tuyo. El coche queda congelado en el puesto.
- Picar piezas. Camina hasta cada pieza (ruedas, puertas y capó) y pulsa E: una animación de soldadura de 10 segundos y la pieza queda en tus manos. En coches de dos puertas, las puertas traseras que no existen se saltan.
- Vender. Lleva la pieza a un punto de venta y pulsa E: cobras en efectivo. Cada pieza se paga una sola vez por vehículo.
- Terminar. Con las nueve piezas vendidas cobras el bonus de cierre y el coche desaparece. Si el coche era de una misión, el pago de piezas y el bonus siguen el contrato.
- Misiones. Desde la pestaña Misiones de la tablet (o
/misiond) recibes tres contratos, uno por nivel, con 30 segundos para elegir. Al aceptar, aparece el coche en la zona indicada con guardias según el nivel; usa una ganzúa avanzada (se consume) para abrirlo, supera el minijuego, recibe las llaves y llévalo al desguace. Hay espera entre misiones y límite diario; el HUD muestra la misión activa y permite cancelarla. - Tablet de banda. Tienda: compra herramientas con carrito (se paga primero con efectivo y luego con banco; el 10 % va a la caja). Personal y Finanzas: solo para los rangos Líder y Jefe. Historial: vehículos de jugadores desguazados.
- Impound. Si desguazaron tu coche, ve al punto del impound (blip en el mapa), pulsa E, elige tu coche y paga la tarifa con tu banco: reaparece con tus mejoras y tus llaves.
- Robos con tarjeta. Compra una tarjeta en la tienda de la tablet, ve a una de las ubicaciones del tipo de robo (a menos de 15 m) y úsala desde el inventario. Se avisa a la policía y aparece un blip para todos; la policía paga la recompensa con
/pagarrobosi los bandidos ganan. - Piezas de tuning. Si el coche pasó por un taller de
jg-mechanic, unos segundos después de aparcar se abre un diálogo con las piezas recuperables. Marca las que quieras, confirma (es irreversible) y recibes cada una como "Pieza de tuning usada". Solo se puede sacar una pieza por categoría y vehículo. Un mecánico las reacondiciona gratis en el taller o con/reacondicionar, y obtiene el item original.
Para administradores
- Primer jefe. Ejecuta
/desguacejefe(tú mismo, rango 4) o/desguacejefe <id> <rango>. Los rangos son 0 Novato, 1 Miembro, 2 Veterano, 3 Líder y 4 Jefe; Líder y Jefe ven las pestañas Personal y Finanzas. Los nombres de los rangos están enlocales/server_features.lua(sv_tab_grade_0asv_tab_grade_4). Un Líder o un Jefe puede reclutar (entran como Novato), ascender (hasta Jefe) y expulsar desde la tablet. - Caja. Los jefes depositan efectivo y retiran de la caja de la organización; cada movimiento queda en la lista de transacciones. La caja también recibe la comisión de la tienda.
- Acceso. Ajusta
Config.Access(trabajos, bandas, modo). Si tu servidor gestiona las bandas conop-crime,Config.Integrations.Organizationslo detecta solo. - Economía. Los pagos salen de
shared/parts.lua, deConfig.MisionTiersy deConfig.Robberies. Recuerda el topeDesguacePagoMaximo. - Mapa. Cambia puestos, puntos de venta, tablet, impound y taller por tus coordenadas, y revisa
Config.MisionSpawnLocationsyConfig.Robberies.Types.*.locations. - Impound y garajes. Con
jg-advancedgaragesel coche usa el impound de JG; conqb-garageso sin garajes se usastate = 2y la tablaov_desguace_impound, que guarda el garaje anterior. - Tuning. Requiere
jg-mechaniciniciado, con sus tablasmechanic_vehicledataymechanic_employees. Un "mecánico" para el reacondicionado es quien figura enmechanic_employees, no el trabajo del framework. Los diagnósticos/tuningver,/tuningtodo,/tuningcatalogoy/tuningprobarno entregan nada. - Entregas a medias. Si el recurso se detiene mientras entrega una pieza de tuning, esa fila queda en estado
manual_reviewenov_desguace_tuning_recoveriesy no se reintenta sola: revísala a mano. - Despacho. Mira la sección de comandos para integrar el tuyo.
Preguntas frecuentes
¿Funciona con ESX? No de punta a punta. El recurso está hecho para QBCore; las carpetas editable/ traen una base para ESX, pero los robos, la tablet, las misiones y el módulo de tuning usan QBCore directamente.
Nadie puede reclutar en la tablet. Hace falta un primer jefe: usa /desguacejefe con tu usuario (necesitas el permiso ov_desguace.admin o ser admin de QBCore).
Los puestos y marcadores aparecen en un lugar vacío del mapa. Las coordenadas por defecto son de un MLO concreto. Cambia Config.DeliveryCoords, Config.SellPoints, Config.JobData y Config.ChopshopImpound por las de tu mapa.
¿Se borran los coches de los jugadores? Por defecto no: van al impound del desguace y el dueño los recupera pagando Config.ChopshopImpound.Price. RemoveFromDatabase está en false.
¿Qué pasa si el jugador se desconecta mientras pica un coche? El progreso se guarda; al cargar su personaje el coche reaparece en el mismo puesto con las piezas ya retiradas. Con /abandonardesguace se borra.
Subí un precio y el servidor no paga. Cada pago tiene un tope de seguridad, DesguacePagoMaximo en shared/parts.lua. Súbelo junto con el precio.
¿Necesito jg-mechanic? No. Solo para el módulo de piezas de tuning; con Config.Tuning.Enabled = false, o sin jg-mechanic iniciado, el desguace funciona igual.
Actualizaciones y soporte
El recurso se entrega protegido con Asset Escrow de Cfx.re y se descarga desde tu cuenta del Portal de Cfx.re; allí encontrarás también las nuevas versiones. Los cambios de cada versión están en CHANGELOG.md. La licencia (LICENSE.txt) concede el uso en un servidor y prohíbe redistribuir o revender el recurso.
Si necesitas ayuda con la instalación o has encontrado un problema, escríbenos por el canal oficial de soporte: [enlace de soporte]. Indica la versión del recurso, tu framework e inventario, y el mensaje de error de la consola del servidor.
