# Configuration

***

### 1. Configure `cl_config.lua`

In this section, you will configure the client-side configuration file `cl_config.lua`. Follow the instructions below to set it up according to your framework (ESX or QBcore).

{% tabs %}
{% tab title="cl\_config.lua" %}

```lua
Config = {}

Config.Header = {
    title = "RESMONSTUDIO",                -- The title displayed in the header
    name = "Duty System"                   -- The name of the system in the header
}

Config.Options = {
    Language = 'en',                       -- Default language for the system (can be changed to other language codes like 'de', 'fr', etc.)
    UseOldEsx = false,                     -- Set to true if you are using the old ESX export method
    SharedObject = {                       -- Define the shared object for ESX, depending on the client and server side
        ["client"] = "esx:getSharedObject", -- Client-side ESX shared object
        ["server"] = "esx:getSharedObject", -- Server-side ESX shared object
    }
}

Config.Duty = {
    CreateJobsOnStartUp = false,           -- If true, off duty jobs will be created automatically on server startup
    CreateWaitTime = 200,                  -- Wait time (in milliseconds) before creating jobs on startup
    OffDutySalery = 500,                   -- Salary amount when players are off duty
    OffDutyPrefix = "off-",                -- Prefix added to the job name to indicate off-duty status (e.g., "off-police")
    OffDutyName = "Off-Duty"               -- Default off-duty name
}

Config.Blip = {
    enabled = true,                        -- Enable/disable blips on the map for duty locations
    id = 408,                              -- Blip icon ID
    scale = 1.0,                           -- Scale of the blip
    color = 75,                            -- Color of the blip on the map
    Name = "Dutysystem",                   -- Name of the blip on the map
}

Config.Marker = {
    Type = 21,                             -- Marker type (21 is the standard 3D marker)
    Size = vector3(1.0, 1.0, 1.0),         -- Marker size (x, y, z)
    Color = { r = 255, g = 0, b = 0, a = 144 },  -- Marker color in RGBA format (red in this case)
    BobUpAndDown = false,                 -- If true, marker will bob up and down
    FaceCamera = true,                    -- If true, marker will always face the player's camera
    Rotate = false,                       -- If true, marker will rotate
    TextureDict = nil,                    -- Custom texture dictionary (if applicable, otherwise nil)
    TextureName = nil,                    -- Custom texture name (if applicable, otherwise nil)
    DrawOnEntities = false                -- If true, marker will be drawn on entities
}

Config.Jobs = {
    ["police"] = {                         -- Police duty station coordinates
        {x = 645.87, y = 7.67, z = 82.79}
    },
    ["ambulance"] = {                      -- Ambulance/EMS duty station coordinates
        {x = 299.88, y = -573.51, z = 43.26}
    },
    ["mechanic"] = {                       -- Mechanic duty station coordinates
        {x = -356.81, y = -108.61, z = 38.7}
    }
}

function SendNotification(msg)
    TriggerEvent('esx:showNotification', msg)
    -- TriggerEvent('rs_notify', 'Dutysystem', msg , 'info', 5000)
end

function Helpnotify(msg, E)                                 
    ESX.ShowHelpNotification(msg, E)
    -- exports["rs_hud"]:HelpNotify(msg, E)
end
```

{% endtab %}
{% endtabs %}

***

### 2. Configure `sv_config.lua`

In this section, you will configure the server-side configuration file `sv_config.lua`. Follow the instructions below to set it up according to your framework (ESX or QBcore)

{% tabs %}
{% tab title="sv\_config.lua" %}

```lua
CFG = {}

CFG.Webhooks = {
    Color = "16777215",
    Author = "ResmonStudio",
    AuthorURL = "https://cdn.discordapp.com/attachments/1115190062653640707/1224363148065374248/avatar.png?ex=661d380a&is=660ac30a&hm=5e7415d1f27e134352a3b2f46de4a0d0284569998c5852f6ca187569a842336e&",
    ThumbURL = "https://cdn.discordapp.com/attachments/1115190062653640707/1224363148065374248/avatar.png?ex=661d380a&is=660ac30a&hm=5e7415d1f27e134352a3b2f46de4a0d0284569998c5852f6ca187569a842336e&",
    Username = "RS | Logs",
    Webhooks = {
        jobchange = {'PUT_YOUR_WEBHOOK_HERE'},
    }
}
```

{% endtab %}
{% endtabs %}

***

### 3. Select Languages in `sh_languages.lua`

In the `sh_languages.lua` file, you can manage all available language options. To set your preferred language and its corresponding translations, navigate to `cl_config.lua` and specify your desired locale. This allows you to customize the different languages.

{% tabs %}
{% tab title="sh\_languages.lua" %}

```lua
Config.Languages = {
    ['en'] = {  -- English
        ["GotOnDuty"] = "Entered service.",
        ["GotOffDuty"] = "Went off-duty.",
        ["HelpNotify"] = "Press ~INPUT_CONTEXT~ to interact",
    },

    ['de'] = {  -- German
        ["GotOnDuty"] = "Dienst angetreten.",
        ["GotOffDuty"] = "Dienst beendet.",
        ["HelpNotify"] = "Drücke ~INPUT_CONTEXT~, um zu interagieren",
    },

    ['cs'] = {  -- Czech
        ["GotOnDuty"] = "Vstoupil do služby.",
        ["GotOffDuty"] = "Šel z služby.",
        ["HelpNotify"] = "Stiskněte ~INPUT_CONTEXT~ pro interakci",
    },

    ['fr'] = {  -- French
        ["GotOnDuty"] = "Entré en service.",
        ["GotOffDuty"] = "Sorti du service.",
        ["HelpNotify"] = "Appuyez sur ~INPUT_CONTEXT~ pour interagir",
    },

    ['es'] = {  -- Spanish
        ["GotOnDuty"] = "Entró en servicio.",
        ["GotOffDuty"] = "Salió del servicio.",
        ["HelpNotify"] = "Presiona ~INPUT_CONTEXT~ para interactuar",
    },

    ['pt'] = {  -- Portuguese
        ["GotOnDuty"] = "Entrou em serviço.",
        ["GotOffDuty"] = "Saiu de serviço.",
        ["HelpNotify"] = "Pressione ~INPUT_CONTEXT~ para interagir",
    },

    ['pl'] = {  -- Polish
        ["GotOnDuty"] = "Wszedł na służbę.",
        ["GotOffDuty"] = "Zszedł ze służby.",
        ["HelpNotify"] = "Naciśnij ~INPUT_CONTEXT~, aby interagować",
    },

    ['it'] = {  -- Italian
        ["GotOnDuty"] = "Entrato in servizio.",
        ["GotOffDuty"] = "Uscito dal servizio.",
        ["HelpNotify"] = "Premi ~INPUT_CONTEXT~ per interagire",
    },

    ['tr'] = {  -- Turkish
        ["GotOnDuty"] = "Göreve başladı.",
        ["GotOffDuty"] = "Görevden çıktı.",
        ["HelpNotify"] = "~INPUT_CONTEXT~ ile etkileşime geçin",
    }
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://resmonstudio.gitbook.io/resmonstudio-or-documentations/assets/rs_dutysystem/configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
