15 KiB
Thank you for your purchase <3 I hope you have fun with this script and that it brings jobs and RP to your server
If you need support I now have a discord available, it helps me keep track of issues and give better support.
INSTALLATION
Check the Config.lua
for the settings you need to change
To enable or disable a location, toggle zoneEnable
in their Locations table
Inventory Images
Add the item images to your inventory script
[qb]
> qb-inventory
> html
> images
Items.lua
Under the QBShared.Items = {
--Jim-BeanMachine
["beancoffee"] = {["name"] = "beancoffee", ["label"] = "Coffe Beans", ["weight"] = 100, ["type"] = "item", ["image"] = "beancoffee.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['hunger'] = math.random(20, 30) },
["beandonut"] = {["name"] = "beandonut", ["label"] = "Donut", ["weight"] = 100, ["type"] = "item", ["image"] = "popdonut.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['hunger'] = math.random(20, 30) },
["rhinohorn"] = {["name"] = "rhinohorn", ["label"] = "Rhino Horn", ["weight"] = 100, ["type"] = "item", ["image"] = "rhinohorn.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "" },
["oystershell"] = {["name"] = "oystershell", ["label"] = "Oyster Shell", ["weight"] = 100, ["type"] = "item", ["image"] = "oyster.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "" },
["watermelon"] = {["name"] = "watermelon", ["label"] = "WaterMelon Slice", ["weight"] = 100, ["type"] = "item", ["image"] = "watermelon.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['hunger'] = math.random(20, 30), ['thirst'] = math.random(20, 30) },
["bigfruit"] = {["name"] = "bigfruit", ["label"] = "The Big Fruit", ["weight"] = 100, ["type"] = "item", ["image"] = "bigfruit.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['thirst'] = math.random(20, 30) },
["highnoon"] = {["name"] = "highnoon", ["label"] = "Highnoon", ["weight"] = 100, ["type"] = "item", ["image"] = "highnoon.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['thirst'] = math.random(20, 30) },
["speedball"] = {["name"] = "speedball", ["label"] = "The SpeedBall", ["weight"] = 100, ["type"] = "item", ["image"] = "speedball.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['thirst'] = math.random(20, 30) },
["gunkaccino"] = {["name"] = "gunkaccino", ["label"] = "The Gunkaccino", ["weight"] = 100, ["type"] = "item", ["image"] = "gunkaccino.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['thirst'] = math.random(20, 30) },
["bratte"] = {["name"] = "bratte", ["label"] = "The Bratte", ["weight"] = 100, ["type"] = "item", ["image"] = "bratte.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['thirst'] = math.random(20, 30) },
["flusher"] = {["name"] = "flusher", ["label"] = "The Flusher", ["weight"] = 100, ["type"] = "item", ["image"] = "flusher.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['thirst'] = math.random(20, 30) },
["ecocoffee"] = {["name"] = "ecocoffee", ["label"] = "The Eco-ffee", ["weight"] = 100, ["type"] = "item", ["image"] = "ecoffee.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['thirst'] = math.random(20, 30) },
["caffeagra"] = {["name"] = "caffeagra", ["label"] = "Caffeagra", ["weight"] = 100, ["type"] = "item", ["image"] = "caffeagra.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['thirst'] = math.random(20, 30) },
["chocolate"] = {["name"] = "chocolate", ["label"] = "Chocolate", ["weight"] = 200, ["type"] = "item", ["image"] = "chocolate.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "Chocolate Bar", ['hunger'] = math.random(10, 20) },
["cheesecake"] = {["name"] = "cheesecake", ["label"] = "Cheese Cake", ["weight"] = 100, ["type"] = "item", ["image"] = "cheesecake.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['hunger'] = math.random(20, 30) },
["crisps"] = {["name"] = "crisps", ["label"] = "Crisps", ["weight"] = 100, ["type"] = "item", ["image"] = "chips.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['hunger'] = math.random(20, 30) },
["sugar"] = {["name"] = "sugar", ["label"] = "Sugar", ["weight"] = 100, ["type"] = "item", ["image"] = "sugar.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "", ['hunger'] = math.random(10, 20) },
["orange"] = {["name"] = "orange", ["label"] = "Orange", ["weight"] = 200, ["type"] = "item", ["image"] = "orange.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "An Orange." },
["milk"] = {["name"] = "milk", ["label"] = "Milk", ["weight"] = 300, ["type"] = "item", ["image"] = "burger-milk.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Carton of Milk", ['thirst'] = math.random(10, 20) },
["chickenbreast"] = {["name"] = "chickenbreast", ["label"] = "Chicken Breast", ["weight"] = 100, ["type"] = "item", ["image"] = "chickenbreast.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = false, ["combinable"] = nil, ["description"] = "", ['hunger'] = math.random(10, 20) },
["sprunk"] = {["name"] = "sprunk", ["label"] = "Sprunk", ["weight"] = 100, ["type"] = "item", ["image"] = "sprunk.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['thirst'] = math.random(20, 30) },
["sprunklight"] = {["name"] = "sprunklight", ["label"] = "Sprunk Light", ["weight"] = 100, ["type"] = "item", ["image"] = "sprunklight.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['thirst'] = math.random(20, 30) },
["ecola"] = {["name"] = "ecola", ["label"] = "eCola", ["weight"] = 100, ["type"] = "item", ["image"] = "ecola.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['thirst'] = math.random(20, 30) },
["ecolalight"] = {["name"] = "ecolalight", ["label"] = "eCola Light", ["weight"] = 100, ["type"] = "item", ["image"] = "ecolalight.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "", ['thirst'] = math.random(20, 30) },
Jobs
Under the QBShared.Jobs = {
['beanmachine'] = {
label = 'Bean Machine',
defaultDuty = true,
grades = {
['0'] = { name = 'Recruit', payment = 50 },
['1'] = { name = 'Novice', payment = 75 },
['2'] = { name = 'Experienced', payment = 100 },
['3'] = { name = 'Advanced', payment = 125 },
['4'] = { name = 'Manager', isboss = true, payment = 150 },
},
},
Payment Systems
The payment system that is being used is my free script, jim-payments
This system supports receipts being handed out to wokers who are clocked in and working They can then trade this in at the bank for rewards
Grab it at: https://github.com/jimathy/jim-payments
qb-management:
Update to the latest github version
Make sure the job "beanmachine" has been added to the database
The menu's targets should be accessible to bosses at clockin areas
Emotes
Custom emotes currently run through dpemotes, its the easier option and adds extra emotes for you to use :)
These go in your [standalone] > dpemotes > client > AnimationList.lua At about line 1666, place these under DP.PropEmotes = {
["ecola"] = {"mp_player_intdrink", "loop_bottle", "E-cola", AnimationOptions =
{ Prop = "prop_ecola_can", PropBone = 18905, PropPlacement = {0.12, 0.008, 0.03, 240.0, -60.0},
EmoteMoving = true, EmoteLoop = true, }},
["sprunk"] = {"mp_player_intdrink", "loop_bottle", "Sprunk", AnimationOptions =
{ Prop = "v_res_tt_can03", PropBone = 18905, PropPlacement = {0.12, 0.008, 0.03, 240.0, -60.0},
EmoteMoving = true, EmoteLoop = true, }},
["crisps"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Crisps", AnimationOptions =
{ Prop = 'v_ret_ml_chips2', PropBone = 28422, PropPlacement = {0.01, -0.05, -0.1, 0.0, 0.0, 90.0},
EmoteLoop = true, EmoteMoving = true, }},
["bmcoffee1"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Coffee2", AnimationOptions =
{ Prop = 'prop_fib_coffee', PropBone = 28422, PropPlacement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
EmoteLoop = true, EmoteMoving = true, }},
["bmcoffee2"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Coffee3", AnimationOptions =
{ Prop = 'ng_proc_coffee_01a', PropBone = 28422, PropPlacement = {0.0, 0.0, -0.06, 0.0, 0.0, 0.0},
EmoteLoop = true, EmoteMoving = true, }},
["bmcoffee3"] = {"amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Coffee3", AnimationOptions =
{ Prop = 'v_club_vu_coffeecup', PropBone = 28422, PropPlacement = {0.0, 0.0, -0.06, 0.0, 0.0, 0.0},
EmoteLoop = true, EmoteMoving = true, }},
["milk"] = {"mp_player_intdrink", "loop_bottle", "Milk", AnimationOptions =
{ Prop = "v_res_tt_milk", PropBone = 18905, PropPlacement = {0.10, 0.008, 0.07, 240.0, -60.0},
EmoteMoving = true, EmoteLoop = true, }},
["donut2"] = {"mp_player_inteat@burger", "mp_player_int_eat_burger", "Donut2", AnimationOptions =
{ Prop = 'prop_donut_02', PropBone = 18905, PropPlacement = {0.13, 0.05, 0.02, -50.0, 100.0, 270.0},
EmoteMoving = true, EmoteLoop = true, }},
Jim-Consumables item setup - (Optional) - (https://github.com/jimathy/jim-consumables)
-
Support for new
Jim-Consumables
automated adding of items and emotes -
Start
jim-consumables
BEFORE this script and setConfig.JimConsumables
totrue
for it to work -
In Jim-Beanmachine's
config.lua
setJimConsumables
to true -
Restart/Ensure Jim-Beanmachine
-
Restart Jim-Consumables
Changelog
v1.4.4:
- Add "Multi-Craft" option in the config.lua
- Split-Stack item exploit fix
- Optional: Support for new `Jim-Consumables` automated item adding events
- (Start `jim-consumables` BEFORE this script and set `Config.JimConsumables` to `true` for it to work)
- (https://github.com/jimathy/jim-consumables)
- Change/Add support for creating jobGarages in (https://github.com/jimathy/jim-jobgarage)
v1.4.3
- Added image icons to ox_lib menus
- Added Version Update check
v1.4.2
- Improved `OX_Lib` Context support (better layout for ingredients)
- Improved `OX_Inv` support
- Added `OX_Lib` Progressbar suppport
- *Basic* `OX_Lib` notification support (Set `Config.Notify = "ox"`)
- Improved script stopping/restarting events
- Added more options to blip creation
- Locale fixes
- Updated shared functions to give more info and be more optimized
- Merged built-in eating events into one optimized event
- Fix emote references for jim-consumables and built in events ("bmcoffee1" not "bmcoffee")
v1.4.1
- Add support for OX Lib's Context menu
- Updated emote code in built-in consumable events
v1.4
- Support for changing Core name
- Support added for OX_Target
- Support added for OX_Inventory
- Added autoClock variable to locations config
- This helps define if leaving or entering the zone clocks in or out
v1.3.4
- Updated install.md
- Included instructions to make use of Jim-Consuambles if wanted
- Add de.lua locale
- Updated built-in client and server Hasitem events to be more accurate
- Support for different job roles at each location
- Fix for built in job garages letting anyone grab a vehicle
v1.3.3
- Locale support thanks to Dafke
v1.3.2
- Workaround for the `HasItem()` allowing crafting when items aren't there
v1.3.1
- Made the `HasItem` functions built in, so no edits to core needed
- This allows optimizations + makes crafting menus open/load much faster
- Add item duping protection to item crafting
v1.3
- New Location supported, the free MLO - https://www.gta5-mods.com/maps/mlo-bean-machine-fivem-sp
- Rewrote the locations and how they are handled in the client to allow easier additions of new locations
- Rewrote the chair code to be more optimzed and handle multiple locations better
- Rewrote the garage.lua to support new functions
- Added shared function file to optimize code and improve loading of props and blips
- Made use of new custom lookEnt() event to make player look towards points of interactions.
v1.2.1
- Added support ps-progressbar
v1.2
- Added Support for Crafting CheckMarks
- This is a toggle in the config, if it causes issues(like lag) disable it
- Added Support for Jim-Shops
- Added Support for new qb-menu icons
- Added Job Garages for deliveries to both default locations
- QoL fixes
- Improved and optimized loading of targets and props
- UncleJust changes
- Slushie machine prop now added to separate the Soda's and Slushie targets
- Added Prepared Food Stash to the fridge
- Gabz Changes
- Added Prepared Food Stash to the Donut Counter
- Upgraded Crafting systems to be more optimised
- Changed "Donut" menu to be a shop instead of just grabbing them
- Added simple support for Toys/Prizes
- BossMenu is now accessible from the same areas as clock in targets
v1.1.1
- Fixed typo breaking coffee menu
- Fixed type making "crisps" unusable
v1.1
- Fix for item check callback
- Added support for grabbing images from inventory script
- You need to set your inventory image folder link in the config if not using qb-inventory
v1.0.2
- Added config option for zones
- zoneEable, enables or disables the chosen zone and its map blip
- Added Debug messages to server.lua
- helps..debug..any issues with the script
- Missed chocolate completely from the list
- Even the item check in client.lua was missing it.
- Added more Custom Emotes
- Didn't know there were acutal extra BM Coffee Props