Summary
this script provides players to open up a menu from anywhere and order foods like shopping, at the end they pay the money via bank account and an AI driver will arrives to deliver the order
Video
Purpose
usually players in many servers go to shops and buy their foods and that’s kind of boring, also they need to always go to the shops, no matter the situation that they are in, maybe they don’t have vehicle, maybe they are far away from the shop or even worst when they are dying because of hunger
so we can make it easy for players that they order foods by a menu and let AI handle the delivery, so easy and satisfying
How it Works
-
player goes on street (somewhere that is accessible for AI)
-
opens up the menu by a command like “/uberfood”
-
can see the categories like burgers, sandwiches and drinks
-
selects the items
-
sets the count of each item at cart
-
pays the money by bank account
-
waits until AI driver arrives
AI Behaviour
AI cannot be killed, dragged out of car or any other stuffs, so players cannot troll the AI in order to sabotage. the AI vehicle will get repaired automatically every 5 seconds also vehicle is locked so players cannot get inside it
Possible Cases
1. player orders from inside a mlo or somewhere that is not accessible
since we set a maximum arrival time of AI (configurable at config.lua) if the AI does not reach the position that player ordered from it in that time then Ai will cancel the order with a percentage of penalty (for example 30% penalty) and returns the rest of money to player bank account, also player cannot order again for a certain (cooldown for noob players) also cooldown is configurable at config.lua
2. player does not take the order after AI arrives
at this case player has a timer (configurable at config.lua) after the AI arrives, it also shows that how much time player have to take order, if he doesn’t the AI will cancel the order with a percentage of penalty and not letting player to order again for a certain time
3. player gets dc
if player disconnect while he is waiting for the delivery, the delivery gets canceled and the AI ped will be deleted, also the whole money returns to player bank account
Config File
Config = {}
local second = 1000
local minute = 60 * second
-- ESX OPTIONS
Config.UseESX = true -- if you are using esx
Config.ESXTrigger = "esx:getSharedObject" -- Put your ESX Object Trigger Right Here
-- QB OPTIONS
Config.UseQB = false -- if you are using qb
Config.QBExport = "qb-core" -- Put your QB Object Export
Config.CallUberCommand = 'uberfood'
Config.CancelUberCommand = 'canceluber'
Config.MaxOrderForEachFood = 10 -- max order of each food while player is setting counts at cart
Config.Categories = {
[1] = { -- must be a unique index number
id = 'burger', -- must be unique and lower case
label = 'Burger', -- can be upper case
items = {
chickenburger = { -- must be the exact name that exist on database
label = 'Chicken Burger',
price = 200,
image = 'chickenburger.png', -- image name at img folder
info = 'In a medium bowl, add ground chicken, breadcrumbs, mayonnaise, onions, parsley, garlic, paprika, salt and pepper' -- some info about the food
-- when player move mouse over the item the info will show up
},
doubleburger = {
label = 'Double Burger',
price = 400,
image = 'doubleburger.png',
info = 'In a medium bowl, add ground chicken, breadcrumbs, mayonnaise, onions, parsley, garlic, paprika, salt and pepper'
},
stakeburger = {
label = 'Stake Burger',
price = 300,
image = 'stakeburger.png',
info = 'In a medium bowl, add ground chicken, breadcrumbs, mayonnaise, onions, parsley, garlic, paprika, salt and pepper'
},
hamburger = {
label = 'Simple Burger',
price = 100,
image = 'hamburger.png',
info = 'In a medium bowl, add ground chicken, breadcrumbs, mayonnaise, onions, parsley, garlic, paprika, salt and pepper'
},
}
},
[2] = {
id = 'sandwich',
label = 'Sandwich',
items = {
chickensandwich = {
label = 'Chicken Sandwich',
price = 200,
image = 'chickensandwich.png',
info = 'Some Info'
},
hotdogsandwich = {
label = 'Hotdog',
price = 150,
image = 'hotdogsandwich.png',
info = 'Some Info'
},
turkeysandwich = {
label = 'Turkey Sandwich',
price = 250,
image = 'turkeysandwich.png',
info = 'Some Info'
},
mixsandwich = {
label = 'Mix Sandwich',
price = 250,
image = 'mixsandwich.png',
info = 'Some Info'
},
chickenbucket = {
label = 'Chicken Bucket',
price = 100,
image = 'chickenbucket.png',
info = 'Some Info'
},
}
},
[3] = {
id = 'drinks',
label = 'Drinks',
items = {
fanta = {
label = 'Fanta',
price = 20,
image = 'fanta.png',
info = 'Some Info'
},
sprite = {
label = 'Sprite',
price = 20,
image = 'sprite.png',
info = 'Some Info'
},
}
}
}
-- AI And Delivery
Config.CompanyName = "Uber Eats"
Config.SpawnRadius = 200.0 -- the distance bewteen spawning the driver and player position (the position he ordered)
Config.Speed = 20.0
Config.DrivingStyle = 262463 -- https://vespura.com/fivem/drivingstyle/ you can also use 786603
-- if you order your foods while you are not on street then the AI gets confused, because ped can be inside somewhere that the AI cannot access
-- so we set a timer to teach players that if they do not order from the street then the driver will disappear after a while
Config.MaxTimerForArrvingOrder = second * 60 -- it means the moment player finishes his payment this timer will trigger and after the timer u set the driver will cancel the order
-- also remember the top amount depends on Config.SpawnRadius and Config.Speed too, for shorter range we set it low but when range increases we need to increase the time
Config.TimerAfterDeliveryArrived = 20 -- in seconds, after the driver arrives we can set a timer that if player does not take his order, the driver will cancel the order
-- canceling orders means penalty for players so we do not return all the money they spent for the order, we decrease a percent then we send back the money into player bank account
Config.PenaltyPercentageIfDriverGoesBack = 30 -- 30% of the total price will be decreased and the rest will add to player bank account
-- for example if the order cost was 400 dollar and the order gets canceled then we return 280 dollar to player bank account
-- if order gets canceled we also need to punish the player for preventing spamming and trolling the system
-- so we set a cooldown for the next time he wants to order again
Config.HowMuchTimePlayerMustWaitForOrderAgain = minute * 1 -- 1 min default
Config.UberPeds = {
-- * Find the icons here: https://wiki.■■■■■■■■■■■/index.php?title=Notification_Pictures
-- * Find the ped models here: https://wiki.■■■■■■■■■■■/index.php?title=Peds
-- * Find the vehicles here https://wiki.■■■■■■■■■■■/index.php?title=Vehicle_Models
-- * Find the colours here: https://wiki.■■■■■■■■■■■/index.php?title=Vehicle_Colors
[1] = {
name = "Driver Tom",
icon = "CHAR_JIMMY_BOSTON",
model = "a_m_m_mexlabor_01",
-- i recommend to not use high speed or sport cars because when AI arrives he might slide while breaking his vehicle
-- also its better to not use bikes, maybe some noob players will kick the AI, although the AI does not die or stuck and will disappear after a while
vehicle = 'kalahari',
colour = 111
},
[2] = {
name = "Driver John",
icon = "CHAR_JIMMY_BOSTON",
model = "a_m_y_beach_01",
vehicle = 'kalahari',
colour = 118
},
}
Features
- easy to configure everything
- fully open source
- you can add and define categories and foods
- you can do any changes to AI
- can be added to phone scripts too (there is guide file about it)
- works well in every situation and no bug at all
- considered any case of scenarios, so prevents any bug and interrupts
- you set your own commands for ordering and canceling the order
- easy to change translations
- very cool and realistic UI
- good performance 0.01 ms (passive) and 0.02 - 0.03 ms (while ordering)
- very unique and new idea (no one did this before)
Requirements
- ESX or QB
- even for those not using ESX or QB is usable with a little changes
Tebex Link
you can buy the script from HERE
Also Check my Newest Project
recently I have made one of my biggest project that is esx_society remastered version , in other words I made a huge revolution for esx servers
the link : ESX Society Remastered + More Options
my Other Scripts
ESX Society Remastered
Realistic Fast Food
Advanced Lock System
ESX Car Bomb
ESX Books + Reading
VIP List + Test Drive
ESX Craft System
ESX Jobs List
ESX Document Robbery
ESX Multiple Simcards
Realistic Coffee Job
Code is accessible | Yes |
Subscription-based | No |
Lines (approximately) | Near 1000 |
Requirements | ESX, QB |
Support | Yes |