[PAID] Driving School version 2 | modern ui | av-dmv

logo_a_bb

DMV v2

Tebex Link (19,95 Euro)

Preview:



Features:

  • It is highly customizable via a configuration file.
  • You can switch between kilometers per hour (km/h) and miles per hour (mph).
  • Vehicles can spawn at individual points, and the system checks that the spawn position is not blocked.
  • The system includes four standard classes of licenses: motorcycle, car, truck, and bus/taxi.
  • The theory test can be adjusted with many questions for each of the licenses.
  • Both theory and practical tests can result in errors being marked.
  • Damage to the vehicle or exceeding the speed limit can lead to the end of the test.
  • You can set your own routes
  • Good looking UI

Configfile

configDrivingSchoolv2 = {}

-- * general settings
configDrivingSchoolv2.activateDebug = true
configDrivingSchoolv2.activateRegistration = true
configDrivingSchoolv2.UseKMH = true -- true = KMH, false = MPH
configDrivingSchoolv2.LegacyFuel = false -- true = LegacyFuel, false = standard fivem
configDrivingSchoolv2.OpenMenuKey = 38 -- default: E, https://docs.fivem.net/docs/game-references/controls/
configDrivingSchoolv2.MaxDrivingErrors = 3 -- maximum of error points in the driving practical test
configDrivingSchoolv2.BlockDetectionRadius = 3 -- the radius of checking the spawnpoint to detect blocking things
configDrivingSchoolv2.Cooldown = 60 -- time in seconds before starting the test again after failing it.
configDrivingSchoolv2.Currency = {
    symbol = '€', -- symbol of the currency, e.g. $, €, £, etc.
    beforeAmount = false -- true = $ 100 | false = 100 $
}

configDrivingSchoolv2.Locations = {
    ["Fahrschule"] = {
        name = "Fahrschule",
        coords = vector4(240.37, -1379.96, 33.74, 312.44),
        possibleLicenses = { 'bike_license', 'car_license', 'truck_license', 'bus_license' },

        BoxZone = {
            length = 3.0,
            width = 5.0,
            name = "normal_drivingschool_box", -- must be unique
            offset = { 0.0, 0.0, 0.0 },
            scale = { 1.0, 1.0, 1.0 },
            debugPoly = false,
        },

        blip = {
            name = "normal_drivingschool", -- must be unique
            coords = vector3(236.96, -1383.71, 32.91),
            sprite = 310,
            scale = 2.3,
            color = 0,
            text = "Fahrschule",
            shortRange = true,
        },

        vehicleSpawnPoints = {
            ['bike_license'] = {
                [1] = vector4(219.14, -1384.42, 30.57, 266.88),
                [2] = vector4(219.04, -1384.61, 30.57, 265.47),
                [3] = vector4(222.11, -1387.85, 30.55, 269.92),
                [4] = vector4(237.4, -1412.18, 30.58, 320.66),
                [5] = vector4(239.67, -1414.7, 30.58, 326.59),
                [6] = vector4(243.52, -1415.9, 30.59, 319.2),
            },
            ['driver_license'] = {
                [1] = vector4(219.14, -1384.42, 30.57, 266.88),
                [2] = vector4(219.04, -1384.61, 30.57, 265.47),
                [3] = vector4(222.11, -1387.85, 30.55, 269.92),
                [4] = vector4(237.4, -1412.18, 30.58, 320.66),
                [5] = vector4(239.67, -1414.7, 30.58, 326.59),
                [6] = vector4(243.52, -1415.9, 30.59, 319.2),
            },
            ['truck_license'] = {
                [1] = vector4(279.26, -1356.59, 31.94, 137.28),
                [2] = vector4(276.04, -1355.34, 31.94, 134.91),
            },
            ['bus_license'] = {
                [1] = vector4(279.26, -1356.59, 31.94, 137.28),
                [2] = vector4(276.04, -1355.34, 31.94, 134.91),
            }
        }
    },
    {
        name = "Fahrschule 2",
        coords = vector4(240.37, -1179.96, 33.74, 312.44),
        possibleLicenses = { 'bike_license', 'bus_license' },

        BoxZone = {
            length = 3.0,
            width = 5.0,
            name = "normal_drivingschool_box2", -- must be unique
            offset = { 0.0, 0.0, 0.0 },
            scale = { 1.0, 1.0, 1.0 },
            debugPoly = false,
        },

        blip = {
            name = "normal_drivingschool2", -- must be unique
            coords = vector3(236.96, -1183.71, 32.91),
            sprite = 310,
            scale = 2.3,
            color = 0,
            text = "Fahrschule 2 Test",
            shortRange = true,
        },

        vehicleSpawnPoints = {
            ['bike_license'] = {
                [1] = vector4(219.14, -1384.42, 30.57, 266.88),
                [2] = vector4(219.04, -1384.61, 30.57, 265.47),
                [3] = vector4(222.11, -1387.85, 30.55, 269.92),
                [4] = vector4(237.4, -1412.18, 30.58, 320.66),
                [5] = vector4(239.67, -1414.7, 30.58, 326.59),
                [6] = vector4(243.52, -1415.9, 30.59, 319.2),
            },
            ['driver_license'] = {
                [1] = vector4(219.14, -1384.42, 30.57, 266.88),
                [2] = vector4(219.04, -1384.61, 30.57, 265.47),
                [3] = vector4(222.11, -1387.85, 30.55, 269.92),
                [4] = vector4(237.4, -1412.18, 30.58, 320.66),
                [5] = vector4(239.67, -1414.7, 30.58, 326.59),
                [6] = vector4(243.52, -1415.9, 30.59, 319.2),
            },
            ['truck_license'] = {
                [1] = vector4(279.26, -1356.59, 31.94, 137.28),
                [2] = vector4(276.04, -1355.34, 31.94, 134.91),
            },
            ['bus_license'] = {
                [1] = vector4(279.26, -1356.59, 31.94, 137.28),
                [2] = vector4(276.04, -1355.34, 31.94, 134.91),
            }
        }
    }
}

