Skip to main content

Reward Configuration

note

This docs page relates to the following scripts:

These scripts use the same configuration but not sky_base functions. Some things mentioned here wont apply there.

It applies not to Coinsystem V1

Overview​

The reward system in the sky_base library is a flexible and extensible system used to manage various types of rewards in our framework. This system is utilized by almost all of our scripts, allowing for consistent and easy reward management. Below, we explain the different types of rewards supported and provide examples of how they are used in practice.

Reward Properties​

Each reward configuration consists of the following properties:

  • label: The label for the reward, shown in the UI.
  • sort: The type of the reward.
  • name: The item name as in the database, model name if a vehicle, or model name if a weapon.
  • amount: The amount of the reward. If sort is weapon, this is the amount of ammo.
  • img: The image file name for the reward without .png.

Reward Types​

The reward system supports several types of rewards, each identified by a sort value:

Item​

  • Description: Grants an item to the player.

  • Usage: The item name should be the same as used in the database.

  • Example:

    {
    label = "Bulletproof Vest",
    sort = "item",
    name = "bulletproof",
    amount = 1,
    img = "box"
    }
  • Source Code: Sky.FW.AddItem in sky_base/config/framework/*.lua

Weapon​

  • Description: Grants a weapon to the player. Only applicable if the framework is esx. If you are using qbcore or another system that sees weapons as an item, use the item type instead.
  • Usage: Amount is the amount of ammo in this case.
  • Example:
    {
    label = "Combat Pistol",
    sort = "weapon",
    name = "weapon_combatpistol",
    amount = 100, -- amount of ammo in this case
    img = "pistol"
    }

Bank​

  • Description: Adds money to the player's bank account.

  • Example:

    {
    label = "15.000$",
    sort = "bank",
    name = "",
    amount = 15000,
    img = "cash"
    }
  • Source Code: Sky.FW.AddAccountMoney in sky_base/config/framework/*.lua

Cash​

  • Description: Adds cash to the player's hand (wallet).

  • Example:

    {
    label = "5.000$",
    sort = "cash",
    name = "",
    amount = 5000,
    img = "cash"
    }
  • Source Code: Sky.FW.AddAccountMoney in sky_base/config/framework/*.lua

Account​

  • Description: Adds money to a specific account type.

  • Example:

    {
    label = "Black Money",
    sort = "account",
    name = "black_money",
    amount = 2000,
    img = "black_money_image"
    }
  • Source Code: Sky.FW.AddAccountMoney in sky_base/config/framework/*.lua

Vehicle​

  • Description: Grants a vehicle to the player.

  • Usage: The reward should specify the vehicle model name and the image name.

  • Example:

    {
    label = "Mercedes-AMG GT 2021",
    sort = "vehicle",
    name = "t20",
    amount = 1,
    img = "car"
    }
  • Source Code: Functions.GiveVehicle in sky_base/config/sv_functions.lua

Coins​

  • Description: Grants coins to the player using the sky_coinsystem.
  • Usage: The reward should specify the amount of coins to be given and the image name.
  • Example:
    {
    label = "10 Coins",
    sort = "coins",
    name = "",
    amount = 10,
    img = "coins"
    }
  • Note: The sky_coinsystem must be started for this reward type to work. If it is not started, an error will be printed.

Custom​

  • Description: Allows for the creation of custom reward types by using the Functions.GiveCustomReward function.

  • Usage: Custom rewards can be created in the sky_base/config/sv_functions.lua file.

  • Example:

    {
    label = "Husky",
    sort = "pet",
    name = "husky_pet",
    amount = 1,
    img = "cute_husky"
    }
  • Code example

    -- default reward table keys = label, sort, name, amount, img
    function Functions.GiveCustomReward(source, reward)
    -- Example code
    if reward.sort == "pet" then
    exports["some_petscript"]:GivePet(source, reward.name, reward.amount)
    end
    end
  • Source Code: Functions.GiveCustomReward in sky_base/config/sv_functions.lua