# Exports // Triggers

## EXPORTS Lua code examples for Client Side

```lua
local myjobs = exports["sfjob"]:getMyJobs()
print(myjobs) -- return table e.g: { [1] = { ["name"] = Burger Shot,["workname"] = burgershot,["position"] = 10,} ,[2] = { ["name"] = Bean Machine,["workname"] = beanmachine,["position"] = 10,} ,}
```

```lua
local myjob = exports["sfjob"]:getActiveJob()
print(myjob) -- return string e.g: "farm"
```

```lua
local myjobgrade = exports["sfjob"]:getActiveJobGrade()
print(myjobgrade) -- return number e.g: 0
```

```lua
local job_name = "burgershot"
local id_cash = 1
exports["sfjob"]:cashRegister(job_name, id_cash) -- open cash register for employees and customers
```

```lua
local job_name = "burgershot"
local id_tray = 1
exports["sfjob"]:orderTray(job_name, id_tray) -- open tray for employees and customers
```

```lua
local job_name = "burgershot"
local displayname = "Stash Main"
local id_stash = 1
local places = 50
local weight = 100000
local grade = 1
exports["sfjob"]:openStash(job_name, displayname, id_stash, places, weight, grade) -- Opening the cupboard/fridge with things.
```

```lua
TriggerEvent("nuifix") -- if the NUI breaks.
```

## EXPORTS Lua code examples for Server Side

```lua
local player_jobs = exports["sfjob"]:getJobsFromSource(source)
print(player_jobs) -- return table e.g: { [1] = { ["workname"] = burgershot,["position"] = 10,["name"] = Burger Shot,} ,[2] = { ["workname"] = beanmachine,["position"] = 10,["name"] = Bean Machine,} ,} 
```

```lua
local player_job, player_grade = exports["sfjob"]:getJobFromSource(source)
print(player_job) -- return active job for player
print(player_grade) -- return grade active job for player
```

```lua
local player_id = "char1:00000000000"
local player_job, player_grade = exports["sfjob"]:getJobFromId(player_id)
print(player_job) -- return active job for player
print(player_grade) -- return grade active job for player
```

```lua
local job_name = "unemployed" -- or "burgershot" or anything else. when set to "unemployed", it will exclude you from your current job.
local result = exports["sfjob"]:setActiveJob(job_name, source) -- sets the active job for the player, return true or false
```

```lua
local job_name = "burgershot"
local nameJob = exports["sfjob"]:getJobName(job_name)
print(nameJob) -- return e.g.: "Burger Shot"
```

<pre class="language-lua"><code class="lang-lua">local job_name = "burgershot"
local src_data = 11 -- server id of the player you want to hire
<strong>local result = exports["sfjob"]:addNewJob(source, job_name, src_data) -- hire an employee, if src_data is empty hire yourself
</strong><strong>print(result) -- return true or false(if hiring was unsuccessful)
</strong></code></pre>

<pre class="language-lua"><code class="lang-lua">local job_name = "burgershot"
local id_player = "char1:0000000000" -- the id of the player you want to fire.(not server id)
local new_position = 2 -- e.g.
<strong>exports["sfjob"]:updatePosition(job_name, id_player, new_position) -- change player rank, all fields must be filled. return true or false
</strong></code></pre>

```lua
local job_name = "burgershot"
local id_player = "char1:0000000000" -- the id of the player you want to fire.(not server id)
exports["sfjob"]:dropFromJob(source, job_name, id_player) -- dismiss an employee, if id_player is left blank you will fire yourself. return true or false
```

```lua
local job_name = "police"
local count = exports["sfjob"]:countPlayersInJob(job_name)
print(count) -- returns the number of people actively working
```

```lua
local stash_id = "police-armory"
local add_slots = 50
local add_weight = 100000
exports["sfjob"]:setCustomStash(stash_id, add_slots, add_weight)
```

<pre class="language-lua"><code class="lang-lua">local job_name = "burgershot"
local id_player = "char1:1234567"
<strong>local new_position = 10
</strong>local result = exports["sfjob"]:updatePosition(job_name, id_player, new_position)
print(result) -- return true or false
</code></pre>

