Skip to main content

Methods

The character object comes with an array of functions used by resources to update the object.

set​

This function is used to set a field in the character object. The collection of fields which exist for a character are delared in the Attributes guide.

server/main.lua
char.set(key --[[string]], value --[[any]]);
-- key: the field to be updated
-- value: the new value assigned to the field

There are a few specific cases where updating a field will trigger additional logic.

  • Updating the money field will trigger a client event, core:setMoneyDisplay with the first parameter true and second parameter the new value.
  • Updating the job field will trigger a client event, core:updateJob and server event, chars:updateJob. The server has an additional parameter source, followed by the new value and old value.
  • Updating the whitelist field will trigger a client event, core:updateWhitelist with the only parameter being the new value.

An example can be seen below.

server/main.lua
RegisterServerEvent("police:clockOn")
AddEventHandler("police:clockOn", function()
local char = exports.px_chars:GetCharacter(source);
local wl = char.get("whitelist");

if wl.police and wl.police > 0 then
char.set("job", "police");
TriggerClientEvent("core:notify", source, "You are now on-duty as police.");
end
end);
danger

We do not recommend using this method to update dynamic table fields such as inventory, as in doing so you could corrupt or invalidate data.

get​

This function is used to return a field from the character object. The collection of fields which exist for a character are delared in the Attributes guide.

server/main.lua
local value --[[any]] = char.get(key --[[string]]);
-- key: the field to return

An example can be seen below.

server/main.lua
RegisterServerEvent("police:checkJob")
AddEventHandler("police:checkJob", function(clientEvent)
local char = exports.px_chars:GetCharacter(source);
TriggerClientEvent(clientEvent, char.get("job") == "police");
end)

givePaycheck​

This function is used to give a paycheck to the character from a business. The paycheck will appear in the character's personal account transaction records when collected.

server/main.lua
char.givePaycheck(amount --[[int]], businessName --[[string]], note --[[string]], noNotify --[[bool]]);
-- amount: the amount of money to give
-- businessName: the name of the business paying
-- note: transaction note
-- noNotify?: whether a notification should **not** be received for the payment

An example can be seen below.

server/main.lua
-- An exploitable event, but shown for demonstration purposes
RegisterServerEvent("tow:impoundVehicle")
AddEventHandler("tow:impoundVehicle", function()
local char = exports.px_chars:GetCharacter(source);
char.givePaycheck(500, "state", "LSPD Auto Impound", false);
end)

giveMoney​

This function is used to give the character money.

server/main.lua
char.giveMoney(amount --[[int]]);
-- amount: the amount of money to give

removeMoney​

This function is used to remove money from the character.

server/main.lua
char.removeMoney(amount --[[int]]);
-- amount: amount of money to remove

getBankAccount​

This function is used to return the bank account object assigned to the character's personal account.

server/main.lua
local bankAccount --[[object]] = char.getBankAccount();

giveCrypto​

This function is used to give crypto to the character.

server/main.lua
char.giveCrypto(amount --[[int]]);
-- amount: amount of crypto to give

removeCrypto​

This function is used to give remove crypto from the character.

server/main.lua
char.removeCrypto(amount --[[int]]);
-- amount: amount of crypto to remove

getName​

This function is used to return the concatenated first and last name of the character.

server/main.lua
local name --[[string]] = char.getName();

getFullName​

This function is used to return the concatenated full name of the character.

server/main.lua
local fullName --[[string]] = char.getFullName();

getWeapons​

This function is used to return an array of weapon items in the characters inventory.

server/main.lua
local weapons --[[table]] = char.getWeapons();

removeWeapons​

This function is used to remove an weapon items from the character.

server/main.lua
char.removeWeapons();

getLicenses​

This function is used to return an array of character licenses.

server/main.lua
local licenses --[[table]] = char.getLicenses();

hasLicense​

This function will return whether the character has the specific license.

server/main.lua
local hasLicense --[[bool]] = char.hasLicense(type --[[string]]);
-- type: the license type to check for

hasItem​

This function will return whether the character has an item.

server/main.lua
local hasItem --[[bool]] = char.hasItem(item --[[string/table]], quantity --[[int]]);
-- item: the item to check for
-- quantity?: the quantity to check for

canHoldItem​

This function will return whether the character can hold an item.

server/main.lua
local canHoldItem --[[bool]] = char.canHoldItem(item --[[string]], quantity --[[int]]);
-- item: the item to check for
-- quantity?: the quantity to check for

getItem​

This function will return the item the character has by its name.

server/main.lua
local item --[[table]] = char.getItem(name --[[string]]);
-- name: the item name to find

getItemByIndex​

This function will return the item in the specified inventory index.

server/main.lua
local item --[[table]] = char.getItemByIndex(index --[[int]]);
-- index: the index location in the inventory (starting at 0)

getItemWithField​

This function will return the item the character has by its field.

server/main.lua
local item --[[table]] = char.getItemWithField(key --[[string]], value --[[any]]);
-- key: the field name
-- value: the field value

giveItem​

This function will give the item to the character at the next available index. It will return the item inventory index if successful, or a boolean flag otherwise.

server/main.lua
local retval --[[bool/string]] = char.giveItem(name --[[string]], quantity --[[int]]);
-- name: the item name to give
-- quantity?: the amount to give

putItemInSlot​

This function will place the item in the given inventory index.

server/main.lua
char.putItemInSlot(item --[[table]], slot --[[int]], quantity --[[int]], cb --[[function]]);
-- item: the item to place into the index
-- slot: the index to place the item into
-- quantity?: the number of items to place into the index
-- cb: a callback function cb(success: bool)

removeItem​

This function will remove the item from the characters inventory.

server/main.lua
char.removeItem(item --[[table/string]], quantity --[[int]], index --[[int]]);
-- item: the item to remove
-- quantity?: the amount to remove (-1 for all)
-- index?: the inventory index to remove at

removeItemWithField​

This function will remove the item from the characters inventory with a specified field value.

server/main.lua
char.removeItemWithField(key --[[string]], value --[[any]]);
-- key: the field to search for
-- value: the field value of item to remove

removeAllItems​

This function will remove all the items from the characters inventory.

server/main.lua
char.removeAllItems();

removeItemByIndex​

This function will remove the item from the characters inventory by index only.

server/main.lua
char.removeItemByIndex(index --[[int]], quantity --[[int]]);
-- index: the index to remove from
-- quantity?: the quantity to remove (-1 for all)

modifyItem​

This function will modify an item field.

server/main.lua
char.modifyItem(item --[[string/table]], key --[[string]], value --[[any]], index --[[int]]);
-- item: the item to modify
-- key: the field name to modify
-- value: the new field value
-- index?: override item param and modify the specified index directly

modifyItemDurability​

This function will modify the durability of an item.

server/main.lua
char.modifyItemDurability(index --[[int]], change --[[int]]);
-- index: the item inventory index to modify
-- change: the change in item durability in seconds, e.g. -60000 to remove 60000 seconds

moveItemSlots​

This function will move an item from the specified inventory index to a new one.

server/main.lua
char.moveItemSlots(fromIndex --[[int]], toIndex --[[int]], quantity --[[int]]);
-- fromIndex: the item index to move from
-- toIndex: the item index to move to
-- quantity?: the amount to move

recountWeight​

This function will recount character inventory weight.

server/main.lua
char.recountWeight();

setMaxInventoryWeight​

This function will temporarily override the default maximum inventory weight for the character.

server/main.lua
char.setMaxInventoryWeight(maxWeight --[[int]]);
-- maxWeight: the new maximum weight