Saltar a contenido

Configuracion

Todo en shared/config.lua. Esta pagina cubre cada bloque por orden.


Admin / general

Config.AdminGroups = { 'admin', 'superadmin', 'god' }
Config.Debug       = false
Config.Locale      = 'es'  -- 'en' / 'es'
Config.MedicalJobs = { 'ambulance', 'doctor', 'paramedic' }

MedicalJobs decide quien puede tomar llamadas, abrir el dispatch, recibir 911 inbound, tratar a otros y reanimar. Es la lista global; por hospital puedes restringir mas via la whitelist del creator.


Comandos y keybindings

Config.Commands = {
    Distress  = '911',
    Dispatch  = 'dispatch',
    Treat     = 'treat',
    Revive    = 'revive',
    Creator   = 'creator',
    Hospitals = 'hospitals',
    Reload    = 'nbamb-reload',
    KeyBindings = {
        Dispatch = 'F6',
        Distress = '',
    },
}

Cualquier valor false o '' desactiva ese alias (la version umbrella /nb-ambulance <sub> siempre queda disponible). Las teclas son defaults — el jugador puede rebindarlas en el menu de FiveM.

Ver Comandos para la tabla completa.


Death system

Config.Death = {
    RespawnDelay      = 30,    -- s antes de poder respawnear con [E]
    AutoRespawnTimer  = 300,   -- s antes de respawn automatico
    RespawnControl    = 38,    -- E
    Animation         = { dict = 'dead', name = 'dead_a', flag = 1 },
    FadeMs            = 800,
    RespawnCost       = 0,     -- tarifa global (cada hospital puede sobrescribir)
    WipeInventoryOnRespawn = false,
    RemoveWeaponsOnRespawn = false,
    RestoreArmor      = false,
    RestoreHealth     = 200,
}

Last Stand (estado intermedio)

Config.LastStand = {
    Enabled              = true,    -- false vuelve al flow Phase 1 (sin laststand)
    Duration             = 300,     -- s antes de progresar a death
    MinElapsedToGiveUp   = 30,      -- s antes de poder rendirse con [E]
    GiveUpControl        = 38,      -- E
    DistressControl      = 47,      -- G - llama 911
    Animation            = { dict = 'combat@damage@writhe', name = 'writhe_loop', flag = 1 },
}

Durante laststand el jugador es invencible, no recibe daño, y no puede salir hasta que el timer expire o un medico lo reanime.


Fallback respawn

Config.FallbackRespawn = vec4(307.7, -1433.4, 29.9, 230.0)

Coordenadas usadas cuando NO hay hospitales registrados. En instalaciones limpias siempre se usa hasta que el admin cree el primer hospital con el creator.


PVP-safe death

Config.Pvp = {
    Zones = {
        -- { coords = vec3(2440.0, 4970.0, 47.0), radius = 60.0, label = 'sandy_arena' },
    },
    ZoneCheckInterval     = 750,
    RestoreHealth         = 200,
    NotifyZoneTransitions = true,
}

Cada zona es una esfera; entrar activa el flag nb_disableDeath en el statebag del jugador, salir lo desactiva. Ver PVP-safe death para la integracion completa con scripts externos.


Dispatch / 911

Config.Dispatch = {
    ExpireMs      = 900000,  -- 15 min sin actividad y la llamada se autoborra
    DistanceUnits = 'm',
}

Revive (RCP / desfibrilador)

Config.Revive = {
    Enabled       = true,
    Range         = 2.5,         -- m, distancia maxima medico-paciente
    InteractKey   = 38,          -- E

    Cpr = {
        DurationMs    = 8000,
        SuccessChance = 0.45,
        Anim = { dict = 'mini@cpr@char_a@cpr_str', name = 'cpr_pumpchest', flag = 1 },
    },
    Defib = {
        Item          = 'defibrillator',
        DurationMs    = 5000,
        SuccessChance = 0.9,
        Anim = { dict = 'mini@cpr@char_a@cpr_def', name = 'cpr_pumpchest', flag = 1 },
    },

    Reward         = 250,        -- $ al banco del medico que reanima
    RestoreHealth  = 150,        -- hp post-revive (max 200)
}

El roll del exito es server-side (no se puede tampear desde cliente). El defib consume el item al iniciar el intento, success o fail.


Sistema de heridas

Config.Injuries = {
    Enabled = true,
    Types   = { 'fracture', 'bleeding', 'burn', 'suffocating' },
    Severity = { minor = 1, major = 35, extreme = 70 },
    Bones = { ... },             -- 12 huesos por defecto
    WeaponDamageTypes = { ... }, -- weapon hash -> tipo de daño
    DefaultDamageType = 'bleeding',
    Movement = {
        LimpClipset   = 'move_m@injured',
        WalkSpeedMult = 0.7,
        RunDisable    = false,
    },
    Bleed = {
        IntervalMs = 8000,
        Damage     = 4,
    },
    Items = {
        { name = 'splint',         heals = 'fracture',    amount = 100 },
        { name = 'bandage',        heals = 'bleeding',    amount = 50  },
        { name = 'tourniquet',     heals = 'bleeding',    amount = 100 },
        { name = 'burn_dressing',  heals = 'burn',        amount = 100 },
        { name = 'oxygen_mask',    heals = 'suffocating', amount = 100 },
        { name = 'medikit',        heals = 'all',         amount = 100, restoreHp = 100 },
    },
}

Ver Sistema de heridas para detalles del tracking, severidad y flujo de tratamiento.