Personalización
El comportamiento está en config.lua. Todo lo que toca tu framework, tus notificaciones o lo que hace realmente un efecto está en la carpeta bridge/, que se deja abierta precisamente por eso.
Qué archivo decide qué
Sección titulada «Qué archivo decide qué»| Archivo o carpeta | Qué decide | ¿Abierto? |
|---|---|---|
config.lua | Todos los ajustes de esta página y la lista de vapers | Abierto |
locales/*.lua | Textos de las notificaciones, un archivo por idioma | Abierto |
bridge/client_bridge.lua | Detección del framework en el cliente, notificaciones, la barra de progreso y lo que hace cada efecto | Abierto |
bridge/server_bridge.lua | Detección del framework en el servidor, quitar un vaper vacío, la comprobación del inventario y el hook de estrés OnVapePuff | Abierto |
bridge/stress.lua | Una copia antigua del hook de estrés. El manifest no la carga; edita server_bridge.lua en su lugar | Abierto |
client/client.lua | Sacar el vaper, la calada, el humo y su sincronización | Con escrow |
server.lua | Registra cada vaper como ítem usable y reenvía el humo | Con escrow |
html/ | La barra de progreso: index.html, style.css, script.js | Archivos sin cifrar |
stream/ | Los diez modelos de vaper y def_props.ytyp | Recursos gráficos |
inventory_items/ | Definiciones de ítems listas para ESX, ox_inventory y QBCore | Referencia |
inventory_images/ | Un icono por ítem | Recursos gráficos |
Ajustes generales
Sección titulada «Ajustes generales»| Opción | Qué hace | Por defecto |
|---|---|---|
Config.Locale | Idioma de las notificaciones | en |
Config.ShowNotifications | Mostrar notificaciones o no. Desactivado significa que no hay mensajes de “lo has sacado”, cooldown, vacío ni de poderes | false |
Config.EnableMaxPuffs | Los vapers se agotan tras su número de puffs | true |
Config.RemoveVapeCommand | Comando de chat que guarda el vaper | vape |
Config.PuffKey | Tecla por defecto para la calada | E |
Config.DisableCombatButtons | Bloquea los botones de combate (atacar y apuntar) mientras sale el humo | true |
Config.Stress | Llama al hook de estrés en cada calada (consulta Estrés) | true |
Config.PuffKey es un valor por defecto. La calada es una asignación de teclas de FiveM llamada “Vape Puff”, así que cada jugador puede cambiarla en Settings › Key Bindings › FiveM y, una vez que un jugador tiene la asignación guardada, cambiar Config.PuffKey ya no le afecta.
Vida, armadura y velocidad
Sección titulada «Vida, armadura y velocidad»| Opción | Qué hace | Por defecto |
|---|---|---|
Config.SpeedVapeInfiniteStamina | La estamina no baja durante el efecto de velocidad | true |
Config.StaticHealth | false: cada calada de vida suma Config.Health. true: una calada sube la vida hasta Config.Health si está por debajo | false |
Config.Health | Cantidad que se suma, o el nivel al que se sube. Con el ajuste estático usa 101–200, la escala de vida del juego | 10 |
Config.StaticArmor | La misma idea para la armadura: sumar o subir hasta | false |
Config.Armor | Cantidad que se suma, o el nivel al que se sube (hasta 100) | 10 |
La vida siempre se mantiene entre 100 y 200, y la armadura en 100 o menos.
| Opción | Qué hace | Por defecto |
|---|---|---|
Config.VapeExhale | Tamaño de la partícula de humo | 0.4 |
Config.SmokeOpacity | Lo denso que es el humo, de 0.0 a 1.0 | 1.0 |
Config.SmokeDelay | Segundos entre la animación de la calada y la aparición del humo | 1.5 |
Config.Particle | Qué partícula se usa: un dict y un name. Viene con el humo de derrape de scr_recartheft | scr_recartheft / scr_wheel_burnout |
Config.SmokeOffset | Dónde empieza el humo respecto a la cabeza: PosX, PosY, PosZ, RotX, RotY, RotZ | 0.05, 0.0, 0.5, 0, 0, 0 |
Cada nube dura 1,5 segundos y la ven los jugadores que estén a menos de 30 metros.
Los vapers — Config.Vapes
Sección titulada «Los vapers — Config.Vapes»Cada entrada es nombre del ítem → ajustes. La lista completa que viene incluida está en 🎒 Ítems.
| Campo | Qué hace |
|---|---|
prop | Qué modelo se lleva en la mano: mic_black, mic_blue, mic_green, mic_lightblue, mic_orange, mic_pink, mic_purple, mic_red, mic_white, mic_yellow |
Label | Nombre que se muestra en la barra de progreso |
SmokeColor | Un color R, G, B, o la palabra Rainbow para colores que van cambiando |
Cooldown | Segundos hasta que se puede volver a dar una calada a este vaper |
puffs | Caladas antes de que se agote y se quite uno del inventario |
EffectDuration | Segundos que dura el poder. 0 para los sabores |
ShowProgress | Mostrar la barra de progreso mientras dura el poder. Desactivado en todos los vapers incluidos |
SpeedMultiplier | Solo para speed_vape (sprint) y carspeed_vape (motor) |
power | Opcional. Una lista de efectos que se ejecutan juntos, cada uno con su propio número (ver más abajo) |
Qué efecto tiene un vaper
Sección titulada «Qué efecto tiene un vaper»El nombre del ítem decide el efecto. invisibility_vape te hace invisible porque se llama invisibility_vape; cualquier otro nombre sin lista power es un sabor.
Los nombres de efecto que entiende el bridge: invisibility_vape, speed_vape, superjump_vape, teleport_vape, invincibility_vape, health_vape (o health), armor_vape (o armor), carspeed_vape, freeze_vape, gravity_vape, además de random_vape, que elige uno de los demás.
Combinar efectos con power
Sección titulada «Combinar efectos con power»Dale a un vaper una lista power y ejecutará todos los efectos que contenga en cada calada, se llame como se llame. El número junto a cada efecto es su duración en segundos, salvo en health y armor, donde es la cantidad. vape_custom en la config es un ejemplo funcional: vida 10, armadura 10, velocidad durante 10 segundos.
Añadir un vaper
Sección titulada «Añadir un vaper»- Copia una entrada existente de
Config.Vapesy ponle un nombre de ítem nuevo. - Elige un
prop, unSmokeColor,puffsyCooldown. Para un poder, usa como nombre del ítem uno de los nombres de efecto anteriores o añade una listapower. - Añade el ítem a tu inventario igual que los demás, con un icono.
refreshy luegorestart mic_vape.
Efectos extra que entiende el bridge
Sección titulada «Efectos extra que entiende el bridge»freeze_vape (no puedes moverte) y gravity_vape (gravedad baja, movimiento más lento) se gestionan en bridge/client_bridge.lua, y sus definiciones de ítem ya están en inventory_items/, pero no tienen entrada en Config.Vapes. Añade una entrada para cada uno —copia superjump_vape y cámbiale el nombre— y funcionarán.
transform_vape también está en los archivos de ítems, pero necesita una lista Config.TransformAnimals que la config incluida no tiene. Déjalo fuera a menos que estés dispuesto a escribir esa lista y probarla.
Con Config.Stress = true, cada calada llama a OnVapePuff en bridge/server_bridge.lua con el ID de servidor del jugador. Tal como viene, esa función solo imprime una línea en la consola del servidor. Dentro tiene ejemplos comentados para los metadatos de QBCore y para esx_status: descomenta el que te encaje o llama ahí a tu propio HUD o recurso de estrés.
Si no usas estrés, pon Config.Stress = false y la consola se quedará en silencio.
Idiomas
Sección titulada «Idiomas»En locales/ vienen nueve archivos: en, de, es, fr, it, pl, pt, ru, tr. Elige uno con Config.Locale.
La línea car_speed —la que aparece cuando se activa el vaper de velocidad del coche— dice “No waypoint set!” en los archivos incluidos. Cámbiala en tu archivo de idioma.
Para añadir un idioma: copia locales/en.lua, cambia la clave de arriba por tu código, traduce y añade el archivo tanto a client_scripts como a server_scripts en fxmanifest.lua. Ajusta Config.Locale, haz refresh y reinicia.
El bridge
Sección titulada «El bridge»Todo lo que depende de tu servidor está en bridge/.
| Archivo | Qué cambiar ahí |
|---|---|
bridge/client_bridge.lua | ShowNotification: envía los mensajes a tu propio recurso de notificaciones. El código de los efectos: cambia lo que hace un poder o añade un nombre de efecto nuevo. ShowProgressBar / HideProgressBar para la barra |
bridge/server_bridge.lua | OnVapePuff para el estrés. Quitar un vaper vacío y comprobar si el jugador todavía lo lleva: adapta estas dos para un inventario que no use las funciones de ítems propias de ESX o QBCore |
Los dos archivos encuentran el framework de la misma forma: es_extended si está iniciado y, si no, qb-core, que es también como se encuentra QBox, a través de su compatibilidad con QBCore. Para otro framework, añade una rama ahí y en las dos funciones de ítems que hay al lado.
Comandos y teclas
Sección titulada «Comandos y teclas»| Comando o tecla | Qué hace | Dónde se configura |
|---|---|---|
| Usar el ítem | Saca el vaper; volver a usarlo lo guarda | Inventario |
| E (“Vape Puff”) | Da una calada | Config.PuffKey y luego las asignaciones de cada jugador |
/vape | Guarda el vaper | Config.RemoveVapeCommand |
Un vaper también se guarda cuando el jugador ya no lleva el ítem; el recurso lo comprueba cada 2,5 segundos.