πŸ”₯All scripts on our website are 50% off!πŸ”₯
Logo

Configuration

[!CAUTION] Don't touch this line:

Config, Blips, Lang, Noti, Vehicles, TheoricalInstructor, PracticeInstructor, TheoricalUserPosition, Receptionist = {},
    {}, {}, {}, {}, {}, {}, {}, {}

Configuration File

Framework Settings

-- Use "esx" or "qb"
Config.Framework = "qb"
-- If you are using one of the most recent versions of ESX, set the script name. Default = "es_extended"
Config.ESXExport = ""
-- Default ESX: "esx:getSharedObject" | Default QB: "qb-core"
Config.Core = "qb-core"
-- oxmysql, mysql-async or ghmattisql
Config.Mysql = "oxmysql"

License Prices

-- Boat license price (OUPV)
Config.licenseBoatPrice = 2500
-- Yacht license price (YM)
Config.licenseYachtPrice = 5500

Test Configuration

-- Number of questions for the theoretical test
Config.theoricalTotalQuestions = 9
-- Answers needed to pass the theory test
Config.correctAnswersNeeded = 5
-- Maximum number of errors that can be made in the practical test
Config.MaxErrorsPractice = 5
-- Set to true if you want users to have to repeat the theory for each license
Config.repeatTheorical = true

License Names

-- Boat license name in the database
Config.licenseNameBoat = 'boat'
-- Yacht license name in the database
Config.licenseNameYach = 'yacht'

General Settings

-- Instructor audio language. Change it or replace the files in the audio folder
Config.TTSLanguage = 'EN'
-- Font used in alerts. Set to 0 if your language is Chinese
Config.alertTextFont = 4
-- Set to true if you want to use ESX.DeleteVehicle or QBCore.Functions.DeleteVehicle
Config.UseEsxQBDeleteVehicle = false
-- Check license in the database
Config.checkDBLicense = true
-- Teleport the user to the boat school if he fails the practical test
Config.teleportIfFails = true
-- Coordinates to teleport the user if fails the practical test
Config.teleportIfFailsCoord = vector3(-714.29, -1297.32, 5.1)
-- Check if there is a vehicle at spawn point
Config.checkspawnpoint = true
-- Account to which you want the money to be charged
Config.accountToRemoveMoney = "bank"

Vehicles

Vehicles.boat = 'dinghy'
Vehicles.yacht = 'marquis'
Vehicles.spawn = {
    x = -735.26,
    y = -1380.42,
    z = 0.44,
    heading = 139.91
}

Fuel Integration

-- set to true if you want to use a custom fuel script
Config.useCustomFuel = false

function setFuel(vehicle)
    -- Insert your fuel script trigger here
end

Keys Integration

Config.useKeys = true

function addKeys(vehicle)
    -- Insert here your trigger. EX:
    -- TriggerServerEvent("keyscar:server:addKey", GetVehicleNumberPlateText(vehicle), false)
end

function removeKeys(vehicle, plate)
    if vehicle ~= 0 and plate ~= nil then
        -- Insert here your trigger
    end
end

NPCs

Receptionist

Receptionist.npc = 's_f_y_airhostess_01'
Receptionist.x = -712.66
Receptionist.y = -1298.15
Receptionist.z = 5.1
Receptionist.heading = 34.38

Practice Instructor

PracticeInstructor.use = true
PracticeInstructor.npc = 's_m_m_pilot_01'
PracticeInstructor.x = -708.16
PracticeInstructor.y = -1356.4
PracticeInstructor.z = 1.6
PracticeInstructor.heading = 42.01
-- if you want the npc to spawn directly inside the vehicle
PracticeInstructor.useTeleport = true

Theoretical Instructor

TheoricalInstructor.npc = 'csb_reporter'
TheoricalInstructor.x = 0.0
TheoricalInstructor.y = 0.0
TheoricalInstructor.z = 0.0
TheoricalInstructor.heading = 0.0

User Position

TheoricalUserPosition.x = -715.01
TheoricalUserPosition.y = -1297.58
TheoricalUserPosition.z = 5.1
TheoricalUserPosition.heading = 46.49

Notifications

function notifications(notitype, message, time)
    -- Change this trigger for your notification system keeping the variables
    TriggerEvent('codem-notification', message, time, notitype)
end

-- Notifications types:
Noti.info = 'info'
Noti.check = 'check'
Noti.error = 'error'

-- Notification time:
Noti.time = 5000

Blips

Blips.active = true
Blips.coord = {
    x = -712.66,
    y = -1298.15,
    z = 5.1
}
Blips.blip = 410
Blips.blipColor = 2
Blips.blipScale = 0.9
Blips.blipText = "Boat School"

Markers

Marker = {
    x = -712.66,
    y = -1298.15,
    z = 5.1,
    mtype = 23,
    -- RGB COLOR:
    r = 39,
    g = 233,
    b = 140,
    -- DISTANCE AND SIZE:
    dis = 3,
    size = 2.0
}

Language

Lang.theoricalneeded = "You must take the theoretical test before taking the practical test"
Lang.returnvehicule = "Return to the vehicle. The test will be cancelled in 10 seconds"
Lang.testcanceled = "The test has been cancelled. Retest again"
Lang.approved = "Congratulations, you have passed!"
Lang.suspended = "You have failed, you can try again another time."
Lang.passed = "You have already passed this test, you cannot take it again"
Lang.enter = "Press ~g~E~w~ to access the ~g~boat school"
Lang.deletedLicense = "The license has been successfully removed"
Lang.noMoney = "You don't have enough money"
Lang.occupiedSpace = "The space to take the vehicle out of the boat school is occupied"

Custom Draw Text

Config.useCustomDrawTxt = true

function customDrawTxt()
    TriggerEvent("bit-interact:Start", "E", "Press to access the boat school")
end