[PAID][QB] Vanilla Unicorn Job

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


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