Intro
You can try to experience the work of a gardener in a fun way that will enhance your roleplay experience.
This job offers 4 job types and an XP system that can be fully customized.
- Leaf blower
- Hand mower
- Rose delivery
- Mower
Preview
If the preview doesn’t work: Preview
Dependencies
Supports
Frameworks
- ESX
- QB Core
- OX Core
Inventory
- ox_inventory
- qb-inventory
- ps-inventory
- quasar_inventory
Can’t see your inventory? You can easily add it in BRIDGE/
Targets
- ox_target
- qb-target
You don’t use target? You can use markers BRIDGE/config.lua - BRIDGE.UseMarkers = true
Clean UI and XP system
Files
Config.lua
Config = {}
--[[
_______ _______ __ __ __ __ _______ __ _ _______ _______
| || _ || | | || |_| || || | | || || |
| _ || |_| || |_| || || ___|| |_| ||_ _|| _____|
| |_| || || || || |___ | | | | | |_____
| ___|| ||_ _|| || ___|| _ | | | |_____ |
| | | _ | | | | ||_|| || |___ | | | | | | _____| |
|___| |__| |__| |___| |_| |_||_______||_| |__| |___| |_______|
]]--
Config.UISetup = {
gardener_image = true,
gradient = false,
}
Config.Payments = {
leaf_job = 500,
mower_hand_job = 1000,
rose_delivery = 500,
mower_car_job = 1000,
}
Config.XPPerJob = {
job1 = 2, -- LEAF
job2 = 2, -- HAND MOWER
job3 = 3, -- Rose delivery
job4 = 3, -- MOWER
}
Config.XP = {
job1 = 0,
job2 = 50,
job3 = 200,
job4 = 250,
}
-- XP*Config.MoneyMultiplierPerXP + Job payment = finalreward
Config.MoneyMultiplierPerXP = 1.1
Config.HelpNotifyPLS = true -- False use ox_lib notify or BRIDGE/config.lua - Notify
Config.LeafBlower_FunnyFeature = true -- All the peds will run if you start blowing on them.
--[[
_______ ___ ___ _______ _______
| _ || | | | | || |
| |_| || | | | | _ || _____|
| || | | | | |_| || |_____
| _ | | |___ | | | ___||_____ |
| |_| || || | | | _____| |
|_______||_______||___| |___| |_______|
]]--
Config.Blips = {
{
Label = "Mower",
Sprite = 78,
Color = 25,
ShortRange = true,
Scale = 0.8,
Display = 2,
coords = vector3(-1408.1830, -254.9818, 46.3792),
},
{
Label = "Rose field",
Sprite = 75,
Color = 5,
ShortRange = true,
Scale = 0.8,
Display = 2,
coords = vector3(-943.7378, 2257.5671, 142.7184),
}
}
--[[
_______ _______ _______ __ __ _______ ______ _______ _______ _______
| || || || | | || | | | | _ || || _ |
| _____|| ___||_ _|| | | || _ | | _ || |_| ||_ _|| |_| |
| |_____ | |___ | | | |_| || |_| | | | | || | | | | |
|_____ || ___| | | | || ___| | |_| || | | | | |
_____| || |___ | | | || | | || _ | | | | _ |
|_______||_______| |___| |_______||___| |______| |__| |__| |___| |__| |__|
]]--
Config.Mower = {
job = {
start = vector3(-1408.1830, -254.9818, 46.3792),
},
vehicles = {
take = vector3(-1417.7334, -243.6898, 46.3792),
spawn = vector4(-1423.2134, -241.8042, 45.9670, 133.7191),
vehicleOptions = {
{
label = "Bison",
name = "bison3",
},
{
label = "Burrito",
name = "burrito"
},
{
label = "Bobcat",
name = "bobcatxl",
}
}
},
gardenerStuff = {
shop = vector3(-1412.0085, -262.6363, 46.3791),
spawn = vector4(-1408.5596, -264.9563, 46.3792, 314.9549),
},
peds = {
{
model = "s_m_m_gardener_01", -- JOB START
coords = vector4(-1407.7406, -254.4391, 46.3791, 135.2828),
},
{
model = "ig_car3guy2", -- CAR GUY
coords = vector4(-1417.5529, -243.1135, 46.3792, 156.7377),
},
{
model = "s_m_y_armymech_01", -- SUPLIES
coords = vector4(-1412.0085, -262.6363, 46.3791, 314.5256),
},
}
}
Config.CiviliansPeds = {"ig_car3guy2"}
Config.VehiclesColor = 62
Config.GardenerShop = {
leaf_blower = { label = "Leaf blower", price = 500},
hand_mower = { label = "Hand mower", price = 100},
mower = { label = "Mower", price = 100},
}
--[[
___ _______ _______ _______
| || || _ || |
| || _ || |_| || _____|
| || | | || || |_____
___| || |_| || _ | |_____ |
| || || |_| | _____| |
|_______||_______||_______||_______|
]]--
Config.RosesNeedForOne = 10 -- This is count of roses for one pot
Config.DefineJobs = {
job_leaf = {
{
Ped = vector4(1260.2697, -514.5494, 69.0926, 229.4473),
Zone = {
vector3(1257.9893, -510.9320, 69.1247),
vector3(1253.5929, -528.7885, 68.9683),
vector3(1226.5052, -510.9624, 69.0631),
vector3(1228.6281, -502.6016, 69.0559)
},
Leafs = {
vector3(1231.0286, -507.3722, 69.0638),
vector3(1236.1450, -514.1419, 69.0057),
vector3(1231.0286, -507.3722, 69.0638),
vector3(1236.1450, -514.1419, 69.0057),
}
},
{
Ped = vector4(1212.6432, -708.3506, 59.7450, 63.8586),
Zone = {
vector3(1214.6952, -708.4778, 59.9855),
vector3(1243.0043, -705.4548, 60.8730),
vector3(1244.6396, -738.8795, 61.5189),
vector3(1217.9318, -746.1197, 58.6130)
},
Leafs = {
vector3(1232.7349, -735.4689, 60.8188),
vector3(1225.1183, -732.3287, 59.9510),
vector3(1241.3755, -711.9937, 60.8352),
vector3(1232.7349, -735.4689, 60.8188),
vector3(1225.1183, -732.3287, 59.9510),
vector3(1241.3755, -711.9937, 60.8352)
}
},
{
Ped = vector4(961.2917, -655.5099, 57.4423, 335.1069),
Zone = {
vector3(960.9513, -656.6193, 57.4336),
vector3(928.7247, -674.3969, 58.1037),
vector3(921.0844, -661.7850, 58.1300),
vector3(945.7745, -636.9387, 57.4531)
},
Leafs = {
vector3(937.7335, -663.4494, 58.0811),
vector3(949.7125, -654.2958, 57.9929),
vector3(930.3829, -665.6179, 58.1506),
vector3(937.7335, -663.4494, 58.0811),
vector3(949.7125, -654.2958, 57.9929),
vector3(930.3829, -665.6179, 58.1506),
}
}
},
job_mower_hand = {
{
Ped = vector4(-1971.4528, 619.8163, 121.9441, 291.9061),
Grass = {
vector3(-1983.5492, 617.2070, 122.4918),
vector3(-1990.5599, 619.2752, 122.4695),
vector3(-1999.0088, 621.7502, 122.4602),
vector3(-1990.4456, 661.1147, 122.7409),
vector3(-1994.4923, 660.2780, 122.6105),
vector3(-1989.1788, 657.0601, 122.5349),
vector3(-1985.8793, 652.2693, 122.5394),
},
Stones = {
vector3(-1998.0490, 660.1151, 122.5499),
}
},
{
Ped = vector4(-799.5679, -33.7579, 37.8949, 118.1962),
Grass = {
vector3(-791.7003, -32.3197, 38.3435),
vector3(-791.4572, -26.9465, 39.1161),
vector3(-791.4824, -20.9986, 39.7218),
vector3(-797.7418, -17.4296, 39.2352),
vector3(-798.6537, -9.8924, 39.9028),
vector3(-804.4206, -5.6382, 40.733),
vector3(-803.2731, 0.9647, 41.7404),
},
Stones = {
vector3(-801.8337, -3.5994, 41.1206),
vector3(-793.8500, -18.7702, 39.6539),
}
}
},
job_mower_car = {
{
Ped = vector4(-1972.1921, 619.2714, 121.9747, 256.8663),
Grass = {
vector3(-1983.9750, 616.9792, 122.4600),
vector3(-1992.6886, 619.6033, 122.4605),
vector3(-2004.2908, 624.1967, 122.4595),
vector3(-2010.4822, 629.1288, 122.4991),
vector3(-1992.9471, 660.6491, 122.6882),
vector3(-1984.9972, 652.7495, 122.5362),
},
Stones = {
vector3(-1997.4517, 660.3716, 122.5672),
vector3(-1985.9565, 652.9579, 122.5362),
}
},
{
Ped = vector4(-653.6150, -43.4357, 39.9620, 165.8277),
Grass = {
vector3(-658.4651, -38.6796, 39.5404),
vector3(-669.5455, -40.4932, 38.7303),
vector3(-681.5648, -41.2819, 38.1878),
vector3(-680.2635, -33.9234, 38.3194),
vector3(-667.6099, -32.0118, 38.8929),
vector3(-649.8823, -28.7130, 40.172),
vector3(-640.0336, -33.8673, 40.9094),
vector3(-634.9261, -35.6530, 41.3233),
vector3(-630.1118, -31.0831, 41.6579),
vector3(-619.9073, -28.2839, 42.4192),
vector3(-607.3764, -28.0867, 43.0075),
vector3(-598.8074, -32.5484, 43.1448),
},
Stones = {
vector3(-616.3223, -33.4514, 42.415),
vector3(-613.6236, -30.8283, 42.611),
vector3(-601.3441, -33.8124, 42.9624),
}
},
},
job_mower_roses = {
{
Ped = vector4(912.0025, -607.4860, 57.4128, 321.2155),
roses = {
vector3(906.1523, -618.4863, 58.4533),
vector3(907.6942, -620.1906, 58.0490),
}
},
{
Ped = vector4(975.2581, -454.2425, 62.5329, 261.3374),
roses = {
vector3(968.1017, -454.0062, 62.4028),
}
},
{
Ped = vector4(1007.3363, -463.0432, 63.7640, 43.5300),
roses = {
vector3(1012.1553, -470.5251, 64.2884),
}
},
{
Ped = vector4(1032.9816, -414.9866, 65.9976, 230.5606),
roses = {
vector3(1028.9934, -411.7180, 65.9443),
}
},
{
Ped = vector4(1093.6853, -431.3319, 66.7689, 75.7961),
roses = {
vector3(1101.4664, -434.3730, 67.3921),
}
}
},
}
Config.AddonSoundsVolume = 0.05
--[[
_______ ___ _______ ___ ______ _______
| || | | || | | | | |
| ___|| | | ___|| | | _ || _____|
| |___ | | | |___ | | | | | || |_____
| ___|| | | ___|| |___ | |_| ||_____ |
| | | | | |___ | || | _____| |
|___| |___| |_______||_______||______| |_______|
]]--
Config.FieldsLoadTime = 5000
Config.FieldsDistanceLoad = 50.0
Config.Fields = {
{
label="Rose field",
pos = vector3(-943.7378, 2257.5671, 142.7184),
spawnModel = "prop_plant_cane_01a",
spawnLimit = 15,
spawnRadius = 40.0,
recivieItem = "rose",
count = {
min = 1,
max = 2,
}
},
}
Actions.lua - For custom things
-- VARIABLES
-- playerVehicle - This is spawned vehicle if nil = not exist
-- playerAddonVehicle - This is entity for hand mower or mower if nil = not exist
function action_player_start_job(job)
local pCoords = GetEntityCoords(cache.ped)
--[[
Variable job
@param job1 leafblower
@param job2 handmower
@param job3 rosedelivery
@param job4 mower
]]--
if pCoords then
end
end
function action_player_end_job()
-- When player end job and get paid
end
function action_player_spawn_vehicle(model)
-- This is player vehicle
end
function action_player_start_second_job(job)
-- This is when you talk to an NPC and start working.
end
function action_player_create_addon_vehicle(model)
-- This is when you take mower or hand mower from shop.
end
What files are escrowed?
Only files where there are functions with the job and the functioning of the job itself.
But server.lua is open including xp system for possible configurations.
Because having as much editable as possible is essential!
Store
Tebex store here.
Source: https://store.polisek.io/category/fivem-open-source
Check my other resources
[FREE] Job system - Create restaurant jobs in game.
Keycards heists
Weed growing
Code is accessible | No |
Subscription-based | No |
Lines (approximately) | 1000+ |
Requirements | ox_lib |
Support | Yes |