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-adminmenu/shared/config.lua
--──────────────────────────────────────────────────────────────────────────────
-- Quasar Store · Configuration Guidelines
--──────────────────────────────────────────────────────────────────────────────
-- This configuration file defines all adjustable parameters for the script.
-- Comments are standardized to help you identify which sections you can safely edit.
--
-- • [EDIT] – Safe for users to modify. Adjust these values as needed.
-- • [INFO] – Informational note describing what the variable or block does.
-- • [ADV] – Advanced settings. Change only if you understand the logic behind it.
-- • [CORE] – Core functionality. Do not modify unless you are a developer.
-- • [AUTO] – Automatically handled by the system. Never edit manually.
--
-- Always make a backup before editing configuration files.
-- Incorrect changes in [CORE] or [AUTO] sections can break the resource.
--──────────────────────────────────────────────────────────────────────────────
--──────────────────────────────────────────────────────────────────────────────
-- Admin Base [EDIT]
-- [INFO] Core toggles and base command for opening the admin menu.
--──────────────────────────────────────────────────────────────────────────────
AdminConfig = {}
AdminConfig.Debug = false -- [EDIT] Verbose logs for development only.
AdminConfig.Command = 'qadmin' -- [EDIT] Command to open Admin Menu.
--──────────────────────────────────────────────────────────────────────────────
-- Language [EDIT]
-- [INFO] Set panel language. Options: de, en, es, fr, it
--──────────────────────────────────────────────────────────────────────────────
AdminConfig.Locale = "en" -- [EDIT]
--──────────────────────────────────────────────────────────────────────────────
-- Discord Configuration [EDIT]
-- [INFO] REQUIRED. If not configured, you will NOT be able to access Admin Menu.
-- [INFO] If using Quasar Auto Install bot: keep BotToken empty and follow steps.
--──────────────────────────────────────────────────────────────────────────────
AdminConfig.CustomDiscord = false -- [EDIT] false = Auto handled by Quasar Auto Install.
AdminConfig.Discord = "https://discord.gg/quasarstore" -- [EDIT] Your server invite.
-- [INFO] These IDs are provided by Quasar Auto Install bot. If CustomDiscord = true,
-- set them manually with your Discord guild and GOD role IDs.
AdminConfig.guildId = "1308225607590740101" -- [EDIT]
AdminConfig.GodId = "1340921413237739600" -- [EDIT]
--──────────────────────────────────────────────────────────────────────────────
-- Entity & World Controls [EDIT]
-- [INFO] Density/cleanup controls exposed in Admin tools.
--──────────────────────────────────────────────────────────────────────────────
AdminConfig.EntityControlEnabled = false -- [EDIT] Enable entity spawn rate control.
AdminConfig.PedRate = 0.99 -- [EDIT] Ambient ped density multiplier.
AdminConfig.VehicleRate = 0.99 -- [EDIT] Ambient vehicle density multiplier.
AdminConfig.ServerLogo = "https://r2.fivemanage.com/uvBtaMGCoNSvxrJdyL7xR/dUzAllQ.gif" -- [EDIT] Dashboard header image.
--──────────────────────────────────────────────────────────────────────────────
-- Integrations [EDIT]
-- [INFO] Choose inventory/medical/garage/key systems. See server/custom/* for adapters.
--──────────────────────────────────────────────────────────────────────────────
AdminConfig.Inventory = "qs" -- [EDIT] qs, qb, codem, ox
AdminConfig.AmbulanceScript = "wasabi" -- [EDIT] See server/custom/ambulance.lua
-- GARAGE SYSTEM CONFIGURATION
-- [INFO] Register a supported garage or custom in server/custom/garages.lua
AdminConfig.GarageScript = "qb" -- [EDIT] "cd_garage","qs-advancedgarages","jg-advancedgarages","custom", or nil
AdminConfig.KeySystem = "qs" -- [EDIT] Vehicle key system adapter
--──────────────────────────────────────────────────────────────────────────────
-- Cleanup Radii [EDIT]
-- [INFO] Distances for admin cleanup actions.
--──────────────────────────────────────────────────────────────────────────────
AdminConfig.ClearPedRadius = 50.0 -- [EDIT] Radius to clear pedestrians.
AdminConfig.ClearNearbyVehiclesRadius = 50.0 -- [EDIT] Radius to clear vehicles.
AdminConfig.ResetWorldRadius = 50.0 -- [EDIT] Radius to reset world area.
--──────────────────────────────────────────────────────────────────────────────
-- Weather Sync [EDIT]
-- [INFO] Choose your weather/time resource or implement in server/custom/weather.lua
--──────────────────────────────────────────────────────────────────────────────
AdminConfig.WeatherManager = "qb-weathersync" -- [EDIT]
AdminConfig.WeatherList = { -- [EDIT] Allowed weather presets.
"HALLOWEEN","EXTRASUNNY","CLEAR","NEUTRAL","SMOG","FOGGY","OVERCAST","CLOUDY",
"CLEARING","RAIN","THUNDER","SNOW","BLIZZARD","SNOWLIGHT","XMAS"
}
--──────────────────────────────────────────────────────────────────────────────
-- Framework Map [EDIT]
-- [INFO] Resource names used for detection.
--──────────────────────────────────────────────────────────────────────────────
AdminConfig.AdminFramework = {
qb = "qb-core",
esx = "es_extended"
}
--──────────────────────────────────────────────────────────────────────────────
-- Framework Detection [AUTO]
-- [INFO] Attempts QBCore via export → ESX via import → ESX legacy export → other.
-- [INFO] Do NOT change unless you know what you're doing.
--──────────────────────────────────────────────────────────────────────────────
AdminFramework = nil -- [CORE] Holds detected framework object.
AdminConfig.FrameworkName = "" -- [CORE] "qb", "esx", or "other".
local qbRes = AdminConfig.AdminFramework.qb -- [AUTO] e.g. "qb-core"
local esxRes = AdminConfig.AdminFramework.esx -- [AUTO] e.g. "es_extended"
-- QBCore via export
if GetResourceState(qbRes) == "started" and exports[qbRes] and type(exports[qbRes].GetCoreObject) == "function" then
AdminFramework = exports[qbRes]:GetCoreObject()
AdminConfig.FrameworkName = "qb"
print(("[qs_admin] Detected QBCore via exports['%s']:GetCoreObject()"):format(qbRes))
-- ESX via import (shared_script '@es_extended/imports.lua')
elseif ESX ~= nil then
AdminFramework = ESX
AdminConfig.FrameworkName = "esx"
print("[qs_admin] Detected ESX via shared import (imports.lua)")
-- ESX via legacy export fallback
elseif GetResourceState(esxRes) == "started" and exports[esxRes] and type(exports[esxRes].getSharedObject) == "function" then
AdminFramework = exports[esxRes]:getSharedObject()
AdminConfig.FrameworkName = "esx"
print(("[qs_admin] Detected ESX via exports['%s']:getSharedObject()"):format(esxRes))
-- No match
else
AdminConfig.FrameworkName = "other"
print("[qs_admin] No supported AdminFramework detected. Running as 'other'")
end
qs-adminmenu/shared/config.json
{
"resourcesDir": "/root/qsrp/txData/unknownhorizons/resources",
// Root directory where your server resources (scripts, assets, etc.) are stored.
"logFiles": [
"/root/qsrp/txData/default/logs/fxserver.log",
"/root/qsrp/txData/default/logs/server.log"
],
// List of log files to monitor or analyze periodically.
"logSampleIntervalMs": 500,
// Frequency (in milliseconds) at which logs are sampled.
"statSampleIntervalMs": 5000,
// Frequency (in milliseconds) at which statistics are updated.
"ignoredFolders": [
"node_modules",
".git",
"dist",
"any folder you wish to be ignored in the editor"
]
// Folders that will be ignored during resource scanning.
}qs-adminmenu/shared/permission.lua
--──────────────────────────────────────────────────────────────────────────────
-- Declarations [CORE]
-- [INFO] Primary permission containers used by the system.
--──────────────────────────────────────────────────────────────────────────────
Permissions = {} -- Do NOT TOUCH [CORE]
PermissionsMap = {} -- Do NOT TOUCH [CORE]
--──────────────────────────────────────────────────────────────────────────────
-- Server-Side Permission Map [EDIT]
-- [INFO] Action → Permission string mapping consumed by the backend.
-- [INFO] Adjust values to match your rank/ACL system as needed.
--──────────────────────────────────────────────────────────────────────────────
PermissionsMap.Permissions = {
['Dashboard'] = "dashboard.view",
['RevivePlayer'] = "players.view",
['HealPlayer'] = "players.view",
['ReviveAll'] = "players.view",
['ReviveInRadius'] = "dashboard.view.adminoverview.reviveradius",
['WarnPlayer'] = "players.view",
['ToggleFreeze'] = "players.view",
['SetPlayerPed'] = "players.view",
['KickPlayer'] = "players.view",
['BanPlayer'] = "players.view",
['ViewPlayers'] = "players.view",
['SetJob'] = "players.view",
['SetGang'] = "players.view",
['Spectate'] = "players.view",
['SpectateRequestBucket'] = "players.view",
['SpectateRequestPlayerPosition'] = "players.view",
['ForceSpectate'] = "players.view",
['RequestTeleport'] = "players.view",
['SendCoordsToServer'] = "players.view",
['BringPlayer'] = "players.view",
['SendBack'] = "players.view",
['OpenInventory'] = "players.view",
['GiveItem'] = "players.view",
['NoClip'] = "dashboard.view.adminoverview.noclip",
['NoClipSync'] = "dashboard.view.adminoverview.noclip",
["ClothingMenu"] = "players.view",
["GivePermissions"] = "dashboard.view",
["DenyPermission"] = "dashboard.view",
["GiveMoney"] = "players.view.actions.givemoney",
['GetBanRecords'] = "players.view",
['GetBanStatistics'] = "players.view",
['UnbanPlayer'] = "players.view",
['UpdateBanRecord'] = "players.view",
['SearchPlayerBans'] = "players.view",
-- Resource management (resources.view)
['GetRunningResources'] = "editor.view",
['GetResourceConfig'] = "editor.view",
['SaveResourceConfig'] = "editor.view",
['RunCommand'] = "server.view",
['ManageResources'] = "resources.view",
['ViewResources'] = "resources.view",
['TogglePlayerNames'] = "dashboard.view.adminoverview.tooglenames",
['ToggleGodMode'] = "dashboard.view.adminoverview.godmode",
['ToggleInfiniteAmmo'] = "dashboard.view.adminoverview.infiniteammo",
['ToggleNoClip'] = "dashboard.view.adminoverview.noclip",
['RepairVehicle'] = "dashboard.view.adminoverview.fixvehicle",
['ClearAreaPeds'] = "dashboard.view.adminoverview.clearareapeds",
['ClearNearbyVehicles'] = "dashboard.view.adminoverview.clearnearbyvehicles",
['ToggleCoords'] = "dashboard.view.adminoverview.tooglecoords",
['ToggleDevmode'] = "dashboard.view.adminoverview.devmode",
['MaxModVehicle'] = "dashboard.view.adminoverview.maxmodvehicle",
['ToggleInvisible'] = "dashboard.view.adminoverview.invisible",
['ChangeTime'] = "dashboard.view.adminoverview.changetime",
-- Vehicle management (vehicles.view)
['SpawnVehicle'] = "vehicles.view",
['DeleteVehicle'] = "vehicles.view",
['GiveCar'] = "players.view",
['GetPlayerVehicles'] = "vehicles.view",
['ViewVehicles'] = "vehicles.view",
['GetESXVehicles'] = "vehicles.view",
-- Server management (server.view)
['Announce'] = "dashboard.view",
['ChangeWeather'] = "dashboard.view",
['ToggleAdminTag'] = "dashboard.view",
['ViewSuggestions'] = "dashboard.view",
['ResetWorldArea'] = "dashboard.view.adminoverview.resetworldarea",
-- Settings management (settings.view)
['UpdateTheme'] = "settings.view",
['WebhookCreate'] = "settings.view",
['WebhookUpdate'] = "settings.view",
['WebhookDelete'] = "settings.view",
['WebhookView'] = "settings.view",
['CreateRank'] = "dashboard.view",
['DeleteRank'] = "dashboard.view.actions.permissions"
}
--──────────────────────────────────────────────────────────────────────────────
-- Static Permission Catalog (UI Contract) [CORE]
-- [INFO] Only for Quasar Developer to modify. Directly affects UI behaviour.
-- [INFO] DO NOT touch this. If you change it and the app breaks, do not open a ticket.
--──────────────────────────────────────────────────────────────────────────────
Permissions.StaticPermissions = {{
apps = {{
name = "Dashboard",
permissions = {{
id = "dashboard.view",
name = "View Dashboard"
}, {
id = "dashboard.view.server.players",
name = "View Server Players"
}, {
id = "dashboard.view.server.uptime",
name = "View Server Uptime"
}, {
id = "dashboard.view.server.status",
name = "View Server Status"
}, {
id = "dashboard.view.server.name",
name = "View Server Name"
}, {
id = "dashboard.view.actions.serverconsole",
name = "Access Server Console"
}, {
id = "dashboard.view.actions.resourcemonitor",
name = "View Resource Monitor"
}, {
id = "dashboard.view.actions.permissions",
name = "Manage Permissions"
}, {
id = "dashboard.view.actions.entitycontrol",
name = "Control Entities"
}, {
id = "dashboard.view.actions.adminjail",
name = "Access Admin Jail"
}, {
id = "dashboard.view.adminoverview.admintag",
name = "Use Admin Tag"
}, {
id = "dashboard.view.adminoverview.copycoords",
name = "Copy Coordinates"
}, {
id = "dashboard.view.adminoverview.fixvehicle",
name = "Fix Vehicle"
}, {
id = "dashboard.view.adminoverview.godmode",
name = "Toggle Godmode"
}, {
id = "dashboard.view.adminoverview.infiniteammo",
name = "Toggle Infinite Ammo"
}, {
id = "dashboard.view.adminoverview.noclip",
name = "Toggle Noclip"
}, {
id = "dashboard.view.adminoverview.reviveall",
name = "Revive All Players"
}, {
id = "dashboard.view.adminoverview.tooglenames",
name = "Toggle Player Names"
}, {
id = "dashboard.view.adminoverview.reviveradius",
name = "Use Revive Radius"
}, {
id = "dashboard.view.adminoverview.tooglecoords",
name = "Toggle Coordinates Display"
}, {
id = "dashboard.view.adminoverview.devmode",
name = "Toggle Dev Mode"
}, {
id = "dashboard.view.adminoverview.announce",
name = "Send Announcement"
}, {
id = "dashboard.view.adminoverview.changeweather",
name = "Change Weather"
}, {
id = "dashboard.view.adminoverview.clearareapeds",
name = "Clear Area Peds"
}, {
id = "dashboard.view.adminoverview.clearnearbyvehicles",
name = "Clear Nearby Vehicles"
}, {
id = "dashboard.view.adminoverview.resetworldarea",
name = "Reset World Area"
}, {
id = "dashboard.view.adminoverview.maxmodvehicle",
name = "Max Mod Vehicle"
}, {
id = "dashboard.view.adminoverview.invisible",
name = "Toggle Invisibility"
}, {
id = "dashboard.view.adminoverview.changetime",
name = "Change Time"
}, {
id = "dashboard.view.playeractivity",
name = "View Player Activity"
}}
}, {
name = "Players",
permissions = {{
id = "players.view",
name = "View Players"
}, {
id = "players.view.management.players",
name = "View Management Players"
}, {
id = "players.view.actions.giveitem",
name = "Give Items"
}, {
id = "players.view.management.bans",
name = "View Management Bans"
}, {
id = "players.view.players.information.id",
name = "View Players Information ID"
}, {
id = "players.view.players.information.name",
name = "View Players Information Name"
}, {
id = "players.view.players.information.ping",
name = "View Players Information Ping"
}, {
id = "players.view.players.information.license",
name = "View Players Information License"
}, {
id = "players.view.players.information.discordId",
name = "View Players Information Discord ID"
}, {
id = "players.view.character.details.cash",
name = "View Character Details Cash"
}, {
id = "players.view.character.details.bank",
name = "View Character Details Bank"
}, {
id = "players.view.character.details.job",
name = "View Character Details Job"
}, {
id = "players.view.actions.goto",
name = "View Players Actions Goto"
}, {
id = "players.view.actions.bring",
name = "View Players Actions Bring"
}, {
id = "players.view.actions.sendback",
name = "View Players Actions Send Back"
}, {
id = "players.view.actions.spectate",
name = "View Players Actions Spectate"
}, {
id = "players.view.actions.spy",
name = "View Players Actions Spy"
}, {
id = "players.view.actions.kick",
name = "View Players Actions Kick"
}, {
id = "players.view.actions.freeze",
name = "View Players Actions Freeze"
}, {
id = "players.view.actions.ban",
name = "View Players Actions Ban"
}, {
id = "players.view.actions.warn",
name = "View Players Actions Warn"
}, {
id = "players.view.actions.openinventory",
name = "View Players Actions Open Inventory"
}, {
id = "players.view.actions.changeped",
name = "View Players Actions Change Ped"
}, {
id = "players.view.actions.clothingmenu",
name = "View Players Actions Clothing Menu"
}, {
id = "players.view.actions.givemoney",
name = "View Players Actions Give Money"
}, {
id = "players.view.actions.revive",
name = "View Players Actions Revive"
}, {
id = "players.view.actions.givecar",
name = "View Players Actions Give Car"
}, {
id = "players.view.actions.setjob",
name = "View Players Actions Set Job"
}, {
id = "players.view.actions.setgang",
name = "View Players Actions Set Gang"
}, {
id = "players.view.actions.jail",
name = "View Players Actions Jail"
}}
}, {
name = "Vehicles",
permissions = {{
id = "vehicles.view",
name = "View Vehicles"
}}
}, {
name = "Garages",
permissions = {{
id = "garages.view",
name = "View Garages"
}}
}, {
name = "Resource Monitor",
permissions = {{
id = "resources.view",
name = "View Resource Monitor"
}}
}, {
name = "Server Console",
permissions = {{
id = "server.view",
name = "View Server Console"
}}
}, {
name = "Settings",
permissions = {{
id = "settings.view",
name = "View Settings"
}}
}, {
name = "Editor",
permissions = {{
id = "editor.view",
name = "View Editor"
}}
}}
}}