# Configuration

<details>

<summary>Configuration Overview</summary>

```lua
Config.SystemSettings = {
    Language = "en",
    Debug = true,
    theme = "gblue",           -- gblue | theme2 | theme3 | theme4 | theme5 | themeWhite - default themes
    OpenMenuVia = "textui",    -- target | textui | custom
    Notify = "g-notifications" -- okok | esx | qbcore | ox_lib | 17mov | g-notifications | standalone
}

Config.TextUI = "ox_lib" -- supported Notifications TextUi's -  "ox_lib" | "okok" | "esx" | "qbcore"

-- Recommended resources for bossmenu
-- Advanced Duty V2 Link - https://groot-development.tebex.io/package/7007496
-- Advanced Paycheck Link - https://groot-development.tebex.io/package/7007494
Config.RecommendedResources = {
    gDutyV2 = 'g-dutyV2',
    advPaycheck = 'g-adv-paycheck'
}


Config.BossMenuSettings = {
    -- Recommended to use 'inbuilt'
    -- inbuilt  - System will use the internal society logic handled by this resource.
    -- external - System will use external society/banking systems:
    --            esx_society | qb-banking | okokBanking | renewedbanking | tgg-banking | crm-banking | fd-banking 
    --            If you're using a different system, modify server/sv_edit.lua to add support.
    society_management = 'inbuilt', -- inbuilt | external


    -- Even if you set this to true, it will only work if those two packages are installed.
    enable_duty_system = true,  -- true | false (required package g-dutyV2 https://groot-development.tebex.io/package/7007496)
    enable_bonus_system = true, -- true | false (required package g-adv-paycheck https://groot-development.tebex.io/package/7007494)

    nearbyDist = 10.0,          -- distance radius to detect nearby players (Hire Employee)

    -- true  → Allows promotions/demotions of offline employees (updates database directly).
    -- false → Restricts promotions/demotions to only online employees (Player must be online/onDuty).
    -- (Recommended) Keep it false
    AllowOfflinePromotions = false, -- true | false - Whether a boss can promote or demote an employee who is currently offline.
    BonusPayType = "society",       -- 'default' = removes bonus from bank, 'society' = removes from job/society funds
    BonusAmountLimit = 10000,       -- bonus amount limit
    CanGiveBonusWhenOffDuty = true, -- true | false - Whether a boss can give a bonus to an employee who is not on duty
    PlayerMoneySource = "cash",     -- 'bank' | 'cash' — determines if player money comes from bank or cash during boss menu transactions

    -- These will override the all settings in the bossmenu settings
    EnableJobApplicationSystem = true,
    EnableLeaveManagementSystem = true,
    EnableVehicleSystem = true,
    EnableReportsSystem = true,

    -- when creating logic make sure to check if the user has the permission to access the announcement and sos alert
    EnableAnnouncement = true,
    CurrencySymbol = "$",
    -- QBCore | QBox - pillboxgarage | ESX - SanAndreasAvenue - you can change it
    defaultParking = "pillboxgarage", -- defaultParking
}

Config.Icons = {
    bossTargetIcon = "fas fa-building",
    vehicleShopTargetIcon = "fas fa-car",
    jobApplicationTargetIcon = "fas fa-user-plus",
}


Config.UserMenu = {
    enable = true,
    cmdName = "job-user-menu",       -- Command to open boss menu
    help = "Open the job user menu", -- Command help text
}

Config.Menu = {
    -- The default job assigned to a player when they get fired.
    UnemployedJob = {
        name = "unemployed",
        grade = 0
    },
    BossMenu = {
        ["police"] = {
            isGang = false, -- (if ESX Framework set this to false) enable this if the job is a gang
            secondaryJobsAllowManage = false,
            -- use this for your multiple jobs
            secondaryJobs = {
                -- this can be empty {}
                -- its for multiple jobs support ['job_name'] = {grade1, grade2, grade3, ...},
                -- ['mechanic'] = { 3, 4 },
            },
            EnableUserMenu = true,       -- if you want to disable the user menu just set it to false
            -- Example: allowedGrades = { 3 } means that only players with grade 3
            allowedGrades = { 3, 4, 5 }, -- rank required to access the bossmenu
            -- bossmenu coords
            coords = {
                vec4(449.2697, -984.8182, 30.6896, 267.1978)
                -- add more coords if you want
            },
            pages = {
                enable_job_application = true,
                enable_reports = true,
                enable_leave_management = true,
                enable_vehicle_management = true,
            },
            permissions = {
                ['ACCOUNT_BALANCE'] = { 1, 3, 4 },
                ['GIVE_BONUS'] = { 3, 4 },
                ['WITHDRAW_MONEY'] = { 3, 4, 5 },
                ['DEPOSIT_MONEY'] = { 1, 3, 4, 5 },
                ['HIRE_EMPLOYEE'] = { 3, 4 },
                ['FIRE_EMPLOYEE'] = { 3, 4 },
                ['PROMOTE_EMPLOYEE'] = { 3, 4 },
                ['MANAGE_SALARIES'] = { 3, 4 },
                ['VIEW_TRANSACTIONS'] = { 1, 3, 4 },
                ['MANAGE_REPORTS'] = { 3, 4 },
                ['MANAGE_VEHICLES'] = { 3, 4 },
                ['MANAGE_ANNOUNCEMENT'] = { 3, 4 },
                ['MANAGE_SETTINGS'] = { 3, 4 }
            },
            JobApplication = {
                enabled = true,
                ped = {
                    enable = true,                      -- if you want to disable the ped just set it to false
                    model = "s_m_y_cop_01",             -- https://docs.fivem.net/docs/game-references/ped-models/
                    scenario = "WORLD_HUMAN_CLIPBOARD", -- https://gtaforums.com/topic/796181-list-of-scenarios-for-peds/
                },
                coords = {
                    vec4(446.6713, -988.8382, 30.6896, 352.1306),
                    vec4(443.1818, -987.0700, 30.6896, 266.5410),
                    -- add more coords if you want
                }
            },
            vehicleShop = {
                vehicleMenu = {
                    ped = {
                        spawn = true,
                        model = "ig_car3guy1",
                    },
                    coords = {
                        vec4(457.3307, -1007.0492, 28.2921, 192.3351),
                        -- for this you can add more coords if you want
                    },
                },
                -- I'd recommend do not change this
                ShowcaseLocation = vec4(797.25, -3000.18, -69.63, 242.65),
                VehicleCam = vec3(803.05, -3004.78, -67.7) -- player position
            }
        },
        ["lostmc"] = {
            secondaryJobsAllowManage = false,

            isGang = true, -- (if ESX Framework set this to false) enable this if the job is a gang
            secondaryJobs = {
                -- ['police'] = {3, 4},
            },
            EnableUserMenu = true,                                                                     -- if you want to disable the user menu just set it to false
            allowedGrades = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }, -- rank required to access the bossmenu
            coords = {
                vec4(298.4174, -600.7816, 43.3035, 175.4682)                                           -- add more coords if you want
            },
            JobApplication = {
                enabled = true,
                ped = {
                    enable = true,                      -- if you want to disable the ped just set it to false
                    model = "s_m_m_doctor_01",          -- https://docs.fivem.net/docs/game-references/ped-models/
                    scenario = "WORLD_HUMAN_CLIPBOARD", -- https://gtaforums.com/topic/796181-list-of-scenarios-for-peds/
                },
                coords = {
                    vec4(292.2990, -615.9470, 43.4339, 358.9440),
                    -- add more coords if you want
                },
            },
            pages = {
                enable_job_application = true,
                enable_reports = true,
                enable_leave_management = true,
                enable_vehicle_management = true,
            },
            permissions = {
                ['ACCOUNT_BALANCE'] = { 1, 3, 4, 5 },
                ['GIVE_BONUS'] = { 1, 3, 4, 5 },
                ['WITHDRAW_MONEY'] = { 1, 3, 4, 5 },
                ['DEPOSIT_MONEY'] = { 1, 3, 4, 5 },
                ['HIRE_EMPLOYEE'] = { 1, 3, 4, 5 },
                ['FIRE_EMPLOYEE'] = { 1, 3, 4, 5 },
                ['PROMOTE_EMPLOYEE'] = { 1, 3, 4, 5 },
                ['MANAGE_SALARIES'] = { 1, 3, 4, 5 },
                ['VIEW_TRANSACTIONS'] = { 1, 3, 4, 5 },
                ['MANAGE_REPORTS'] = { 1, 3, 4, 5 },
                ['MANAGE_VEHICLES'] = { 1, 3, 4, 5 },
                ['MANAGE_ANNOUNCEMENT'] = { 1, 3, 4, 5 },
                ['MANAGE_SETTINGS'] = { 1, 3, 4, 5 }
            },
            vehicleShop = {
                vehicleMenu = {
                    ped = {
                        spawn = true,
                        model = "s_m_m_doctor_01",
                    },
                    coords = {
                        vec4(279.5950, -614.5320, 43.2796, 353.7953),
                        -- for this you can add more coords if you want
                    },
                },
                -- I'd recommend do not change this
                ShowcaseLocation = vec4(797.25, -3000.18, -69.63, 242.65),
                VehicleCam = vec3(803.05, -3004.78, -67.7) -- player position
            }
        },

    }
}

```

</details>

<details>

<summary>Faction cooldowns</summary>

```lua
Config.FactionCooldowns = {
    EnableFactionCooldowns = false,

    -- if here not listed then it will be legal
    FactionLegalTypes = {
        gang = "illegal",
        cartel = "illegal"
    },
    CoolDowns = {
        ["legal"] = 10,             -- 10 seconds
        ["illegal"] = 72 * 60 * 60, -- 72 hours
    }
}
```

</details>

<details>

<summary>Job Vehicle shop Overview</summary>

```lua
Config.JobVehicles = {
    {
        model = "police",
        label = "Police Car",
        price = 10000,
        type = "car",
        requiredGrade = { 3, 4 }, -- the grade required to buy the vehicle
        disableInMenu = false,  -- If true, the vehicle will not be shown in the vehicle shop menu unless the player's grade is included in the requiredGrade list.
        AuthorizedJobs = { "police" }
    },
    {
        model = "police2",
        label = "Police Car 2",
        price = 1000,
        type = "car",
        requiredGrade = { 3 },
        disableInMenu = false,
        AuthorizedJobs = { "police" }
    },
    -- Add as many vehicles as you want.
}

```

</details>
