Skip to content

Steps for installation

  1. Drag and Drop the resource to your server. Make sure it starts at the end of the list so all the dependencies are loaded first.
  2. SQL file is automatically executed on server start. If it doesnt execute, you can manually import the SQL file.
  3. Go through the config file and check all things to suit your server's need.

Dependencies

  • ox_lib
  • oxmysql
  • QBCore/ESX

Exports

  • here, source is the ID who is trying to remove the job, identifier is the player's identifier and job is the job that you want to remove from the player.
    exports["snipe-multijob"]:RemoveJob(source, identifier, job)
    

Changes For QB-Management to fire people

  • Change this event in qb-management/server/sv_boss.lua. Its adding 1 line
    -- Fire Employee
    RegisterNetEvent('qb-bossmenu:server:FireEmployee', function(target)
        local src = source
        local Player = QBCore.Functions.GetPlayer(src)
        local Employee = QBCore.Functions.GetPlayerByCitizenId(target)
    
        if not Player.PlayerData.job.isboss then ExploitBan(src, 'FireEmployee Exploiting') return end
    
        if Employee then
            if target ~= Player.PlayerData.citizenid then
                if Employee.PlayerData.job.grade.level > Player.PlayerData.job.grade.level then TriggerClientEvent('QBCore:Notify', src, "You cannot fire this citizen!", "error") return end
                if Employee.Functions.SetJob("unemployed", '0') then
                    TriggerEvent("qb-log:server:CreateLog", "bossmenu", "Job Fire", "red", Player.PlayerData.charinfo.firstname .. " " .. Player.PlayerData.charinfo.lastname .. ' successfully fired ' .. Employee.PlayerData.charinfo.firstname .. " " .. Employee.PlayerData.charinfo.lastname .. " (" .. Player.PlayerData.job.name .. ")", false)
    
                    TriggerClientEvent('QBCore:Notify', src, "Employee fired!", "success")
                    TriggerClientEvent('QBCore:Notify', Employee.PlayerData.source , "You have been fired! Good luck.", "error")
                else
                    TriggerClientEvent('QBCore:Notify', src, "Error..", "error")
                end
            else
                TriggerClientEvent('QBCore:Notify', src, "You can\'t fire yourself", "error")
            end
        else
            local player = MySQL.query.await('SELECT * FROM players WHERE citizenid = ? LIMIT 1', { target })
            if player[1] ~= nil then
                Employee = player[1]
                Employee.job = json.decode(Employee.job)
                if Employee.job.grade.level > Player.PlayerData.job.grade.level then TriggerClientEvent('QBCore:Notify', src, "You cannot fire this citizen!", "error") return end
                local job = {}
                job.name = "unemployed"
                job.label = "Unemployed"
                job.payment = QBCore.Shared.Jobs[job.name].grades['0'].payment or 500
                job.onduty = true
                job.isboss = false
                job.grade = {}
                job.grade.name = nil
                job.grade.level = 0
                MySQL.update('UPDATE players SET job = ? WHERE citizenid = ?', { json.encode(job), target })
                TriggerClientEvent('QBCore:Notify', src, "Employee fired!", "success")
                TriggerEvent("qb-log:server:CreateLog", "bossmenu", "Job Fire", "red", Player.PlayerData.charinfo.firstname .. " " .. Player.PlayerData.charinfo.lastname .. ' successfully fired ' .. Employee.PlayerData.charinfo.firstname .. " " .. Employee.PlayerData.charinfo.lastname .. " (" .. Player.PlayerData.job.name .. ")", false)
            else
                TriggerClientEvent('QBCore:Notify', src, "Civilian not in city.", "error")
            end
        end
        exports["snipe-multijob"]:RemoveJob(src, target, Player.PlayerData.job.name) -- add this line
        TriggerClientEvent('qb-bossmenu:client:OpenMenu', src)
    end)
    

If you dont use qb-policejob and qb-ambulancejob

  • Replace the function in client/open/cl_framework.lua
    -- if using QBCore only. For ESX, the changes are on server side in sv_framework.lua
    function ToggleDuty()
        TriggerServerEvent("QBCore:ToggleDuty") -- this event is present in qb-core/server/main.lua
    end