šŸ§½ [PAID] [Standalone][ESX][QBCore] Window cleaner job system | UI | Burevestnik

wcj

I welcome you CFX community!

Today I present to you the window cleaner job system! This system provides accessibility for all frameworks (ESX, QBCore, Standalone), huge editing capabilities using a configuration file, unique design. Iā€™m sure you and your players will love it!

This system includes a nice user interface, a convenient configuration file, the ability to configure the entire resource and clear functionality.

Demonstration of the system:

:movie_camera: Preview Video

Screenshots

Example of a configuration file:

Configuration files
--/* 
-- ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā•—ā–‘ā–ˆā–ˆā•—ā–‘ā–‘ā–‘ā–ˆā–ˆā•—ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā•—ā–‘ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā•—ā–ˆā–ˆā•—ā–‘ā–‘ā–‘ā–ˆā–ˆā•—ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā•—ā–‘ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā•—ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā•—ā–ˆā–ˆā–ˆā•—ā–‘ā–‘ā–ˆā–ˆā•—ā–ˆā–ˆā•—ā–ˆā–ˆā•—ā–‘ā–‘ā–ˆā–ˆā•—
-- ā–ˆā–ˆā•”ā•ā•ā–ˆā–ˆā•—ā–ˆā–ˆā•‘ā–‘ā–‘ā–‘ā–ˆā–ˆā•‘ā–ˆā–ˆā•”ā•ā•ā–ˆā–ˆā•—ā–ˆā–ˆā•”ā•ā•ā•ā•ā•ā–ˆā–ˆā•‘ā–‘ā–‘ā–‘ā–ˆā–ˆā•‘ā–ˆā–ˆā•”ā•ā•ā•ā•ā•ā–ˆā–ˆā•”ā•ā•ā•ā•ā•ā•šā•ā•ā–ˆā–ˆā•”ā•ā•ā•ā–ˆā–ˆā–ˆā–ˆā•—ā–‘ā–ˆā–ˆā•‘ā–ˆā–ˆā•‘ā–ˆā–ˆā•‘ā–‘ā–ˆā–ˆā•”ā•
-- ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā•¦ā•ā–ˆā–ˆā•‘ā–‘ā–‘ā–‘ā–ˆā–ˆā•‘ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā•”ā•ā–ˆā–ˆā–ˆā–ˆā–ˆā•—ā–‘ā–‘ā•šā–ˆā–ˆā•—ā–‘ā–ˆā–ˆā•”ā•ā–ˆā–ˆā–ˆā–ˆā–ˆā•—ā–‘ā–‘ā•šā–ˆā–ˆā–ˆā–ˆā–ˆā•—ā–‘ā–‘ā–‘ā–‘ā–ˆā–ˆā•‘ā–‘ā–‘ā–‘ā–ˆā–ˆā•”ā–ˆā–ˆā•—ā–ˆā–ˆā•‘ā–ˆā–ˆā•‘ā–ˆā–ˆā–ˆā–ˆā–ˆā•ā•ā–‘
-- ā–ˆā–ˆā•”ā•ā•ā–ˆā–ˆā•—ā–ˆā–ˆā•‘ā–‘ā–‘ā–‘ā–ˆā–ˆā•‘ā–ˆā–ˆā•”ā•ā•ā–ˆā–ˆā•—ā–ˆā–ˆā•”ā•ā•ā•ā–‘ā–‘ā–‘ā•šā–ˆā–ˆā–ˆā–ˆā•”ā•ā–‘ā–ˆā–ˆā•”ā•ā•ā•ā–‘ā–‘ā–‘ā•šā•ā•ā•ā–ˆā–ˆā•—ā–‘ā–‘ā–‘ā–ˆā–ˆā•‘ā–‘ā–‘ā–‘ā–ˆā–ˆā•‘ā•šā–ˆā–ˆā–ˆā–ˆā•‘ā–ˆā–ˆā•‘ā–ˆā–ˆā•”ā•ā–ˆā–ˆā•—ā–‘
-- ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā•¦ā•ā•šā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā•”ā•ā–ˆā–ˆā•‘ā–‘ā–‘ā–ˆā–ˆā•‘ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā•—ā–‘ā–‘ā•šā–ˆā–ˆā•”ā•ā–‘ā–‘ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā•—ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā•”ā•ā–‘ā–‘ā–‘ā–ˆā–ˆā•‘ā–‘ā–‘ā–‘ā–ˆā–ˆā•‘ā–‘ā•šā–ˆā–ˆā–ˆā•‘ā–ˆā–ˆā•‘ā–ˆā–ˆā•‘ā–‘ā•šā–ˆā–ˆā•—
-- ā•šā•ā•ā•ā•ā•ā•ā–‘ā–‘ā•šā•ā•ā•ā•ā•ā•ā–‘ā•šā•ā•ā–‘ā–‘ā•šā•ā•ā•šā•ā•ā•ā•ā•ā•ā•ā–‘ā–‘ā–‘ā•šā•ā•ā–‘ā–‘ā–‘ā•šā•ā•ā•ā•ā•ā•ā•ā•šā•ā•ā•ā•ā•ā•ā–‘ā–‘ā–‘ā–‘ā•šā•ā•ā–‘ā–‘ā–‘ā•šā•ā•ā–‘ā–‘ā•šā•ā•ā•ā•šā•ā•ā•šā•ā•ā–‘ā–‘ā•šā•ā•*/