```lua
-- increasing the employee limit (current limit + 4)
local job_name = "burgershot"
local what = "maxlimit"
local data = 4 
local result = exports["sfjob"]:changeDataSettingsJob(job_name, what, data)
print(result) -- return true or false

-- saving the purchased/received update for the indicated company
local job_name = "burgershot"
local what = "updates"
local data = 4 -- id update'u
local result = exports["sfjob"]:changeDataSettingsJob(job_name, what, data)
print(result) -- return true or false

-- change in remuneration for a given rank in a given company
local job_name = "burgershot"
local what = "money"
local data = {}
data.position = 10 -- id rank
data.permissions = {} -- data must always be in the table
local result = exports["sfjob"]:changeDataSettingsJob(job_name, what, data)
print(result) -- return true or false

-- adding a product/set for a given company
local job_name = "burgershot"
local what = "addProduct"
local data = {}
data.kit_name = "Big Kit" -- set name or item id
data.kit_price = 100 -- price of the set/product
data.kit_products = {} -- data must always be in the table, if the table is empty, kit_name must contain the item id
local productList = {}
productList.product = "burger"
productList.amount = 1
table.insert(data.kit_products, productList)
local result = exports["sfjob"]:changeDataSettingsJob(job_name, what, data)
print(result) -- return true or false

-- deleting a product/kit for a given company
local job_name = "burgershot"
local what = "removeProduct"
local data = 3 -- product/set id
local result = exports["sfjob"]:changeDataSettingsJob(job_name, what, data)
print(result) -- return true or false
```

```lua
-- receiving the current employee limit from the indicated company
local job_name = "burgershot"
local what = "maxlimit"
local result = exports["sfjob"]:getDataSettingsJob(job_name, what)
print(result) -- return number (e.g.: 6) or false

-- receiving purchased/received upgrades from the indicated company
local job_name = "burgershot"
local what = "updates"
local result = exports["sfjob"]:getDataSettingsJob(job_name, what)
print(result) -- return table or false

-- receiving data of all employees from the indicated company
local job_name = "burgershot"
local what = "jobs_players"
local result = exports["sfjob"]:getDataSettingsJob(job_name, what)
print(result) -- return table or false

-- receiving data of all ranks from the indicated company
local job_name = "burgershot"
local what = "jobs_products"
local result = exports["sfjob"]:getDataSettingsJob(job_name, what)
print(result) -- return table or false

-- receiving information whether the specified company pays remuneration in the bank - if so returns true. 
local job_name = "burgershot"
local what = "withdrawalFromBankInfo"
local result = exports["sfjob"]:getDataSettingsJob(job_name, what)
print(result) -- return true or false

-- receiving information whether the cost of remuneration is covered by the company (return true) or the server (return false)
local job_name = "burgershot"
local what = "withdrawalFromCompanyAccount"
local result = exports["sfjob"]:getDataSettingsJob(job_name, what)
print(result) -- return true or false

-- receiving information about the salary for a particular rank in the company
local job_name = "burgershot"
local what = "money"
local position = 10 
local result = exports["sfjob"]:getDataSettingsJob(job_name, what, position)
print(result) -- return number (e.g.: 100) or false

-- receiving information about the rights of a particular rank in the company
local job_name = "burgershot"
local what = "permissions"
local position = 10
local result = exports["sfjob"]:getDataSettingsJob(job_name, what, position)
print(result) -- return number (e.g.: 100) or false
```

```lua
-- changing player data in the other column. e.g.: you can save the badge number here
local job_name = "burgershot"
local what = "other"
local id_player = "char1:123456789"
local data = {} -- always table with data
local result = exports["sfjob"]:changeDataPlayerJob(job_name, what, id_player, data)
print(result) -- return true or false
```

```lua
-- receiving all player data from the indicated company
local job_name = "burgershot"
local player_id = "char1:123456"
local result = exports["sfjob"]:getDataPlayerJob(job_name, player_id)
print(result) -- return table with data or false
```

```lua
-- paying the player's salary from the indicated company if payment from the bank is disabled
local src = source -- source of the person who pays the bonuses
local job_name = "burgershot"
local player_id = "char1:123456"
local result = exports["sfjob"]:payoutBonus(job_name, player_id, src)
print(result) -- return true or false
```

<pre class="language-lua"><code class="lang-lua"><strong>-- resetting employee working hours for a given company
</strong>local job_name = "burgershot"
local result = exports["sfjob"]:resetTimework(job_name)
print(result) -- return true or false
</code></pre>

<pre class="language-lua"><code class="lang-lua"><strong>-- generating player data from jobs to excel
</strong>local job_name = "burgershot"
local webook = "https://discord.com/api/webhooks/"
local options = { name=true, position=true, worktime=true, worktime_all=true, date_creation=true, unit=true, badge=true, specializations=true, stats=true, }
exports["sfjob"]:generateExcel(job_name, webhook, options)
</code></pre>

<pre class="language-lua"><code class="lang-lua"><strong>-- saving players stats in job
</strong>local source = 1
local job_name = "burgershot"
local type_stats = "cleaning" -- type of statistics
local amount = 1 -- quantity to be added (+1)
exports["sfjob"]:setStats(source, job_name, type_stats, amount)
</code></pre>

Event Handler for collecting paycheck in bank:

```lua
AddEventHandler('sfjob:infoPaycheck', function(source, money, workname)
    print("Player "..source.." received $"..money.." from his job as a "..workname)
end)
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.scriptsfivem.com/resources/sfjob/exports-triggers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
