Full View config.lua
Config = {}
-- Get Duty Status from the client side:
-- local jobDutyStatus = exports['vms_jobs']:getJobDuty()
-- local gangDutyStatus = exports['vms_jobs']:getGangDuty()
-- Get Duty Status from the server side:
-- local jobDutyStatus = exports['vms_jobs']:getJobDuty(source)
-- local gangDutyStatus = exports['vms_jobs']:getGangDuty(source)
------------------------------ █▀ █▀▄ ▄▀▄ █▄ ▄█ ██▀ █ █ ▄▀▄ █▀▄ █▄▀ ------------------------------
------------------------------ █▀ █▀▄ █▀█ █ ▀ █ █▄▄ ▀▄▀▄▀ ▀▄▀ █▀▄ █ █ ------------------------------
Config.Core = "ESX" -- "ESX" / "QB-Core"
Config.CoreExport = function()
return exports['es_extended']:getSharedObject()
-- return exports['qb-core']:GetCoreObject()
end
Config.Notification = function(title, message, time, type)
if type == "success" then
exports['vms_notify']:Notification(title, message, time, "#36f230", "fa-solid fa-store")
-- ESX.ShowNotification(message)
-- QBCore.Functions.Notify(message, "success", time)
elseif type == "error" then
exports['vms_notify']:Notification(title, message, time, "#f23030", "fa-solid fa-store")
-- ESX.ShowNotification(message)
-- QBCore.Functions.Notify(message, "error", time)
elseif type == "info" then
exports['vms_notify']:Notification(title, message, time, "#4287f5", "fa-solid fa-store")
-- ESX.ShowNotification(message)
-- QBCore.Functions.Notify(message, "primary", time)
end
end
Config.Interact = {
Enabled = false,
Open = function(msg)
exports["interact"]:Open("E", msg) -- Here you can use your TextUI or use my free one - https://github.com/vames-dev/interact
end,
Close = function()
exports["interact"]:Close() -- Here you can use your TextUI or use my free one - https://github.com/vames-dev/interact
end,
}
------------------------------- ▀█▀ █▀▄ ▄▀▄ █▄ █ ▄▀▀ █ ▄▀▄ ▀█▀ ██▀ -------------------------------
------------------------------- █ █▀▄ █▀█ █ ▀█ ▄██ █▄▄ █▀█ █ █▄▄ -------------------------------
Config.Translate = {
['menu.title.fastmenu'] = "Menu - %s",
['menu.title.cloakroom'] = "Cloakroom",
['menu.title.vehicles'] = "Vehicles",
['menu.title.shop'] = "Shop",
['menu.title.sell'] = "Sell",
['menu.title.storage'] = "Storage",
['menu.title.storage_put'] = "Put Items",
['menu.title.storage_pull'] = "Pull Items",
['menu_dialog.title.storage_put'] = "Enter the count of items to put",
['menu_dialog.title.storage_pull'] = "Enter the count of items to pull",
['menu.element.shopitem_with_price'] = "%s <span style='color:green'>%s$</span> (%sx)",
['menu.element.shopitem_without_price'] = "%s (%sx)",
['menu.element.sellitem_with_price'] = "%s <span style='color:green'>%s$</span> (%sx)",
['menu.element.storage_put'] = "Put items",
['menu.element.storage_put_format'] = "%s (%s)",
['menu.element.storage_pull'] = "Pull items",
['menu.element.storage_pull_format'] = "%s (%s)",
['notify.title.harvest'] = 'ITEM HARVEST',
['notify.title.exchange'] = 'ITEM EXCHANGE',
['notify.title.shop'] = 'SHOP',
['notify.title.sell'] = 'SELL',
['notify.title.vehicle'] = 'VEHICLE',
['notify.title.storage'] = 'STORAGE',
['notify.title.duty'] = 'DUTY',
['notify.storage.putted_item'] = "You put %s (%s) to storage.",
['notify.storage.pulled_item'] = "You pull %s (%s) to storage.",
['notify.storage.put_quantity_invalid'] = "Quantity invalid.",
['notify.storage.pull_quantity_invalid'] = "Quantity invalid.",
['notify.storage.does_not_have_items'] = "Storage does not have any items.",
['notify.inv.does_not_have_items'] = "You don't have any items in inventory.",
['notify.duty.on'] = "You signed up for service.",
['notify.duty.off'] = "You have discharged from service.",
['veh.area_is_occupied'] = 'Area is occupied.',
['inv.not_enough_space'] = "You do not have enough space in your inventory to complete this action.",
['inv.not_enough_items'] = "You do not have enough required items to complete this action.",
['inv.not_enough_money'] = "You do not have enough money.",
['inv.already_got_weapon'] = "You already have this weapon.",
['menu.cloakroom.citizen_wear'] = "Citizen Wear",
['keybind.fastmenu.description'] = "Job Menu",
['menu.confirm.storage_put'] = {label = "Put", icon = ""},
['menu.confirm.storage_pull'] = {label = "Pull", icon = ""},
}
------------------------ █▄ ▄█ ▄▀▄ █ █▄ █ ▄▀▀ ██▀ ▀█▀ ▀█▀ █ █▄ █ ▄▀ ▄▀▀ ------------------------
------------------------ █ ▀ █ █▀█ █ █ ▀█ ▄██ █▄▄ █ █ █ █ ▀█ ▀▄█ ▄██ ------------------------
-- @PlayerLoaded - ESX: "esx:playerLoaded" / QB-Core: "QBCore:Client:OnPlayerLoaded"
Config.PlayerLoaded = "esx:playerLoaded"
-- @PlayerLogout - ESX: "esx:playerLogout" / QB-Core: "QBCore:Client:OnPlayerUnload"
Config.PlayerLogout = "esx:playerLogout"
-- @PlayerSetJob - ESX: "esx:setJob" / QB-Core: "QBCore:Client:OnJobUpdate"
Config.PlayerSetJob = "esx:setJob"
-- @PlayerSetGang - ESX: "esx:setJob2" / QB-Core: "QBCore:Client:OnGangUpdate"
Config.PlayerSetGang = "esx:setJob2" -- "esx:setJob2" is custom trigger, does not exist in default ESX
-- @SkinManager - ESX: "esx_skin", "fivem-appearance", "illenium-appearance" / QB-Core: "qb-clothing", "fivem-appearance", "illenium-appearance"
Config.SkinManager = "esx_skin"
-- @Menu - 'esx_menu_default' / 'esx_context' / 'qb-menu' / 'ox_lib'
Config.Menu = 'esx_context'
Config.ESXMenuAlign = 'right' -- Only for ESX Menus
-- @FastMenuMenu - 'esx_menu_default' / 'esx_context' / 'qb-menu' / 'ox_lib'
Config.FastMenuMenu = 'esx_menu_default'
Config.ESXFastMenuAlign = 'right' -- Only for ESX Menus
Config.ESXInventoryCarry = 'weight' -- For ESX inventory: 'limit' / 'weight'
-- @Society - 'esx_society', 'qb-management', 'other' - if you want to use custom, change in the CL.OpenSociety()
Config.Society = 'esx_society'
-- @Storage - 'vms_jobs', 'esx_addoninventory', 'qb', 'qs', 'other' - if you want to use custom, change in the CL.OpenStorage()
Config.Storage = 'vms_jobs'
Config.StorageOptions = { -- for Config.Storage = 'qb'
maxweight = 50000,
slots = 90,
}
Config.UseSaveLastInterior = true -- When a player leaves the server while in an interior with a routing bucket, upon reconnecting to the server, they will be teleported to that interior along with loading the virtual world they were in.
Config.DefaultRoutingBucket = 0
Config.TeleportFadeDuration = 500
Config.KeyToAccess = 38 -- E
Config.UseFastMenu = true
Config.FastMenuKey = 'f6'
Config.FastMenuCommand = '+f6'
Config.ProgressBar = function(data, cb)
exports["rprogress"]:Custom({
Async = true,
canCancel = data.can_cancel,
Duration = data.time,
Label = data.label,
DisableControls = {
Mouse = false,
Player = true,
Vehicle = true
},
onComplete = function()
cb()
end
})
end
Config.Companies = {} -- do not insert here anything
Config.PublicTeleports = {
{
marker = {
distanceToSee = 15.0,
distanceToAccess = 1.0,
id = 21,
color = {r = 200, g = 200, b = 200, a = 125},
size = vec(0.4, 0.4, 0.4),
bobUpAndDown = false,
rotate = true,
showOnFoot = true,
showInVehicle = true,
accessOnFoot = true,
accessInVehicle = false,
requiredRoutingBucket = nil
},
coords = vector3(-67.0, -802.33, 44.4),
teleportTo = vector4(-68.85, -814.13, 284.0, 69.96),
routingBucket = 1, -- this makes it so that you can do multiple jobs in one interiors and they won't hear or see each other
type = "enter",
hint = "Press ~INPUT_CONTEXT~ to enter to Mechanic",
},
{
marker = {
distanceToSee = 15.0,
distanceToAccess = 2.0,
id = 21,
color = {r = 200, g = 200, b = 200, a = 125},
size = vec(1.4, 1.4, 1.4),
bobUpAndDown = false,
rotate = true,
showOnFoot = true,
showInVehicle = true,
accessOnFoot = false,
accessInVehicle = true,
requiredRoutingBucket = nil
},
coords = vector3(-84.12, -821.47, 35.8),
teleportTo = vector4(-73.23, -815.04, 284.0, 158.81),
routingBucket = 1, -- this makes it so that you can do multiple jobs in one interiors and they won't hear or see each other
type = "enter",
hint = "Press ~INPUT_CONTEXT~ to exit from Mechanic",
},
{
marker = {
distanceToSee = 15.0,
distanceToAccess = 1.0,
id = 21,
color = {r = 200, g = 200, b = 200, a = 125},
size = vec(0.4, 0.4, 0.4),
bobUpAndDown = false,
rotate = true,
showOnFoot = true,
showInVehicle = true,
accessOnFoot = true,
accessInVehicle = false,
requiredRoutingBucket = 1
},
coords = vector3(-68.85, -814.13, 285.2),
teleportTo = vector4(-67.0, -802.33, 42.4, 344.11),
type = "exit",
hint = "Press ~INPUT_CONTEXT~ to enter to Mechanic",
},
{
marker = {
distanceToSee = 15.0,
distanceToAccess = 2.0,
id = 21,
color = {r = 200, g = 200, b = 200, a = 125},
size = vec(1.1, 1.1, 1.1),
bobUpAndDown = false,
rotate = true,
showOnFoot = false,
showInVehicle = true,
accessOnFoot = false,
accessInVehicle = true,
requiredRoutingBucket = nil
},
coords = vector3(-72.26, -813.25, 285.29),
teleportTo = vector4(-72.3, -812.87, 35.32, 37.12),
type = "exit",
hint = "Press ~INPUT_CONTEXT~ to exit from Mechanic",
},
{
marker = {
distanceToSee = 15.0,
distanceToAccess = 1.0,
id = 21,
color = {r = 200, g = 200, b = 200, a = 125},
size = vec(0.4, 0.4, 0.4),
bobUpAndDown = false,
rotate = true,
showOnFoot = true,
showInVehicle = true,
accessOnFoot = true,
accessInVehicle = false,
requiredRoutingBucket = nil
},
coords = vector3(-116.26, -603.32, 36.28),
teleportTo = vector4(-1399.35, -481.56, 71.04, 9.51),
routingBucket = 3, -- this makes it so that you can do multiple jobs in one interiors and they won't hear or see each other
type = "enter",
hint = "Press ~INPUT_CONTEXT~ to enter to Lawyer",
},
{
marker = {
distanceToSee = 15.0,
distanceToAccess = 1.0,
id = 21,
color = {r = 200, g = 200, b = 200, a = 125},
size = vec(0.4, 0.4, 0.4),
bobUpAndDown = false,
rotate = true,
showOnFoot = true,
showInVehicle = true,
accessOnFoot = true,
accessInVehicle = false,
requiredRoutingBucket = 3
},
coords = vector3(-1399.35, -481.56, 72.04),
teleportTo = vector4(-116.26, -603.32, 36.28, 253.04),
type = "exit",
hint = "Press ~INPUT_CONTEXT~ to exit from Lawyer",
},
}
Last updated