[ESX] mdm_firehose

[ESX] [PARTLY-OPEN-SOURCE]
The mdm_firehose script serves as a tool to equip fire departments with hoses. These hoses are fully synchronized among players. Within this script, configuration options allow customization of the vehicles that will handle the hoses and the models of hydrants that will interact with them. The script enables the adjustment of the tank size for each assigned vehicle, and you can also set the replenishment speed of vehicles from hydrants. In cases where multiple individuals are using hoses from a single vehicle, the water consumption within the vehicle will increase proportionally to the number of users, ensuring a more realistic and dynamic firefighting experience.

Preview: YouTube

Buy: Tebex

This is how the config looks like

Config = {}

Config.job = "lsfd"
Config.maxlinelenght = 20.0
Config.weapon = "WEAPON_HOSE"
Config.NozzleOffSet = vec3(0.15, 0.1, 0.1)
Config.HudUpdateTime = 100           -- in miliseconds
Config.HydrantFillingSpeed = 2.0
Config.Target = true                 -- you can configure it in client
Config.CanInsideVehWhenCarry = false -- default false, when true you can enter vehicle with the hose

Config.Animation = {
    Allow = true, -- default true, if false no animation will be performed
    Dict = "timetable@gardener@filling_can",
    Name = "gar_ig_5_filling_can",
    Duration = 1000 -- in miliseconds
}

Config.vehicles = {
    {
        hash = "firetruk",
        vx = -0.85,
        vy = 0.0,
        vz = 0.2,

        mx = -1.0,
        my = 0.0,
        mz = 0.5,

        hx = -0.85,
        hy = 0.0,
        hz = 0.0,

        tankCapacity = 200
    },
}

Config.firehydrant = {
    {
        hash = "prop_fire_hydrant_1",
        hx = 0.0,
        hy = 0.0,
        hz = 0.6,

        mx = 0.0,
        my = 0.0,
        mz = 1.1
    },
    {
        hash = "prop_fire_hydrant_2",
        hx = 0.0,
        hy = 0.0,
        hz = 0.6,

        mx = 0.0,
        my = 0.0,
        mz = 1.1
    },
    {
        hash = "prop_fire_hydrant_2_l1",
        hx = 0.0,
        hy = 0.0,
        hz = 0.6,

        mx = 0.0,
        my = 0.0,
        mz = 1.1
    },
}

Config.TextUI = {
    hydrant = {
        message = "[~b~E~s~] Podłącz wąż | [~b~G~s~] Odłącz wąż",
        type = "info"
    },
    attachHydrant = {
        message = "[~b~E~s~] podepnij hydrant",
        type = "info"
    },
    veh1 = {
        message = "[~b~E~s~] weź wąż [~b~G~s~] odepnij hydrant",
        type = "info"
    },
    veh2 = {
        message = "[~b~E~s~] weź wąż",
        type = "info"
    },
    veh3 = {
        message = "[~b~E~s~] odłóż wąż",
        type = "info"
    }
}

Config.Message = {
    haveHose = {
        message = "Masz już wąż w ręce!",
        type = "error",
        duration = 5000
    },
    hydrantUsed = {
        message = "Hydrant jest już używany!",
        type = "info",
        duration = 5000
    },
    hydrantAttached = {
        message = "Podpiąłeś wąż do hydranta!",
        type = "info",
        duration = 5000
    },
    pickedUpHose = {
        message = "Wziąłeś wąż!",
        type = "info",
        duration = 5000
    },
    haveStInHand = {
        message = "Masz coś w ręku!",
        type = "error",
        duration = 5000
    },
    hoseAttached = {
        message = "Podpiąłeś wąż!",
        type = "info",
        duration = 5000
    },
    hoseDetached = {
        message = "Odpiąłeś wąż!",
        type = "info",
        duration = 5000
    },
    hoseWasPutAway = {
        message = "Odłożyłeś wąż!",
        type = "info",
        duration = 5000
    },
    hydrantDetachedSupport = {
        message = "Odpiąłeś wąż pomocniczy od hydranta!",
        type = "info",
        duration = 5000
    },
    noSupportInHand = {
        message = "Nie masz węża pomocniczego w ręce!",
        type = "error",
        duration = 5000
    },
    noMoreWater = {
        message = "Zabrakło wody w wozie!",
        type = "error",
        duration = 2000
    }
}
Code is accessible partly
Subscription-based No
Lines (approximately) Number of lines
Requirements ESX
Support Yes

My other resources:

1 Like

Compatible with smart-fires? Compatible with ox_inventory?

There are no contraindications to using this with smart-fires. There should be no problems. The script fully works with ox_inventory, by default it was written with functions taken from it, but I decided to slightly change the functions so that it would not force a given inventory.