Files
red-valley/resources/[framework]/[addons]/qs-advancedgarages/config/config.lua

367 lines
26 KiB
Lua
Raw Normal View History

2026-03-29 21:41:17 +03:00
--──────────────────────────────────────────────────────────────────────────────
-- 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]