Infinity Multijob -

You decide how much to pay.

Infinity Multijob - Open Source

Package Description

This resource is Open Source but you can't resell it or leak it or give it to anyone and all similar things

After purchase you can access the script at https://keymaster.fivem.net/asset-grants

Preview 
Video

For support - Discord


Features

Fully customizable resource using QBCore based framework

2 languages - English and Bulgarian 

Choice from rgb and static colour background

Choice from use everywhere or only location

Keymaping

Duty system

Automaticaly adds and removes jobs (edited qb-bossmenu included)

/removejob command for admins

Blacklisted jobs

Maximum jobs that player can have

Discord WebHook - Server Sided 

Unique UI

Resmon is 0.0 and only on location 0.03

Dependencies

 QBCore based framework (you can change to your core from config.lua like qb-, IF- or the way your core is maded) - IT HAVE TO BE A QBCore BASED OR SMILLAR 

 Any notification resource (you can edit it from config) - i personaly use okok 

Any draw text ui script (you can edit it from config) - i personaly use okok - (only if you are gonna use location)

OxMysql or MySqlAsync - probably and others will work -- fxmanifest.lua
 


The Config.lua
 

Config = {}

Config.Locale = "bg" -- select from en/bg -- you can find them in lang.lua and if you want translate them

Config.Keybind = "F4" --Keybind used to open the menu (Players can change it in settingss)

Config.Core = 'qb-core' -- your core prefix

Config.Duty = "QBCore:ToggleDuty" -- your duty event

Config.JobUpdate = 'QBCore:Client:OnJobUpdate' -- your on job update event 

Config.SetDuty = "QBCore:Client:SetDuty" -- your set duty event 

Config.UseKey = true -- If true the menu can be used anywhere -- If false the menu can be used only at location

Config.Mark = 21 -- drawMarker type -- see all at - https://docs.fivem.net/docs/game-references/markers/

Config.MaxJobs = 4 -- How many jobs player can have?

Config.log = "yes" -- If yes a namecheck with add will be displayed at every restart in server console

Config.Coords =  vector4(-266.87, -960.06, 31.22, 31.12) -- Location if Config.UseKey = false to open menu at

Config.MarkerColor =  {r = 57, g = 125, b = 199, a = 0.9} -- Marker colours

Config.Dist1 = 2.0 -- press key

Config.Dist2 = 2.0 -- showing marker

Config.DrawUiText = "Press [F4] to open menu"

function ShowNotification(msg, type)

    --local IFCore = exports[Config.Core]:GetCoreObject() -- dont change IFCore as it will break the script

    --IFCore.Functions.Notify(msg, type) -- -- dont change IFCore as it will break the script

    

    exports['okokNotify']:Alert("MultiJob", msg, 5000, type) 

    -- you can change that to your own CLIENT SIDE (can be export)

end

function ShowNotificationServer(source, msg, type)

   TriggerClientEvent('okokNotify:Alert', source, "MultiJob", msg, 5000, type)

-- TriggerClientEvent('QBCore:Notify', source, msg, type)

-- you can change that to your own CLIENT SIDE (can't be export)

end


function DrawUI(text)

    exports['okokTextUI']:Open(text, 'darkblue', 'left')

    -- you can change that to your own CLIENT SIDE (can be export)

end

function CloseUI()

    exports['okokTextUI']:Close() 

    -- you can change that to your own CLIENT SIDE (can be export)

end



Config.Icons = { --Icons for jobs in the menu. Use job name(Case sensitive). Can use FontAwsome or Bootstrap Icons (You can edit these and add new)

    ['police'] = 'bi bi-shield-shaded',

    ['ambulance'] = 'fas fa-ambulance',

    ['tow'] = 'bi bi-truck-flatbed',

    ['taxi'] = 'fas fa-taxi',

    ['lawyer'] = 'bi bi-briefcase',

    ['judge'] = 'fas fa-gavel',

    ['realestate'] = 'bi bi-house',

    ['cardealer'] = 'fas fa-car',

    ['mechanic'] = 'bi bi-tools',

    ['reporter'] = 'bi bi-newspaper',

    ['trucker'] = 'fas fa-truck-moving',

    ['garbage'] = 'fas fa-recycle',

}

Config.DefaultIcon = "fas fa-briefcase" -- The default icon shown if the job isn't listed above ^^^

Config.BlackListedJobs = { --jobs that will not be automatically added to the multijob menu

    'unemployed',

    'examplejob2'

}




The SQL
CREATE TABLE `PLAYER_JOBS` (
    `cid` varchar(100) NOT NULL,
    `job` varchar(100) NOT NULL,
    `grade` int(11) NOT NULL
);

CREATE TABLE `player_jobs_num` (

  `cid` varchar(100) NOT NULL,

  `jobs` varchar(100) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;