configDrivingSchoolv2.Licenses = { -- Please add to Qbcore license an _theory and _practice for each license
    {
        class = "bike_license",
        name = "Führerschein Klasse A",
        theoryFee = 500,
        praticeFee = 500,
    },
    {
        class = "car_license",
        name = "Führerschein Klasse B",
        theoryFee = 500,
        praticeFee = 250,
    },
    {
        class = "truck_license",
        name = "Führerschein Klasse C",
        theoryFee = 2000,
        praticeFee = 500,
    },
    {
        class = "bus_license",
        name = "Führerschein Klasse D",
        theoryFee = 3000,
        praticeFee = 200,
    }
}

configDrivingSchoolv2.Vehicles = {
    bike_license = 'bati',
    driver_license = '206',
    truck_license = 'pounder',
    bus_license = 'bus',
}

configDrivingSchoolv2.SpeedLimits = {
    town = 70,
    freeway = 140
}

-- * practical test settings
configDrivingSchoolv2.LicensePlates = {
    {
        plate = "AC FS" .. math.random(001, 499),
        forLicenses = {
            'bike_license', 'driver_license',
        }
    },
    {
        plate = "AC FS" .. math.random(500, 999),
        forLicenses = {
            'truck_license', 'bus_license',
        }
    }
}

Tebex Link (~ 19,95 Euro)

Code is accessible No
Subscription-based No
Lines (approximately) 2400
Requirements PolyZone, oxmysql, QB-Core
Support Yes

No video preview? The provided image is in German language?
Same pricing as the previous version (still high).

I can provide asap a video preview. The provided image is in German yeah, but it’s available in english to, i’ll update it.

So the time you need to afford to script it in these way (with the ui and so on) is way more complicated and time intensive than just invest the 20 euro’s. It’s still the choice of everyone to decide by them selves.

overpriced