Configuration
This section includes all configurable files for the selected script. Most settings are configured automatically, but each config.lua file contains a header comment explaining the purpose and usage of every configuration type. Be sure to read the header of each file carefully to fully understand how to customize and adapt the system for QBCORE, ESX, or standalone environments, ensuring seamless integration with your server.
qs-radialmenu/config/config.lua
Config = {}
-- ============================================
-- CONFIGURAÇÕES GERAIS
-- ============================================
-- Locale/Language setting
-- Available: 'en' (English), 'pt' (Portuguese), 'es' (Spanish), 'fr' (French),
-- 'de' (German), 'it' (Italian), 'nl' (Dutch), 'ru' (Russian),
-- 'ar' (Arabic), 'zh' (Chinese)
Config.Language = 'en'
-- Key to open the radial menu (default: F3)
-- See: https://docs.fivem.net/docs/game-references/controls/
-- Examples: F1 = 288, F2 = 289, F3 = 170, F5 = 166, etc.
Config.OpenKey = 170 -- F3
-- Shape of menu buttons
-- Options: "hexagon" or "circle"
Config.Shape = "circle" -- "hexagon" or "circle"
-- Enable carousel rotation animation when menu opens (default: true)
-- Set to false for better performance on low-end PCs
-- Players can override this in settings menu (F3 > Settings)
Config.EnableCarouselAnimation = true
-- Navigation button texts
Config.ButtonTexts = {
back = "Voltar", -- Back button text
home = "Inicio", -- Home button text
closeInstruction = "Pressione ESC para fechar" -- Close instruction text
}
-- Default colors for radial menu
Config.Colors = {
buttonBgFrom = "#0a1929",
buttonBgTo = "#051220",
buttonBorder = "#1e5f8f",
buttonGlow = "#2b7bc4",
iconColor = "#60a5fa",
textColor = "#e2e8f0",
backgroundOpacity = 0.8
}
-- Color presets/templates for the settings UI
-- These templates appear in the gradient presets picker
Config.ColorPresets = {
{
name = "Default",
colors = {
buttonBgFrom = "#0a1929",
buttonBgTo = "#051220",
buttonBorder = "#1e5f8f",
buttonGlow = "#2b7bc4",
iconColor = "#60a5fa",
textColor = "#e2e8f0"
}
},
{
name = "Dark Gray",
colors = {
buttonBgFrom = "#1f2937",
buttonBgTo = "#111827",
buttonBorder = "#4b5563",
buttonGlow = "#6b7280",
iconColor = "#9ca3af",
textColor = "#e5e7eb"
}
},
{
name = "Purple",
colors = {
buttonBgFrom = "#581c87",
buttonBgTo = "#3b0764",
buttonBorder = "#7e22ce",
buttonGlow = "#9333ea",
iconColor = "#c4b5fd",
textColor = "#f3e8ff"
}
},
{
name = "Emerald",
colors = {
buttonBgFrom = "#064e3b",
buttonBgTo = "#022c22",
buttonBorder = "#065f46",
buttonGlow = "#059669",
iconColor = "#6ee7b7",
textColor = "#d1fae5"
}
},
{
name = "Red",
colors = {
buttonBgFrom = "#7f1d1d",
buttonBgTo = "#450a0a",
buttonBorder = "#991b1b",
buttonGlow = "#b91c1c",
iconColor = "#fca5a5",
textColor = "#fee2e2"
}
},
{
name = "Orange",
colors = {
buttonBgFrom = "#7c2d12",
buttonBgTo = "#431407",
buttonBorder = "#9a3412",
buttonGlow = "#c2410c",
iconColor = "#fdba74",
textColor = "#fed7aa"
}
}
}
-- Debug mode (enable to see job detection logs)
Config.Debug = false
Config.EditCommand = "radialsettings"
Config.OpenCommand = "radial"
Config.Menu = {
title = 'Menu Principal',
items = {
-- Personaje
{
label = 'Personaje',
icon = 'User',
type = 'category',
items = {
{
label = 'Recargar skin',
icon = 'RotateCcw',
type = 'item',
action = function()
ExecuteCommand('reloadskin')
end
},
{
label = 'Cambiar de personaje',
icon = 'Users',
type = 'item',
action = function()
ExecuteCommand('qs:logout')
end
},
{
label = 'Limpiar props',
icon = 'Brush',
type = 'item',
action = function()
ExecuteCommand('clearstuckprops')
end
},
{
label = 'Trabajos',
icon = 'Briefcase',
type = 'item',
action = function()
ExecuteCommand('checkjob')
end
},
{
label = 'Tarjetas SIM',
icon = 'SimCard',
type = 'item',
action = function()
ExecuteCommand('simcards')
end
}
}
},
-- Customización
{
label = 'Customización',
icon = 'Paintbrush',
type = 'category',
items = {
{
label = 'Configurar HUD',
icon = 'Monitor',
type = 'item',
action = function()
ExecuteCommand('configure_hud') -- en el original venía "/configure_hud"
end
}
}
},
-- Apartments
{
label = 'Apartamentos',
icon = 'Building',
type = 'category',
canInteract = function()
return exports['qs-apartments']:InApartment()
end,
items = {
{
label = 'Decorar apartamento',
icon = 'Sofa',
type = 'item',
action = function()
TriggerEvent('qs-apartments:client:decorate')
end
},
{
label = 'Configurar puntos',
icon = 'MapPin',
type = 'item',
action = function()
TriggerEvent('qs-apartments:client:locations')
end
}
}
},
-- Garage
{
label = 'Garajes',
icon = 'Warehouse',
type = 'category',
job = { "mechanic", "realestate" },
items = {
{
label = 'Crear garaje de coches',
icon = 'Car',
type = 'item',
action = function()
TriggerEvent('advancedgarages:createVehicleGarage')
end
},
{
label = 'Crear garaje de barcos',
icon = 'Ship',
type = 'item',
action = function()
TriggerEvent('advancedgarages:createBoatGarage')
end
},
{
label = 'Crear garaje de aviones',
icon = 'Plane',
type = 'item',
action = function()
TriggerEvent('advancedgarages:createPlaneGarage')
end
},
{
label = 'Eliminar garaje',
icon = 'Trash2',
type = 'item',
action = function()
TriggerEvent('advancedgarages:deleteGarage')
end
}
}
},
-- Appearance
{
label = 'Tiendas de ropa',
icon = 'Shirt',
type = 'category',
job = { "realestate" },
items = {
{
label = 'Crear tienda de ropa',
icon = 'PlusSquare',
type = 'item',
action = function()
ExecuteCommand('create_shop')
end
},
{
label = 'Eliminar tienda de ropa',
icon = 'Trash2',
type = 'item',
action = function()
ExecuteCommand('delete_shop')
end
}
}
},
-- Drugs Creator (Realestate)
{
label = 'Laboratorios',
icon = 'FlaskConical',
type = 'category',
job = { "realestate" },
items = {
{
label = 'Crear laboratorio',
icon = 'TestTubes',
type = 'item',
action = function()
ExecuteCommand('drugscreator')
end
}
}
},
-- Housing Creator
{
label = 'Viviendas',
icon = 'Home',
type = 'category',
job = { "realestate" },
items = {
{
label = 'Abrir creador de viviendas',
icon = 'Home',
type = 'item',
action = function()
ExecuteCommand('realestate')
end
}
}
},
-- Lab Menu (cuando está dentro)
{
label = 'Laboratorio',
icon = 'FlaskConical',
type = 'category',
canInteract = function()
return exports['qs-drugs-creator']:EnteredLab()
end,
items = {
{
label = 'Menú del laboratorio',
icon = 'Settings',
type = 'item',
action = function()
ExecuteCommand('labMenu')
end
},
{
label = 'Decoración',
icon = 'PaintRoller',
type = 'item',
action = function()
ExecuteCommand('labDeco')
end
}
}
},
-- Mecánico
{
label = 'Mecánico',
icon = 'Wrench',
type = 'category',
job = { "mechanic" },
items = {
{
label = 'Reparar vehículos',
icon = 'Tool',
type = 'item',
action = function()
ExecuteCommand('repairvehicle')
end
},
{
label = 'Enviar al depósito',
icon = 'Warehouse',
type = 'item',
action = function()
ExecuteCommand('impound')
end
},
{
label = 'Limpiar vehículos',
icon = 'Trash2',
type = 'item',
action = function()
ExecuteCommand('mdv')
end
},
{
label = 'Abrir Menú',
icon = 'Tools',
type = 'item',
action = function()
ExecuteCommand('mechanic_radial')
end
}
}
},
-- Motorhome
{
label = 'Motorhome',
icon = 'Caravan',
type = 'category',
canInteract = function()
return exports['qs-motorhome']:GetCurrentVanPlate() or exports['qs-motorhome']:getClosestVan()
end,
items = {
{
label = 'Decorar carabana',
icon = 'Sofa',
type = 'item',
canInteract = function()
return exports['qs-motorhome']:GetCurrentVanPlate()
end,
action = function()
ExecuteCommand('vanDecoration')
end
},
{
label = 'Configurar puntos',
icon = 'MapPin',
type = 'item',
canInteract = function()
return exports['qs-motorhome']:GetCurrentVanPlate()
end,
action = function()
ExecuteCommand('vanLocation')
end
},
{
label = 'Acampar',
icon = 'MapPin',
type = 'item',
canInteract = function()
return exports['qs-motorhome']:getClosestVan()
end,
action = function()
ExecuteCommand('vanCamp')
end
},
{
label = 'Dar llaves',
icon = 'Key',
type = 'item',
canInteract = function()
return exports['qs-motorhome']:GetCurrentVanPlate() or exports['qs-motorhome']:getClosestVan()
end,
action = function()
TriggerEvent('qs-motorhome:client:givekeysNearest')
end
}
}
},
-- Diamond Casino
{
label = 'Casino',
icon = 'Dices',
type = 'category',
job = { "casino" },
items = {
{
label = 'Abrir menú de casino',
icon = 'Dices',
type = 'item',
action = function()
ExecuteCommand('casino')
end
}
}
},
-- Admin
{
label = 'Administración',
icon = 'Shield',
type = 'category',
canInteract = function()
local flag = LocalPlayer.state.qs_isAdmin
return flag == true
end,
items = {
{
label = 'Abrir menú',
icon = 'ClipboardList',
type = 'item',
action = function()
ExecuteCommand('qadmin')
end
},
{
label = 'Crear Craft',
icon = 'Hammer',
type = 'item',
action = function()
ExecuteCommand('crafting_creator')
end
},
{
label = 'Reparar vehículos',
icon = 'Tool',
type = 'item',
action = function()
ExecuteCommand('repairvehicle')
end
},
{
label = 'Enviar al depósito',
icon = 'Warehouse',
type = 'item',
action = function()
ExecuteCommand('impound')
end
},
{
label = 'Limpiar vehículos',
icon = 'Brush',
type = 'item',
action = function()
ExecuteCommand('mdv')
end
},
{
label = 'Cambiar ropa',
icon = 'Shirt',
type = 'item',
action = function()
ExecuteCommand('appearance')
end
},
{
label = 'Crear tiendas',
icon = 'Store',
type = 'item',
action = function()
ExecuteCommand('shopcreator')
end
},
{
label = 'Crear hospitales',
icon = 'Hospital',
type = 'item',
action = function()
ExecuteCommand('hospital_creator')
end
},
{
label = 'Crear Mecánicos',
icon = 'Car',
type = 'item',
action = function()
ExecuteCommand('mechanic_creator')
end
}
}
},
-- Vehículo (contexto)
{
label = 'Vehículo',
icon = 'CarFront',
type = 'category',
canInteract = function()
return print('AA')
end,
items = {
{
label = 'Puertas',
icon = 'DoorOpen',
type = 'category',
items = {
{
label = 'Conductor',
icon = 'Car',
type = 'item',
canInteract = function()
return QS_Radial.HasDoor(0)
end,
action = function()
TriggerEvent('radialmenu:door0')
end
},
{
label = 'Pasajero',
icon = 'Car',
type = 'item',
canInteract = function()
return QS_Radial.HasDoor(1)
end,
action = function()
TriggerEvent('radialmenu:door1')
end
},
{
label = 'Trasera Izq.',
icon = 'Car',
type = 'item',
canInteract = function()
return QS_Radial.HasDoor(2)
end,
action = function()
TriggerEvent('radialmenu:door2')
end
},
{
label = 'Trasera Der.',
icon = 'Car',
type = 'item',
canInteract = function()
return QS_Radial.HasDoor(3)
end,
action = function()
TriggerEvent('radialmenu:door3')
end
},
{
label = 'Capó',
icon = 'Car',
type = 'item',
canInteract = function()
return QS_Radial.HasDoor(4)
end,
action = function()
TriggerEvent('radialmenu:door4')
end
},
{
label = 'Maletero',
icon = 'Car',
type = 'item',
canInteract = function()
return QS_Radial.HasDoor(5)
end,
action = function()
TriggerEvent('radialmenu:door5')
end
}
}
},
{
label = 'Asientos',
icon = 'Armchair',
type = 'category',
items = {
{
label = 'Conductor',
icon = 'ChevronUp',
type = 'item',
canInteract = function()
return QS_Radial.HasSeat(-1)
end,
action = function()
TriggerEvent('radialmenu:seat_driver')
end
},
{
label = 'Pasajero',
icon = 'ChevronUp',
type = 'item',
canInteract = function()
return QS_Radial.HasSeat(0)
end,
action = function()
TriggerEvent('radialmenu:seat_passenger')
end
},
{
label = 'Trasero Izq.',
icon = 'ChevronUp',
type = 'item',
canInteract = function()
return QS_Radial.HasSeat(1)
end,
action = function()
TriggerEvent('radialmenu:seat_rl')
end
},
{
label = 'Trasero Der.',
icon = 'ChevronUp',
type = 'item',
canInteract = function()
return QS_Radial.HasSeat(2)
end,
action = function()
TriggerEvent('radialmenu:seat_rr')
end
}
}
},
{
label = 'Motor',
icon = 'Key',
type = 'item',
action = function()
TriggerEvent('radialmenu:toggleEngine')
end
},
{
label = 'Voltear vehículo',
icon = 'Car',
type = 'item',
action = function()
TriggerEvent('radialmenu:flipVehicle')
end
}
}
},
-- Carreras
{
label = 'Carreras',
icon = 'FlagCheckered',
type = 'category',
items = {
{
label = 'Menú',
icon = 'Gauge',
type = 'item',
action = function()
ExecuteCommand('openracingui')
end
},
{
label = 'Nitro',
icon = 'Zap',
type = 'item',
action = function()
ExecuteCommand('usenitro')
end
},
{
label = 'Drift',
icon = 'Car',
type = 'item',
action = function()
ExecuteCommand('drift')
end
}
}
},
-- Ambulancia
{
label = 'Ambulancia',
icon = 'Ambulance',
type = 'category',
job = {
ambulance = { grade = 1 },
},
items = {
{
label = 'Abrir menú',
icon = 'Ambulance',
type = 'item',
action = function()
TriggerEvent('ambulance:openMenu')
end
}
}
}
}
}