Reward System Configuration

You can configure rewards based on the number of hours a player has worked on duty. Each job can have its own list of rewards, and every reward must have a unique index ID (even if deleted, don't reuse the same ID).

Reward Types

Type
Description

item

Gives the player a specific item (must define item, amount).

money

Gives the player money — supports "cash", "bank", and "black_money" (or crypto if not ESX).

xp

Grants XP to a specific skill (requires args.name to define the skill). You will need to integrate this with your own skill system—relevant functions can be found in src/server/sv_edit.lua.

custom

You can define custom reward types—related functions can be found in src/server/sv_edit.lua.

🛑 Important Notes

  • Do not reuse reward IDs, even if the reward is removed later.

  • Each reward can have its own image, label, and desc for UI clarity.

SV_CONFIG.Rewards = {
    ["police"] = {
        [4] = { -- This ID must be unique. Once it has been used, do not reuse it again.
            required_hours = 4,
            type = "item",
            label = "Medikit",
            desc = "Essential first-aid kit for emergencies.",
            item = "medikit",
            amount = 2,
            image = "medikit",
            disable = false,
            progressbarColor = "lime"
        },
        [5] = {
            required_hours = 0,
            type = "money",
            label = "Cash",
            desc = "Financial bonus for your service.",
            item = "bank",
            amount = 100,
            image = "money",
            disable = false,
            args = {}
        },
        [6] = {
            required_hours = 2,
            type = "xp",
            label = "XP",
            desc = "Boost your skills with extra XP.",
            item = "money",
            amount = 100,
            image = "xp",
            disable = false,
            args = {
                name = "shooting"
            }
        }
        -- Add more rewards as needed
    },
    ["ambulance"] = {
        [11] = {
            required_hours = 4,
            type = "item",
            label = "Medikit",
            desc = "Essential first-aid kit for emergencies.",
            item = "medikit",
            amount = 2,
            image = "medikit",
            disable = false,
            progressbarColor = "lime"
        },
        [12] = {
            required_hours = 0,
            type = "money",
            label = "Cash",
            desc = "Financial bonus for your service.",
            item = "bank",
            amount = 100,
            image = "money",
            disable = false,
            args = {}
        }
    }
}

Last updated