[PAID][QB][ESX] Cyber Garage Script

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:

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 Video
Buy it now

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
1 Like

by far one of my favorite scripts with tuning the wheels aspect is amazing any thoughts on changing tire sizes making them wider or bigger

1 Like

Thank you, be connected to the future script !