Flight Restaurants | Business Script | QB - ESX - Custom

:spaghetti: Flight Restaurants | flightdev.co :green_salad:

Flight Restaurants offers an all-in-one restaurant solution for FiveM servers, featuring an immersive experience system, crafting stations, NPC delivery/call missions, registers, billing, stashes, a garage system, and much more.


Important Links

:movie_camera: Preview / Showcase: flightdev.co | FiveM | Flight Restaurants - YouTube
:credit_card: Buy Now: Flight Development | Flight Restaurants


Key Features

  • :up_arrow: Progression / XP System
    Delivery Vehicle Progression: The more successful deliveries, the more vehicles you can access.
    Cooking Progression: The more successful meals created, the more meals you can access and make.
  • :motor_scooter: Home Deliveries
    Receive phone calls at the business, save the order and deliver it. With immersive phone ringing sounds, detailed delivery information, and a time limit. Giving you a challenge to gain the money and XP.
  • :pancakes: Crafting
    Work on your cooking skills to become a master chef with our crafting menus. Start with a variety of recipes that require increasing levels of progression and skill, allowing chefs to advance from preparing a simple bowl of soup to creating an entire gourmet meal. Plus, with the added challenge of minigames, the journey can become more challenging.
  • :package: Storage System / Stashes
    Create as many stashes for your business as you want. Choosing between public (used for trays, garbage, etc. | things anyone can access), job (fridge, drawers, storage boxes, etc. | things all business employees can access / or a specific grade), personal (locker, wardrobe, etc. | give each employee a safe storage for his own items)
  • :credit_card: Billing & Registers
    Busy restaurant? No problem, work your way with multiple registers or even a portable pos, with a complete and efficient register system, add the amount requested and a label, and the bill will be stored on the register used, allowing you to prepare multiple bills at once. And when it gets cluttered you can go ahead and delete the old bills.
  • :delivery_truck: Shops & Wholesale
    Provide businesses with wholesale shops to buy the ingredients / snacks at cheaper prices. (Sodas, Vegetables, Chips, etc.). Providing limited / unlimited stock per store the choice is yours which you can reset on a time basis.
  • :money_mouth_face: Employee Rewards
    Delivery: Upon a successful delivery the player will receive a certain amount of money, and xp determined by you
    Cooking: Upon a successful recipe / meal completion, the player receives a certain amount of xp, which in time will unlock more recipes for him to create which give him even more xp.
    Billing: Upon bill payment you can split the rewards in endless ways, which include giving the creator of the bill a certain amount money and xp, all on duty employees some money and xp, and then a certain amount of money or all the remaining money goes to the business funds.

:smiling_face_with_three_hearts: Make sure to watch the youtube video to see all of the features of the script :smiling_face_with_three_hearts:
flightdev.co | FiveM | Flight Restaurants - YouTube


Compatibility:

Frameworks
Framework Compatibility Extra Things to know
QBCore :white_check_mark:
QBX :white_check_mark:
ESX :white_check_mark:
Custom Framework :white_check_mark: (Requires you to have development knowledge to integrate it)
Standalone :white_check_mark: (Requires you to have development knowledge to integrate it)
Other Scripts
Script Type Compatibility
Inventory ox_inventory, qb-inventory, ps-inventory, qs-inventory
Target / Interaction qb-target, ox_target, world interactions
Notifications ox_lib, qb-core

Open a ticket to if you have any questions about compatibility concerns.

Code is accessible Partial (Framework / Config)
Subscription-based No
Lines (approximately) 1500
Requirements ox_lib
Support Yes
3 Likes

core_inventory? can setup with different interactions with ease?

this is simply the best restaurant script ive ever used, and ive purchased so many. my players love it too!!

Hello, we can make it compatible with any inventory. If the inventory already has the features needed such as stash, personal stash, and job stash. (Even if not we can try and make some additional code for it to work). In regards to setting up things u need coords to setup the locations and then the crafting etc just names and amounts fairly simple.

1 Like

Thanks for your support! Glad you like it!

It looks fantastic, but can we set up restaurants directly in game or is it through a file?

I personally dont like adding in game setup as to me its just extra load and code for no reason. Ofc if its done right it wont impact performance, but i dont believe its worth the time to do. As to set it up through files is simple enough.

