[QBCore - ESX] Advanced Taxi Job

Create a taxi stand for as much as you want with configuration.


Players can get a taxi license and register for the stands and rent a taxi to work and start work.

They can do a lot of things quickly and easily with the taxi drivers specific menu.
Key adjustments “J” can be changed to keybind to access.

With this script, players can do taxi work on calls from other players as taxi drivers, payment in script, etc. the operations are carried out automatically.

Data is saved as json data.

More details
Preview : youtube

Customer taxi call panel (“G” key to access)






2


Config = {
    framework = "ESX", -- "OLDQBCore" or "QBCore" OR "ESX"
    language = "ENG", --"TR" OR "ENG"
    taxiVehicles = {"taxi","adder","drafter"},--Vehicle names
    licensePrice = 500, -- required fee to register for taxi stand.
    renPrice = 1000, -- The fee for renting a car
    openCost = 150, -- starting fee for taxi
    blips = false, --taxi blips
    ---Taxi Stands-----
    taxistand = {
        {
            name = "Akasya Duragi",-- Stand name
            keymsg = "[E] Taxi Stand 🚕",
            coord = vector3(895.54, -179.35, 74.7),
            distance = 2,
            spawns = {-- Car spawn points
                vector4(911.48, -163.69, 73.94, 17.33),
                vector4(913.67, -159.39, 74.4, 14.78),
                vector4(920.35, -163.75, 74.4, 276.18)
            },
            returnCarPoint = vector3(892.44, -185.19, 73.67)
        },
        {
            name = "Abuzer", -- Stand name
            keymsg = "[E] Taxi Stand 🚕",
            coord = vector3(228.78, -367.99, 44.14),
            distance = 2,
            spawns = {-- Car spawn points
                vector4(235.58, -369.5, 43.84, 246.25),
                vector4(243.89, -372.55, 43.93, 250.04)
            },
            returnCarPoint = vector3(253.8, -349.37, 44.11) -- vehicle delivery point
        }
    }
}
Language = {
    ["TR"] = {
        --Client bildirimleri
        already_answer = "Zaten bir taxi çağırdın.",
        call_made = "Bir çağrı yapıldı.",
        cancelled_Call = "Müşteri çağrıyı iptal etti.",
        couldnot_find = "Bu müşteri bulunamadı.",
        accept_yourself = "kendini çağrını kabul edemezsin.",
        markedon_gps = "Müşteri gps üzerinde işaretlendi.",
        driver_ended = "Sürücü eşleşmeyi sonlandırdı.",
        left_area = "Alandan ayrıldın. Çağrı iptal edildi.",
        out_field = "Alandan uzaklaştın bekleme alanına ger dön.",
        spawnpoints_full = "Tüm spawnpointler dolu.",
        wait_taxi = "Müşteri beklemenizi istiyor.",
        --Server bildirimleri
        received_license = "Lisans alındı.",
        registered_stand = "Kayıt yaptırıldı.",
        left_stand = "Taxi durağından ayrıldın.",
        enough_money = "Yeterli paran yok.",
        match_taxi = "Eşleşme sağlandı , Taxi yola çıktı Plaka: ",
        cab_license = "Taksi lisansına sahip değilsin.",
        received_payment = "$ Ödeme alındı.",
        missing_payment = " $ Eksik ödeme alındı.",
        already_spawn = " Zaten bir araç kiraladın.",
        returnRentCar = " Araç teslim edildi.",
        returnHelp = " Aracı teslim etmek için [E].",
        customerMoney = "Müşterinin yeterli parası yok",
        you_not_enoughy_money = "Daha fazlasını ödemek için yeterli paran yok",
        ------Kullanıcı Arayüzü------
        UI = {
            range = "Mesafe",
            fare = "Tarife",
            price = "Tutar",
            call = "Çağır",
            abort = "İptal",
            customer = "Müşteri",
            note = "Not",
            approval = "Onayla",
            license = "Lisans Al",
            registerstand = "Durağa kaydol",
            unregisterstand = "Duraktan Ayrıl",
            spawncar = "Araç kirala",
            jobinfo = "İşe başlamak için "..Config.licensePrice.." $ karşılığında bir taksi lisansı alın ve mevcut taksi duraklarından birisine ücretsiz bir şekilde kayıt olun. Kayıt olduğunuz taksi durağından ihtiyacınız olan taksi aracını kiralayabilirsiniz , daha sonra tek yapmanız gereken müşterilerin çağrısını beklemek. 'J' tuşu ile taksi içerisindeyken taksi menüsünü açabilir info kısmından menünün ne işe yaradığını anlayabilirsiniz.Bildirimleri almak için menü üzerinden aktid moda geçmeyi unutmayın.",
            pay = "Öde",
            hold = "Beklet",
            listinfo = "Çağrıda bulunan müşteri listesini görüntüleyebilir ve size uygun müşteriyi kabul ederek işe başlayabilirsiniz , unutmayın diğer sürücülere müşteriyi kaptırmamak için hızlı davanmalısın.",
            taximeterinfo = "Taksimetreyi yönetmen için ihtiyacın olan panel , buradan tarife ücretini ayarlayabilir taksimetreyi başlatıp durdurabilir ve sıfırlayabilirsin.",
            abortinfo = "Devam eden bir işi sonlandırabilir veye onayladığın müşteri çağrısını iptal edebilirsin.",
            notifyinfo = "Müşteri çağrılarından bildirim almak için açıp kapatabilirsin , açık yada kapalı durumda olduğunu taksimetre üzerindeki zil işaretinden anlayabilirsin.",
            reset = "Reset",
            resettaximeter = "Reset Taksimetre",
            kickCustomer = "Eşleşmeyi sonlandırmak istediğine emin misin ? (Araç içerisindeki müşteri araçtan atılacak)",
            kmPrice = "Ayarlanan tarife tutarı ",
            earning = "Kazanç ",
            faremoney = "Tarife ücreti :",
            openCost = "Açılış ücreti :",
            activeDriver = "Aktif taksi sayısı : ",
            payCost = " km yol için Ödemeniz gereken ücret : "
        }
    },
    ["ENG"] = {
        --Client notifys
        already_answer = "You already called a taxi.",
        call_made = "A call made.",
        cancelled_Call = "The customer canceled the call.",
        couldnot_find = "This customer was not found.",
        accept_yourself = "you can't accept your call.",
        markedon_gps = "Customer marked on gps.",
        driver_ended = "Driver ended pairing.",
        left_area = "You left the area. Call canceled.",
        out_field = "You're out of the field, back to the waiting area.",
        spawnpoints_full = "All the spawnpointes are full.",
        wait_taxi = "Customer wants you to wait.",
        --Server notifys
        received_license = "License received.",
        registered_stand = "Registered.",
        left_stand = "You left the taxi stop.",
        enough_money = "You don't have enough money.",
        match_taxi = "We got a match, Taxi's on his way, license plate: ",
        cab_license = "You don't have a cab license.",
        received_payment = " $ Payment received.",
        missing_payment = " $ Missing payment received.",
        already_spawn = " You already rented a car.",
        returnRentCar = " vehicles were handed over to.",
        returnHelp = " To deliver the vehicle [E].",
        customerMoney = "The customer doesn't have enough money",
        you_not_enoughy_money = "You don't have enough money to pay more",
        ------User Interface------
        UI = {
            range = "Range",
            fare = "Fare",
            price = "Cost",
            call = "Call",
            abort = "Cancel",
            customer = "Customer",
            note = "Note",
            approval = "Confirm",
            license = "Take License",
            registerstand = "Join Stand",
            unregisterstand = "Leave Stand",
            spawncar = "Rent a car",
            jobinfo = "To get started, get a taxi license for $ "..Config.licensePrice.." and register for one of the available taxi stops for free. You can rent the taxi car you need from the taxi stop you registered with, then all you have to do is wait for the customer's call. With the 'J' key, you can open the taxi menu while you are in a taxi and find out what the menu is for in the info section. Remember to switch to actid mode via the menu to receive notifications.",
            pay = "Pay",
            hold = "Hold",
            listinfo = "You can view the list of customers calling and start by accepting the appropriate customer, remember, you need to be quick-litigation to avoid losing the customer to other drivers.",
            taximeterinfo = "The panel you need to direct the meter, from here you can set the price for the tariff, start and stop the meter and reset it.",
            abortinfo = "You can end an ongoing job or cancel the customer call you have approved.",
            notifyinfo = "You can turn it on and off to receive notifications from customer calls, and you can tell whether it's on or off from the ring sign on the meter.",
            reset = "Reset",
            resettaximeter = "Reset Taksimeter",
            kickCustomer = "Are you sure you want to end the match? (Customer in vehicle will be discarded)",
            kmPrice = "Set rate amount ",
            earning = "Earns ",
            faremoney = "Price of tariff :",
            openCost = "Opening fee :",
            activeDriver = "Count of active cabs : ",
            payCost = " km - Cost " 
        }
    }
}

