Files
red-valley/resources/[framework]/[addons]/qs-advancedgarages/config/config.lua
2026-03-29 21:41:17 +03:00

367 lines
26 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
--──────────────────────────────────────────────────────────────────────────────
-- 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.
--──────────────────────────────────────────────────────────────────────────────
Config = Config or {} -- [CORE]
Locales = Locales or {} -- [CORE]
--──────────────────────────────────────────────────────────────────────────────
-- Language & UI Paths [EDIT]
-- [INFO] Select the locale and NUI base path used by the web UI.
--──────────────────────────────────────────────────────────────────────────────
-- Languages available by default:
-- 'ar','bg','cs','da','de','el','en','es','fa','fr','he','hi','hu','it',
-- 'jp','ko','nl','no','pl','pt','ro','ru','sl','sv','tk','tr','zh-CN'
Config.Locale = 'ro' -- [EDIT] Default language code.
Config.Path = 'nui://qs-advancedgarages/web/' -- [ADV] Base NUI path (keep if you didn't move /web).
Config.ImagePath = Config.Path .. 'images/' -- [ADV] Asset path for images.
Config.MaxPlateLength = 7 -- [EDIT] Maximum plate length.
--──────────────────────────────────────────────────────────────────────────────
-- Framework Detection [AUTO]
-- [INFO] Automatically detects ESX/QB. If renamed, add adapters and set manually.
--──────────────────────────────────────────────────────────────────────────────
local frameworks = { -- [CORE]
['es_extended'] = 'esx',
['qb-core'] = 'qb',
['qbx_core'] = 'qb',
}
Config.Framework = DependencyCheck(frameworks) or 'standalone' -- [AUTO]
--──────────────────────────────────────────────────────────────────────────────
-- Inventory System Detection [AUTO]
-- [INFO] Automatically detects the active inventory system. Extend via adapters.
--──────────────────────────────────────────────────────────────────────────────
local inventories = { -- [CORE]
['qs-inventory'] = 'qs-inventory',
['qb-inventory'] = 'qb-inventory',
['ps-inventory'] = 'ps-inventory',
['ox_inventory'] = 'ox_inventory',
['core_inventory'] = 'core_inventory',
['codem-inventory'] = 'codem-inventory',
['inventory'] = 'inventory',
['origen_inventory'] = 'origen_inventory',
['tgiann-inventory'] = 'tgiann-inventory',
}
Config.Inventory = DependencyCheck(inventories) or 'default' -- [AUTO]
--──────────────────────────────────────────────────────────────────────────────
-- Wardrobe / Appearance Detection [AUTO]
-- [INFO] Detects your clothing/appearance system automatically.
--──────────────────────────────────────────────────────────────────────────────
local wardrobes = { -- [CORE]
['qs-appearance'] = 'qs-appearance',
['qb-clothing'] = 'qb-clothing',
['codem-appearance'] = 'codem-appearance',
['ak47_clothing'] = 'ak47_clothing',
['fivem-appearance'] = 'fivem-appearance',
['illenium-appearance'] = 'illenium-appearance',
['raid_clothes'] = 'raid_clothes',
['rcore_clothes'] = 'rcore_clothes',
['rcore_clothing'] = 'rcore_clothing',
['sleek-clothestore'] = 'sleek-clothestore',
['tgiann-clothing'] = 'tgiann-clothing',
['p_appearance'] = 'p_appearance',
}
Config.Wardrobe = DependencyCheck(wardrobes) or 'default' -- [AUTO]
--──────────────────────────────────────────────────────────────────────────────
-- Menu / Target Systems [EDIT]
-- [INFO] Choose your interaction menu system and optional target/radial.
--──────────────────────────────────────────────────────────────────────────────
-- Menu options: 'esx_menu_default','nh-context','ox_lib','qb-menu','esx_context'
-- Target options: 'ox_target','qb-radialmenu','none'
Config.Menu = 'ox_lib' -- [EDIT] Recommended: 'ox_lib'
Config.UseTarget = 'none' -- [EDIT] 'ox_target','qb-radialmenu' or 'none' (no qb-target).
--──────────────────────────────────────────────────────────────────────────────
-- Fuel / Weather / Vehicle Keys Detection [AUTO]
-- [INFO] Auto-detect common auxiliary systems. Avoid running duplicates.
--──────────────────────────────────────────────────────────────────────────────
local fuels = { -- [CORE]
['qs-fuelstations'] = 'qs-fuelstations',
['LegacyFuel'] = 'LegacyFuel',
['okokGasStation'] = 'okokGasStation',
['esx-sna-fuel'] = 'esx-sna-fuel',
['ps-fuel'] = 'ps-fuel',
['lj-fuel'] = 'lj-fuel',
['ox_fuel'] = 'ox_fuel',
['ti_fuel'] = 'ti_fuel',
['FRFuel'] = 'FRFuel',
['ND_Fuel'] = 'ND_Fuel',
['cdn-fuel'] = 'cdn-fuel',
['BigDaddy-Fuel'] = 'BigDaddy-Fuel',
}
Config.Fuel = DependencyCheck(fuels) or 'none' -- [AUTO]
local weathers = { -- [CORE]
['cd_easytime'] = 'cd_easytime',
['qb-weathersync'] = 'qb-weathersync',
['vSync'] = 'vSync',
}
Config.Weather = DependencyCheck(weathers) or 'none' -- [AUTO]
local vehicleKeys = { -- [CORE]
['qs-vehiclekeys'] = 'qs-vehiclekeys',
['qb-vehiclekeys'] = 'qb-vehiclekeys',
['F_RealCarKeysSystem'] = 'F_RealCarKeysSystem',
['fivecode_carkeys'] = 'fivecode_carkeys',
['glfp10_carkeys'] = 'glfp10_carkeys',
['jc_vehiclekeys'] = 'jc_vehiclekeys',
['mono_carkeys'] = 'mono_carkeys',
['ti_vehicleKeys'] = 'ti_vehicleKeys',
['vehicles_keys'] = 'vehicles_keys',
['wasabi_carlock'] = 'wasabi_carlock',
['xd_locksystem'] = 'xd_locksystem',
['qbx_vehiclekeys'] = 'qbx_vehiclekeys',
['MrNewbVehicleKeys'] = 'MrNewbVehicleKeys',
}
Config.Vehiclekeys = DependencyCheck(vehicleKeys) or 'none' -- [AUTO]
--──────────────────────────────────────────────────────────────────────────────
-- Map Blips & Tags [EDIT]
-- [INFO] Customize sprites/colors for garage categories and quick tags.
--──────────────────────────────────────────────────────────────────────────────
Config.BlipSprites = { -- [EDIT]
plane = { owned = 423, notOwned = 372, size = 0.6, color = 67 },
vehicle = { owned = 357, notOwned = 369, size = 0.6, color = 67 },
boat = { owned = 410, notOwned = 371, size = 0.6, color = 67 },
impound = { color = 6 },
}
Config.Tags = { 'Favorite', 'Fast', 'Safe', 'Luxury', 'Sports', 'Family', 'Special', 'Classic' } -- [EDIT]
Config.Shells = {
{
model = 'sp_illegal_01_subhampro_tebex_io'
},
{
model = 'sp_illegal_02_subhampro_tebex_io'
},
}
--──────────────────────────────────────────────────────────────────────────────
-- Economy & Behavior [EDIT]
-- [INFO] Fees, behavior toggles, persistence and visual preferences.
--──────────────────────────────────────────────────────────────────────────────
Config.TransferGaragePrice = 500 -- [EDIT] Fee to withdraw vehicles from shell.
Config.TransferBlacklist = { -- [EDIT] Vehicle models that cannot be transferred to another player.
-- 'adder',
-- 'zentorno',
-- 't20',
}
Config.GarageSellTax = 1.3 -- [EDIT] Creator's profit multiplier on sale.
Config.ImpoundPrice = 500 -- [EDIT] Default impound release fee.
Config.RepairKit = false -- [EDIT] Enable 'repairkit' usage in garages.
Config.DisableBlips = false -- [EDIT] Hide all blips if true.
Config.ShortNames = false -- [EDIT] Shorten blip names.
Config.IdleDuration = 10000 -- [EDIT] AFK cinematic camera ms (30s).
Config.PlayerToVehicleAnimation = true -- [EDIT] Play enter-vehicle animation.
Config.SetEntityAlpha = true -- [EDIT] Fade effects while saving.
Config.GarageSync = true -- [EDIT] Share slots/vehicles across same shell.
Config.PersistentVehicles = true -- [EDIT] Keep vehicles persistent on map.
Config.PersistentVehiclesLocked = false -- [EDIT] Spawn persistent vehicles locked?
Config.EnablePublicInteriors = false -- [EDIT] Allow entry to public interiors.
Config.EnabledButtons = {
['favorite'] = true,
['tag'] = true,
['send'] = true,
['transfer'] = true,
['bring'] = true
}
--──────────────────────────────────────────────────────────────────────────────
-- Decoration & Lighting [EDIT]
-- [INFO] Money source, FiveGuard integration, and default light intensity.
--──────────────────────────────────────────────────────────────────────────────
Config.SellObjectCommision = 0.3 -- [EDIT] Furniture sale commission.
Config.MoneyType = 'money' -- [EDIT] 'money' | 'bank'
Config.FiveGuard = false -- [EDIT] false | 'your-fiveguard-resource-name'
Config.DefaultLightIntensity = 40.0 -- [EDIT] Default shell light intensity.
--──────────────────────────────────────────────────────────────────────────────
-- Music & SFX [EDIT]
-- [INFO] Background music inside garages and menu click sounds.
--──────────────────────────────────────────────────────────────────────────────
Config.Sounds = true -- [EDIT] Enable ambient music.
Config.SoundVolume = 0.1 -- [EDIT] Suggested 0.010.05 for ambient.
Config.SoundFiles = { 'A$AP_Rocky_-_Shittin_Me' } -- [ADV] Add more in web/sounds/*.ogg
Config.MenuSounds = true -- [EDIT] UI/menu sound effects.
-- DECORATE MUSIC
Config.Music = 'A$AP_Rocky_-_Shittin_Me' -- [EDIT] false to disable music
Config.MusicVolume = 0.01
--──────────────────────────────────────────────────────────────────────────────
-- FurniCreator · Client Graphics & Capture [EDIT]
-- [INFO] Interval between thumbnail captures (increase on low-end PCs).
--──────────────────────────────────────────────────────────────────────────────
Config.FurniCreator = { interval = 300 } -- [EDIT] ms between captures.
Config.FurniCreatorCommand = 'garagefurniture'
--──────────────────────────────────────────────────────────────────────────────
-- Job Permissions [EDIT]
-- [INFO] Whitelist who can create garages or impound vehicles.
--──────────────────────────────────────────────────────────────────────────────
Config.AllowedJobs = { 'mechanic', 'realestate' } -- [EDIT]
Config.ImpoundJobs = { 'police' } -- [EDIT]
Config.CreatorJobs = { -- [EDIT]
{ job = 'mechanic', grade = { 1, 2 } },
}
Config.DisableSounds = false -- [EDIT] Mute all garage sounds.
Config.EnableF3Shop = true
--──────────────────────────────────────────────────────────────────────────────
-- Recovery Points & Blip [EDIT]
-- [INFO] Locations to recover vehicles and associated blip settings.
--──────────────────────────────────────────────────────────────────────────────
Config.Recovery = { -- [EDIT]
coords = {
vec3(408.975830, -1622.887939, 29.279907),
vec3(944.373657, -463.318665, 61.547241),
},
blip = { sprite = 67, color = 6, scale = 0.6, name = 'Recovery', shortRange = true, active = true },
price = 5000,
}
Config.ZoneRadius = 50.0 -- [EDIT] PolyZone radius for interactions.
--──────────────────────────────────────────────────────────────────────────────
-- Default Vehicle/Boat/Plane Camera Presets [EDIT]
-- [INFO] Fallback cameras used for personal garages or missing configs.
--──────────────────────────────────────────────────────────────────────────────
Config.vehicleCamera = { -- [EDIT]
vehicleCoords = vec4(-148.628571, -594.474731, 166.723755, 155.905502),
camera = {
coords = vec3(-146.56, -596.43, 166.93),
rotation = vec3(-2.0, 7.0, 59.0),
ped = vec4(-147.84, -595.20, 167.00, 226.34),
},
}
Config.BoatCamera = { -- [EDIT]
vehicleCoords = vec4(-859.648376, -1476.923096, 0.432983, 291.968506),
camera = {
coords = vec3(-857.762634, -1471.569214, 1.629272),
rotation = vec3(-10.0, 2.0, 178.0),
ped = vec4(-865.13, -1484.44, 1.60, 351.98),
},
}
Config.PlaneCamera = { -- [EDIT]
vehicleCoords = vec4(1729.635132, 3298.760498, 40.788330, 359.661407),
camera = {
coords = vec3(1733.762695, 3303.072510, 41.209473),
rotation = vec3(-5.0, 2.0, 145.0),
ped = vec4(1725.16, 3294.45, 41.22, 317.20),
},
}
--──────────────────────────────────────────────────────────────────────────────
-- Currency & Intl Formatting [EDIT]
-- [INFO] Purely visual. Affects how prices/dates appear in the NUI.
--──────────────────────────────────────────────────────────────────────────────
Config.Intl = {
locales = 'en-US', -- [EDIT] Format locale (e.g. en-US, pt-BR, es-ES, fr-FR, etc.)
options = {
style = 'currency', -- [EDIT] Display style: 'decimal', 'currency', 'percent', 'unit'
currency = 'USD', -- [EDIT] Currency code (e.g. USD, EUR, BRL, RUB, CNY)
minimumFractionDigits = 0 -- [EDIT] Number of decimal places shown.
}
}
--──────────────────────────────────────────────────────────────────────────────
-- Creator / Editor Controls [EDIT]
-- [INFO] Minimum polygon length and camera/editor control sensitivities.
--──────────────────────────────────────────────────────────────────────────────
Config.MinPointLength = 70.0 -- [EDIT] Minimum total poly length.
Config.MinZOffset = 30 -- [EDIT] Minimum shell Z spawn offset
Config.CreatorAlpha = 200 -- [EDIT] Creator ghost alpha (visual aid)
Config.NeedToBeInsidePoints = { -- [EDIT]
['entry'] = true, -- [INFO] Require to be inside entry poly to interact.
['shell'] = false -- [INFO] Force shell interactions inside shell poly.
}
CameraOptions = { -- [EDIT]
lookSpeedX = 1000.0, -- Horizontal camera speed.
lookSpeedY = 1000.0, -- Vertical camera speed.
moveSpeed = 20.0, -- Free-move speed.
climbSpeed = 10.0, -- Up/down speed.
rotateSpeed = 20.0, -- Rotation speed.
}
ActionControls = { -- [EDIT] Change labels/keys at your own risk.
leftClick = { label = 'Left Click', codes = { 24 } },
rightClick = { label = 'Right Click', codes = { 25 } },
forward = { label = 'Forward +/-', codes = { 33, 32 } },
right = { label = 'Right +/-', codes = { 35, 34 } },
up = { label = 'Up +/-', codes = { 52, 51 } },
add_point = { label = 'Add Point', codes = { 24 } },
undo_point = { label = 'Undo Last', codes = { 25 } },
rotate_z = { label = 'RotateZ +/-', codes = { 20, 73 } },
rotate_z_scroll = { label = 'RotateZ +/-', codes = { 17, 16 } },
offset_z = { label = 'Offset Z +/-', codes = { 44, 46 } },
boundary_height = { label = 'Z Boundary +/-', codes = { 20, 73 } },
done = { label = 'Done', codes = { 191 } },
cancel = { label = 'Cancel', codes = { 194 } },
arrow_left = { label = 'Previous', codes = { 174 } },
arrow_right = { label = 'Next', codes = { 175 } },
-- Decorate (Modern Mode)
place_object_on_ground = { label = 'Place Object on Ground', codes = { 47 } },
toggle_free_mode = { label = 'Toggle Free Mode', codes = { 167 } },
toggle_cursor = { label = 'Toggle Cursor', codes = { 166 } },
toggle_editor_mode = { label = 'Toggle Translate/Rotate', codes = { 311 } },
toggle_gizmo_mode = { label = 'Toggle Gizmo Mode', codes = { 244 } },
toggle_free_camera = { label = 'Toggle Free Camera', codes = { 170 } },
focus_free_camera = { label = 'Focus Object', codes = { 49 } },
zoom = { label = 'Zoom +/-', codes = { 17, 16 } },
increase_z = { label = 'Z Boundary +/-', codes = { 180, 181 } },
decrease_z = { label = 'Z Boundary +/-', codes = { 21, 180, 181 } },
change_shell = { label = 'Change Shell +/-', codes = { 189, 190 } },
}
--──────────────────────────────────────────────────────────────────────────────
-- Showcase Camera Sequencer [EDIT]
-- [INFO] Randomized cinematic camera passes around vehicles in the shell.
--──────────────────────────────────────────────────────────────────────────────
Config.RandomizedPositions = true -- [EDIT] Randomize camera sequence order.
Config.CameraDuration = 10000 -- [EDIT] ms shown per transition.
-- [INFO] Positions: 'front-left','front-middle','front-right','back-left','back-middle','back-right',
-- 'left','right','top-left','top-middle','top-right','center','front-left-diagonal','front-right-diagonal',
-- 'back-left-diagonal','back-right-diagonal'
Config.CameraAnimations = { -- [EDIT] Needs ≥ 2 entries to work.
{ distance = 4.0, fovFrom = 20.0, fovTo = 35.0, from = 'front-middle', to = 'front-left' },
{ distance = 5.0, fovFrom = 30.0, fovTo = 40.0, from = 'front-left', to = 'left' },
{ distance = 6.0, fovFrom = 40.0, fovTo = 35.0, from = 'back-middle', to = 'back-right' },
{ distance = 5.0, fovFrom = 30.0, fovTo = 30.0, from = 'back-right', to = 'right' },
{ distance = 5.0, fovFrom = 35.0, fovTo = 40.0, from = 'right', to = 'front-right' },
{ distance = 8.0, fovFrom = 50.0, fovTo = 50.0, from = 'top-middle', to = 'front-middle' },
{ distance = 7.0, fovFrom = 30.0, fovTo = 50.0, from = 'left', to = 'top-middle' },
{ distance = 4.5, fovFrom = 40.0, fovTo = 35.0, from = 'back-left', to = 'back-right' },
{ distance = 3.5, fovFrom = 25.0, fovTo = 30.0, from = 'right', to = 'back-right' },
{ distance = 6.5, fovFrom = 45.0, fovTo = 50.0, from = 'back-middle', to = 'top-middle' },
}
--──────────────────────────────────────────────────────────────────────────────
-- Debug [EDIT]
-- [INFO] Verbose logging for development. Keep disabled in production.
--──────────────────────────────────────────────────────────────────────────────
Config.Debug = false -- [EDIT]
Config.ZoneDebug = false -- [EDIT]