Script de mecánico para FiveM

Mechanic: documentación

Un trabajo de mecánico completo, basado en trabajo real con las manos. El cliente monta su tuneo en su propio carro y lo envía al taller. El taller lo factura y pide las piezas. Después, los mecánicos cargan cada pieza a mano y la instalan con el gato, el elevador, la grúa de motor, la lijadora y la pistola de pintura.

Alrededor de eso hay:

  • facturas y presupuestos;

  • un equipo con sueldos, estadísticas, citas y un historial de cada matrícula;

  • inspección (ITV), dinamómetro y desgaste por kilómetros;

  • daños realistas, cambios de motor y motores usados;

  • nitro, hidráulica, ECU y vehículos de empresa.

  • Versión 2.1.3

  • Frameworks: QBCore · Qbox

  • Idiomas: es · en


Novedades en 2.1

  • Panel de diagnóstico: una auto-revisión para admins (/talleradmin > Diagnóstico, la consola al arrancar o rolo_mechanic_diag). Te dice en segundos si el framework, el inventario, los garajes, el banco, las llaves, la gasolina, el target, las tablas, los items y los trabajos están bien. Los webhooks se revisan sin mostrar nunca su valor.
  • Escáner OBD-II (item obd_scanner, también en el almacén): 28 códigos de falla calculados en el servidor con el estado real del carro (desgaste de piezas, motor, carrocería, tanque, kilometraje y el último choque fuerte). El mecánico ve el informe completo y lo adjunta a la orden; el dueño lo ve en "Mis vehículos".
  • Calidades de pieza y garantías: OEM, Alternativa y Performance, cada una con su precio, su desgaste y su garantía en días y kilómetros. Si la pieza falla dentro de la garantía, el cliente reclama en el taller que la puso y recibe reparación gratis o reembolso del fondo del taller. Todo se valida en el servidor (Config.Warranty).
  • Carros abandonados al depósito: si el dueño se desconecta y no vuelve en 3 minutos, su carro se va al depósito de tu script de garajes: origen_garages, qb-garages, qbx_garages, qs-advancedgarages o el tuyo por la rama 'custom' (Config.AbandonedVehicles). Los carros que alguien maneja, que están en una grúa o que tienen una orden abierta en el taller esperan.
  • Más liviano: unos 0.08 ms trabajando un carro dentro del taller y 0.00 ms lejos de él (medido en un servidor en vivo).
  • Aros, cajas e hidráulica: las ruedas nuevas esperan en el suelo mientras el mecánico trabaja con una llave en la mano, la caja desaparece al empezar a instalar la pieza y la hidráulica da un golpe en vez de un brinco.
  • Economía blindada: sin dupes ni dobles cobros (facturas, fondo del taller, almacén, compraventa, garantías), con cada cantidad validada en el servidor.

Funciones

Pedidos de tuneo

  • El cliente se estaciona en el taller y abre el panel de tuneo. Cada cambio se ve en el carro al momento, con cámara libre.
  • Las piezas tienen su ilustración, precio, carrito y seguimiento del pedido.
  • Opciones disponibles:
    • pintura (primaria, secundaria, perlado, rines, interior y tablero);
    • rines y humo de llantas;
    • xenón, neones, polarizado y placas;
    • motor, frenos, transmisión, suspensión, blindaje y turbo;
    • stance (altura, camber, ancho, tamaño de rin, ancho de llanta), por eje o por rueda (camber y ancho de cada rueda);
    • extras 1-20 y compuesto de llanta;
    • hidráulica lowrider: subir el frente, la parte trasera o un lado, una esquina (3 ruedas), salto delantero, rebote del carro entero y modo baile (NUMPAD 8/2/4/6, 5, 9, 0; altura con RE PÁG / AV PÁG). Los lowriders de GTA usan la hidráulica del propio juego rueda a rueda; cualquier otro carro usa física real. Sincronizado para todos;
    • anti-lag, two-step y nitro;
    • caja de cambios manual (Config.Gearbox): el conductor elige automática / manual en cada carro (/caja o una tecla). En manual el juego nunca cambia solo: LSHIFT / LCTRL suben / bajan, los cambios son instantáneos, una marcha demasiado alta para la velocidad tira menos y arrancar en 3.ª o más puede apagar el motor. La reversa funciona como siempre. rolo_interface muestra la marcha como M3.
  • Dos formas de pago (Config.OrderPayment):
    • 'invoice': el taller envía la factura al aceptar el pedido. Mientras espera el pago, el pedido tiene Reenviar factura (al cliente le vuelve a salir la ventana de pago, o un mensaje si no está conectado) y Anular y facturar de nuevo (vuelve a "Nuevo" para enviar otra factura, por ejemplo con otro descuento), además de cancelar;
    • 'upfront': el dinero queda retenido y se devuelve si el taller rechaza el pedido. Un pedido ya en curso (solo el jefe puede cancelarlo) devuelve solo las piezas aún no instaladas: las instaladas se quedan en el carro y se pagan (van al fondo del taller, menos las comisiones ya pagadas). Al cliente se le dice cuánto se cobró.
  • Autoservicio (opcional, APAGADO por defecto): cuando no hay mecánicos de servicio, el cliente puede pagar un recargo y aplicar los cambios al instante (Config.SelfService, también en Ajustes). Apagado, el cliente hace un pedido normal y un mecánico lo instala.
  • Tuneo de admin (/tuningadmin): tuneo gratis e instantáneo en el carro que conduces.

