Full View config.lua

Preview File Updated: v2.0.0 - 19.10.2024

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()
    if GetResourceState('esx_skin') == 'started' then
        return "esx_skin"
    elseif GetResourceState('qb-clothing') == 'started' then
        return "qb-clothing"
    elseif GetResourceState('fivem-appearance') == 'started' then
        return "fivem-appearance"
    elseif GetResourceState('illenium-appearance') == 'started' then
        return "illenium-appearance"
    end
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.LiesAnims = {
    frontAnimDict = "amb@world_human_sunbathe@male@front@base",
    frontAnim = "base",
    backAnimDict = "switch@trevor@annoys_sunbathers",
    backAnim = "trev_annoys_sunbathers_loop_girl",
}

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

Config.BossMenu = function(jobName)
    if Config.Core == "ESX" then
        TriggerEvent('esx_society:openBossMenu', jobName, function(data, menu) -- esx_society
            menu.close()
        end, {wash = false})

    elseif Config.Core == "QB-Core" then
        TriggerEvent('qb-bossmenu:client:OpenMenu') -- qb-management
        
    end
end

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.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)}
}

Config.Tattooshops = {
    ['Tattooshop_1'] = { -- Innocence Blvd | El Burro Heights
        business = true, -- 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,
            },
        }