Configuration

Main

This is the main config of the script where you can configure the scripts you're using, framework, etc...

mt_restaurants/config/config.lua
Config = Config or {}
 
-- For more info check: https://mt-scripts-documentations.gitbook.io/mt-script-documentation/
 
Config.debug = false -- if true it'll print some debug on F8/console and active all zones debug
Config.framework = 'qbx' -- qb, qbx, esx (need to change the export on the Config.core)
Config.core = exports['qb-core']:GetCoreObject() -- Your core export (for qb is exports['qb-core']:GetCoreObject()) (for esx is exports.es_extended:getSharedObject()) (for qbx you can just delete this line and add '@qbx_core/modules/playerdata.lua', to the fxmanifest.lua client_scripts)
Config.target = 'ox_target' -- qb-target, qb-target, ...
Config.inventory = 'ox_inventory' -- ox_inventory, qb-inventory, codem-inventory, qs-inventory, ... (Remember that only with ox_inventory you'll have the best usage of all script features!!) (With codem-inventory or qs-inventory you'll not have the images or label changed on items!!)
Config.banking = 'Renewed-Banking' -- qb-banking, Renewed-Banking, (can change at server/functions.lua) ...
 
Config.imagesDirectory = 'nui://ox_inventory/web/images/%s.png'
 
Config.progressbarPos = 'middle' -- ox_lib progress bar position
Config.textuiPos = 'right-center' -- ox_lib textui position
 
Config.maxPreparesPerTime = 100 -- The max prepares players can do at a time
 
Config.useOxInventoryCraft = true -- If true it'll use the ox_inventory crafting system if false will use ox_lib context (only for ox_inventory otherwise will always use the context)
 
Config.toggleDutyZones = true -- If true the players duty will change on entering the restaurant zone
 
Config.offlineShopsUpdate = 5000 -- The interval beteween each update of the offline shops
Config.offlineShopsDistance = 50 -- The distance for the offlineshop ped spawn
 
Config.sitsGetUpKey = 38
 
Config.times = { -- The progress times for each action
    preparing = 2000,
    makeFood = 2000,
    eatFood = 4000,
    takeOrder = 5000,
    delivery = 5000,
}
 
Config.boxes = { -- Food boxes slots and weigth
    slots = 5,
    weigth = 50
}
 
Config.logs = {
    createRecipe = '',
    editRecipe = '',
    deleteRecipe = '',
    menuImageEdited = '',
    registers = '',
    offlineShopItemBuy = '', -- With ox_inventory this will use the default inv logs
    craftItem = '', -- With ox_inventory this will use the default inv logs
}

Animations

This is where you can add, remove or edit the food animations and props

If you don't have the props for some of the default animations please remove it from this file!!

mt_restaurants/config/animations.lua
Config = Config or {}
 