Trabajo con las manos (todo sincronizado para los que están cerca)

  • Las piezas llegan en cajas al taller (Config.DeliveryFeePercent, 10 % por defecto). Opcional: recogerlas en el almacén del muelle con un vehículo (Config.Warehouse.enabled, apagado por defecto).
  • Checklist de trabajo en pantalla (Config.WorkChecklist): junto a un carro con pedido, un panel a la derecha lista cada pieza con su estado (instalada, en curso con sus pasos y una barra, en la mano, en la entrega, pedida, sin pedir) y lo siguiente que hay que hacer cerca. Cuando todo está instalado dice que el pedido está listo para facturar. Se esconde dentro de los carros, con la tablet o el menú de tuneo abiertos y al alejarte.
  • Reiniciar una pieza: si un paso salió mal o el juego se cerró a mitad, Reiniciar en esa pieza (pedido de la tablet) devuelve su caja al punto de entrega y empieza sus pasos de cero. El carro vuelve a como está guardado (ruedas, capó, pintura) y el resto del pedido no cambia. Un cambio de motor que ya sacó el motor viejo no lo guarda dos veces.
  • Una herramienta a la vez: con el carro en los gatos / elevador solo se muestran los trabajos que lo necesitan, y con la grúa de motor delante solo los de motor y carrocería. Al terminar esos trabajos, primero hay que quitar la herramienta (el aviso dice lo siguiente, por ejemplo Bajar los gatos (siguiente: Motor)), y se vuelve a poner para el próximo trabajo que la necesite. La grúa no se puede poner con el carro subido, y un carro con la grúa delante no se puede subir.
  • Varias bahías de tuneo, cada una con su punto de entrega: cada pedido recuerda la bahía donde estaba el carro, y sus cajas llegan a la entrega de esa bahía. Dos o más mecánicos pueden trabajar a la vez sin mezclar piezas. Cada caja muestra la pieza, el pedido, la bahía y la placa. /talleradmin lista cada bahía con su entrega y no guarda una bahía sin entrega; las camionetas pueden descargar en cualquier punto de entrega.
  • Cada pieza se carga según su tamaño:
    • cajas pequeñas;
    • parachoques y capós al hombro;
    • ruedas de pie con las dos manos (también se pueden rodar al lado: perfil de carga wheel);
    • motores en una transpaleta.
  • Gato para las ruedas y elevador para la parte de abajo (sin elevador en el taller = el gato lo hace todo).
    • Elevador por defecto: el elevador de cuatro columnas de GTA (DLC The Chop Shop, build 3095+), con su modelo "subido" para que la plataforma quede bajo el carro. Builds más viejos usan solos el de dos columnas (Config.LiftFallbackModel, build 2372+). No hay que instalar nada.
    • Un elevador de tu mapa / MLO: márcalo como none en /talleradmin y no se pone ningún prop.
    • Elevadores de dos piezas de otro recurso que tengas (cuerpo + brazos que suben con el carro): LiftModel + LiftArmsModel.
  • El gato se ajusta solo: el carro sube hasta apoyarse encima del gato (Config.JackAutoFit), nunca más de Config.JackMaxHeight (0.8 m). Gatos por defecto: el gato azul grande (prop_carjack), con el gato rojo pequeño (imp_prop_car_jack_01a, usa JackMaxHeight = 0.4 con él) y el caballete como reserva (Config.JackModel acepta una lista). Los gatos siempre quedan en el suelo (también en suelos de MLO) y el carro se apoya en su parte de arriba real.
  • Las ruedas se quitan y se ponen con una pistola de impacto y su sonido. La rueda vieja queda plana en el suelo junto al carro (lejos del mecánico) hasta que se pone la nueva. Las piezas de rueda van rueda a rueda: frenos en las 2 delanteras; suspensión, frenos cerámicos, llantas de drift y stance en las 4 (steps en Config.Mods).
  • La vista previa del tuneo abre lo que miras: las piezas del maletero (maletero, bocinas) abren el maletero y las del capó (capó, turbo, motor) abren el capó mientras las ves.
  • Rines nuevos, rueda a rueda (Config.RimsOneByOne): primero "Quitar rueda vieja (1/4...4/4)", cada rueda vieja sale y queda en el suelo; después "Poner rueda nueva (1/4...4/4)", cada rueda nueva aparece con los rines nuevos mientras las que faltan siguen fuera. Al final se retiran las ruedas viejas. El carro no se puede bajar del gato con ruedas fuera (si se cancela el pedido, vuelven a ponerse las viejas). GTA tiene un solo modelo de rin para todo el carro, así que nunca se pueden ver a la vez un rin viejo y uno nuevo: por eso primero salen las viejas.
  • El capó se quita y queda apoyado en el carro.
  • Trabajo bajo el carro en una camilla con linterna cuando el carro está en el gato, o de pie debajo, con los brazos arriba, cuando está en el elevador. El interior se trabaja sentado en el asiento.
  • Cada animación de trabajo se mantiene viva durante la barra de progreso (otro script no la corta), con una animación de reserva si una no carga.
  • Cambios de motor con la grúa de motor: movimiento suave, cadena y algo de balanceo.
  • Color libre + pinturas camaleón en el menú de tuneo (primaria / secundaria):
    • Libre: cualquier color con nuestro selector (tono, saturación, brillo o un código #hex), visto en vivo en el carro (Config.PaintRGB).
    • Camaleón (Config.Chameleon, apagado por defecto): las pinturas camaleón no vienen en el juego base de PC, así que tu servidor debe cargar un add-on camaleón (carcols + texturas). En el build 2612+ sus ids empiezan en 223. Pon los ids de tu add-on en el config. Elegida en la primaria, se pone también en la secundaria.
  • Pintura:
    • lijado lado a lado;
    • una pistola de pintura real (prop_spraygun_01 del juego base, aerosoles como reserva) con una nube del color de la pintura. Su posición en la mano está en Config.Visuals.paintGunAttach;
    • el color va apareciendo poco a poco sobre la imprimación.
  • Chispas de soldadura para la carrocería y el tanque; los vidrios se colocan y se pulen con un paño (reparación anim = 'glass', soldadura si ese escenario no arranca). 'hammer' sigue disponible en Config.Repairs.
  • Un portátil OBD con cable para el diagnóstico.
  • Sonidos de taller: pistola de impacto, carraca, amoladora, compresor, pintura, soldadura y grúa.
  • Una cámara cinemática opcional que cada jugador activa con /mechcam.
  • Minijuegos de instalación opcionales (skill checks) para cada pieza. El minijuego va primero: si lo pasas, empiezan la animación y la barra; si fallas, no se pierde nada (la pieza sigue en tus manos) y ese paso mantiene su minijuego hasta que lo pases (pulsar E otra vez no lo salta).
  • Al colocar props se ven todas las teclas en la burbuja: [E] Colocar · [RUEDA] / flechas girar · [RETROCESO] Cancelar.

Servicio y facturación

  • Diagnóstico del carro más cercano, reparaciones con items y reparaciones sugeridas convertidas en factura con un clic.
  • Menú del carro (Config.CarMenu, tecla Q por defecto, /coche): dentro de un vehículo, un panel para controlar el carro mientras sigues manejando:
    • encender / apagar el motor;
    • cada puerta, capó y maletero en un dibujo del carro visto desde arriba;
    • ventanas una a una o todas;
    • cambiar de asiento;
    • luces, luz interior, intermitentes, emergencia, neones y el techo del convertible;
    • el estado del carro: gasolina, motor, carrocería, km, el modo de la caja manual y el nitro.
    • El conductor lo controla todo; los pasajeros, solo su asiento, ventana y puerta.
    • Cada jugador puede cambiar la tecla en Configuración > Asignación de teclas > FiveM. La rueda de radio de GTA (también Q) se desactiva dentro de los carros (disableRadioWheel).
  • Membresías del taller (Config.Memberships, tablet > Socios): vende una membresía Básica / Premium a un cliente cercano con una factura. Al pagarla, el cliente es socio de ese taller por 30 días: el descuento ya se aplica a todos los precios del menú de tuneo (que muestra "Socio Premium: -20%") y a las facturas del taller. Pagar de nuevo la alarga; el jefe puede cancelarla.
  • Cinta adhesiva (duct_tape, Config.Care.tapeItem): cualquiera puede parchar un carro averiado en la calle, lo justo para llegar a un taller (motor y carrocería hasta 45 %, sin humo ni fuga de aceite). Las llantas y las ruedas rotas siguen necesitando un mecánico.
  • Facturas y presupuestos:
    • descuentos por rango, impuesto y recargos por retraso;
    • pagos parciales, banco o efectivo, y propinas;
    • recordatorios y el comando /facturas.
  • Tienda de suministros, entregados en una caja en el taller.
  • Motores usados: ponles precio, reconstrúyelos en el banco de motores (4 minijuegos) o véndelos como chatarra.

Equipo y taller

  • Equipo: contrata a jugadores cercanos, despide, cambia rangos, mira quién está de servicio y las estadísticas de cada mecánico (instalaciones, reparaciones, facturas, ganancias, tiempo de servicio).
  • Sueldos por rango, pagados desde el fondo del taller cada X minutos de servicio.
  • Fondo en el banco (opcional): Config.FundAccount = 'society' guarda el dinero del taller en la cuenta de empresa de su trabajo en tu script de banco (qb-banking, Renewed-Banking, qs-banking, okokBanking, qb-management). Los depósitos / retiros hechos en el banco se ven en la tablet en 30 s. Pasa el fondo viejo al banco antes de cambiarlo.
  • Estadísticas: ingresos y gastos por día, piezas más vendidas, movimientos por tipo y un ranking de mecánicos.
  • Citas: los clientes reservan con /cita. El taller las confirma, las marca hechas o no presentadas, o las cancela. Los clientes reciben recordatorios por notificación y celular.
  • Historial del vehículo por placa: tuneos, reparaciones, mantenimiento, inspecciones y pruebas de dyno, con km y mecánico. Los clientes ven el historial de sus propios carros.
  • Reloj de servicio pasando la tarjeta de identificación.
  • Vehículos de empresa con depósito:
    • grúa de plataforma que carga carros;
    • grúas de gancho: el gancho de GTA agarra el carro al dar reversa, y el conductor lo suelta con [G] (Config.TowTrucks, tecla configurable);
    • van y montacargas;
    • helicóptero de rescate desde el helipuerto.
  • Props que se pueden colocar (conos, luces, herramientas...).

Vida del vehículo

  • Desgaste por km de:
    • aceite, bujías, filtro de aire y refrigerante;
    • catalizador, pastillas de freno y líquido de frenos;
    • llantas, suspensión, embrague y aceite de la caja;
    • la batería eléctrica (los carros eléctricos solo tienen piezas eléctricas).
  • Cada pieza gastada tiene un efecto: fallos de encendido, menos potencia, frenos débiles, cambios lentos, sobrecalentamiento, batería descargada.
  • Daños realistas:
    • calor y desgaste de los frenos;
    • robo de piezas (Config.PartTheft):
      • la llave de cruz quita una rueda de un carro estacionado y el cortatubos su catalizador; el ladrón se queda la pieza;
      • el carro mantiene el daño hasta que un mecánico lo arregla: la rueda falta para todos y el catalizador queda al 0 % (menos potencia);
      • aviso a la policía con origen_police, ps-dispatch, cd, qs, core, rcore o notificaciones normales;
      • tiempos de espera por carro y jugador, policías mínimos, y tus propios carros están a salvo;
    • barro, arena y todoterreno (Config.Offroad):
      • los carros de calle pierden potencia en suelo suelto (barro, arena, pantano, nieve) y se ensucian;
      • patinar casi parado en suelo profundo los deja atascados (se hunden un poco);
      • los todoterreno y el nuevo compuesto de llanta Todoterreno (A/T) aguantan y nunca se atascan;
      • cuerda de remolque (/cuerda, o un item): tu carro saca al otro. La ven todos y se rompe si se alejan demasiado;
      • /mechsurface muestra el suelo bajo cada rueda, para añadir superficies;
    • choques reales (Config.RealDamage.crash, Config.Damage):
      • un golpe fuerte daña el motor y la carrocería además del daño de GTA, y sacude la cámara;
      • puede reventar una llanta y, si es muy fuerte, arrancar una rueda. La rueda está sincronizada para todos y vuelve con la reparación de Llantas o cualquier reparación completa;
      • un motor dañado tira menos;
    • fugas de aceite que dejan rastro;
    • incendios del motor;
    • empujar carros averiados.
  • Recordatorios de mantenimiento al conectarse el dueño, por notificación y correo del celular.
  • Cuentakilómetros mientras manejas.

Inspección, dyno y handling

  • Inspección (ITV) desde la tablet. Revisa:
    • motor, carrocería y tanque;
    • llantas, vidrios y luces;
    • placas falsas y piezas gastadas.
  • Un carro que pasa recibe un certificado válido por X días, más un item opcional para el dueño.
  • La policía lo revisa con /revisaritv [placa].
  • Punto de dyno: potencia, torque, velocidad máxima, 0-100 y una curva de potencia, comparado con la última prueba del carro.
    • Bahía de dyno: en /talleradmin elige Con dyno (un ventilador delante y una caja de herramientas con monitor, props del juego base en Config.Dyno.furniture; GTA no trae un modelo de dyno, así que pon ahí el tuyo si tienes uno) o Solo el punto (el dyno de tu mapa / MLO).
    • Marca el punto sentado en un carro, donde está el dyno, mirando al frente.
    • El mecánico sube un carro y pulsa E: el carro se centra en los rodillos (snap), se queda quieto, sus ruedas motrices giran con las revoluciones (delanteras, traseras o todas, según el handling) y una cámara lateral muestra el carro durante la prueba (camera).
  • Editor de handling para admins: deslizadores en vivo en el carro que manejas. Al guardar se aplica el handling a todos los carros de ese modelo.

Carros usados (compraventa)

  • El taller compra carros a los jugadores en su punto de compraventa: el dueño lo estaciona ahí y recibe una oferta para aceptar o rechazar. Paga el fondo.
  • Desguace: carros rotos baratos, con muchos kilómetros y piezas gastadas, renovados cada hora.
  • Reacondicionar: lleva un carro del stock a la bahía de pedidos. Se convierte en un pedido interno que no paga ningún cliente. El fondo paga las piezas (y las comisiones, si están activadas). Piezas, mano de obra, motores usados e items de reparación suman como inversión del carro.
  • Vender en el lote: un cartel "SE VENDE" sobre el carro muestra:
    • precio, kilometraje y estado;
    • mejoras, inspección y resultados del dyno.
  • El aviso "[E]" queda entre tú y el carro, y el cartel sube al acercarte, así que nunca se tapan.
  • Una ficha de compra para el cliente:
    • historial completo del vehículo;
    • prueba de manejo con depósito;
    • financiación (entrada, cuotas, interés; los carros sin pagar se embargan);
    • parte de pago con el carro del comprador.
  • Stock con precio de compra, inversión, precio sugerido y margen por carro. Comisión de venta para el empleado que está junto al carro. Cada movimiento va al fondo del taller, a las estadísticas y al historial.
  • Los clientes ven sus préstamos en /facturas y pueden adelantar una cuota o pagar el resto.

Integración

  • Las notificaciones, los textos "[E]" y las barras de progreso pasan por rolo_notify automáticamente. También puedes usar ox_lib, qb-core, okok o el tuyo.
  • Target: ox_target, qb-target o un aviso con tecla.
  • Inventarios: ox_inventory, origen_inventory, qs-inventory, qb-inventory.
  • Las llaves de vehículo y la gasolina se detectan solas.
  • Correo del celular: qs-smartphone, lb-phone o el tuyo.
  • Un webhook de Discord por categoría: pedidos, facturación, personal, piezas, vehículos, carros usados, admin.

Instalación

  1. Pon rolo_mechanic en tu carpeta de resources. ox_lib y oxmysql deben arrancar antes.
  2. Añade ensure rolo_mechanic a tu server.cfg.
  3. Items (carpeta items/, los 22 items del script, con nombres en español listos para cambiar):
    • qb_items.lua para qb-core / qs-inventory / Qbox;
    • ox_origen_items.lua para ox_inventory / origen_inventory (lee el comentario de arriba: origen no usa las líneas server = { export });
    • Imágenes de los items que GTA / QBCore no traen (mechanic_tablet, coolant, gearbox_oil, catalytic, ev_battery, duct_tape, lug_wrench, pipe_cutter): items/images/*.png, cópialas a la carpeta de imágenes de tu inventario. El item opcional del certificado de inspección (Config.Inspection.certificateItem) es cosa tuya.
  4. Pon tus trabajos de mecánico en Config.Jobs. Los admins son Config.AdminPermissions (grupos del framework / aces).
  5. Las tablas de la base de datos se crean y actualizan solas al arrancar. install.sql es solo para usuarios de base de datos que no pueden crear tablas.
  6. En el juego, usa /talleradmin para crear un taller y marcar sus puntos:
    • obligatorio: la bahía de tuneo 1 y su punto de entrega (aparecen como pareja);
    • bahías de tuneo extra (hasta 5), también como parejas (Bahía de tuneo 2 + Entrega de la bahía 2...): al marcar una, marcas su entrega enseguida (o después con Marcar entrega). Cada bahía necesita su entrega para poder guardar el taller;
    • opcional: tablet, cabina de pintura, garaje, reloj de servicio, banco de motores, dyno, helipuerto, compraventa y elevadores.

Comandos

Comando Quién Qué hace
/taller (o el item mechanic_tablet) Mecánicos Tablet del taller
/talleradmin Admins Crear / editar talleres
/tuningadmin Admins Tuneo gratis e instantáneo en tu carro
/handlingeditor Admins Editor de handling del modelo que manejas
/facturas Todos Tus facturas
/cita Todos Reservar una cita
/revisaritv [placa] Policía + mecánicos Revisar la inspección de un carro
/mechcam Todos Activar / desactivar la cámara cinemática del taller
/hidraulica Conductores de un carro con hidráulica Mostrar / ocultar los controles de la hidráulica

Todos los comandos se pueden renombrar en config.lua. Algunos textos de ayuda mencionan /talleradmin y /facturas; si renombras esos comandos, cambia también los textos en los locales.

Hidráulica lowrider

La pieza "Hidráulica" (menú de tuneo > Rines) se instala como cualquier otra: el cliente la pide, el taller trae la pieza y el mecánico sube el carro y la monta por debajo. Queda guardada en el carro (el garaje y los reinicios la mantienen). No hay menú para activarla: el conductor de un carro con hidráulica usa las teclas.

Tecla (por defecto) Qué hace
NUMPAD 8 / 2 (mantener) Subir el frente / la parte trasera
NUMPAD 4 / 6 (mantener) Inclinar a la izquierda / derecha
Dos a la vez (8 + 4, 8 + 6...) Sube solo esa esquina (3 ruedas en el suelo)
NUMPAD 5 Salto delantero: las ruedas delanteras saltan y caen
NUMPAD 9 Rebote del carro entero
NUMPAD 0 Modo baile on / off (rebota solo al ritmo)
RE PÁG / AV PÁG Altura de la carrocería (también manejando)
  • Los trucos funcionan con el carro parado o casi parado (maxSpeed). Nunca se inclina más de maxTilt grados.
  • Los lowriders de GTA (Benny's: Chino, Buccaneer, Voodoo, Faction, Moonbeam, Tornado Custom...) usan la hidráulica del propio juego rueda a rueda. Cualquier otro carro usa física real: el lado se empuja hacia arriba y se mantiene, y al soltar el carro cae con su peso y rebota. Lo ven todos.
  • Controles en pantalla: al subir a un carro con hidráulica se muestran unos segundos (con los controles de rolo_notify, con las teclas del propio jugador si las cambió). /hidraulica los vuelve a mostrar. Sin rolo_notify llegan como notificación.
  • Los jugadores cambian las teclas en Configuración > Asignación de teclas > FiveM ("Hidráulica").
  • Todo está en Config.Hydraulics: teclas, rango de altura, lift / liftGain / liftMax (cuánto y con qué fuerza suben los lados), frontHop, hop, dance, hints. Los valores de física son un punto de partida: ajústalos en el juego a tu gusto.

Stance y rines

El stance (menú de tuneo > Rines > Stance) tiene deslizadores para altura, camber delantero / trasero, ancho delantero / trasero, tamaño del rin (diámetro) y ancho de llanta. GTA solo cambia el tamaño de los rines de tuneo: un carro con sus rines de fábrica necesita otros rines primero (el menú lo avisa). Límites en Config.Stance.

Las piezas agrupadas (xenón, humo de llantas, neones, pintura, rines) se pagan una vez por todo el trabajo. Su precio se ve en la cabecera de la pieza y en las filas de on / off.


Ajustes en el juego (tablet > admin > Ajustes)

Los admins (/talleradmin) pueden cambiar unos 25 ajustes sin tocar config.lua: economía (costo de piezas, comisión, tarifa y tiempo de entrega, impuesto, membresías, recogida en el muelle), daños (multiplicadores de choque, choques reales, ruedas que se rompen, calor de frenos, desgaste y su velocidad), manejo (barro / arena, atascarse, apagado del motor en la caja manual, salto de la hidráulica) y robo de piezas (on / off, policías necesarios, probabilidad de aviso).

  • Se guardan en la tabla mech_settings y se aplican al momento en el servidor y en todos los clientes.
  • Cada uno muestra su valor por defecto de config.lua y puede volver a él con un clic. Los pocos marcados como "requiere reinicio" se aplican tras restart rolo_mechanic.
  • La lista está en shared/settings.lua.

Configuración (config.lua)

Opción Qué hace
Config.Framework, Inventory, VehicleKeys, Fuel, Phone 'auto' los detecta; pon uno para forzarlo.
Config.Notify, TextUI, Progress, Target 'auto' usa rolo_notify / tu target cuando están activos.
Config.Jobs, RequireDuty, OffDutyOnLogin Trabajos de mecánico y reglas de servicio.
Config.OrderPayment, PartsCostPercent, CommissionPercent Cómo se pagan los pedidos y cómo se reparte el dinero.
Config.SelfService Tuneo instantáneo opcional cuando no hay mecánicos (con recargo). Apagado por defecto: pon enabled = true (o actívalo en Ajustes) para usarlo.
Config.Billing Facturas, presupuestos, descuentos por rango, impuesto, recargos.
Config.Wages, Appointments, History, MaintenanceReminders Funciones del equipo y de los clientes.
Config.Inspection, Dyno, HandlingEditor Reglas de la ITV, números del dyno + bahía (snap, ruedas que giran, cámara, muebles), campos de handling editables.
Config.Supplies, Repairs, Care Items, costos y tiempos de reparación.
Config.CompanyVehicles, Flatbeds, TowTrucks, PlaceableProps Flota de empresa, carga en grúa de plataforma, grúas de gancho (tecla para soltar) y props.
Config.LiftModel, LiftModelUp, LiftArmsModel, LiftFallbackModel, JackModel, HoistModel y medidas de elevador / gato Props y cómo se apoyan los carros en ellos. JackAutoFit / JackMaxHeight: el carro se apoya encima del gato.
Config.WheelsNeedJack, RimsOneByOne Trabajo de ruedas en el gato; rines nuevos rueda a rueda (enabled, removeTime por rueda vieja).
Config.InstallMinigame, Visuals Minijuegos (chance = 1.0 = todos los pasos; un paso fallado lo vuelve a pedir), perfiles de carga (modelo, hueso, posición, rotación y animación de cada pieza), sonidos, camilla, linterna, nube de pintura, cámara cinemática.
Config.Mods, Upgrades, EngineSwaps, UsedEngines, TyreCompounds Todo lo que se vende en el panel de tuneo.
Config.Nitro, Hydraulics, Stance, Ecu Extras de rendimiento (hidráulica lowrider y stance: ver arriba).
Config.Wear, RealDamage, Damage, MileageHud Desgaste por km, daños realistas y el cuentakilómetros.
Config.UsedCars Compraventa: permisos, garajes, desguace, prueba de manejo, financiación, parte de pago, márgenes.
config_server.lua Un webhook de Discord por categoría (default para el resto). Solo servidor.

Los textos están en locales/es.lua y locales/en.lua (Config.Locale). Las llamadas al framework, inventario, llaves, gasolina, celular y target están en bridge/server.lua y bridge/client.lua. Los dos archivos están abiertos y tienen ramas custom.


Exports (servidor)

exports.rolo_mechanic:GetMileage(plate)             -- km
exports.rolo_mechanic:GetWear(plate)                -- { engine_oil = 62, ... } o nil
exports.rolo_mechanic:SetWear(plate, part, pct)
exports.rolo_mechanic:GetUpgrades(plate)
exports.rolo_mechanic:GetInspection(plate)          -- { passed, expires, reasons, date, mechanic } o nil
exports.rolo_mechanic:IsInspected(plate)            -- true mientras la ITV es válida
exports.rolo_mechanic:AddHistory(plate, kind, detail)
exports.rolo_mechanic:GetHistory(plate, limit)
exports.rolo_mechanic:GetShops()                    -- { { id, name, job }, ... }
exports.rolo_mechanic:IsMechanicOnDuty(src)
exports.rolo_mechanic:GetShopCars(shopId)           -- carros usados en stock / en el lote (shopId opcional)

Aspecto de la tablet (Config.TabletCase)

La tablet viene en una funda rugerizada: bordes de goma del color del trabajo, una placa remachada arriba, tornillos, botones laterales, LEDs de estado y el logo de ROLO SCRIPT en el marco de abajo (el único logo), y el emblema del trabajo (icono del color de la funda + nombre) arriba a la izquierda de la pantalla. Cambia el color, el texto de la placa, su icono y el desgaste (manchas de 'grease', 'dust'), o usa style = 'classic' para un marco fino. Cómo se abre (Config.TabletView): 'hands' = el personaje saca una tablet real (todos la ven), la cámara pasa a primera persona y la pantalla sube desde abajo, con el juego visible alrededor; al cerrar la guarda y devuelve la cámara. 'screen' = solo la pantalla.

Escrow

config.lua, locales/*.lua y bridge/*.lua quedan abiertos (escrow_ignore). El resto va cifrado.

Secretos: config_server.lua

Los webhooks de Discord y las API keys van en config_server.lua, no en config.lua. config.lua se envía al juego de cada jugador (FiveM lo comparte), así que cualquiera con trampas podría leerlo; config_server.lua solo lo carga el servidor. Pega ahí tus webhooks y deja config.lua sin secretos.

Compatibilidad

El núcleo de compatibilidad (compat/server.lua + compat/client.lua, archivos abiertos) detecta tus sistemas al arrancar y los muestra en la consola del servidor, por ejemplo compat: framework qbcore · inventory ox_inventory · garages qb-garages · society qb-banking.

  • Inventarios: ox_inventory, origen_inventory, qs-inventory, codem-inventory, core_inventory, qb-inventory, ps-inventory / lj-inventory / tgiann-inventory (mediante las funciones de jugador de QBCore). Config.Inventory = 'custom' + Compat.CustomInventory.
  • Garajes (carros con dueño): qb-garages, qbx_garages, origen_garages, jg-advancedgarages, cd_garage, qs-advancedgarages, okokGarage. Solo se escriben las columnas que tiene tu tabla; si falta la columna del garaje, lo dice en la consola. Config.GarageSystem = 'custom' + la entrada custom de Compat.GarageSystems.
  • Llaves de vehículo: qb-vehiclekeys, qbx_vehiclekeys, qs-vehiclekeys, wasabi_carlock, MrNewbVehicleKeys, Renewed-Vehiclekeys, mk_vehiclekeys, cd_garage (Config.VehicleKeys, 'custom' + Compat.CustomKeys).
  • Gasolina: ox_fuel, lc_fuel, LegacyFuel, cdn-fuel, ps-fuel, okokGasStation, Renewed-Fuel, nativa (Config.Fuel, 'custom' + Compat.CustomFuel).
  • Los errores se muestran en la consola con el nombre del sistema, nunca en silencio.
  • Los nombres y columnas siguen la documentación pública de cada script. Prueba una vez después de instalar con tu propia configuración.

© ROLO SCRIPT

¿Te atascaste?

Escríbenos en el canal de soporte de Discord con el script, tu framework y el error de la consola.