Installation & Config
Install and configure Ottos
Installation
-
Unzip
bs_ottos.pack -
Place the
bs_ottosfolder into your[standalone]folder in your serverresourcesfolder. -
Inside the bs_ottos folder, open and run the sql file in the
sqlfolder. -
For Qbox, go to
qbx_core/shared/jobs.luaand add the below:['ottos'] = { label = 'Ottos Autos', defaultDuty = true, offDutyPay = false, grades = { [0] = { name = 'Salesperson', payment = 50 }, [1] = { name = 'Senior Salesperson', payment = 150 }, [2] = { name = 'Owner', isboss = true, bankAuth = true, payment = 300 }, }, },
For QBCore, go to qb-core/shared/jobs.lua and add the below:
ottos = {
label = 'Ottos Autos',
defaultDuty = true,
offDutyPay = false,
grades = {
['0'] = { name = 'Salesperson', payment = 50 },
['1'] = { name = 'Manager', payment = 75 },
['2'] = { name = 'Owner', isboss = true, payment = 150 },
},
},
- Go to
jg-advancedgarages/config.luaand add the below toConfig.GarageLocations:
["Ottos"] = {
coords = vec4(807.23, -828.33, 26.34, 271.81),
spawn = vector4(812.69, -828.73, 25.19, 3.32),
distance = 15,
type = "car",
hideBlip = true,
blip = {
id = 357,
color = 0,
scale = 0.5
},
hideMarkers = true,
markers = { id = 21, size = { x = 0.3, y = 0.3, z = 0.3 }, color = { r = 255, g = 255, b = 255, a = 120 }, bobUpAndDown = 0, faceCamera = 0, rotate = 1, drawOnEnts = 0 },
},
Configuration
Config = {}
-- Framework compatibility: 'qb' = qb-core, 'qbx' = qbx_core (Qbox)
Config.Framework = 'qbx'
-- Target system: 'ox' = ox_target, 'qb' = qb-target
Config.Target = 'ox'
-- Job account banking: 'renewed' = Renewed-Banking, 'qb' = qb-banking, 'okok' = okokBanking, 'fd' = fd_banking, 'tgiann' = tgiann-bank
Config.Banking = 'renewed'
-- Job Configuration (label is read from framework shared jobs by JobName)
Config.JobName = 'ottos'
-- Permissions (minimum job grade level; player grade must be >= this value)
-- Grade levels are defined in framework shared jobs (e.g. 0 = lowest, 1 = next, 2 = owner)
Config.Permissions = {
purchase = 1, -- Minimum grade to purchase vehicles from players
sell = 0, -- Minimum grade to sell vehicles to players
}
-- Dealership Location
Config.Location = {
coords = vec3(802.89, -823.05, 26.18), -- Adjust to your Otto's location
heading = 6.93,
ped = {
model = 's_m_y_shop_mask',
coords = vec3(802.89, -823.05, 26.18),
heading = 6.93
},
blip = {
sprite = 225,
color = 5,
scale = 0.8,
label = 'Otto\'s Cardealer'
}
}
-- Display Spots for vehicles (add or remove as you like)
Config.DisplaySpots = {
{
coords = vec4(808.18, -815.0, 25.55, 89.4),
label = 'Spot 1'
},
{
coords = vec4(807.93, -811.91, 24.55, 90.96),
label = 'Spot 2'
},
{
coords = vec4(807.91, -808.86, 24.58, 93.52),
label = 'Spot 3'
},
{
coords = vec4(808.03, -805.48, 24.59, 90.54),
label = 'Spot 4'
},
{
coords = vec4(797.87, -805.4, 24.63, 270.89),
label = 'Spot 5'
},
{
coords = vec4(797.78, -808.59, 24.61, 272.14),
label = 'Spot 6'
},
{
coords = vec4(797.81, -811.82, 24.55, 271.77),
label = 'Spot 7'
},
{
coords = vec4(797.97, -815.01, 24.54, 271.41),
label = 'Spot 8'
},
{
coords = vec4(797.77, -818.26, 24.54, 271.84),
label = 'Spot 9'
}
}
-- /ottos command and display vehicles only work inside this zone
Config.OttosZone = {
name = 'ottos',
coords = vec3(766, -775, 27.0),
size = vec3(215.0, 410.0, 115.0),
rotation = 0.0,
}
-- Lookup by plate: max distance (in meters) from employee to vehicle and to seller
Config.LookupDistance = 10.0
-- Garage ID where sold vehicles are stored (e.g. jg-advancedgarages). Vehicle will be inserted with garage_id = Ottos so buyer can retrieve it from that garage.
Config.OttosGarageId = 'Ottos'
-- Mod labels for purchase and inventory UI
Config.ModLabels = {
-- Engine: -1 Stock, 0-3 levels
Engine = {
[-1] = 'Stock',
[0] = 'Level 1',
[1] = 'Level 2',
[2] = 'Level 3',
[3] = 'Level 4',
},
-- Suspension: -1 Stock, 0-3 levels
Suspension = {
[-1] = 'Stock',
[0] = 'Level 1',
[1] = 'Level 2',
[2] = 'Level 3',
[3] = 'Level 4',
},
-- Brakes: -1 Stock, 0-2 levels (Level 1–3)
Brakes = {
[-1] = 'Stock',
[0] = 'Level 1',
[1] = 'Level 2',
[2] = 'Level 3',
},
-- Transmission: -1 Stock, 0-2 levels (Level 1–3)
Transmission = {
[-1] = 'Stock',
[0] = 'Level 1',
[1] = 'Level 2',
[2] = 'Level 3',
},
-- Turbo: Installed or not Installed
Turbo = {
['false'] = 'Stock',
['true'] = 'Installed',
},
}
-- Settings
Config.Settings = {
minPurchasePrice = 100, -- Minimum price when purchasing from players
maxPurchasePrice = 10000000, -- Maximum price when purchasing from players
minSalePrice = 100, -- Minimum price when selling to players
maxSalePrice = 10000000, -- Maximum price when selling to players
commissionPercent = 3, -- Percentage of sale price given to the worker who sells (0 = none; sale price minus commission goes to job account)
enableVehicleModifications = true, -- Show vehicle modifications in UI
refreshInterval = 5000 -- UI refresh interval in ms
}