Config.foodAnimations = { -- Available animations on recipe creation menu
    -- Basic animations (Credits to rpemotes)
    cup = { label = 'Cup', anim = { dict = 'amb@world_human_drinking@coffee@male@idle_a', clip = 'idle_c' }, prop = { model = 'prop_plastic_cup_02', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 28422 } },
    burger = { label = 'Burger', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'prop_cs_burger_01', pos = vec3(0.0, 0.0, -0.02), rot = vec3(0.0, 0.0, 30.00), bone = 60309 } },
    taco = { label = 'Taco', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'prop_taco_01', pos = vec3(-0.0170, 0.0070, -0.0210), rot = vec3(107.9846, -105.0251, 55.7779), bone = 60309 } },
    hotdog = { label = 'Hotdog', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'prop_cs_hotdog_02', pos = vec3(-0.030, 0.010, -0.010), rot = vec3(95.1071, 94.7001, -66.9179), bone = 60309 } },
    bagel = { label = 'Bagel', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'p_ing_bagel_01', pos = vec3(0.14, 0.05, 0.03), rot = vec3(145.3975, -53.8984, 4.8412), bone = 18905 } },
    donut = { label = 'Donut', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'prop_amb_donut', pos = vec3(0.13, 0.05, 0.02), rot = vec3(-50.0, 16.0, 60.0), bone = 18905 } },
    apple = { label = 'Apple', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'sf_prop_sf_apple_01b', pos = vec3(0.0, 0.0150, -0.0200), rot = vec3(-124.6964, -166.5760, 8.4572), bone = 60309 } },
    winebottle = { label = 'Wine Bottle', anim = { dict = 'amb@world_human_drinking@beer@female@idle_a', clip = 'idle_e' }, prop = { model = 'prop_wine_rose', pos = vec3(-0.0, 0.04, -0.19), rot = vec3(10.0, 0.0, 0.0), bone = 28422 } },
    coffee = { label = 'Coffee', anim = { dict = 'amb@world_human_drinking@coffee@male@idle_a', clip = 'idle_c' }, prop = { model = 'p_amb_coffeecup_01', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 28422 } },
    whiskey = { label = 'Whiskey', anim = { dict = 'amb@world_human_drinking@coffee@male@idle_a', clip = 'idle_c' }, prop = { model = 'prop_drink_whisky', pos = vec3(0.01, -0.01, -0.06), rot = vec3(0.0, 0.0, 0.0), bone = 28422 } },
    whiskeybottle = { label = 'Whiskey Bottle', anim = { dict = 'amb@world_human_drinking@coffee@male@idle_a', clip = 'idle_c' }, prop = { model = 'ba_prop_battle_whiskey_bottle_2_s', pos = vec3(0.0, 0.0, 0.5), rot = vec3(0.0, 0.0, 0.0), bone = 28422 } },
    beer = { label = 'Beer', anim = { dict = 'amb@world_human_drinking@coffee@male@idle_a', clip = 'idle_c' }, prop = { model = 'prop_amb_beer_bottle', pos = vec3(0.0, 0.0, 0.06), rot = vec3(0.0, 15.0, 0.0), bone = 28422 } },
    wine = { label = 'Wine', anim = { dict = 'anim@heists@humane_labs@finale@keycards', clip = 'ped_a_enter_loop' }, prop = { model = 'prop_drink_redwine', pos = vec3(0.10, -0.03, 0.03), rot = vec3(-100.0, 0.0, -10.0), bone = 18905 } },
    flute = { label = 'Flute', anim = { dict = 'anim@heists@humane_labs@finale@keycards', clip = 'ped_a_enter_loop' }, prop = { model = 'prop_champ_flute', pos = vec3(0.10, -0.03, 0.03), rot = vec3(-100.0, 0.0, -10.0), bone = 18905 } },
    champagne = { label = 'Champagne', anim = { dict = 'anim@heists@humane_labs@finale@keycards', clip = 'ped_a_enter_loop' }, prop = { model = 'prop_drink_champ', pos = vec3(0.10, -0.03, 0.03), rot = vec3(-100.0, 0.0, -10.0), bone = 18905 } },
    beans = { label = 'Beans Bowl', anim = { dict = 'anim@scripted@island@special_peds@pavel@hs4_pavel_ig5_caviar_p1', clip = 'base_idle' }, prop = { model = 'h4_prop_h4_caviar_tin_01a', pos = vec3(0.0, 0.0300, 0.0100), rot = vec3(0.0, 0.0, 0.0), bone = 60309 } },
    dinner = { label = 'Dinner Dish', anim = { dict = 'anim@scripted@island@special_peds@pavel@hs4_pavel_ig5_caviar_p1', clip = 'base_idle' }, prop = { model = 'prop_cs_plate_01', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 60309 } },
    sandwich = { label = 'Sandwich', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'prop_sandwich_01', pos = vec3(0.13, 0.05, 0.02), rot = vec3(-50.0, 16.0, 60.0), bone = 18905 } },
 
    -- G&N's Studios Burgershot food props - https://fivem.gnstud.io/package/5029847 (PAID! Delete if you don't have this pack!!)
    bleeder = { label = 'Bleeder Burger', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'nels_burger_bleeder_prop', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 60309 } },
    doubleshot = { label = 'Double Shot Burger', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'nels_burger_double_shot_prop', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 60309 } },
    fabulous = { label = 'Fabulous Burger', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'nels_burger_fabulous_6lb_prop', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 60309 } },
    glourious = { label = 'Glourious Burger', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'nels_burger_glorious_prop', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 60309 } },
    prickly = { label = 'Prickly Burger', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'nels_burger_prickly_prop', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 60309 } },
    simply = { label = 'Simply Burger', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'nels_burger_simply_prop', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 60309 } },
    bschickenwrap = { label = 'Burgershot Chicken Wrap', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'nels_chicken_wrap_prop', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 89.79), bone = 60309 } },
    bsfriesbox = { label = 'Burgershot Fries Box', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'nels_fries_box_prop', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 79.11), bone = 60309 } },
    bsgoatwrap = { label = 'Burgershot Goat Wrap', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'nels_goat_wrap_prop', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 89.79), bone = 60309 } },
    meteoriteic = { label = 'Meteorite Ice Cream', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'nels_ice_cream_meteorite_prop', pos = vec3(0.0, 0.0, 0.0), rot = vec3(179.48, 79.57, -131.28), bone = 60309 } },
    orangotanic = { label = 'Orang Otan Ice Cream', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'nels_ice_cream_orang_otan_prop', pos = vec3(0.0, 0.0, 0.0), rot = vec3(179.48, 79.57, -131.28), bone = 60309 } },
    bssoda = { label = 'Burgershot Soda', anim = { dict = 'amb@world_human_drinking@coffee@male@idle_a', clip = 'idle_c' }, prop = { model = 'nels_soda_prop', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 28422 } },
    tacos = { label = 'Tacos', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'nels_tacos_prop', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 85.44), bone = 60309 } },
 
    -- G&N's Studios Up-N-Atom food prop - https://fivem.gnstud.io/package/5140403 (PAID! Delete if you don't have this pack!!)
    tcbburger = { label = 'The Triple Cheesy Bacon Burger', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'gn_upnatom_vw_the_triple_cheesy_bacon_burger', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 60309 } },
    tripleburger = { label = 'The Triple Burger', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'gn_upnatom_vw_the_triple_burger', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 60309 } },
    t10sbtcmvburger = { label = 'The 10 Slice of Bacon Triple Cheese Melt Version Burger', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'gn_upnatom_vw_the_10_slice_of_bacon_triple_cheese_melt_version', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 60309 } },
    t10sbtcmburger = { label = 'The 10 Slice of Bacon Triple Cheese Melt Burger', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'gn_upnatom_vw_the_10_slice_of_bacon_triple_cheese_melt', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 60309 } },
    unasoda2 = { label = 'Up-N-Atom Soda 2', anim = { dict = 'amb@world_human_drinking@coffee@male@idle_a', clip = 'idle_c' }, prop = { model = 'gn_upnatom_vw_soda_cup_1', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 28422 } },
    unasoda = { label = 'Up-N-Atom Soda', anim = { dict = 'amb@world_human_drinking@coffee@male@idle_a', clip = 'idle_c' }, prop = { model = 'gn_upnatom_vw_soda_cup', pos = vec3(0.0, 0.0, 0.05), rot = vec3(0.0, 0.0, 0.0), bone = 28422 } },
    unamilk = { label = 'Up-N-Atom Milk', anim = { dict = 'amb@world_human_drinking@coffee@male@idle_a', clip = 'idle_c' }, prop = { model = 'gn_upnatom_vw_milk', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 28422 } },
    unajumbos = { label = 'Up-N-Atom Jumbo Shake', anim = { dict = 'amb@world_human_drinking@coffee@male@idle_a', clip = 'idle_c' }, prop = { model = 'gn_upnatom_vw_jumbo_shake', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 28422 } },
    unafriesbox = { label = 'Up-N-Atom Fries Box', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'gn_upnatom_vw_fries', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 60309 } },
    footlogcdog = { label = 'Footlong Chili Dog', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'gn_upnatom_vw_footlong_chili_dog', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 89.55), bone = 60309 } },
    unacoffee = { label = 'Up-N-Atom Coffee', anim = { dict = 'amb@world_human_drinking@coffee@male@idle_a', clip = 'idle_c' }, prop = { model = 'gn_upnatom_vw_coffee', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 28422 } },
    
    -- G&N's Studios Clucking bell MLO food props - https://fivem.gnstud.io/package/5354683 (PAID! Delete if you don't have this pack!!)
    cbcup = { label = 'Clucking Bell Cup', anim = { dict = 'amb@world_human_drinking@coffee@male@idle_a', clip = 'idle_c' }, prop = { model = 'gn_cluckin_cup', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 28422 } },
    cbsoup = { label = 'Clucking Bell Soup', anim = { dict = 'amb@world_human_drinking@coffee@male@idle_a', clip = 'idle_c' }, prop = { model = 'gn_cluckin_soup', pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0), bone = 28422 } },
    cbfowl = { label = 'Clucking Bell Fowl', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'gn_cluckin_fowl', pos = vec3(0.0, 0.0, 0.0), rot = vec3(-4.21, -48.68, -109.83), bone = 60309 } },
    cbfries = { label = 'Clucking Bell Fries', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'gn_cluckin_fries', pos = vec3(0.0, 0.0, 0.0), rot = vec3(-9.29, -54.43, -103.59), bone = 60309 } },
    cbrings = { label = 'Clucking Bell Rings', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'gn_cluckin_rings', pos = vec3(0.0, 0.0, 0.0), rot = vec3(5.86, -50.96, -113.70), bone = 60309 } },
 
    -- BzZz Snack props - Download at https://discord.gg/hXtZMfy5k3
    bzzz_croissant = { label = 'Croissant', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'bzzz_new_snacks_croissant_a', pos = vec3(0.14, 0.04, 0.03), rot = vec3(-20.0, -30.0, 10.0), bone = 18905 } },
    bzzz_donut_a = { label = 'Donut A', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'bzzz_new_snacks_donut_a', pos = vec3(0.15, 0.06, 0.03), rot = vec3(30.0, 150.0, 10.0), bone = 18905 } },
    bzzz_donut_b = { label = 'Donut B', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'bzzz_new_snacks_donut_b', pos = vec3(0.15, 0.06, 0.03), rot = vec3(30.0, 150.0, 10.0), bone = 18905 } },
    bzzz_peanuts = { label = 'Peanuts', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'bzzz_new_snacks_peanuts_a', pos = vec3(0.15, 0.07, 0.0), rot = vec3(30.0, 150.0, 10.0), bone = 18905 } },
    bzzz_pretzels = { label = 'Pretzels', anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' }, prop = { model = 'bzzz_new_snacks_pretzels_a', pos = vec3(0.16, 0.04, 0.03), rot = vec3(-70.0, 140.0, 10.0), bone = 18905 } },
    bzzz_pepsiloca_a = { label = 'Pepsiloca A', anim = { dict = 'mp_player_intdrink', clip = 'loop_bottle' }, prop = { model = 'bzzz_new_snacks_pepsiloca_a', pos = vec3(0.12, 0.03, 0.03), rot = vec3(-60.0, 100.0, -20.0), bone = 18905 } },
    bzzz_pepsiloca_b = { label = 'Pepsiloca B', anim = { dict = 'mp_player_intdrink', clip = 'loop_bottle' }, prop = { model = 'bzzz_new_snacks_pepsiloca_b', pos = vec3(0.12, 0.03, 0.03), rot = vec3(-60.0, 100.0, -20.0), bone = 18905 } },
    bzzz_energy = { label = 'Energy', anim = { dict = 'mp_player_intdrink', clip = 'loop_bottle' }, prop = { model = 'bzzz_new_snacks_energy_a', pos = vec3(0.12, 0.0, 0.05), rot = vec3(-60.0, 100.0, -20.0), bone = 18905 } },
}

