Jaksam Jobs Creator Quests

This guide explains how to connect Battle Pass V3 quests with item collection using ox_inventory and Jaksam's Jobs Creator.

Create a Quest in the Configurator

First open the Configurator and create a new quest under the custom sort.

  1. In the configurator, choose a unique internal name for your quest (in this case, farm_apples). It will be the quest identifier that will be referenced in the server code.
  2. Set a label that will appear in the UI (Farm 10 Apples), and write a brief description to explain the goal.
  3. Enable progress tracking by checking the Use Progress option and set the Max Progress. In this example the player needs to complete the action (farming apples) 10 times to finish the quest
  4. You can also set how much XP the player receives upon completion—in this example, 1000 XP.
  5. Dont forget to save your changes by pressing the "Apply" button.

Map Items to Quests

  1. In your Jobs Creator integration file, define a mapping for items and their quest IDs:
integrations/sv_integrations.lua
-- Mapping Item -> Quest ID
local BP_ITEM_MAP = {
    apple    = { questId = 'farm_apples',   perItem = 1 },
    weedseed = { questId = 'farm_weedseed', perItem = 1 },
    -- add more items as needed
}

local function addQuestProgressForItem(playerId, itemName, qty)
    local cfg = BP_ITEM_MAP[itemName]
    if not cfg then return end
    qty = tonumber(qty) or 1
    local amount = (cfg.perItem or 1) * qty
    exports.sky_battlepass:AddPlayerQuestProgress(playerId, cfg.questId, amount)
end

Hook Into Jobs Creator Events

  1. Add event listeners for Jobs Creator to track item collection and add progress:
integrations/sv_integrations.lua
-- Harvest (e.g., picking apples)
RegisterNetEvent("jobs_creator:harvest:harvestedItem", function(playerId, markerId, itemName, itemType, itemQuantity)
    if itemType == 'item' then
        addQuestProgressForItem(playerId, itemName, itemQuantity)
    end
end)

-- Processing (e.g., processing items into something else)
RegisterNetEvent("jobs_creator:process:processedItem", function(playerId, markerId, addedItemName, addedItemQuantity, removedItemName, removedItemQuantity)
    if addedItemName then
        addQuestProgressForItem(playerId, addedItemName, addedItemQuantity)
    end
end)

-- Crafting Table
RegisterNetEvent("jobs_creator:crafting_table:craftedItem", function(playerId, markerId, itemName, itemQuantity)
    addQuestProgressForItem(playerId, itemName, itemQuantity)
end)

Credits

Special thanks to @.pureconfusion on Discord for the valuable help with this page. 🙏

Support

Need help? Our support team is always ready to assist

Join Discord