# Accessible files

<details>

<summary>config.lua</summary>

```lua
----------------------------------------------------------------------------------------------
-------------------------------------| BRUTAL RADIAL :) |-------------------------------------
----------------------------------------------------------------------------------------------

--[[
Hi, thank you for buying our script, We are very grateful!

For help join our Discord server:     https://discord.gg/85u2u5c8q9
More informations about the script:   https://docs.brutalscripts.com
--]]

Config = {
    Core = 'ESX',  -- 'ESX' / 'QBCORE' | Other core setting on the 'core' folder.
    BrutalNotify = true, -- Buy here: (4€+VAT) https://store.brutalscripts.com | Or set up your own notify >> cl_utils.lua
    BackgroundBlur = true, -- true / false
    PanelColor = '#C337FB',
    PanelEditingButton = {FivemControl = 244, JsButton = 'm', Character = 'M'}, -- FivemControl: https://docs.fivem.net/docs/game-references/controls/#controls 
    AllowWhileDead = true, -- Allow the menu to be used while dead | true / false

    Commands = {  -- to turn off a command just simply leave empty the command line, like this: Command = '',
        RadialMenu = {
            Command = 'radialmenu',
            Control = '',  -- Controls list:  https://docs.fivem.net/docs/game-references/input-mapper-parameter-ids/keyboard/
            Suggestion = 'Open Radial Menu'
        },
    },

    Menu = {

        {
            label = 'Personal',
            icon = '<img src="assets/person.png"></img>', -- you can set an image or an icon like this: <i class="fa-solid fa-id-card"></i> For more: https://fontawesome.com/search
            description = 'Personal documents, etc.',
            table = {
                {label = 'Show ID', icon = '<img src="assets/id.png"></img>', description = 'Example Description...', allowedjobs = false, blacklistedjobs = false, event = 'client:something'},  
                {label = 'Show Licence', icon = '<img src="assets/license.png"></img>', description = 'Example Description...', allowedjobs = false, blacklistedjobs = false, event = 'client:something'},
                {label = 'Inventory', icon = '<img src="assets/inventory.png"></img>', description = 'Example Description...', allowedjobs = false, blacklistedjobs = false, event = 'brutal_radial_client:OpenInventory'}, -- You can create an eventhandler like this in the cl-utils.lua to manage actions which can't be added with only one event
                {label = 'Wallet', icon = '<img src="assets/wallet.png"></img>', description = 'Example Description...', allowedjobs = false, blacklistedjobs = false, event = 'client:something'},
                {label = 'Phone', icon = '<img src="assets/phone.png"></img>', description = 'Example Description...', allowedjobs = false, blacklistedjobs = false, event = 'client:something'},
            }
        },

        {
            label = 'Emergency',
            icon = '<img src="assets/siren.png"></img>',
            description = 'Request for help',
            table = {
                {label = 'Police', icon = '<img src="assets/police.png"></img>', description = 'Example Description...', allowedjobs = false, blacklistedjobs = false, event = 'brutal_policejob:client:OpenCitizenCall'},
                {label = 'Ambulance', icon = '<img src="assets/ambulance.png"></img>', description = 'Example Description...', allowedjobs = false, blacklistedjobs = false, event = 'brutal_ambulancejob:client:CitizenCallMenu'},
                {label = 'Bennys', icon = '<img src="assets/mechanic1.png"></img>', description = 'Example Description...', allowedjobs = false, blacklistedjobs = false, event = 'brutal_mechanicjob:client:OpenMechanicCall'},
                {label = 'Los Santos Customs', icon = '<img src="assets/mechanic2.png"></img>', description = 'Example Description...', allowedjobs = false, blacklistedjobs = false, event = 'brutal_mechanicjob:client:OpenMechanicCall'},
            }
        },

        {
            label = 'Billing Menu',
            allowedjobs = false,  -- Both 'allowedjobs' and 'blacklistedjobs' must be 'false' for everyone to use it. | Can only be used if 'blacklistedjobs' is also set to 'false'.
            blacklistedjobs = false, -- Both 'allowedjobs' and 'blacklistedjobs' must be 'false' for everyone to use it. 
            icon = '<img src="assets/bill.png"></img>',
            description = 'To open the Billing Menu',
            event = 'brutal_billing:client:OpenMenu', -- it's basically compatible with the Brutal Billing
        },

        {
            label = 'GYM Menu',
            allowedjobs = false,  -- Both 'allowedjobs' and 'blacklistedjobs' must be 'false' for everyone to use it. | Can only be used if 'blacklistedjobs' is also set to 'false'.
            blacklistedjobs = false, -- Both 'allowedjobs' and 'blacklistedjobs' must be 'false' for everyone to use it
            icon = '<img src="assets/gym.png"></img>',
            description = 'To open the GYM Menu',
            event = 'brutal_skills:client:OpenMenu', -- it's basically compatible with the Brutal GYM system
        },

        {
            label = 'Reports',
            allowedjobs = false,  -- Both 'allowedjobs' and 'blacklistedjobs' must be 'false' for everyone to use it. | Can only be used if 'blacklistedjobs' is also set to 'false'.
            blacklistedjobs = false, -- Both 'allowedjobs' and 'blacklistedjobs' must be 'false' for everyone to use it
            icon = '<img src="assets/report.png"></img>',
            description = 'To open the reports Menu',
            event = 'brutal_reports:client:OpenMenu', -- it's basically compatible with the Brutal Reports
        },

        {
            label = 'Vehicle',
            allowedjobs = false,  -- Both 'allowedjobs' and 'blacklistedjobs' must be 'false' for everyone to use it. | Can only be used if 'blacklistedjobs' is also set to 'false'.
            blacklistedjobs = false, -- Both 'allowedjobs' and 'blacklistedjobs' must be 'false' for everyone to use it
            icon = '<img src="assets/vehicle.png"></img>',
            description = 'To open the Vehicle Control',
            event = '', -- add your custom triggger
        },

        {
            label = 'Gang Menu',
            allowedjobs = false, -- Both 'allowedjobs' and 'blacklistedjobs' must be 'false' for everyone to use it. | Can only be used if 'blacklistedjobs' is also set to 'false'. | If you have the Brutal Gangs the gang members will automatically see this icon 
            blacklistedjobs = false, -- Both 'allowedjobs' and 'blacklistedjobs' must be 'false' for everyone to use it
            icon = '<img src="assets/tablet.png"></img>',
            description = 'To open the Gang Menu',
            event = 'brutal_gangs:client:opengangmenu', -- it's basically compatible with the Brutal Gangs
        },

        {
            label = 'Police MDT',
            allowedjobs = {'police'}, -- Both 'allowedjobs' and 'blacklistedjobs' must be 'false' for everyone to use it. | Can only be used if 'blacklistedjobs' is also set to 'false'.
            blacklistedjobs = false, -- Both 'allowedjobs' and 'blacklistedjobs' must be 'false' for everyone to use it
            icon = '<img src="assets/tablet.png"></img>',
            description = 'To open the police MDT',
            event = 'brutal_policejob:client:MDTCommand', -- it's basically compatible with the Brutal Policejob
        },

        {
            label = 'EMS Menu',
            allowedjobs = {'ambulance'}, -- Both 'allowedjobs' and 'blacklistedjobs' must be 'false' for everyone to use it. | Can only be used if 'blacklistedjobs' is also set to 'false'.
            blacklistedjobs = false, -- Both 'allowedjobs' and 'blacklistedjobs' must be 'false' for everyone to use it
            icon = '<img src="assets/tablet.png"></img>',
            description = 'To open the EMS Menu',
            event = 'brutal_ambulancejob:client:MDTCommand', -- it's basically compatible with the Brutal Ambulancejob
        },

        {
            label = 'Mechanic',
            allowedjobs = {'mechanic'}, -- Both 'allowedjobs' and 'blacklistedjobs' must be 'false' for everyone to use it. | Can only be used if 'blacklistedjobs' is also set to 'false'.
            blacklistedjobs = false, -- Both 'allowedjobs' and 'blacklistedjobs' must be 'false' for everyone to use it
            icon = '<img src="assets/tablet.png"></img>',
            description = 'To open the Mechanic Menu',
            event = 'brutal_mechanicjob:DiagnosticTablet', -- it's basically compatible with the Brutal Ambulancejob
        },
    }
}

```