Delivery

This is where you can configure everything related to the delivery side missions

mt_restaurants/config/dealivery.lua
Config = Config or {}
 
Config.deliveryLocations = { -- Locations to the delivery peds
    -- PinkCage
    vec4(309.5, -208.06, 53.22, 251.41),
    vec4(319.29, -196.16, 53.23, 154.93),
    vec4(341.05, -214.76, 53.22, 67.86),
    -- Mirror Park
    vec4(1010.39, -423.41, 64.35, 306.75),
    vec4(1014.68, -469.29, 63.5, 35.45),
    vec4(945.74, -519.02, 59.82, 299.21),
    vec4(861.46, -508.95, 56.72, 225.58),
    vec4(964.32, -596.21, 55.9, 71.99),
    vec4(959.87, -669.9, 57.45, 298.56),
    -- Rich Zone
    vec4(-305.24, 430.99, 109.48, 10.32),
    vec4(-580.41, 491.57, 107.9, 9.17),
    vec4(-762.09, 430.83, 99.2, 19.55),
    vec4(-765.8, 650.54, 144.7, 293.03),
    vec4(-1056.4, 761.57, 166.32, 274.3),
    -- North Rockford Drive
    vec4(-1940.56, 387.63, 95.69, 190.19),
    vec4(-2009.25, 367.44, 93.82, 267.99),
    vec4(-2011.24, 445.02, 102.02, 290.37),
    vec4(-1942.66, 449.63, 101.93, 103.03)
}
 
