This is a mechanical script in a cyber mapping with the most realistic features possible to enhance your role-playing experience for ESX / QB-CORE ( For other framework send me a dm ).
OPTIONAL:
- You can use this script with this mapping Cyber Garage MLO before
FEATURES:
- Paint car system with paint guns, paint smokes and sounds. (Primary, Secondary and Pearlescent in RGB)
- Car lift system with realistic remote controller.
- Ordering parts on a computer.
- Realistic storage of tires in shelves.
- Realistic system to put/ remove the rim in the tire with animation and sounds.
- Carjack system to change wheels on left or right side.
LINKS:
PREVIEW IMAGES:
CONFIG FILES:
Config = {}
-- GENERAL
Config.MappingResourceName = "CyberGarageMx"
Config.VersionCheck = true -- true or false ( If you want to be notified when a new update is available in server console )
Config.MySQL = "oxmysql" -- 'oxmysql', 'mysql-async', 'ghmattisql'
Config.HelpNotificationType = "BasicHelpNotification" -- 'BasicHelpNotification', 'DrawText3D' or 'Custom' ( work with 'CustomHelpNotification' in config.utils )
Config.NotificationType = "BasicNotification" -- 'BasicNotification' or 'Custom' ( work with 'CustomNotification' in config.utils )
-- IF YOU USE CUSTOM OR OTHER FRAMEWORK MAKE TICKET ON DISCORD TO ADD IT
Config.Framework = "QBCore" -- Choose the framework you use: 'ESX' or 'QBCore'
Config.UseQBTarget = true -- If you use the interaction menu 'QB-TARGET'
-- β
-- β If 'UseQBTarget' is on true only
-- β
-- βββββ
Config.QBTargetName = "qb-target" -- The name of the resource
--- ESX
-- β
-- β
-- β
-- βββββ
if Config.Framework == "ESX" then
Config.EventName = {
getSharedObject = "esx:getSharedObject",
playerLoaded = "esx:playerLoaded",
playerJobUpdate = "esx:setJob",
societyBalanceManagement = "esx_addonaccount:getSharedAccount",
societyBalanceUpdateManagement = "esx_addonaccount:setMoney"
}
end
--- QBCore
-- β
-- β
-- β
-- βββββ
if Config.Framework == "QBCore" then
Config.EventName = {
getSharedObject = "qb-core", -- The name of the resource
playerLoaded = "QBCore:Client:OnPlayerLoaded",
playerJobUpdate = "QBCore:Client:OnJobUpdate",
societyBalanceManagement = "qb-management", -- The name of the resource
societyBalanceUpdateManagement = "qb-management:updateMoney"
}
end
-- JOB
Config.Job = {
Activated = true, -- true or false, if you want active the job (wheels system)
Name = "mechanic", -- the name(s) of the jobs (you can add job name here even without activating job system depending on your config),
OrderParts = {
Coords = vector3(694.5, -759.1, 25.25),
-- Parts
Categories = {"TYRES", "TOOLS"},
Items = {
["TYRE_SPORT"] = { price = 1, category = "TYRES", img = "tyre_sport" },
["TYRE_MUSCLE"] = { price = 1, category = "TYRES", img = "tyre_muscle" },
["TYRE_LOWRIDER"] = { price = 1, category = "TYRES", img = "tyre_lowrider"},
["TYRE_SUV"] = { price = 1, category = "TYRES", img = "tyre_suv"},
["TYRE_OFFROAD"] = { price = 1, category = "TYRES", img = "tyre_offroad"},
["TYRE_TUNER"] = { price = 1, category = "TYRES", img = "tyre_tuner"},
["TYRE_MOTORCYCLE"] = { price = 1, category = "TYRES", img = "tyre_motorcycle"},
["TYRE_HIGHEND"] = { price = 1, category = "TYRES", img = "tyre_highend"},
["TYRE_BENNYS"] = { price = 1, category = "TYRES", img = "tyre_bennys"},
["TYRE_BESPOKE"] = { price = 1, category = "TYRES", img = "tyre_bespoke"},
["TYRE_F1"] = { price = 1, category = "TYRES", img = "tyre_f1"},
["TYRE_STREET"] = { price = 1, category = "TYRES", img = "tyre_street"},
["CARJACK"] = { price = 1, category = "TOOLS", img = "carjack"},
["RIM"] = { price = 1, category = "TOOLS", img = "rim"}
},
-- only for qb target user
Zone = {
coords = vector3(694.35, -759.1, 25.0),
size = {0.5, 0.5},
minZ = 25.0,
maxZ = 25.4,
distance = 2.5
}
}
}
-- LIFT SYSTEM
Config.Lift = {
Activated = true, -- true or false, if you want lift system or no
Speed = 0.0025, -- The speed of the lift
SpeedSlow = 0.002, -- The slow speed of the lift when is near the end
Types = {
['blue'] = {
Model = "nacelle", -- don't change this
MaxHeight = 26.0, -- The max height of the blue lift (max is 27.0)
MinHeight = 23.92, -- The min height of the blue lift (min is 23.92)
DefaultHeight = 23.92 -- The default height of the blue lift (max is MaxHeight and min is MinHeight)
},
['yellow'] = {
Model = "garmx_pince", -- don't change this
MaxHeight = 26.5, -- The max height of the yellow lift (max is 27.0)
MinHeight = 24.25, -- The min height of the byellowlue lift (min is 24.2)
DefaultHeight = 24.25 -- The default height of the yellow lift (max is MaxHeight and min is MinHeight)
},
},
DistanceToSlow = 0.2, -- The distance before the max or min height when the slow speed activate
OnlyForJob = true, -- true or false, if you want the lift is available only for job
-- β
-- β If 'OnlyForJob' is on true
-- β
-- βββββ
OnlyForJobGrade = false, -- false to turn off the grade restrictions or the min grade number
}
-- PAINT SYSTEM
Config.Paint = {
Activated = true, -- true or false, if you want paint system or no
Time = 30000, -- time to paint a vehicle
WashVehicle = true, -- true or false, if you want to wash the vehicle during painting
OnlyForJob = true, -- true or false, if you want the paint is available only for job
-- β
-- β If 'OnlyForJob' is on true
-- β
-- βββββ
OnlyForJobGrade = false, -- false to turn off the grade restrictions or the min grade number
SmokeAfter = true, -- true or false, if you want the smoke after painting to represent the fresh paint
-- β
-- β If 'SmokeAfter' is on true
-- β
-- βββββ
SmokeAfterOpacity = 0.75, -- The opacity of the smoke
SmokeAfterTime = 15000, -- The time of smoke in ms (1000 ms = 1 second)
-- only for qb target user
Zone = {
coords = vector3(699.05, -746.90, 25.0),
size = {0.15, 0.65},
minZ = 24.70,
maxZ = 25.85,
distance = 2.5
},
Types = {"PRIMARY", "SECONDARY", "PEARLESCENT"}, -- Paint types available in the menu
Matters = {"NORMAL", "METALLIC", "PEARL", "MATTE", "METALS", "CHROME"}, -- Paint materials available in the menu
}
Code is accessible | Yes (config files) |
Subscription-based | No |
Lines (approximately) | ~3500 |
Requirements | QB/ESX |
Support | Yes |