</details>

<details>

<summary>client-utils.lua</summary>

```lua
ESX = Core
QBCore = Core

-- Buy here: (4€+VAT) https://store.brutalscripts.com
function notification(title, text, time, type)
    if Config.BrutalNotify then
        exports['brutal_notify']:SendAlert(title, text, time, type)
    else
        -- Put here your own notify and set the Config.BrutalNotify to false

        -- Default ESX Notify:
        --TriggerEvent('esx:showNotification', text)

        -- Default QB Notify:
        --TriggerEvent('QBCore:Notify', text, 'info', 5000)

        -- OKOK Notify:
        -- exports['okokNotify']:Alert('Radial Menu', text, time, type, false)

    end
end

function isPlayerDead()
    if GetResourceState("brutal_ambulancejob") == "started" then
        return exports.brutal_ambulancejob:IsDead()
    elseif GetResourceState("wasabi_ambulance") == "started" then
        return exports.wasabi_ambulance:isPlayerDead()
    else
        if IsEntityDead(PlayerPedId()) then
            return true
        else
            return false
        end
    end
end

function OpenMenuUtil()
    -- Here you can add a trigger to hide your HUD system

    Citizen.CreateThread(function()
        while InMenu do
            N_0xf4f2c0d4ee209e20() -- it's disable the AFK camera zoom
            Citizen.Wait(15000)
        end 
    end)

    DisplayRadar(false)
end

function CloseMenuUtil()
    -- Here you can add a trigger to enable your HUD system

    DisplayRadar(true)
end

RegisterNetEvent('brutal_radial_client:OpenInventory')
AddEventHandler('brutal_radial_client:OpenInventory', function()
    local PlayerServerId = GetPlayerServerId(PlayerId())

    if GetResourceState("ox_inventory") == "started" then
        exports.ox_inventory:openInventory('player', PlayerServerId)  -- OxInventory open players inventory 
    end
end)
```