Config.peds = {
    'ig_djblamryans',
    'ig_djblamrupert',
    'ig_cletus',
    'ig_devin',
    'ig_floyd',
    'ig_jewelass',
    'ig_lacey_jones_02',
    'ig_lazlow_2',
    'ig_brad',
    'hc_hacker',
    'u_m_y_caleb',
    'u_m_m_curtis',
    'u_m_y_staggrm_01',
    'u_m_y_babyd',
    'a_f_m_skidrow_01',
    'a_f_m_soucentmc_01',
    'a_f_m_soucent_01',
    'a_f_m_soucent_02',
    'a_f_m_tourist_01',
    'a_f_m_trampbeac_01',
    'a_f_m_tramp_01',
    'a_f_o_genstreet_01',
    'a_f_o_indian_01',
    'a_f_o_ktown_01',
    'a_f_o_salton_01',
    'a_f_o_soucent_01',
    'a_f_o_soucent_02',
    'a_f_y_beach_01',
    'a_f_y_bevhills_01',
    'a_f_y_bevhills_02',
    'a_f_y_bevhills_03',
    'a_f_y_bevhills_04',
    'a_f_y_business_01',
    'a_f_y_business_02',
    'a_f_y_business_03',
    'a_f_y_business_04',
    'a_f_y_eastsa_01',
    'a_f_y_eastsa_02',
    'a_f_y_eastsa_03',
    'a_f_y_epsilon_01',
    'a_f_y_fitness_01',
    'a_f_y_fitness_02',
    'a_f_y_genhot_01',
    'a_f_y_golfer_01',
    'a_f_y_hiker_01',
    'a_f_y_hipster_01',
    'a_f_y_hipster_02',
    'a_f_y_hipster_03',
    'a_f_y_hipster_04',
    'a_f_y_indian_01',
    'a_f_y_juggalo_01',
    'a_f_y_runner_01',
    'a_f_y_rurmeth_01',
    'a_f_y_scdressy_01',
    'a_f_y_skater_01',
    'a_f_y_soucent_01',
    'a_f_y_soucent_02',
    'a_f_y_soucent_03',
    'a_f_y_tennis_01',
    'a_f_y_tourist_01',
    'a_f_y_tourist_02',
    'a_f_y_vinewood_01',
    'a_f_y_vinewood_02',
    'a_f_y_vinewood_03',
    'a_f_y_vinewood_04',
    'a_f_y_yoga_01',
    'g_f_y_ballas_01',
    'ig_barry',
    'ig_bestmen',
    'ig_beverly',
    'ig_car3guy1',
    'ig_car3guy2',
    'ig_casey',
    'ig_chef',
    'ig_chengsr',
    'ig_chrisformage',
    'ig_clay',
    'ig_claypain',
    'ig_cletus',
    'ig_dale',
    'ig_dreyfuss',
    'ig_fbisuit_01',
    'ig_floyd',
    'ig_groom',
    'ig_hao',
    'ig_hunter',
    'csb_prolsec',
    'ig_joeminuteman',
    'ig_josef',
    'ig_josh',
    'ig_lamardavis',
    'ig_lazlow',
    'ig_lestercrest',
    'ig_lifeinvad_01',
    'ig_lifeinvad_02',
    'ig_manuel',
    'ig_milton',
    'ig_mrk',
    'ig_nervousron',
    'ig_nigel',
    'ig_old_man1a',
    'ig_old_man2',
    'ig_oneil',
    'ig_orleans',
    'ig_ortega',
    'ig_paper',
    'ig_priest',
    'ig_prolsec_02',
    'ig_ramp_gang',
    'ig_ramp_hic',
    'ig_ramp_hipster',
    'ig_ramp_mex',
    'ig_roccopelosi',
    'ig_russiandrunk',
    'ig_siemonyetarian',
    'ig_solomon',
    'ig_stevehains',
    'ig_stretch',
    'ig_talina',
    'ig_taocheng',
    'ig_taostranslator',
    'ig_tenniscoach',
    'ig_terry',
    'ig_tomepsilon',
    'ig_tylerdix',
    'ig_wade',
    'ig_zimbor',
    's_m_m_paramedic_01',
    'a_m_m_afriamer_01',
    'a_m_m_beach_01',
    'a_m_m_beach_02',
    'a_m_m_bevhills_01',
    'a_m_m_bevhills_02',
    'a_m_m_business_01',
    'a_m_m_eastsa_01',
    'a_m_m_eastsa_02',
    'a_m_m_farmer_01',
    'a_m_m_fatlatin_01',
    'a_m_m_genfat_01',
    'a_m_m_genfat_02',
    'a_m_m_golfer_01',
    'a_m_m_hasjew_01',
    'a_m_m_hillbilly_01',
    'a_m_m_hillbilly_02',
    'a_m_m_indian_01',
    'a_m_m_ktown_01',
    'a_m_m_malibu_01',
    'a_m_m_mexcntry_01',
    'a_m_m_mexlabor_01',
    'a_m_m_og_boss_01',
    'a_m_m_paparazzi_01',
    'a_m_m_polynesian_01',
    'a_m_m_prolhost_01',
    'a_m_m_rurmeth_01',
}