Config = {}

--If ESX = false and QBCore = false, then Standalone will turn on
--Are you using ESX?
Config.UseESX = true

--Enable this if ESX throws an error: Used the getSharedObject Event, this event no longer exists!
Config.UseESX_lib = false

--Are you using QBCore?
Config.UseQBCore = false

--Are you using Standalone?
Config.UseStandalone = false

--Your own export to get the player's job
Config.StandaloneJobCheckExport = nil

--Interaction Button
Config.JobOpenButton = 38

--Use the command to start/end the job
Config.useCommandStartEndJob = false
Config.commandStartJob = "burJobWindowCleanerStart"
Config.commandEndJob = "burJobWindowCleanerEnd"

--The ability to embed your own exports to hide the hud
Config.useHudOffOnEvents = true
function hudOnEvent()
    DisplayRadar(true)
    --exports.Burevestnik_hud:Burevestnik_hud_on() -- Uncomment if you use Burevestnik_HUD system (https://burevestnik.tebex.io/package/5371893)
end
function hudOffEvent()
   DisplayRadar(false)
   --exports.Burevestnik_hud:Burevestnik_hud_off() -- Uncomment if you use Burevestnik_HUD system (https://burevestnik.tebex.io/package/5371893)
end

function notificationInteraction(str)
    SetTextComponentFormat("STRING")
    AddTextComponentString(str)
    DisplayHelpTextFromStringLabel(0, 0, false, -1)
end

-- If true, the custom interaction menus are activated. Pay attention to the customInteractionButtonOpen and customInteractionButtonClose functions.
Config.UseCustomInteractionButton = false
Config.BurevestnikInteractionButton = "E"
Config.BurevestnikInteractionButtonText = "Press to interact"
-- The function of opening a custom interaction menu.
function customInteractionButtonOpen()
    --exports.Burevestnik_interaction_button:bur_nui_InteractionButton_open(Config.BurevestnikInteractionButton, Config.BurevestnikInteractionButtonText)  -- Uncomment if you use Burevestnik Interaction Button (https://forum.cfx.re/t/free-standalone-interaction-button/4860169)
end
-- The function of closing the custom interaction menu.
function customInteractionButtonClose()
    --exports.Burevestnik_interaction_button:bur_nui_InteractionButton_close() -- Uncomment if you use Burevestnik Interaction Button (https://forum.cfx.re/t/free-standalone-interaction-button/4860169)
end

Config.useHelpNotificationBottom = true
function HelpNotificationBottom(text)
    BeginTextCommandThefeedPost("STRING")
    AddTextComponentSubstringPlayerName(text)
    EndTextCommandThefeedPostTicker(true, true)
end

-- The reward you will receive for completing the stage
Config.collectingReward = 5

receiveReward = function(source)
	if Config.UseESX then
		local player = ESX.GetPlayerFromId(source)
		player.addMoney(Config.collectingReward)
	end
	if Config.UseQBCore then 
		local player = QBCore.Functions.GetPlayer(source)
		player.Functions.AddMoney('cash', Config.collectingReward, "Bank depost")
	end
end

Config.Job = {
	{
		interactionDistance = 2.0, --Distance for interaction with the job.
		useBlip = true, --The ability to use blip on the map for this ped.
		blipID = 467, --Blip ID.
		blipScale = 0.7, --Blip scale.
		blipColor = 16, --Blip color.
		blipText = "Window cleaner job", --Blip text.
		UseMarkers = true, --Do you want to use a marker ?
		MarkerType = 1, --Marker type
		MarkerSizeX = 0.5, --Marker size X
		MarkerSizeY = 0.5, --Marker size Y
		MarkerSizeZ = 0.5, --Marker size Z
		MarkerColourR = 122, --Marker colour R
		MarkerColourG = 195, --Marker colour G
		MarkerColourB = 254, --Marker colour B
		MarkerColourA = 100, --Marker colour A
		allowedJobsInteraction = {"all"}, --Jobs that can interact with the job. If "all", then everyone can interact with the job.
		locations = {--job location
			vector3(-604.4462, -1026.3402, 21.2724),
		},
		taskConfig = {
			interactionDistance = 2.0, --Distance for interaction with the job.
			useBlip = true, --The ability to use blip on the map for this ped.
			blipID = 515, --Blip ID.
			blipScale = 0.7, --Blip scale.
			blipColor = 2, --Blip color.
			blipText = "Dirty window point", --Blip text.
			UseMarkers = true, --Do you want to use a marker ?
			MarkerType = 32, --Marker type
			MarkerSizeX = 0.5, --Marker size X
			MarkerSizeY = 0.5, --Marker size Y
			MarkerSizeZ = 0.5, --Marker size Z
			MarkerColourR = 122, --Marker colour R
			MarkerColourG = 195, --Marker colour G
			MarkerColourB = 254, --Marker colour B
			MarkerColourA = 100, --Marker colour A
			animationName = "WORLD_HUMAN_MAID_CLEAN", --Animation scenario
			randomLocations = false, --If true, the locations will appear in random order
			locations = { --Locations of interaction with job stages
				vector4(-604.9159, -1018.7399, 22.3297, 178.8076),
				vector4(-599.7010, -1016.7482, 22.3297, 267.6690),
				vector4(-599.6061, -1012.8585, 22.3297, 273.7071),
				vector4(-599.6431, -1006.8648, 22.3297, 282.8420),
				vector4(-599.4959, -998.0675, 22.3291, 282.8500),
				vector4(-599.4758, -992.3137, 22.3268, 268.3484),
				vector4(-585.4557, -980.5916, 22.3297, 185.9809),
				vector4(-581.8199, -986.8013, 22.3297, 99.4706),
				vector4(-580.0188, -1012.6099, 22.3243, 181.8767),
				vector4(-581.8830, -984.9188, 25.9857, 98.2047),
				vector4(-581.7243, -1002.7797, 25.9857, 98.1763),
				vector4(-581.7153, -1010.7007, 25.9857, 88.7933),
				vector4(-576.9003, -1012.4437, 25.9849, 172.6808),
				vector4(-581.8004, -1021.8083, 25.9849, 87.8169),
				vector4(-581.7844, -1045.1232, 25.9849, 108.5626),
				vector4(-570.8754, -1047.4281, 25.9849, 180.9612),
				vector4(-565.5532, -1053.8601, 22.3297, 90.3841),
				vector4(-580.3349, -1070.3456, 22.3297, 6.7053),
			},
		}
	},
}

--Translation config
Config.Translation = {
    ['menu'] = 'Press ~INPUT_CONTEXT~ to ~g~interact',
	['noaccess'] = '~r~You dont have access!',
	['collected'] = '~g~You have received a reward!',
	['jobstart'] = '~g~You got a job!',
	['jobquit'] = '~y~You quit your job!',
	['translationText1'] = 'Wash', -- | burevestnik.tebex.io
	['translationText2'] = 'the window',
	['translationText3'] = 'Bring it to shine!',
	['translationText4'] = 'Move the mouse to move the rag',
}

--Exports
--exports.Burevestnik_windowcleaner_job:Burevestnik_job_windowcleaner_start()  --Exporting to start a job
--exports.Burevestnik_windowcleaner_job:Burevestnik_job_windowcleaner_stop()  --Exporting to cancel a job

Optimization (The script consumes):

0.01 ms in a quiet state.

0.03 ms in an active state.

What does this system include:

  • This system works on all versions of ESX, QBCore, as well as STANDALONE!
  • Beautiful user interface!
  • Support of our :speech_balloon: Dialogue system!
  • Support for our :nazar_amulet:free Interaction Button resource!
  • The ability to enable blips on the map!
  • The ability to enable markers!
  • The ability to install new places of interaction!
  • Incredibly customizable configuration file!
  • More than 18 prepared places of interaction!
  • You can completely change the user interface at will!
  • Of course support, Iā€™m ready to help you!

:shopping_cart: [OPEN SOURCE] You can get that resource in my Tebex.

:shopping_cart: [ESCROW] You can get that resource in my Tebex.

TOP SALES

qs3 hudsystem-min bpLogo

You may also be interested in my other resources:

My other resources

garageSystem mg mg

mg mg mg

crate Anomaly zones img animsystem

bpLogo hudsystem-min OrangeSystem

barsystem storev2 qs3

dialSystem speedcam_img lockpick

train LicensePlate pop

6q6g5y as mg

ars fuelsystem mwpLG8T - Imgur

e5f6ad277b5836eb5fa4db2b8207c3e46beb8362 imgonline-com-ua-Resize-czg8px7HwUHn My project (1)

My project (5) My project kaws

My project (6) a bgk

bg bg st11

Code accessible Open source: Yes \ Escrow: No - Available only: config, ui
Subscription based No
Lines (approximately) ~1000
Requirements Standalone/ESX/QBCore
Support Yes
16 Likes

Amazing script and job :fire: