---
description: Extract and drop script in your resource folder.
---

# Installation

Open config.lua and set your best settings.

Check fisrt the framework section and set to your framework functions:

```lua
Config.Framework = {}

Config.Framework.Name = "QBCORE" -- QBCORE or ESX

Config.Framework.GetCore = function()
    if Config.Framework.Name == "QBCORE" then
        return exports["qb-core"]:GetCoreObject()
    end
    if Config.Framework.Name == "ESX" then
        return exports["es_extended"]:getSharedObject()
    end
    return nil
end

Config.Framework.Core = Config.Framework.GetCore()

Config.Framework.Notify = function(msg)
    if Config.Framework.Name == "QBCORE" then
        local _core = Config.Framework.Core
        if _core then
            _core.Functions.Notify(msg)
        end
    elseif Config.Framework.Name == "ESX" then
        local _core = Config.Framework.Core
        if _core then
            _core.ShowNotification(msg)
        end
    end
end

Config.Framework.GetJob = function()
    if Config.Framework.Name == "QBCORE" then
        local _core = Config.Framework.Core
        if _core then
            local _playerdata = _core.Functions.GetPlayerData()
            if _playerdata and _playerdata.job then
                return _playerdata.job.name
            end
        end
    elseif Config.Framework.Name == "ESX" then
        local _core = Config.Framework.Core
        if _core then
            local _playerdata = _core.GetPlayerData()
            if _playerdata and _playerdata.job then
                return _playerdata.job.name
            end
        end
    end
    return ""
end

Config.Framework.GetDuty = function()
    if Config.Framework.Name == "QBCORE" then
        local _core = Config.Framework.Core
        if _core then
            local _playerdata = _core.Functions.GetPlayerData()
            if _playerdata and _playerdata.job then
                return _playerdata.job.onduty
            end
        end
    elseif Config.Framework.Name == "ESX" then
        return true
    end
    return false
end

Config.Framework.GetPlayer = function(src)
    src = tonumber(src)
    if Config.Framework.Name == "QBCORE" then
        local _core = Config.Framework.Core
        if _core then
            local _playerdata = _core.Functions.GetPlayer(src)
            if _playerdata then
                return _playerdata
            end
        end
    elseif Config.Framework.Name == "ESX" then
        local _core = Config.Framework.GetCore()
        if _core then
            local _playerdata = _core.GetPlayerFromId(src)
            if _playerdata then
                return _playerdata
            end
        end
    end
    return nil
end
```

You can add custom action buttons or delete from the config file:&#x20;

```lua
Config.ActionButtons = {
    ["10-03"] = function()
        TriggerEvent("artz_poldisp:10-03")
    end,
    ["10-06"] = function()
        TriggerEvent("artz_poldisp:10-06")
    end,
    ["10-06-A"] = function()
        TriggerEvent("artz_poldisp:10-06-A")
    end,
    ["10-10"] = function()
        ExecuteCommand('lspd ' .. '<font color="#1C63E0"> Im going to do my 10-10 </font>')
    end,
}
```

Now Select your language in language.lua:

```lua
Config.Language = "es"

Config.Languages = {
    ["en"] = {
        --HUD
        ["filter"] = "FILTER",
        ["zone"] = "ZONE",
        ["panic"] = "PANIC",
        ["ubic"] = "POS",
        ["siren"] = "SIREN",
        ["config"] = "CFG",
        ["sound"] = "SOUND",
        ["setlimit"] = "SET LIMIT",
        ["copy"] = "COPY",
        ["send"] = "SEND",
        ["sounds"] = "SOUNDS",
        ["zoom"] = "SIZE",
        --Keymapping
        ["nextalert"] = "Next Alert",
        ["previousalert"] = "Previous Alert",
        ["showhidedisp"] = "Show/Hide Dispatch",
        ["acceptalert"] = "Go to Alert",
        ["showcursor"] = "Show/Hide Cursor",
        ["lockedalert"] = "You have selected Alert, unselect first!"
    },
    ["es"] = {
        --HUD
        ["filter"] = "FILTRO",
        ["zone"] = "ZONA",
        ["panic"] = "PANIC",
        ["ubic"] = "10-20",
        ["siren"] = "SIREN",
        ["config"] = "CFG",
        ["sound"] = "SONIDO",
        ["setlimit"] = "LIMITAR",
        ["copy"] = "COPIAR",
        ["send"] = "ENVIAR",
        ["sounds"] = "SONIDOS",
        ["zoom"] = "TAMAÑO",
        --Keymapping
        ["nextalert"] = "Alerta siguiente",
        ["previousalert"] = "Alerta anterior",
        ["showhidedisp"] = "Ver/Ocultar sistema de alertas",
        ["acceptalert"] = "Ir a la alerta",
        ["showcursor"] = "Controlar Cursor en Dispatch",
        ["lockedalert"] = "Tienes marcado un aviso, desmarcalo para poder seguir."
    },
}
```

Start the script! now need config your other resources to my dispatch calls. ¡ Follow the api functions next !
