> For the complete documentation index, see [llms.txt](https://docs.vames-store.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vames-store.com/assets/vms_tattooshop/configuration-files/config.lua.md).

# config.lua

{% code fullWidth="true" %}

```lua
Config = {}

-- ███████╗██████╗  █████╗ ███╗   ███╗███████╗██╗    ██╗ ██████╗ ██████╗ ██╗  ██╗
-- ██╔════╝██╔══██╗██╔══██╗████╗ ████║██╔════╝██║    ██║██╔═══██╗██╔══██╗██║ ██╔╝
-- █████╗  ██████╔╝███████║██╔████╔██║█████╗  ██║ █╗ ██║██║   ██║██████╔╝█████╔╝ 
-- ██╔══╝  ██╔══██╗██╔══██║██║╚██╔╝██║██╔══╝  ██║███╗██║██║   ██║██╔══██╗██╔═██╗ 
-- ██║     ██║  ██║██║  ██║██║ ╚═╝ ██║███████╗╚███╔███╔╝╚██████╔╝██║  ██║██║  ██╗
-- ╚═╝     ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝     ╚═╝╚══════╝ ╚══╝╚══╝  ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝
local frameworkAutoFind = function()
    if GetResourceState('es_extended') ~= 'missing' then
        return "ESX"
    elseif GetResourceState('qb-core') ~= 'missing' then
        return "QB-Core"
    end
end

Config.Core = frameworkAutoFind()
Config.CoreExport = function()
    if Config.Core == "ESX" then
        return exports['es_extended']:getSharedObject()
    elseif Config.Core == "QB-Core" then
        return exports['qb-core']:GetCoreObject()
    end
end


---@field PlayerLoaded string: ESX: "esx:playerLoaded" / QB-Core: "QBCore:Client:OnPlayerLoaded"
Config.PlayerLoaded = Config.Core == "ESX" and "esx:playerLoaded" or "QBCore:Client:OnPlayerLoaded"  

---@field PlayerLogout string: for ESX: "esx:onPlayerLogout" / QB-Core: "QBCore:Client:OnPlayerUnload"
Config.PlayerLogout = Config.Core == "ESX" and "esx:onPlayerLogout" or "QBCore:Client:OnPlayerUnload"  

---@field JobUpdated string: ESX: "esx:setJob" / QB-Core: "QBCore:Client:OnJobUpdate"
Config.JobUpdated = Config.Core == "ESX" and "esx:setJob" or "QBCore:Client:OnJobUpdate"



-- ███████╗██╗  ██╗██╗███╗   ██╗███╗   ███╗ █████╗ ███╗   ██╗ █████╗  ██████╗ ███████╗██████╗ 
-- ██╔════╝██║ ██╔╝██║████╗  ██║████╗ ████║██╔══██╗████╗  ██║██╔══██╗██╔════╝ ██╔════╝██╔══██╗
-- ███████╗█████╔╝ ██║██╔██╗ ██║██╔████╔██║███████║██╔██╗ ██║███████║██║  ███╗█████╗  ██████╔╝
-- ╚════██║██╔═██╗ ██║██║╚██╗██║██║╚██╔╝██║██╔══██║██║╚██╗██║██╔══██║██║   ██║██╔══╝  ██╔══██╗
-- ███████║██║  ██╗██║██║ ╚████║██║ ╚═╝ ██║██║  ██║██║ ╚████║██║  ██║╚██████╔╝███████╗██║  ██║
-- ╚══════╝╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝╚═╝     ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝╚═╝  ╚═╝ ╚═════╝ ╚══════╝╚═╝  ╚═╝
local skinmanagerAutoFind = function()
    local skinmanagersList = {
        'fivem-appearance', 
        'illenium-appearance', 
        'esx_skin', 
        'qb-clothing', 
    }
    
    for _, skinmanagerName in ipairs(skinmanagersList) do
        if GetResourceState(skinmanagerName) == 'started' then
            return skinmanagerName
        end
    end

    return nil
end

---@field SkinManager string: "esx_skin", "fivem-appearance", "illenium-appearance", "qb-clothing"
Config.SkinManager = skinmanagerAutoFind()



-- ███╗   ███╗ █████╗ ██╗███╗   ██╗    ███████╗███████╗████████╗████████╗██╗███╗   ██╗ ██████╗ ███████╗
-- ████╗ ████║██╔══██╗██║████╗  ██║    ██╔════╝██╔════╝╚══██╔══╝╚══██╔══╝██║████╗  ██║██╔════╝ ██╔════╝
-- ██╔████╔██║███████║██║██╔██╗ ██║    ███████╗█████╗     ██║      ██║   ██║██╔██╗ ██║██║  ███╗███████╗
-- ██║╚██╔╝██║██╔══██║██║██║╚██╗██║    ╚════██║██╔══╝     ██║      ██║   ██║██║╚██╗██║██║   ██║╚════██║
-- ██║ ╚═╝ ██║██║  ██║██║██║ ╚████║    ███████║███████╗   ██║      ██║   ██║██║ ╚████║╚██████╔╝███████║
-- ╚═╝     ╚═╝╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝    ╚══════╝╚══════╝   ╚═╝      ╚═╝   ╚═╝╚═╝  ╚═══╝ ╚═════╝ ╚══════╝
---@field AutoExecuteQuery boolean: Automatic execution of the creation of the vms_business table in database
Config.AutoExecuteQuery = true -- will automatically add the 'tattoos' column to your ESX: users / QB-Core: players table if it doesn't already exist

---@field UseTarget boolean: Do you want to use target system
Config.UseTarget = false
Config.TargetResource = 'ox_target'

---@field UseQSInventory boolean: if you use qs-inventory and clothing options
Config.UseQSInventory = false
Config.QSInventoryName = 'qs-inventory'

Config.HairFadesCollection = 'multiplayer_overlays'

Config.DistanceView = 8 -- Distance the marker will be visible
Config.DistanceAccess = 1.1 -- The distance in which it will be possible to take a seat by pressing the E key

Config.UseTattooMachineRequired = false -- Do you want to use the required item for tattooing?
Config.TattooMachineItem = 'tattoo_machine' -- Item name

Config.UseTattooLaserRemoverRequired = false -- Do you want to use the required item for tattoo removal?
Config.TattooLaserRemoverItem = 'tattoo_laser' -- Item name

Config.UseTattooInkRequired = false -- Do you want to use the required ink for tattooing?
Config.TattooInkItem = 'tattoo_ink' -- Item name
Config.RemoveTattooInk = false -- Is the ink item to be removed after tattooing?

Config.EnableTattooingAudioEffect = true

Config.UseOldBusinessPaymentSystem = false

Config.StartingCam = {vec(0.0, -0.2, 0.4), vec(0.0, -0.205, -0.6)}

Config.LiesAnims = {
    frontAnimDict = "amb@world_human_sunbathe@male@front@base",
    frontAnim = "base",
    backAnimDict = "switch@trevor@annoys_sunbathers",
    backAnim = "trev_annoys_sunbathers_loop_girl",
}

Config.Blip = {
    ["Sprite"] = 75,
    ["Scale"] = 0.75,
    ["Color"] = 1,
    ["Display"] = 4
}

Config.Markers = {
	['BossMenu'] = {
		id = 29,
		color = {95, 255, 95, 125}, -- rgba
		size = vec(0.33, 0.33, 0.33),
		bobUpAndDown = false,
		rotate = true
	},
	['FreeSeat'] = {
		id = 21,
		size = vec(0.25, 0.25, 0.25),
		bobUpAndDown = false,
		rotate = true
	},
	['TakenSeat'] = {
		id = 21,
		size = vec(0.25, 0.25, 0.25),
		bobUpAndDown = false,
		rotate = true
	},
}

Config.SeatObject = 'v_36_tatseat2'
Config.SeatSpawnsList = {
    {coords = vector4(1864.51, 3747.72, 32.03, 249.59)},
    {coords = vector4(-294.39, 6199.81, 30.49, 50.5)}
}

--[[

    █   █ ▄▀▄ █▀▄ █▄ █ █ █▄ █ ▄▀ 
    ▀▄▀▄▀ █▀█ █▀▄ █ ▀█ █ █ ▀█ ▀▄█

    If you use the interior:
    - MXC Tattoo Shop [PAID]  https://www.markz3d.com/products?product=6591441

    Remember that coordinates are handled by vms_tattooshop/config/[interiors]/INTERIOR_NAME.lua.
    Making changes to the numbers in the config.lua file works with GTA 5 default interiors or with interiors that are not listed above.

]]
Config.Tattooshops = {
    ['Tattooshop_1'] = { -- Innocence Blvd | El Burro Heights
        business = false, -- If you want the player to be a tattoo shop employee set true
		ownerJob = "tattoo1", -- If business is on true, here you must specify the work that has in this salon to manage
        society_name = "society_tattoo1", -- Used only with Config.UseBuildInCompanyBalance = false
        grades_access = {'recruit', 'employee', 'manager', 'boss'}, -- nil for every user with job, string: 'name', table: {'name', 'name2'}
        manager_grades = 'manager', -- string: 'name', table: {'name', 'name2'}
        boss_grades = 'boss', -- string: 'name', table: {'name', 'name2'}
        cityhall_grades = { -- Grades for sections from vms_cityhall
            ['resumes'] = {'manager', 'boss'}, -- string: 'name', table: {'name', 'name2'}
            ['taxes'] = {'manager', 'boss'}, -- string: 'name', table: {'name', 'name2'}
        },

        pedModel = "u_m_y_tattoo_01", -- If business is on false you can add a ped who will take care of the customer (only stands, for attractiveness and realism). If you set nil, the peda will not be.
        pedHeadingToChair = 197.46, -- Heading a player who will lie on his stomach
		pedHeadingToChairBack = 22.31, -- Heading a player who will be lying on his back

        position = vector3(1323.27, -1652.07, 51.28), -- Blip coordinates
        tattooPedSpawnPos = vector4(1327.66, -1654.03, 51.28, 42.35), -- If you have set pedModel here are the coords in which the ped spawns and goes to the player
        
        jobGradesToSet = {
            {grade = 0, label = 'Recruit'},
            {grade = 1, label = 'Employee'},
            {grade = 2, label = 'Manager', needToBeBoss = true}, -- needToBeBoss means that only the boss can give this grade, the manager will not be able to do so
            {grade = 3, label = 'Boss', needToBeBoss = true}, -- needToBeBoss means that only the boss can give this grade, the manager will not be able to do so
        },

        bossMenu = {
            coords = vector3(1324.46, -1650.11, 52.28),
            targetCoords = vector4(1323.93, -1650.55, 51.9, 130.0),
            targetSize = vector3(2.4, 1.0, 1.8),
        },

        categories = {
            ['1'] = true, ['2'] = true, ['3'] = true, ['4'] = true, 
            ['5'] = true, ['6'] = true, ['7'] = true, ['8'] = true, 
            ['9'] = true, ['10'] = true, ['11'] = true, ['12'] = true, 
            ['13'] = true, ['14'] = true, ['15'] = true, ['16'] = true, 
            ['17'] = true, ['18'] = true, ['19'] = true, ['20'] = true, 
            ['21'] = true,

            ['22'] = true, -- If you are using vms_barber and using the Config.UseHairFadeInBarber option in vms_barber, remove ID 22 from here
        },
        takeSitMarker = {
            FreeColor = {235, 235, 235, 125}, -- RGBA color, if the seat is free
            TakenColor = {128, 0, 31, 110}, -- RGBA color, if the seat is taken
        },
        Chairs = {
            [1] = {
                position = vector3(1320.64, -1653.94, 51.28), -- Marker coordinate to take a seat
                tattooerPos = vector4(1321.84, -1654.83, 51.28, 143.44), -- Coordinates of the ped or employee in which he will stand to tattoo the customer
                chairCoord = vector4(1321.13, -1655.12, 51.9, 22.31), -- Seat coordinates
                targetSize = vec(1.0, 2.35, 1.85),
                taken = false, -- DO NOT CHANGE IT
            },
        },
    },
    ['Tattooshop_2'] = { -- Vinewood Blvd | Downtown Vinewood
        business = false,
		ownerJob = "tattoo2",
        society_name = "society_tattoo2", -- Used only with Config.UseBuildInCompanyBalance = false
        grades_access = {'recruit', 'employee', 'manager', 'boss'}, -- nil for every user with job, string: 'name', table: {'name', 'name2'}
        manager_grades = 'manager', -- string: 'name', table: {'name', 'name2'}
        boss_grades = 'boss', -- string: 'name', table: {'name', 'name2'}
        cityhall_grades = { -- Grades for sections from vms_cityhall
            ['resumes'] = {'manager', 'boss'}, -- string: 'name', table: {'name', 'name2'}
            ['taxes'] = {'manager', 'boss'}, -- string: 'name', table: {'name', 'name2'}
        },

        pedModel = "u_m_y_tattoo_01",
        pedHeadingToChair = 328.24,
		pedHeadingToChairBack = 142.55,

        position = vector3(321.61, 182.82, 102.59),
        tattooPedSpawnPos = vector4(321.22, 184.9, 102.59, 166.42),
        
        jobGradesToSet = {
            {grade = 0, label = 'Recruit'},
            {grade = 1, label = 'Employee'},
            {grade = 2, label = 'Manager', needToBeBoss = true}, -- needToBeBoss means that only the boss can give this grade, the manager will not be able to do so
            {grade = 3, label = 'Boss', needToBeBoss = true}, -- needToBeBoss means that only the boss can give this grade, the manager will not be able to do so
        },

        bossMenu = {
            coords = vector3(319.72, 180.72, 103.59),
            targetCoords = vector4(320.39, 180.53, 103.58, 248.74),
            targetSize = vector3(2.4, 1.0, 1.8),
        },

        categories = {
            ['1'] = true, ['2'] = true, ['3'] = true, ['4'] = true, 
            ['5'] = true, ['6'] = true, ['7'] = true, ['8'] = true, 
            ['9'] = true, ['10'] = true, ['11'] = true, ['12'] = true, 
            ['13'] = true, ['14'] = true, ['15'] = true, ['16'] = true, 
            ['17'] = true, ['18'] = true, ['19'] = true, ['20'] = true, 
            ['21'] = true,

            ['22'] = true, -- If you are using vms_barber and using the Config.UseHairFadeInBarber option in vms_barber, remove ID 22 from here
        },
        takeSitMarker = {
            FreeColor = {235, 235, 235, 125},
            TakenColor = {128, 0, 31, 110},
        },
        Chairs = {
            [1] = {
                position = vector3(324.74, 179.39, 102.59),
                tattooerPos = vector4(324.97, 179.58, 102.59, 320.43),
                chairCoord = vector4(325.83, 180.63, 103.21, 142.55),
                targetSize = vec(1.0, 2.35, 1.85),
                taken = false,
            },
        }
    },
    ['Tattooshop_3'] = { -- Great Ocean Hwy | Chumash
        business = false,
		ownerJob = "tattoo3",
        society_name = "society_tattoo3", -- Used only with Config.UseBuildInCompanyBalance = false
        grades_access = {'recruit', 'employee', 'manager', 'boss'}, -- nil for every user with job, string: 'name', table: {'name', 'name2'}
        manager_grades = 'manager', -- string: 'name', table: {'name', 'name2'}
        boss_grades = 'boss', -- string: 'name', table: {'name', 'name2'}
        cityhall_grades = { -- Grades for sections from vms_cityhall
            ['resumes'] = {'manager', 'boss'}, -- string: 'name', table: {'name', 'name2'}
            ['taxes'] = {'manager', 'boss'}, -- string: 'name', table: {'name', 'name2'}
        },

        pedModel = "u_m_y_tattoo_01",
        pedHeadingToChair = 47.38,
		pedHeadingToChairBack = 227.38,
        
        position = vector3(-3169.77, 1076.14, 19.83), -- coords of blip
        tattooPedSpawnPos = vector4(-3174.33, 1074.58, 19.83, 251.8),
        
        jobGradesToSet = {
            {grade = 0, label = 'Recruit'},
            {grade = 1, label = 'Employee'},
            {grade = 2, label = 'Manager', needToBeBoss = true}, -- needToBeBoss means that only the boss can give this grade, the manager will not be able to do so
            {grade = 3, label = 'Boss', needToBeBoss = true}, -- needToBeBoss means that only the boss can give this grade, the manager will not be able to do so
        },

        bossMenu = {
            coords = vector3(-3170.28, 1072.91, 20.83),
            targetCoords = vector4(-3170.1, 1073.5, 20.83, 156.0),
            targetSize = vector3(2.4, 1.0, 1.8),
        },
        
        categories = {
            ['1'] = true, ['2'] = true, ['3'] = true, ['4'] = true, 
            ['5'] = true, ['6'] = true, ['7'] = true, ['8'] = true, 
            ['9'] = true, ['10'] = true, ['11'] = true, ['12'] = true, 
            ['13'] = true, ['14'] = true, ['15'] = true, ['16'] = true, 
            ['17'] = true, ['18'] = true, ['19'] = true, ['20'] = true, 
            ['21'] = true,

            ['22'] = true, -- If you are using vms_barber and using the Config.UseHairFadeInBarber option in vms_barber, remove ID 22 from here
        },
        takeSitMarker = {
            FreeColor = {235, 235, 235, 125},
            TakenColor = {128, 0, 31, 110},
        },
        Chairs = {
            [1] = {
                position = vector3(-3168.68, 1077.88, 19.83),
                tattooerPos = vector4(-3168.82, 1078.09, 19.83, 52.15),
                chairCoord = vector4(-3169.75, 1078.94, 20.46, 227.38),
                targetSize = vec(1.0, 2.35, 1.85),
                taken = false,
            },
        }
    },
    ['Tattooshop_4'] = { -- Aguja St | Bay City Ave, Vespucci Canals
        business = false,
		ownerJob = "tattoo4",
        society_name = "society_tattoo4", -- Used only with Config.UseBuildInCompanyBalance = false
        grades_access = {'recruit', 'employee', 'manager', 'boss'}, -- nil for every user with job, string: 'name', table: {'name', 'name2'}
        manager_grades = 'manager', -- string: 'name', table: {'name', 'name2'}
        boss_grades = 'boss', -- string: 'name', table: {'name', 'name2'}
        cityhall_grades = { -- Grades for sections from vms_cityhall
            ['resumes'] = {'manager', 'boss'}, -- string: 'name', table: {'name', 'name2'}
            ['taxes'] = {'manager', 'boss'}, -- string: 'name', table: {'name', 'name2'}
        },

        pedModel = "u_m_y_tattoo_01",
        pedHeadingToChair = 192.95,
		pedHeadingToChairBack = 16.03,

        position = vector3(-1154.23, -1426.1, 3.95), -- coords of blip
        tattooPedSpawnPos = vector4(-1149.71, -1427.26, 3.95, 39.5),
        
        jobGradesToSet = {
            {grade = 0, label = 'Recruit'},
            {grade = 1, label = 'Employee'},
            {grade = 2, label = 'Manager', needToBeBoss = true}, -- needToBeBoss means that only the boss can give this grade, the manager will not be able to do so
            {grade = 3, label = 'Boss', needToBeBoss = true}, -- needToBeBoss means that only the boss can give this grade, the manager will not be able to do so
        },

        bossMenu = {
            coords = vector3(-1152.21, -1423.7, 4.95),
            targetCoords = vector4(-1152.89, -1424.09, 4.95, 128.48),
            targetSize = vector3(2.57, 1.0, 1.8),
        },

        categories = {
            ['1'] = true, ['2'] = true, ['3'] = true, ['4'] = true, 
            ['5'] = true, ['6'] = true, ['7'] = true, ['8'] = true, 
            ['9'] = true, ['10'] = true, ['11'] = true, ['12'] = true, 
            ['13'] = true, ['14'] = true, ['15'] = true, ['16'] = true, 
            ['17'] = true, ['18'] = true, ['19'] = true, ['20'] = true, 
            ['21'] = true,

            ['22'] = true, -- If you are using vms_barber and using the Config.UseHairFadeInBarber option in vms_barber, remove ID 22 from here
        },
        takeSitMarker = {
            FreeColor = {235, 235, 235, 125},
            TakenColor = {128, 0, 31, 110},
        },
        Chairs = {
            [1] = {
                position = vector3(-1156.21, -1427.18, 3.95),
                tattooerPos = vector4(-1156.22, -1427.28, 3.95, 187.62),
                chairCoord = vector4(-1155.87, -1428.75, 4.58, 16.03),
                targetSize = vec(1.0, 2.35, 1.85),
                taken = false,
            },
        }
    },
    ['Tattooshop_5'] = { -- Armadillo Ave | Zancudo Ave, Sandy Shores
        business = false,
		ownerJob = "tattoo5",
        society_name = "society_tattoo5", -- Used only with Config.UseBuildInCompanyBalance = false
        grades_access = {'recruit', 'employee', 'manager', 'boss'}, -- nil for every user with job, string: 'name', table: {'name', 'name2'}
        manager_grades = 'manager', -- string: 'name', table: {'name', 'name2'}
        boss_grades = 'boss', -- string: 'name', table: {'name', 'name2'}
        cityhall_grades = { -- Grades for sections from vms_cityhall
            ['resumes'] = {'manager', 'boss'}, -- string: 'name', table: {'name', 'name2'}
            ['taxes'] = {'manager', 'boss'}, -- string: 'name', table: {'name', 'name2'}
        },

        pedModel = "u_m_y_tattoo_01",
        pedHeadingToChair = 233.34,
		pedHeadingToChairBack = 51.12,

        position = vector3(1863.68, 3748.48, 32.03), -- coords of blip
        tattooPedSpawnPos = vector4(1865.04, 3749.57, 32.05, 111.64),
        
        jobGradesToSet = {
            {grade = 0, label = 'Recruit'},
            {grade = 1, label = 'Employee'},
            {grade = 2, label = 'Manager', needToBeBoss = true}, -- needToBeBoss means that only the boss can give this grade, the manager will not be able to do so
            {grade = 3, label = 'Boss', needToBeBoss = true}, -- needToBeBoss means that only the boss can give this grade, the manager will not be able to do so
        },

        bossMenu = {
            coords = vector3(1862.41, 3748.37, 33.03),
            targetCoords = vector4(1861.88, 3748.85, 33.03, 33.03),
            targetSize = vector3(2.4, 1.0, 1.8),
        },

        categories = {
            ['1'] = true, ['2'] = true, ['3'] = true, ['4'] = true, 
            ['5'] = true, ['6'] = true, ['7'] = true, ['8'] = true, 
            ['9'] = true, ['10'] = true, ['11'] = true, ['12'] = true, 
            ['13'] = true, ['14'] = true, ['15'] = true, ['16'] = true, 
            ['17'] = true, ['18'] = true, ['19'] = true, ['20'] = true, 
            ['21'] = true,

            ['22'] = true, -- If you are using vms_barber and using the Config.UseHairFadeInBarber option in vms_barber, remove ID 22 from here
        },
        takeSitMarker = {
            FreeColor = {235, 235, 235, 125},
            TakenColor = {128, 0, 31, 110},
        },
        Chairs = {
            [1] = {
                position = vector3(1863.68, 3748.48, 32.03),
                tattooerPos = vector4(1863.61, 3748.52, 32.03, 233.34),
                chairCoord = vector4(1864.74, 3747.63, 33.5, 51.01),
                targetSize = vec(1.0, 2.35, 1.85),
                taken = false,
            },
        }
    },
    ['Tattooshop_6'] = { -- Duluoz Ave | Paleto Blvd, Paleto Bay
        business = false,
		ownerJob = "tattoo6",
        society_name = "society_tattoo6", -- Used only with Config.UseBuildInCompanyBalance = false
        grades_access = {'recruit', 'employee', 'manager', 'boss'}, -- nil for every user with job, string: 'name', table: {'name', 'name2'}
        manager_grades = 'manager', -- string: 'name', table: {'name', 'name2'}
        boss_grades = 'boss', -- string: 'name', table: {'name', 'name2'}
        cityhall_grades = { -- Grades for sections from vms_cityhall
            ['resumes'] = {'manager', 'boss'}, -- string: 'name', table: {'name', 'name2'}
            ['taxes'] = {'manager', 'boss'}, -- string: 'name', table: {'name', 'name2'}
        },

        pedModel = "u_m_y_tattoo_01",
        pedHeadingToChair = 29.33,
		pedHeadingToChairBack = 211.91,

        position = vector3(-293.76, 6198.75, 30.49), -- coords of blip
        tattooPedSpawnPos = vector4(-294.52, 6197.87, 30.49, 317.01),

        jobGradesToSet = {
            {grade = 0, label = 'Recruit'},
            {grade = 1, label = 'Employee'},
            {grade = 2, label = 'Manager', needToBeBoss = true}, -- needToBeBoss means that only the boss can give this grade, the manager will not be able to do so
            {grade = 3, label = 'Boss', needToBeBoss = true}, -- needToBeBoss means that only the boss can give this grade, the manager will not be able to do so
        },

        bossMenu = {
            coords = vector3(-291.96, 6200.01, 31.49),
            targetCoords = vector4(-291.36, 6199.41, 31.49, 223.83),
            targetSize = vector3(2.4, 1.0, 1.8),
        },
        
        categories = {
            ['1'] = true, ['2'] = true, ['3'] = true, ['4'] = true, 
            ['5'] = true, ['6'] = true, ['7'] = true, ['8'] = true, 
            ['9'] = true, ['10'] = true, ['11'] = true, ['12'] = true, 
            ['13'] = true, ['14'] = true, ['15'] = true, ['16'] = true, 
            ['17'] = true, ['18'] = true, ['19'] = true, ['20'] = true, 
            ['21'] = true,

            ['22'] = true, -- If you are using vms_barber and using the Config.UseHairFadeInBarber option in vms_barber, remove ID 22 from here
        },
        takeSitMarker = {
            FreeColor = {235, 235, 235, 125},
            TakenColor = {128, 0, 31, 110},
        },
        Chairs = {
            [1] = {
                position = vector3(-293.76, 6198.75, 30.49),
                tattooerPos = vector4(-293.8, 6198.72, 30.49, 30.68),
                chairCoord = vector4(-294.57, 6199.93, 31.1, 211.91),
                targetSize = vec(1.0, 2.35, 1.85),
                taken = false,
            },
        }
    },

}

Config.ClothesOff = {
	-- [[ FOR ESX Clothes ]]
	[Config.Core == "ESX" and "male" or "unknown"] = {
		sex 	 = 0,
    	arms     = 15,  arms_2   = 0,
        helmet_1 = -1,  helmet_2 = 0,
        bproof_1 = 0,   bproof_2 = 0,
    	tshirt_1 = 15, 	tshirt_2 = 0,
    	torso_1  = 91, 	torso_2  = 0,
    	pants_1  = 14, 	pants_2  = 0,
    	shoes_1  = 34, 	shoes_2  = 0,
	},
	[Config.Core == "ESX" and "female" or "unknown2"] = {
		sex 	 = 1,
        arms     = 15,  arms_2   = 0,
        helmet_1 = -1,  helmet_2 = 0,
        bproof_1 = 0,   bproof_2 = 0,
    	tshirt_1 = 34, 	tshirt_2 = 0,
    	torso_1  = 101, torso_2  = 1,
    	pants_1  = 16, 	pants_2  = 0,
    	shoes_1  = 0, 	shoes_2  = 0,
	},
	
	-- [[ FOR QBCore Clothes ]]
	[Config.Core == "QB-Core" and "male" or "unknown3"] = {
		outfitData = {
			['t-shirt'] = {item = 15, texture = 0},
			['torso2'] = {item = 15, texture = 0},
			['arms'] = {item = 15, texture = 0},
			['pants'] = {item = 14, texture = 1},
			['shoes'] = {item = 34, texture = 0},
			['hat'] = {item = -1, texture = -1},
			['glass'] = {item = 0, texture = 0},
			['mask'] = {item = 0, texture = 0}
		}
	},
	[Config.Core == "QB-Core" and "female" or "unknown4"] = {
		outfitData ={
			['t-shirt'] = {item = 34, texture = 0},
			['torso2'] = {item = 101, texture = 1},
			['arms'] = {item = 0, texture = 0},
			['pants'] = {item = 16, texture = 0},
			['shoes'] = {item = 1, texture = 0},
			['hat'] = {item = -1, texture = -1},
			['glass'] = {item = 0, texture = 0},
			['mask'] = {item = 0, texture = 0}
		}
	}
}
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.vames-store.com/assets/vms_tattooshop/configuration-files/config.lua.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
