Skip to main content
sh-burgershot transforms the GTA V Burger Shot location into a fully operational fast-food restaurant job for your QBCore or QBX Core server. Employees clock in, work their way through a realistic cooking chain — buying raw ingredients, cooking individual components, and assembling finished products — then serve customers at the counter and collect payment. A complete job hierarchy covers Cashier, Cook, Manager, and Owner grades, and a boss banking system lets management handle the restaurant’s finances in-game.

Supported Frameworks

  • QBCore — full support
  • QBX Core — full support

Dependencies

DependencyRequiredNotes
PolyZone✅ YesZone detection for cooking stations and storage
ox_lib✅ YesUI menus and utility functions
mysql-async✅ YesDatabase persistence
qb-target or ox_target✅ YesThird-eye interaction on all props and stations
qb-inventory or ox_inventory✅ YesItem and storage handling

Installation

1

Add the resource

Drop the sh-burgershot folder into your server’s resources directory and add ensure sh-burgershot to your server.cfg.
2

Run the SQL

Open the INSTALL/ folder inside the resource. Execute the included .sql file against your database to create the required tables.
3

Add inventory items

Import the item definitions from INSTALL/ into your inventory resource. For qb-inventory, add the entries to qb-core/shared/items.lua. For ox_inventory, add them to ox_inventory/data/items.lua.
4

Configure the resource

Open shared/config.lua and set Config.Target, Config.Menu, and Config.Inventory to match the resources running on your server.
5

Restart and test

Start or restart the resource, then log into your server and clock in at the Burger Shot location to verify everything is working.
All SQL and item setup files are in the INSTALL/ folder. Do not start the resource before running the SQL — missing tables will cause errors the moment a player interacts with any cooking station.

Job Grades

GradeRolePermissions
0CashierServe customers, operate registers
1CookUse all cooking stations and storage
2ManagerAll Cook permissions + manage employee duty
3OwnerFull access including boss banking

Cooking Workflow

All interactions use your configured third-eye target — look at a prop or station and use the target key to see the available actions.
1

Acquire raw ingredients

Purchase raw ingredients from the restaurant’s ingredient storage. Ingredients are tracked per-item in your inventory.
2

Cook components

Use cooking stations to prepare individual components: grill patties, fry fries, fill drink cups, and so on. Batch cook in quantities of 1×, 5×, or 10× to speed up prep during busy periods.
3

Assemble products

Combine cooked components at the assembly station to create finished menu items — burgers, combo meals, and drinks.
4

Serve and collect payment

Hand finished products to customers at the counter. Completed orders register payment directly to the restaurant’s till.

Configuration

shared/config.lua
Config.Target    = 'qb'   -- 'qb' (qb-target) or 'ox' (ox_target)
Config.Menu      = 'qb'   -- 'qb' (qb-menu) or 'ox' (ox_lib context menu)
Config.Inventory = 'qb'   -- 'qb' (qb-inventory) or 'ox' (ox_inventory)

-- Cooking animation durations (randomised per item type, in milliseconds)
Config.MakingTime = {
    Fries    = math.random(2000, 3000),
    Donut    = math.random(2000, 3000),
    Drinks   = math.random(2000, 3000),
    CreamPie = math.random(2000, 3000),
    Patty    = math.random(2000, 3000),
    Burgers  = math.random(2000, 3000),  -- Assembly time
}

-- Eating/drinking animation durations (in milliseconds)
Config.ConsumeTime = {
    Food  = math.random(2000, 3000),
    Drink = math.random(2000, 3000),
}

-- Food and drink item hunger/thirst modifiers
Config.Consumables = {
    ['bs_bleeder']     = { type = 'food',  hunger = math.random(15, 25) },
    ['bs_torpedo']     = { type = 'food',  hunger = math.random(15, 25) },
    ['bs_moneyshot']   = { type = 'food',  hunger = math.random(15, 25) },
    ['bs_heartstopper']= { type = 'food',  hunger = math.random(15, 25) },
    ['bs_meatfree']    = { type = 'food',  hunger = math.random(15, 25) },
    ['bs_fries']       = { type = 'food',  hunger = math.random(15, 25) },
    ['bs_rimjob']      = { type = 'food',  hunger = math.random(15, 25) },
    ['bs_creampie']    = { type = 'food',  hunger = math.random(15, 25) },
    ['bs_cola']        = { type = 'drink', thirst = math.random(15, 25) },
    ['bs_sprunk']      = { type = 'drink', thirst = math.random(15, 25) },
    ['bs_shake']       = { type = 'drink', thirst = math.random(15, 25) },
}

-- Map blip for the Burger Shot location
Config.BlipSettings = {
    Enabled  = true,
    Position = vector3(-1183.8, -887.87, 13.86),
    Name     = 'Burger Shot',
    Sprite   = 106,
    Scale    = 0.6,
    Colour   = 1,
}

-- Boss banking integration
Config.Banking = function(society, amount)
    return exports['qb-banking']:AddMoney(society, amount)
end
The restaurant uses four distinct storage containers, each with configurable slot counts and weight limits set in shared/config.lua:
  • Fridge — refrigerated ingredient storage (default: 20 slots)
  • Food Storage — dry goods and packaging (default: 20 slots)
  • Employee Trays — personal holding for in-progress orders (default: 5 slots)
  • Bags — portable carry storage for deliveries (default: 5 slots)
Raw ingredients are purchased from the in-restaurant store at $2 each. Available ingredients include buns, uncooked meat, plant-based meat, lettuce, tomato, potato, dough, pastry, soda, syrup, ice cream, and milk.

Translations

All player-facing UI text is centralised in shared/translation.lua. Edit this file to change notification messages, menu labels, and button text without touching any other file. This makes sh-burgershot straightforward to localise into any language.