</details>

<details>

<summary>client-core.lua</summary>

```lua
 Core = nil

if Config['Core']:upper() == 'ESX' then
    local _esx_ = 'new' -- 'new' / 'old'

    if _esx_ then
        Core = exports['es_extended']:getSharedObject()
    else
        while Core == nil do
            TriggerEvent('esx:getSharedObject', function(obj) Core = obj end)
            Citizen.Wait(0)
        end
    end

    LoadedEvent = 'esx:playerLoaded'
    onPlayerDeath = 'esx:onPlayerDeath'
    JobUpdateEvent = 'esx:setJob'
    TSCB = Core.TriggerServerCallback

    function GetPlayerJobDatas()
        return Core.GetPlayerData().job
    end

    function GetClosestPlayerFunction()
        return Core.Game.GetClosestPlayer()
    end

    function GetClosestVehicleFunction(coords, modelFilter)
        return Core.Game.GetClosestVehicle(coords, modelFilter)
    end

elseif Config['Core']:upper() == 'QBCORE' then
    Core = exports['qb-core']:GetCoreObject()

    LoadedEvent = 'QBCore:Client:OnPlayerLoaded'
    JobUpdateEvent = 'QBCore:Client:OnJobUpdate'
    TSCB = Core.Functions.TriggerCallback

    function GetPlayerJobDatas()
        return Core.Functions.GetPlayerData().gang
    end

    function GetClosestPlayerFunction()
        return Core.Functions.GetClosestPlayer()
    end

    function GetClosestVehicleFunction(coords, modelFilter)
        return Core.Functions.GetClosestVehicle(coords, modelFilter)
    end
    
end
```

</details>


---

# 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://docs.brutalscripts.com/site/scripts/radial/accessible-files.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.