Ingredients

This is where you can remove, edit or add new ingredients for the recipes creations

mt_restaurants/config/ingredients.lua
Config = Config or {}
 
Config.ingredients = { -- All items, you can create different categories of items to use on different restaurants
    globalIngredients = { -- List of the items, to create custom buffs just add them to the customBuffs field and change the function on its use on the functions.lua following the same format (more info at docs website)
        { needCut = true, neededItems = { onion = 1 }, item = 'cutted_onion', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = { stress = 10, armour = 10, alcohol = 50 } },
        { needCut = true, neededItems = { carrot = 1 }, item = 'cutted_carrot', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { lettuce = 1 }, item = 'cutted_lettuce', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { cucumber = 1 }, item = 'cutted_cucumber', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { potato = 1 }, item = 'cutted_potato', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { tomato = 1 }, item = 'cutted_tomato', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { wheat = 1 }, item = 'cutted_wheat', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { strawberry = 1 }, item = 'cutted_strawberry', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { watermelon = 1 }, item = 'cutted_watermelon', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { soya = 1 }, item = 'cutted_soya', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { pineapple = 1 }, item = 'cutted_pineapple', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { apple = 1 }, item = 'cutted_apple', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { pear = 1 }, item = 'cutted_pear', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { lemon = 1 }, item = 'cutted_lemon', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { banana = 1 }, item = 'cutted_banana', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { orange = 1 }, item = 'cutted_orange', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { peach = 1 }, item = 'cutted_peach', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { mango = 1 }, item = 'cutted_mango', count = 5, type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = true, neededItems = { meat = 1 }, item = 'cutted_meat', count = 5, type = { 'food' }, calories = 500, customBuffs = {} },
        { needCut = true, neededItems = { fish = 1 }, item = 'cutted_fish', count = 5, type = { 'food' }, calories = 500 },
        { needCut = false, item = 'corn', type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
        { needCut = false, item = 'coffee_beans', type = { 'food', 'drink' }, calories = 100, customBuffs = {} },
    },
}

Shops

This is where you can remove, enable, disable, edit or add new shops to buy the ingredients

mt_restaurants/config/shops.lua
Config = Config or {}
 
Config.shops = {
    {
        label = 'Ingredients Shop', -- The name that will be displayed on the shop
        enabled = true, -- If false it'll disable the shop
        blip = { enabled = true, sprite = 52, color = 2, scale = 0.6, display = 4 }, -- Shop blip map
        ped = { coords = vec4(462.110107, -693.728210, 26.447880, 80.796547), model = 'mp_m_shopkeep_01', scenario = 'WORLD_HUMAN_CLIPBOARD' }, -- Shop ped options
        items = { -- Shop items
            { name = 'meat', price = 50, count = 100 },
            { name = 'fish', price = 50, count = 100 },
            { name = 'onion', price = 10, count = 100 },
            { name = 'carrot', price = 10, count = 100 },
            { name = 'lettuce', price = 10, count = 100 },
            { name = 'cucumber', price = 10, count = 100 },
            { name = 'potato', price = 10, count = 100 },
            { name = 'tomato', price = 10, count = 100 },
            { name = 'wheat', price = 10, count = 100 },
            { name = 'strawberry', price = 10, count = 100 },
            { name = 'watermelon', price = 10, count = 100 },
            { name = 'soya', price = 10, count = 100 },
            { name = 'pineapple', price = 10, count = 100 },
            { name = 'apple', price = 10, count = 100 },
            { name = 'pear', price = 10, count = 100 },
            { name = 'lemon', price = 10, count = 100 },
            { name = 'banana', price = 10, count = 100 },
            { name = 'orange', price = 10, count = 100 },
            { name = 'peach', price = 10, count = 100 },
            { name = 'mango', price = 10, count = 100 },
            { name = 'corn', price = 10, count = 100 },
            { name = 'coffee_beans', price = 10, count = 100 },
        }
    },
}

Restaurants folder

This is an example of restaurant config, follow the example and read the comments to understand what does every field and how to create your own restaurant

mt_restaurants/restaurants/...
Config.restaurants = Config.restaurants or {}
 
-- This config is just an example of how to create a restaurant.
 
Config.restaurants.examplejob = { -- Restaurant ID (needs to be the same as the job and needs to be unique!)
    enabled = false, -- If flase this restaurant will not be enable
    label = 'Example Label', -- The display name of the restaurant
    job = 'examplejob', -- The job of the restaurant (Need to be created at qb-core/shared/jobs.lua)
    ingredients = Config.ingredients.globalIngredients, -- The restaurants ingredients (Can be edited or created at ingredients.lua)
    maxIngredients = 6, -- Limit of ingredients per recipe
    maxRecipes = 10, -- Limit of recipes that the restaurant can have (false if don't want limit)
    maxRecipePrice = 1000, -- The max price that restaurant owners can make to a recipe
    blip = { enabled = true, coords = vec3(-1208.488770, -1134.933838, 7.709276), sprite = 106, color = 41, scale = 0.6, display = 4 }, -- The restaurant map blip
    zone = { -- The restaurant exterior zone
        points = {
            vec3(-1203.380981, -1157.074341, 7.0),
            vec3(-1215.102051, -1122.462769, 7.0),
            vec3(-1180.454590, -1106.599487, 7.0),
            vec3(-1153.449097, -1155.822510, 7.0),
        },
        thickness = 15,
    },
    management = { -- The restaurant boss menus (needed to create recipes)
        { coords = vec3(-1183.9, -1138.2, 7.9), radius = 0.6 },
    },
    stashes = { -- The restaurant stashes (blocked to the job)
        { coords = vec3(-1196.7, -1141.7, 8.0), radius = 0.6, label = 'Fridge', slots = 50, weight = 100 },
        { coords = vec3(-1201.7, -1144.2, 7.5), radius = 0.6, label = 'Storage', slots = 50, weight = 100 },
    },
    trays = { -- The retaurant tray stashes (not blocked to any job)
        { coords = vec3(-1200.2, -1136.6, 8.0), radius = 0.5, label = 'Tray', slots = 10, weight = 10 },
    },
    prepare = { -- The restaurant prepare stations to prepare the ingredients
        { coords = vec3(-1199.9, -1140.4, 7.9), radius = 0.5, label = 'Prepare', ingredients = Config.ingredients.globalIngredients, anim = { dict = 'anim@amb@clubhouse@tutorial@bkr_tut_ig3@', clip = 'machinic_loop_mechandplayer' } },
    },
    stations = { -- The restaurant stations (Where you'll be able to prepare the made recipes)
        { coords = vec3(-1197.65, -1145.65, 7.8), radius = 0.4, label = 'Stove', type = 'food', anim = { dict = 'anim@amb@clubhouse@tutorial@bkr_tut_ig3@', clip = 'machinic_loop_mechandplayer' } },
        { coords = vec3(-1196.15, -1143.0, 8.0), radius = 0.4, label = 'Coffee Machine', type = 'drink', anim = { dict = 'anim@amb@nightclub@mini@drinking@drinking_shots@ped_a@normal', clip = 'pour_one' } },
        { coords = vec3(-1201.35, -1146.4, 8.15), radius = 0.5, label = 'Slurpee Machine', type = 'drink', anim = { dict = 'anim@amb@nightclub@mini@drinking@drinking_shots@ped_a@normal', clip = 'pour_one' } },
    },
    registers = { -- The restaurant registers to charge the customers
        { coords = vec3(-1201.45, -1137.15, 8.1), radius = 0.4, label = 'Resgister', playersRadius = 5.0, comission = 10 },
    },
    menus = { -- The restaurant menu locs where players can take the menus items (the label must be the same for all)
        { coords = vec3(-1199.5, -1136.15, 7.85), radius = 0.3, label = 'Example Menu' },
    },
    offlineShop = { -- The restaurant shop to players be able to buy added items when restaurants offline
        { coords = vec4(-1199.667969, -1137.305298, 6.833269, 16.662355), label = 'Shop', model = 's_f_y_sweatshop_01', scenario = 'WORLD_HUMAN_AA_COFFEE' },
    },
    music = { -- The restaurant music laptop/dj table (to use prop just add the prop and propHeading fields)
        { coords = vec3(-1201.0, -1137.0, 8.1), radius = 0.4, maxMusicRadius = 50.0, maxMusicVolume = 50, prop = 'sf_prop_sf_laptop_01a', propHeading = -20.0 },
    },
    garage = { -- The restaurant garage
        {
            coords = vec4(-1188.096802, -1117.598877, 4.705121, 294.55+180), -- Garage prop spawn coords
            spawnCoords = vec4(-1183.451050, -1116.402954, 5.700829, 194.160385), -- Vehicle spawn coords
            vehicles = {
                { icon = 'fas fa-car', label = 'Panto', id = 'panto' },
                { icon = 'fas fa-car', label = 'Speedo Express', id = 'nspeedo' },
            },
        },
    },
    delivery = { -- The restaurant location to start the delivery mission
        { coords = vec3(-152.4, -266.5, 43.65), radius = 0.2, prop = 'hei_prop_hei_bank_phone_01', propHeading = -20.0, priceLost = 10, comission = 10, cooldown = 10 },
    },
    drivethru = { -- The restaurant drive thru locations where players inside the restaurant will receive a notify, it'll give a sound and then at the location they can communicate via a private channel only for that locations
        { inCoords = vec3(1803.2, 4602.03, 37.33), inRadius = 2.0, outCoords = vec3(1807.88, 4602.63, 37.24), outRadius = 3.0, driveThruId = 123 },
    },
    peds = { -- The restaurant spawned peds
        { coords = vec4(142.49, -651.71, 27.74, 70.29), model = 'ig_djsoljakob', anim = { dict = 'anim@amb@nightclub@djs@dixon@', clip = 'dixn_dance_cntr_open_dix' } },
        { coords = vec4(127.07, -652.13, 28.01, 211.67), model = 's_f_y_stripperlite', anim = { dict = 'mini@strip_club@private_dance@part2', clip = 'priv_dance_p2' } },
        { coords = vec4(131.29, -641.6, 28.01, 135.97), model = 's_f_y_stripperlite', anim = { dict = 'mini@strip_club@private_dance@part2', clip = 'priv_dance_p2' } },
    },
    chairs = { -- All the restaurant chairs (Can be used by all players)
        vec4(-1201.8, -1133.45, 7.40, 285.38),
        vec4(-1199.55, -1132.55, 7.40, 109.55),
    },
}