Server

All server exports and events that script provides for developers.

Unjail

  • Unjail target user if he is prisoner.

  • Side: server

  • Type: export

  • Usage:

local playerId = 1

exports['rcore_prison']:Unjail(playerId)

-- Note: If you want to unjail user without being teleported in front of prison, useful for other resources that for prison break(s).

exports['rcore_prison']:Unjail(playerId, {
    skipTeleport = true
})

IsPrisoner

  • Returns true/false if player is prisoner

  • Side: client

  • Type: export

  • Usage:

local playerId = 1
local state, statusCode = exports.rcore_prison:IsPrisoner(playerId)

if state then
    print('User is in prison.')
else
    print('User is not prisoner.)
end

Jail

  • Jail target user if he is not prisoner.

  • Side: server

  • Type: export

  • Usage:

local playerId = 1 -- playerId
local jailTime = 5 -- 5 minutes
local jailReason = 'multiple felonies' -- jailReason is optional, not needed

exports['rcore_prison']:Jail(playerId, jailTime, jailReason)

GetPrisonerdata

  • Returns table of cached user prisoner data, if he is prisoner with statusCode

  • Side: server

  • Type: export

  • Usage:

local playerId = 1
local data, statusCode = exports.rcore_prison:GetPrisonerData(playerId)

--- {

--- serverId: int,
--- officerName: string,
--- owner: string,
--- state: string,
--- jail_time: float,
--- accountId: number,
--- prisonerName: string, 

--- }: table

if data and next(data) and statusCode == 'PLAYER_PRISONER_DATA_EXIST' then
    local serverId = data.serverId -- Prisoner playerId
    local officerName = data.officerName -- Who jailed this prisoner
    local state = data.state -- jailType: ['jailed', 'cs]
    local jail_time = data.jail_time -- jailTime
    local accountId = data.accountId -- Prison account ID if exist
    local prisonerName = data.prisonerName -- Prisoner name
end

¨

GetPrisonerAccount

  • Returns table of cached user prisoner account data if data exist for target user with statusCode response.

  • Side: server

  • Type: export

  • Usage:

local playerId = 1
local data, statusCode = exports.rcore_prison:GetPrisonerAccount(playerId)

--- {

--- account_id: int,
--- owner: string,
--- giftState: number,
--- balance: number,

--- }: table

if data and next(data) and statusCode == 'PLAYER_PRISONER_ACCOUNT_DATA_EXIST' then
    local account_id = data.account_id -- Account id
    local owner = data.owner -- Account owner (charId)
    local giftState = data.giftState -- number: [1 = true, 2 = false]
    local balance = data.balance -- Account credit balance
end

EditPrisonerSentence

  • You can use this export to modify the prisoner sentence from your script.

  • Side: server

  • Type: export

  • Usage:

local playerId = 1 -- Target player
local sentenceTime = 30 -- By default this is 30 minutes.
local sentenceState, sentenceStatusCode = exports.rcore_prison:EditPrisonerSentence({
    serverId = playerId,
    time = sentenceTime,
    reduceType = 'total' -- Only add total if you want to override prisoner sentence, remove it if you want to reduce his sentence.
})

if sentenceState then
    print('User sentence was updated')
end

EditPrisonerAccountCredits

  • You can use this export to modify the prisoner account credits from your script.

  • Side: server

  • Type: export

  • Usage:

local playerId = 1 -- Target player
local reward = math.random(300, 800) -- The random amount between 300 <-> 800 which user receive on his account if action is type.
local state, statusCode = exports.rcore_prison:EditPrisonerAccountCredits({
    serverId = playerId,
    amount = reward,
    action = 'add' -- ['add', 'remove']
})


if state then
    print('Prisoner account was updated')
end

rcore_prison:prisonerState

  • Used for monitoring actions inside prison, which are being called to this event.

  • Side: server

  • Type: event

  • Usage:


--- {
--- state = string, -- ['jailed, 'cs']
--- serverId = number, -- playerId
--- charId = number/string, -- Player characterId
--- userName = string, -- Player username
--- prisoner = {
---     name = string, -- Prisoner name (IC)
---     prisonerId = number, -- Prisoner unique ID
---     jailTime = number, -- Prisoner jail time
---    jailReason = string, -- Prisoner jail reason
---     cellId = number, -- Prisoner cell ID
--- }
--- }: table


AddEventHandler('rcore_prison:prisonerState', function(data)
    local data = data
    local state = data and data.state or nil

    if state == 'released' then
    elseif state == 'jailed' then
        local jobName = fetchJobFreeActivities()

        if jobName then
            Bridge.Notify(data.serverId, {
                title = l('WARDEN_TITLE'),
                subtitle = l('PRISON_TITLE'),
                description = 'There is free job to do [' .. jobName .. ']',
                position = 'top',
                lenght = 4000,
                style = {
                    backgroundColor = '#141517',
                    color = '#909296'
                }
            })
        end
    end
end)

Last updated