> 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_multichars/configuration-files/config.lua.md).

# config.lua

Preview File Updated: v2.0.0 - 22.08.2026

```lua
Config = Config or {}


-- ███████╗██████╗  █████╗ ███╗   ███╗███████╗██╗    ██╗ ██████╗ ██████╗ ██╗  ██╗
-- ██╔════╝██╔══██╗██╔══██╗████╗ ████║██╔════╝██║    ██║██╔═══██╗██╔══██╗██║ ██╔╝
-- █████╗  ██████╔╝███████║██╔████╔██║█████╗  ██║ █╗ ██║██║   ██║██████╔╝█████╔╝ 
-- ██╔══╝  ██╔══██╗██╔══██║██║╚██╔╝██║██╔══╝  ██║███╗██║██║   ██║██╔══██╗██╔═██╗ 
-- ██║     ██║  ██║██║  ██║██║ ╚═╝ ██║███████╗╚███╔███╔╝╚██████╔╝██║  ██║██║  ██╗
-- ╚═╝     ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝     ╚═╝╚══════╝ ╚══╝╚══╝  ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝
local DetectActiveFramework = function()
    if GetResourceState('es_extended') == 'started' then
        return "ESX"
    elseif GetResourceState('qbx_core') == 'started' then
        return "QBX"
    elseif GetResourceState('qb-core') == 'started' then
        return "QB-Core"
    end
end

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



-- ███╗   ███╗ █████╗ ██╗███╗   ██╗    ███████╗███████╗████████╗████████╗██╗███╗   ██╗ ██████╗ ███████╗
-- ████╗ ████║██╔══██╗██║████╗  ██║    ██╔════╝██╔════╝╚══██╔══╝╚══██╔══╝██║████╗  ██║██╔════╝ ██╔════╝
-- ██╔████╔██║███████║██║██╔██╗ ██║    ███████╗█████╗     ██║      ██║   ██║██╔██╗ ██║██║  ███╗███████╗
-- ██║╚██╔╝██║██╔══██║██║██║╚██╗██║    ╚════██║██╔══╝     ██║      ██║   ██║██║╚██╗██║██║   ██║╚════██║
-- ██║ ╚═╝ ██║██║  ██║██║██║ ╚████║    ███████║███████╗   ██║      ██║   ██║██║ ╚████║╚██████╔╝███████║
-- ╚═╝     ╚═╝╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝    ╚══════╝╚══════╝   ╚═╝      ╚═╝   ╚═╝╚═╝  ╚═══╝ ╚═════╝ ╚══════╝
---@class AutoExecuteQuery<boolean>
Config.AutoExecuteQuery = true

---@class DefaultSlots<number>
Config.DefaultSlots = 3

---@class WeatherType<string>
Config.WeatherType = 'EXTRASUNNY'

---@class Time<table>
Config.Time = {Hour = 22, Minute = 0}

---@class Debug<boolean>
-- Enables debug prints.
Config.Debug = true

---@class DebugTarget<boolean>
-- Enables debug related to target zones.
Config.DebugTarget = false

---@class UseTarget<boolean>
Config.UseTarget = false

---@class UseTextUI<boolean>
Config.UseTextUI = false



--  ██████╗ ███████╗███╗   ██╗███████╗██████╗  █████╗ ██╗         ███████╗███████╗████████╗████████╗██╗███╗   ██╗ ██████╗ ███████╗
-- ██╔════╝ ██╔════╝████╗  ██║██╔════╝██╔══██╗██╔══██╗██║         ██╔════╝██╔════╝╚══██╔══╝╚══██╔══╝██║████╗  ██║██╔════╝ ██╔════╝
-- ██║  ███╗█████╗  ██╔██╗ ██║█████╗  ██████╔╝███████║██║         ███████╗█████╗     ██║      ██║   ██║██╔██╗ ██║██║  ███╗███████╗
-- ██║   ██║██╔══╝  ██║╚██╗██║██╔══╝  ██╔══██╗██╔══██║██║         ╚════██║██╔══╝     ██║      ██║   ██║██║╚██╗██║██║   ██║╚════██║
-- ╚██████╔╝███████╗██║ ╚████║███████╗██║  ██║██║  ██║███████╗    ███████║███████╗   ██║      ██║   ██║██║ ╚████║╚██████╔╝███████║
--  ╚═════╝ ╚══════╝╚═╝  ╚═══╝╚══════╝╚═╝  ╚═╝╚═╝  ╚═╝╚══════╝    ╚══════╝╚══════╝   ╚═╝      ╚═╝   ╚═╝╚═╝  ╚═══╝ ╚═════╝ ╚══════╝
---@class Commands<table>
Config.Commands = {
	['DeleteCharacter'] = {
		Enabled = true,
		Name = 'deletecharacter',
		Help = 'Delete Character',
		Groups = 'admin',
		Suggestions = {
			{name = 'identifier', label = 'Identifier or CitizenID'},
		},
	},
	['SetSlots'] = {
		Enabled = true,
		Name = 'setslots',
		Help = 'Set Slots',
		Groups = 'admin',
		Suggestions = {
			{name = 'identifier', label = 'Identifier or CitizenID'},
			{name = 'slots', help = 'Slots', type = 'number'}
		},
	},
	['RemoveSlots'] = {
		Enabled = true,
		Name = 'removeslots',
		Help = 'Remove Slots',
		Groups = 'admin',
		Suggestions = {
			{name = 'identifier', label = 'Identifier or CitizenID'},
		},
	},
	['EnableCharacter'] = {
		Enabled = true,
		Name = 'enablechar',
		Help = 'Enable Character',
		Groups = 'admin',
		Suggestions = {
			{name = 'identifier', label = 'Identifier or CitizenID'},
		},
	},
	['DisableCharacter'] = {
		Enabled = true,
		Name = 'disablechar',
		Help = 'Disable Character',
		Groups = 'admin',
		Suggestions = {
			{name = 'identifier', label = 'Identifier or CitizenID'},
		},
	},
}

---@class StarterItems<table>
Config.StarterItems = {
    Enabled = true,
    List = {
        {
			name = 'bread',
			count = 2,
		},
        {
			name = 'water',
			count = 2,
		},
        -- { -- QB-Core Default ID Card
		-- 	name = 'id_card',
		-- 	count = 1,
		-- 	metadata = function(src, xPlayer)
		-- 		local info = {}
		-- 		info.citizenid = xPlayer.PlayerData.citizenid
		-- 		info.firstname = xPlayer.PlayerData.charinfo.firstname
		-- 		info.lastname = xPlayer.PlayerData.charinfo.lastname
		-- 		info.birthdate = xPlayer.PlayerData.charinfo.birthdate
		-- 		info.gender = xPlayer.PlayerData.charinfo.gender
		-- 		info.nationality = xPlayer.PlayerData.charinfo.nationality
		-- 		return info
		-- 	end,
		-- },
        -- { -- QB-Core Default Driver License
		-- 	name = 'driver_license',
		-- 	count = 1,
		-- 	metadata = function(src, xPlayer)
		-- 		local info = {}
		-- 		info.firstname = xPlayer.PlayerData.charinfo.firstname
		-- 		info.lastname = xPlayer.PlayerData.charinfo.lastname
		-- 		info.birthdate = xPlayer.PlayerData.charinfo.birthdate
		-- 		info.type = 'Class C Driver License'
		-- 		return info
		-- 	end,
		-- },
    }
}

---@class StarterMoney<table>
Config.StarterMoney = {
    Enabled = true,
    List = {
        {
			account = 'money',
			amount = 1000
		},
        {
			account = 'bank',
			amount = 5000
		},
    }
}

---@class CanDelete<boolean>
-- Allow players to delete their character.
Config.CanDelete = true

---@class RelogCommand<boolean>
-- Allow players to use the command to log out to the multi-character menu
Config.RelogCommand = true

---@class FirstSpawnLocation<vector4>
Config.FirstSpawnLocation = vector4(-1039.13, -2739.26, 12.84, 325.55)

---@class Scene<table>
Config.Scene = {
	Coords = vector4(-885.82, -453.44, 124.26, 69.5),

    MainCamera = {
        Offset = vector3(1.5, 4.0, 0.2),
        PointHeight = 0.8,
        Rotation = vector3(0.0, 0.0, 0.0),
        Fov = 15.0,

        Shake = {
            Enabled = true,
            Type = 'HAND_SHAKE',
            Amplitude = 0.125
        }
    },

	StartCamera = {
        Coords = vector3(-892.56, -450.19, 124.86),
        Fov = 50.0,
        TransitionDuration = 4000,

		Shake = {
            Enabled = true,
            Type = 'HAND_SHAKE',
            Amplitude = 0.45
        }
    },

    Timecycle = {
        Enabled = true,
        Name = 'int_carrier_stair',
        Strength = 1.0
    }
}

---@class PedAnimation<table>
Config.PedAnimation = {
	Enabled = true,

	Genders = {
		[0] = {
			{
				Dict = 'timetable@ron@ig_3_couch',
				Name = 'base',
				Flag = 1
			},
		},
		[1] = {
			{
				Dict = 'timetable@reunited@ig_10',
				Name = 'base_amanda',
				Flag = 1
			},
		}
	},
	
}

---@class ChangeCharacterPoint<table>
Config.ChangeCharacterPoint = {
	Enabled = true,
	Coords = vector3(-1045.07, -2750.11, 21.36),
	Blip = {
		Sprite = 480, 
		Color = 2, 
		Display = 4,
		Scale = 1.0, 
		Name = "Character Selector"
	},
	Target = {
		Rotation = 0.0,
		Size = vector3(2.0, 2.0, 2.5)
	},
	Marker = {
		Enabled = false,
		Id = 2, 
		RGBA = {255, 215, 25, 100}, 
		Size = vec(0.75, 0.75, 0.75), 
		Rotate = true
	},
}
```