I see your point and its valid, I’m just thinking about people who aren’t necessarily good devs or don’t have the time nor the resources.

Can you show part of the config please?

i have sent a reply with the config but its pending approval. U can open a ticket and i can send u it until then

This is a config for one of the restaurants

Config.Restaurants["upnatom"] = {                 -- the name of the restaurant, must be unique
    job = "upnatom",                               -- job required
    label = "Up n Atom",                          -- this is the label that will be shown on the target/menu
    icon = "fas fa-hamburger",                    -- this is the icon that will be shown on the target
    rewards = {                                   -- rewards on successful bill payment.
        checkClosePlayers = false,                -- check if the players are close to the restaurant
        distance = 15,                            -- the distance to check
        billcreator = {                           -- the bill creator rewards (the player who created the bill) - nil to include billcreator in otheremployees
            percentage = 10,                      -- the percentage of the bill that the creator gets
            xp = 1,                               -- the xp the bill creator gets
        },
        otheremployees = {                        -- the other employees rewards for the sale (the players who are in the same job) - nil to not give them a reward on sale
            percentage = 90,                      -- the percentage of the bill that the other employees get (this will be split equally among the rest)
            xp = 0,                               -- the xp the other employees get
        },
        society = nil                             -- if nil the remaining % will go to the society funds. if not nil, the % set will go to the society funds.
    },
    blip = {                                      -- nil to disable
        coords = vec3(82.73, 283.70, 110.21),     -- the coords of the blip
        label = "Up n Atom",                      -- the label of the blip
        sprite = 94,                              -- the sprite of the blip
        color = 5,                                -- the color of the blip
        scale = 0.5,                              -- the scale of the blip
    },
    delivery = {                                  -- nil to disable
        phone = {
            coords = vec3(89.25, 288.81, 110.36), -- the coords of the phone zone
            radius = 0.4,                         -- the radius of the phone zone
            ring = 20,                            -- the duration of the phone ringing in seconds
            chance = 90,                          -- the chance of the phone ringing in percentage (per minute)
            sound = {
                url = "https://www.youtube.com/watch?v=kXYIut4TnhI",
                volume = 0.2, -- 0.0 to 1.0
                distance = 5,
            },
        },
        amount = { 3, 6 }, -- the amount of items to deliver
        items = {
            {
                item = "burger",       -- the item name
                price = { 10, 15 },    -- the price of the item
                xp = 1,                -- the xp you get from delivering the item
                animation = "deliver", -- the animation of the delivery
                duration = 5,          -- the duration of the delivery in seconds
            },
            {
                item = "water_bottle", -- the item name
                price = { 5, 10 },     -- the price of the item
                xp = 1,                -- the xp you get from delivering the item
                animation = "deliver", -- the animation of the delivery
                duration = 5,          -- the duration of the delivery in seconds
            },
            {
                item = "fries",        -- the item name
                price = { 5, 10 },     -- the price of the item
                xp = 1,                -- the xp you get from delivering the item
                animation = "deliver", -- the animation of the delivery
                duration = 5,          -- the duration of the delivery in seconds
            },
        }
    },
    storage = {                                   -- nil to disable
        {
            name = "mainfridge",                  -- the name of the storage
            coords = vec3(89.42, 293.67, 110.61), -- the coords of the storage
            radius = 1.5,                         -- the radius of the storage
            label = "Fridge",                     -- the label of the storage
            slots = 100,                          -- the slots of the storage
            weight = 100,                         -- the weight of the storage
            type = "job",                         -- public = everyone can access, job = only the job can access, personal = unique / employee
            grade = 0,                            -- the minimum grade of the job that can access - only works with job type
        },
        {
            name = "tray1",                       -- the name of the storage
            coords = vec3(90.24, 285.77, 110.11), -- the coords of the storage
            radius = 0.2,                         -- the radius of the storage
            label = "Tray",                       -- the label of the storage
            slots = 100,                          -- the slots of the storage
            weight = 100,                         -- the weight of the storage
            type = "public",                      -- public = everyone can access, job = only the job can access, personal = unique / employee
            grade = 0,                            -- the minimum grade of the job that can access - only works with job / personal type
        },
        {
            name = "tray1",                       -- the name of the storage
            coords = vec3(86.87, 292.89, 110.11), -- the coords of the storage
            radius = 0.4,                         -- the radius of the storage
            label = "Personal",                   -- the label of the storage
            slots = 100,                          -- the slots of the storage
            weight = 100,                         -- the weight of the storage
            type = "personal",                    -- public = everyone can access, job = only the job can access, personal = unique / employee
            grade = 0,                            -- the minimum grade of the job that can access - only works with job / personal type
        },

    },
    garage = {                                            -- nil to disable
        npc = {
            coords = vec4(92.35, 297.59, 110.21, 340.02), -- the coords of the npc
            label = "Valet",                              -- the label of the npc
            model = "s_m_m_gentransport",                 -- the model of the npc
        },
        spots = {                                         -- u can add more than one spot here (just copy the line and change the coords and add a comma between)
            vec4(92.48, 309.31, 110.02, 163.20),
            vec4(96.14, 308.22, 110.02, 157.30)
        },
        vehicles = {
            ["bmx"] = {                    -- the spawn name of the vehicle
                label = "bmx",             -- the label of the vehicle
                type = "bicycle",          -- the type of the vehicle bicycle / bike / quad / car / van / truck / bus / boat / helicopter / plane (icon)
                fuel = 100,                -- can be a table { min = 40, max = 100}
                deposit = 50,              -- the deposit price of the vehicle
                xp = 0,                    -- the xp you need to utilize this vehicle
            },
            ["faggio"] = {                 -- the spawn name of the vehicle
                label = "Faggio",          -- the label of the vehicle
                type = "bike",             -- the type of the vehicle bicycle / bike / quad / car / van / truck / bus / boat / helicopter / plane (icon)
                fuel = 100,                -- can be a table { min = 40, max = 100}
                deposit = 50,              -- the deposit price of the vehicle
                xp = 5,                    -- the xp you need to utilize this vehicle
            },
            ["foodcar6"] = {               -- the spawn name of the vehicle
                label = "Up n Atom Truck", -- the label of the vehicle
                type = "truck",            -- the type of the vehicle bicycle / bike / quad / car / van / truck / bus / boat / helicopter / plane (icon)
                fuel = 100,                -- can be a table { min = 40, max = 100}
                deposit = 150,             -- the deposit price of the vehicle
                xp = 0,                    -- the xp you need to utilize this vehicle
            },
            ["futo"] = {                   -- the spawn name of the vehicle
                label = "Futo",            -- the label of the vehicle
                type = "car",              -- the type of the vehicle bicycle / bike / quad / car / van / truck / bus / boat / helicopter / plane (icon)
                fuel = 100,                -- can be a table { min = 40, max = 100}
                deposit = 300,             -- the deposit price of the vehicle
                xp = 15,                   -- the xp you need to utilize this vehicle
            },
        },
    },
    shop = {                                                   -- nil to disable
        {
            label = "Shop",                                    -- the label of the shop
            grade = 0,                                         -- the minimum grade of the job that can access
            npc = {
                coords = vec4(114.65, 276.92, 109.97, 342.41), -- the coords of the npc
                label = "Seller",                              -- the label of the npc
                model = "s_m_m_gentransport",                  -- the model of the npc
            },
            items = {                                          -- the items that the shop will sell
                {
                    name = "mustard",                          -- the item name
                    price = 5,                                 -- the price of the item
                    count = 100,                               -- the amount of the item / restart
                },
                {
                    name = "bread", -- the item name
                    price = 10,     -- the price of the item
                    count = 10,     -- the amount of the item / restart
                },
            }
        },
    },
    crafting = {                                         -- nil to disable
        {
            coords = vec4(94.05, 291.85, 110.29, 69.82), -- the coords of the crafting
            radius = 0.5,                                -- the radius of the crafting
            label = "Cook",                              -- the label of the crafting
            icon = "fas fa-hamburger",                   -- the icon of the crafting
            sound = {
                url = "https://www.youtube.com/watch?v=nBVVRNFivnA",
                volume = 0.1,
                distance = 3,
            },
            items = {
                {
                    item = "burger",         -- the item name
                    amount = 2,              -- the amount of the item
                    xp = {
                        required = 0,        -- the required xp to craft the item
                        reward = { 0, 1 },   -- the reward xp to craft the item int / table {0, 1}
                        fail = 0,            -- the fail xp to craft the item int / table {0, 1}
                    },
                    duration = 5,            -- the duration of the crafting in seconds
                    minigame = {
                        enabled = true,      -- true to enable the minigame
                        difficulty = "easy", -- easy / medium / hard
                    },
                    animation = "cook",      -- the animation of the crafting
                    ingredients = {          -- the ingredients of the item or nil
                        ["ingredients_buns"] = 1,
                        ["groundbeef"] = 1,
                        ["ingredients_tomato"] = 1,
                        ["lettuce"] = 1,
                    },
                },
                {
                    item = "fancy_burger",   -- the item name
                    amount = 2,              -- the amount of the item
                    xp = {
                        required = 20,       -- the required xp to craft the item
                        reward = { 0, 1 },   -- the reward xp to craft the item int / table {0, 1}
                        fail = 0,            -- the fail xp to craft the item int / table {0, 1}
                    },
                    duration = 12,           -- the duration of the crafting in seconds
                    minigame = {
                        enabled = true,      -- true to enable the minigame
                        difficulty = "easy", -- easy / medium / hard
                    },
                    animation = "cook",      -- the animation of the crafting
                    ingredients = {          -- the ingredients of the item or nil
                        ["ingredients_buns"] = 1,
                        ["groundbeef"] = 1,
                        ["ingredients_tomato"] = 1,
                        ["lettuce"] = 1,
                    },
                },
            }
        },
        {
            coords = vec4(92.95, 292.22, 110.22, 249.97), -- the coords of the crafting
            radius = 0.5,                                 -- the radius of the crafting
            label = "Make Fries",                         -- the label of the crafting
            icon = "fas fa-temperature-high",             -- the icon of the crafting
            sound = {
                url = "https://www.youtube.com/watch?v=nBVVRNFivnA",
                volume = 0.1,
                distance = 3,
            },
            items = {
                {
                    item = "fries",          -- the item name
                    amount = 2,              -- the amount of the item
                    xp = {
                        required = 0,        -- the required xp to craft the item
                        reward = { 0, 1 },   -- the reward xp to craft the item int / table {0, 1}
                        fail = 0,            -- the fail xp to craft the item int / table {0, 1}
                    },
                    duration = 5,            -- the duration of the crafting in seconds
                    minigame = {
                        enabled = true,      -- true to enable the minigame
                        difficulty = "easy", -- easy / medium / hard
                    },
                    animation = "cook",      -- the animation of the crafting
                    ingredients = {          -- the ingredients of the item or nil
                        ["potato"] = 1,
                    },
                },
            }
        },
        {
            coords = vec4(96.67, 292.94, 110.15, 249.97), -- the coords of the crafting
            radius = 0.5,                                 -- the radius of the crafting
            label = "Chop Ingredients",                   -- the label of the crafting
            icon = "fas fa-hand-scissors",
            sound = {
                url = "https://www.youtube.com/watch?v=nBVVRNFivnA",
                volume = 0.1,
                distance = 3,
            },
            items = {
                {
                    item = "fries",          -- the item name
                    amount = 2,              -- the amount of the item
                    xp = {
                        required = 0,        -- the required xp to craft the item
                        reward = { 0, 1 },   -- the reward xp to craft the item int / table {0, 1}
                        fail = 0,            -- the fail xp to craft the item int / table {0, 1}
                    },
                    duration = 5,            -- the duration of the crafting in seconds
                    minigame = {
                        enabled = true,      -- true to enable the minigame
                        difficulty = "easy", -- easy / medium / hard
                    },
                    animation = "cook",      -- the animation of the crafting
                    ingredients = {          -- the ingredients of the item or nil
                        ["potato"] = 1,
                    },
                },
            }
        },
    },
    counter = {                                   -- place to pay / request money
        {
            coords = vec3(89.75, 287.75, 110.29), -- the coords of the counter
            radius = 0.4,                         -- the radius of the counter
            amount = { 1, 10000 }                 -- the amount of the money allowed to request
        },
    }
}

1 Like

Thank you for your help! I’ll look to get your script in the future :slight_smile:

added integration for darktrovx/interact (github.com)

good work!

1 Like

thanks <3

hey i was wondering where can i buy your script