Preview Video
Purchase
Features
-
A VANILLA UNICORN JOB FOR QB-CORE, CRATE BEERS, CIDERS, WINES, SPIRITS, FIZZ AND COCKTAILS TO SELL TO PLAYERS WITH SUPPORT FOR ANY MLO OR BUILDING.
-
EASILY MOVE ALL LOCATIONS VIA THE CONFIG FILE.
-
CHANGE EVENT NAMES VIA CONFIG TO SUIT VARIOUS SCRIPTS.
-
JOB LOCKED TARGET LOCATIONS.
-
VEHICLE RENTAL SYSTEM TO DELIVER PRODUCTS TO PLAYERS.
-
STASH SYSTEM TO STORE DRINKS.
-
MANAGEMENT SYSTEM FOR EMPLOYEES.
-
ADD DRINKS TO YOUR CONSUMABLES SCRIPT FOR ALCOHOL EFFECTS.
Supported Scripts
Notifications
- qb-core Notify
- okokNotify
- mythic_notify
- boii_ui notify
Menus
- qb-menu
- jixel-menu
- boii_ui menu
- ox_lib context menu
Targets
- qb-target
- ox_target
Custom Items + Images
- OVER 50 ITEMS ADDED TO MAKE DRINKS FROM GLASSES TO INGREDIENTS.
Config Preview
--Debug Options
Config.DebugPoly = false -- enables red boxes to show polyzone locations
Config.PrintDebugInformation = false -- enables debug prints to client and server console
-- Core Settings
Config.CoreSettings = {
Job = {
Name = 'vanilla', -- NAME OF JOB IN CORE/SHARED/JOBS.LUA
},
EventNames = {
BossMenu = 'qb-bossmenu:client:OpenMenu', -- NAME OF BOSS MENU EVENT TO OPEN MANAGEMENT MENU
DutyEvent = 'QBCore:ToggleDuty', -- NAME OF DUTY EVENT TO TOGGLE JOB DUTY
FuelScript = 'LegacyFuel', -- NAME OF FUEL SCRIPT
KeysEvent = 'vehiclekeys:client:SetOwner', -- NAME OF KEYS EVENT
},
Target = {
Type = 'qb', -- taregt script name support for qb-target and ox_target
-- EDIT TARGETS.LUA TO ADD YOUR OWN TARGET SCRIPT
-- use 'qb' for qb-target
-- use 'ox' for ox_target
-- use 'custom' for custom target
},
Menu = {
Type = 'qb', -- menu script name, support for qb-menu, jixel-menu and boii_ui menu
-- EDIT MENUS.LUA TO ADD YOUR OWN MENU SCRIPT
--use 'qb' for qb-menu
--use 'jixel' for jixel-menu
--use 'boii' for boii_ui-menu
--use 'ox' for ox_lib context menu
},
Notify = {
Type = 'qb', -- notification type, support for qb-core notify, okokNotify, mythic_notify and boii_ui notify
--use 'qb' for default qb-core notify
--use 'okok' for okokNotify
--use 'mythic' for mythic_notify
--use 'boii' for boii_ui notify
SuccessLength = 3000, --length of time for successful notifcation type
ErrorLength = 3000, -- length of time for error notification type
},
}
--Blip Settings
Config.Blips = {
{title = 'Vanilla Unicorn', colour = 5, id = 121, coords = vector3(133.01, -1308.13, 29.03), scale = 0.7, useblip = true}, -- BLIP FOR VANILLA UNICORN
}
--Preparation Times For Progressbar
Config.PreparationTimes = {
Cocktails = 10000, -- time it takes to create cocktails [default is 10000 MS so 10 seconds]
Beers = 7000, -- time it takes to pour beers [default is 7000 MS so 7 seconds]
Spirits = 7000, -- time it takes to pour spirits [default is 7000 MS so 7 seconds]
Wines = 7000, -- time it takes to pour spirits [default is 7000 MS so 7 seconds]
WashHands = 5000, -- time it takes to pour spirits [default is 5000 MS so 5 seconds]
StressReliefFromWashingHands = math.random(1,4), -- stress relief given from washing hands set to 0 for nothing
}
--Interaction Location Settings
Config.InteractionLocations = {
JobAreas = {
Duty = {
Location = vector3(128.54, -1279.3, 29.18), -- location for target
Width = 0.4, --width of boxzone
Height = 0.4, -- height of boxzone
Heading = 30, --heading of boxzone
MinZ = 29.5, --minz of boxzone
MaxZ = 30, --maxz of boxzone
Label = "Toggle Duty", -- lable for target
Icon = 'fa-solid fa-clipboard-user', -- icon for target
Size = vec3(0.4,0.4,1.5), -- only relevant if using oxtarget
Rotation = 30, -- only relevant if using oxtarget
},
BossMenu = {
Location = vector3(95.94, -1292.97, 29.07), -- location for target
Width = 2.0, --width of boxzone
Height = 1.0, -- height of boxzone
Heading = 300, --heading of boxzone
MinZ = 28.0, --minz of boxzone
MaxZ = 39.0, --maxz of boxzone
Label = "Open Management Menu", -- lable for target
Icon = 'fa-solid fa-users', -- icon for target
Size = vec3(2.0,1.0,1), -- only relevant if using oxtarget
Rotation = 300, -- only relevant if using oxtarget
},
WashHands = {
Location = vector3(130.49, -1286.34, 28.87), -- location for target
Width = 1.4, --width of boxzone
Height = 1.0, -- height of boxzone
Heading = 120, --heading of boxzone
MinZ = 28.5, --minz of boxzone
MaxZ = 30.0, --maxz of boxzone
Label = "Wash Hands", -- lable for target
Icon = 'fa-solid fa-hands-bubbles', -- icon for target
Size = vec3(1.4,1.0,1), -- only relevant if using oxtarget
Rotation = 120, -- only relevant if using oxtarget
},
Garage = {
Ped = {
{name = 'garage_ped', coords = vector4(136.77, -1278.53, 29.36, 298.69), model = 's_m_y_construct_01', useped = true}, -- ped spawned at the garage
},
GarageLocation = {
Location = vector3(136.77, -1278.53, 29.36), -- location for target
Width = 0.6, --width of boxzone
Height = 0.6, -- height of boxzone
Heading = 120, --heading of boxzone
MinZ = 28.5, --minz of boxzone
MaxZ = 30.0, --maxz of boxzone
Label = "Rent Work Vehicle", -- lable for target
Icon = 'fa-solid fa-car', -- icon for target
Size = vec3(0.6,0.6,1), -- only relevant if using oxtarget
Rotation = 120, -- only relevant if using oxtarget
},
Vehicle = {
Name = 'moonbeam',
Plate = 'UNICORN',
SpawnLocation = vector4(145.33, -1275.23, 29.04, 207.81),
},
}
},
PreparationAreas = {
PrepareCocktails = {
Location = vector3(128.75, -1284.16, 29.09), -- location for target
Width = 0.7, --width of boxzone
Height = 0.4, -- height of boxzone
Heading = 120, --heading of boxzone
MinZ = 29.25, --minz of boxzone
MaxZ = 30.0, --maxz of boxzone
Label = "Prepare Cocktails", -- lable for target
Icon = 'fa-solid fa-martini-glass-citrus', -- icon for target
Size = vec3(0.7,0.4,1), -- only relevant if using oxtarget
Rotation = 120, -- only relevant if using oxtarget
},
PrepareBeers = {
Location = vector3(128.2, -1283.0, 29.21), -- location for target
Width = 0.8, --width of boxzone
Height = 0.5, -- height of boxzone
Heading = 120, --heading of boxzone
MinZ = 29.25, --minz of boxzone
MaxZ = 30.0, --maxz of boxzone
Label = "Pour Beers", -- lable for target
Icon = 'fa-solid fa-beer-mug-empty', -- icon for target
Size = vec3(0.8,0.5,1), -- only relevant if using oxtarget
Rotation = 120, -- only relevant if using oxtarget
},
PrepareSpirits = {
Location = vector3(129.55, -1280.12, 29.04), -- location for target
Width = 0.8, --width of boxzone
Height = 0.8, -- height of boxzone
Heading = 300, --heading of boxzone
MinZ = 29.25, --minz of boxzone
MaxZ = 30.0, --maxz of boxzone
Label = "Pour Wines & Spirits", -- lable for target
Icon = 'fa-solid fa-wine-glass', -- icon for target
Size = vec3(0.8,0.8,1), -- only relevant if using oxtarget
Rotation = 300, -- only relevant if using oxtarget
},
},
FridgeAreas = {
IngredientsFridge = {
Location = {
Location = vector3(132.43, -1285.67, 28.85), -- location for target
Width = 1.4, --width of boxzone
Height = 0.4, -- height of boxzone
Heading = 300, --heading of boxzone
MinZ = 28.0, --minz of boxzone
MaxZ = 29.5, --maxz of boxzone
Label = "Ingredients Fridge", -- lable for target
Icon = 'fa-solid fa-box-open', -- icon for target
Size = vec3(1.4,0.4,1), -- only relevant if using oxtarget
Rotation = 300, -- only relevant if using oxtarget
},
Ingredients = {
label = "Ingredients Fridge",
slots = 9,
items = {
[1] = { name = "mint", price = 0, amount = 100000, info = {}, type = "item", slot = 1,},
[2] = { name = "colasyrup", price = 0, amount = 100000, info = {}, type = "item", slot = 2,},
[3] = { name = "hotsauce", price = 0, amount = 100000, info = {}, type = "item", slot = 3,},
[4] = { name = "strawberries", price = 0, amount = 100000, info = {}, type = "item", slot = 4,},
[5] = { name = "banana", price = 0, amount = 100000, info = {}, type = "item", slot = 5,},
[6] = { name = "lime", price = 0, amount = 100000, info = {}, type = "item", slot = 6,},
[7] = { name = "pineapplechunks", price = 0, amount = 100000, info = {}, type = "item", slot = 7,},
[8] = { name = "orangeslices", price = 0, amount = 100000, info = {}, type = "item", slot = 8,},
[9] = { name = "fruitmedley", price = 0, amount = 100000, info = {}, type = "item", slot = 9,},
},
},
},
DrinksFridge = {
Location = {
Location = vector3(129.83, -1280.76, 28.14), -- location for target
Width = 1.4, --width of boxzone
Height = 0.6, -- height of boxzone
Heading = 120, --heading of boxzone
MinZ = 28.0, --minz of boxzone
MaxZ = 29.2, --maxz of boxzone
Label = "Drinks Fridge", -- lable for target
Icon = 'fa-solid fa-box-open', -- icon for target
Size = vec3(1.4,0.6,1.5), -- only relevant if using oxtarget
Rotation = 120, -- only relevant if using oxtarget
},
Ingredients = {
label = "Drinks Fridge",
slots = 14,
items = {
[1] = { name = "pineapplejuice", price = 0, amount = 100000, info = {}, type = "item", slot = 1,},
[2] = { name = "tomatojuice", price = 0, amount = 100000, info = {}, type = "item", slot = 2,},
[3] = { name = "lemonjuice", price = 0, amount = 100000, info = {}, type = "item", slot = 3,},
[4] = { name = "cranberryjuice", price = 0, amount = 100000, info = {}, type = "item", slot = 4,},
[5] = { name = "lemonade", price = 0, amount = 100000, info = {}, type = "item", slot = 5,},
[6] = { name = "orangeliquer", price = 0, amount = 100000, info = {}, type = "item", slot = 6,},
[7] = { name = "peachliquer", price = 0, amount = 100000, info = {}, type = "item", slot = 7,},
[8] = { name = "coconutliquer", price = 0, amount = 100000, info = {}, type = "item", slot = 8,},
[9] = { name = "tonicwater", price = 0, amount = 100000, info = {}, type = "item", slot = 9,},
[10] = { name = "gin", price = 0, amount = 100000, info = {}, type = "item", slot = 10,},
[11] = { name = "vodka", price = 0, amount = 100000, info = {}, type = "item", slot = 11,},
[12] = { name = "rum", price = 0, amount = 100000, info = {}, type = "item", slot = 12,},
[13] = { name = "triplesec", price = 0, amount = 100000, info = {}, type = "item", slot = 13,},
[14] = { name = "tequila", price = 0, amount = 100000, info = {}, type = "item", slot = 14, },
},
},
},
},
StorageAreas = {
Cupboard = {
Location = vector3(131.02, -1282.96, 29.15), -- location for target
Width = 1.2, --width of boxzone
Height = 0.4, -- height of boxzone
Heading = 300, --heading of boxzone
MinZ = 28.0, --minz of boxzone
MaxZ = 29.5, --maxz of boxzone
Label = "Glass Cupboard", -- lable for target
Icon = 'fa-solid fa-box-archive', -- icon for target
Size = vec3(1.2,0.4,1), -- only relevant if using oxtarget
Rotation = 300, -- only relevant if using oxtarget
Items = {
label = "Glass Storage",
slots = 5,
items = {
[1] = { name = "pintglass", price = 0, amount = 100000, info = {}, type = "item", slot = 1,},
[2] = { name = "wineglass", price = 0, amount = 100000, info = {}, type = "item", slot = 2,},
[3] = { name = "tumblerglass", price = 0, amount = 100000, info = {}, type = "item", slot = 3,},
[4] = { name = "cocktailglass", price = 0, amount = 100000, info = {}, type = "item", slot = 4,},
[5] = { name = "champagneflute", price = 0, amount = 100000, info = {}, type = "item", slot = 5,},
},
},
},
StorageFridge = {
Location = vector3(129.68, -1285.59, 28.86), -- location for target
Width = 0.8, --width of boxzone
Height = 0.8, -- height of boxzone
Heading = 120, --heading of boxzone
MinZ = 28.0, --minz of boxzone
MaxZ = 29.25, --maxz of boxzone
Label = "Storage Fridge", -- lable for target
Icon = 'fa-solid fa-box-archive', -- icon for target
Size = vec3(0.8,0.8,1), -- only relevant if using oxtarget
Rotation = 120, -- only relevant if using oxtarget
StashSize = 10000000,
Slots = 64,
},
},
SellAreas = {
CashSymbol = '£',
Till = {
Location = vector3(129.17, -1284.97, 29.12), -- location for target
Width = 0.4, --width of boxzone
Height = 0.4, -- height of boxzone
Heading = 120, --heading of boxzone
MinZ = 29.25, --minz of boxzone
MaxZ = 30.0, --maxz of boxzone
Label = "Charge Customer", -- lable for target
Icon = 'fa-solid fa-cash-register', -- icon for target
Size = vec3(0.4,0.4,1), -- only relevant if using oxtarget
Rotation = 120, -- only relevant if using oxtarget
},
},
}
DEPENDENCIES
-- billing.lua is non-escrowed to add your own billing and phone exports to.
-- menus.lua is non-escrowed to add your own menu exports to.
-- targets.lua is non-escrowed to add your own target exports to.
SCRIPT SUPPORT VIA DISCORD
Check Out My Other Scripts Below
Job Scripts
Activities Scripts
Script Bundles
| Code is accessible | Yes/All Files In SHARED Folder |
| Subscription-based | No |
| Lines (approximately) | 2000+ |
| Requirements | QB-CORE,QB-MENU,QB-TARGET,QB-INPUT,QB-PHONE,PROGRESSBAR |
| Support | Yes/Via Discord |