Upcoming updates include : ESX version, NPC customers, npc driver without active driver, purchasable and manageable taxi stands.

12.97$Tebex
Open Source - 23.60$Tebex

Other scripts

:video_camera: Bodycam

:diamonds: Status Hud

:red_car: Car Supermod

:oncoming_automobile: Rgb Headlight

:iphone: UI Object Spawner - LSPD phone design

:cut_of_meat: Barbecue Job - (Npc Customers & UI )

:atm: Atm Robbery

:video_camera: Video Call

MY TEBEX STORE→ :computer: NakreS

Code is accessible No (Except for Config, 300+ line code can be accessed and edited) / (Open source with extra payment)
Subscription-based No
Lines (approximately) 2500+
Requirements QBCore
Support Yes
3 Likes

huge script

1 Like

esx please kind sir! dope release!

1 Like

Upcoming updates include ESX version, NPC customers, npc driver without active driver, purchasable and manageable taxi stands.

1 Like

nice work man

1 Like

This must have been time consuming! Lots of work and it shows looks amazing

1 Like

ESX version added

2 Likes

nice work and thank you

1 Like

Thanks man

1 Like

Wondering if the updates were done?
Like NPC Customers.

Want to know how drivers and passengers can see the fare meter simultaneously?

Server and Client synchronization