367 lines
26 KiB
Lua
367 lines
26 KiB
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.
|
||
--──────────────────────────────────────────────────────────────────────────────
|
||
|
||
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.01–0.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]
|