Server Exports

This document contains all server-side exports available in Framework Core.


Reputation System

Functions for managing player reputation.

AddReputation

Set the reputation value for a player. Will initialize at a value of 0 if it doesn't exist. If a negative value is passed, it will subtract from the current reputation instead of setting it to a negative value.

Parameters

Parameter
Required
Type
Description

repType

Yes

String

The reputation type to set (e.g., "crafting", "crime", "civ")

value

Yes

Number

The value to set. If negative, subtracts from current reputation

Returns

Type
Description

Boolean

Returns true if successful, false if player is offline or invalid parameters

Examples

set_reputation.lua
-- Get player
local player = exports.core:GetPlayer(source)
-- Set reputation to 50
player.Functions.AddReputation("crafting", 50)

-- Subtract 50 from current reputation (if current is 100, becomes 50)
player.Functions.AddReputation("crafting", -50)

-- Set to max (respects max value from config)
player.Functions.AddReputation("crafting", 9999)


-- Checking Rep Example

local function getRep(src, type)
    local Player = exports.core:GetPlayer(src)
    if not Player then return 0 end
    
    local repData = Player.Functions.CheckRep(type)
    if repData then
        return repData.value or 0
    end
    return 0
end

local function checkingrep(src)
    local crimeRep = getRep(src, 'crime')

    if crimeRep == 50 then
        print("has rep")
    else
        print("no")
    end
end

Notes

  • Player must be online for this function to work

  • Reputation values are clamped between 0 and the max value defined in core/config/server.lua

  • If reputation type doesn't exist in config, function returns false

  • Negative values subtract from current reputation (won't go below 0)

  • Automatically triggers UI update notification for the player


Player Management

Functions for getting and managing player objects.

GetPlayer

Get a player object by source or identifier.

Parameter

Parameter
Required
Type
Description

source

Yes

Source/String

Player source ID or identifier string

Returns

Type
Description

Player

Player object, or nil if not found

get_player.lua
local player = exports.core:GetPlayer(source)
local player2 = exports.core:GetPlayer('license:abc123')

GetPlayerByCitizenId

Get a player object by citizenid.

Parameter

Parameter
Required
Type
Description

citizenid

Yes

String

Player's citizenid

Returns

Type
Description

Player

Player object, or nil if not found

get_player_by_citizenid.lua
local player = exports.core:GetPlayerByCitizenId('ABC12345')

GetPlayerByUserId

Get a player object by userId.

Parameter

Parameter
Required
Type
Description

userId

Yes

String

Player's userId

Returns

Type
Description

Player

Player object, or nil if not found

get_player_by_userid.lua
local player = exports.core:GetPlayerByUserId('12345')

GetPlayerByPhone

Get a player object by phone number.

Parameter

Parameter
Required
Type
Description

number

Yes

String

Phone number

Returns

Type
Description

Player

Player object, or nil if not found

get_player_by_phone.lua
local player = exports.core:GetPlayerByPhone('555-1234')

GetSource

Get player source ID by identifier.

Parameter

Parameter
Required
Type
Description

identifier

Yes

String

Player identifier (steam, license, etc.)

Returns

Type
Description

Number

Player source ID, or 0 if not found

get_source.lua
local src = exports.core:GetSource('license:abc123')

GetUserId

Get player userId by identifier.

Parameter

Parameter
Required
Type
Description

identifier

Yes

String

Player identifier

Returns

Type
Description

Number

Player userId, or 0 if not found

get_userid.lua
local userId = exports.core:GetUserId('license:abc123')

GetQBPlayers

Get all online players.

Returns

Type
Description

Table

Table of all online players (source -> Player object)

get_qbplayers.lua
local players = exports.core:GetQBPlayers()

GetPlayersData

Get player data for all online players.

Returns

Type
Description

Table

Array of PlayerData objects

get_players_data.lua
local playersData = exports.core:GetPlayersData()

SearchPlayers

Search for players by filters.

Parameter

Parameter
Required
Type
Description

filters

Yes

Table

Search filters

Returns

Type
Description

Table

Array of Player objects (online and offline)

search_players.lua
local players = exports.core:SearchPlayers({
    citizenid = 'ABC12345'
})

Job & Group Functions

Functions for checking jobs, groups, and duty counts.

GetDutyCountJob

Get count and list of on-duty players for a specific job.

Parameter

Parameter
Required
Type
Description

job

Yes

String

Job name

Returns

Type
Description

Number

Count of on-duty players

Table

Array of player source IDs

get_duty_count_job.lua
local count, players = exports.core:GetDutyCountJob('police')

GetDutyCountType

Get count and list of on-duty players for a specific job type.

Parameter

Parameter
Required
Type
Description

type

Yes

String

Job type

Returns

Type
Description

Number

Count of on-duty players

Table

Array of player source IDs

get_duty_count_type.lua
local count, players = exports.core:GetDutyCountType('leo')

HasPrimaryGroup (Server)

Check if a player has the specified group as their primary job/gang.

Parameters

Parameter
Required
Type
Description

source

Yes

Source

Player source ID

filter

Yes

String/Table

Group name(s) or table of groups with grades

Returns

Type
Description

Boolean

Returns true if player has the primary group

has_primary_group.lua
local hasPrimary = exports.core:HasPrimaryGroup(source, 'police')

HasGroup (Server)

Check if a player has any of the specified groups.

Parameters

Parameter
Required
Type
Description

source

Yes

Source

Player source ID

filter

Yes

String/Table

Group name(s) or table of groups with grades

Returns

Type
Description

Boolean

Returns true if player has any of the groups

has_group.lua
local hasGroup = exports.core:HasGroup(source, 'police')

GetGroups (Server)

Get all groups (jobs, gangs) a player has.

Parameter

Parameter
Required
Type
Description

source

Yes

Source

Player source ID

Returns

Type
Description

Table

Table of groups with their grades

get_groups.lua
local groups = exports.core:GetGroups(source)

IsGradeBoss

Check if a specific grade is a boss grade for a group.

Parameters

Parameter
Required
Type
Description

group

Yes

String

Group name (job or gang)

grade

Yes

Number

Grade level

Returns

Type
Description

Boolean

Returns true if grade is boss, nil if group/grade doesn't exist

is_grade_boss.lua
local isBoss = exports.core:IsGradeBoss('police', 4)

GetGroupMembers

Get all members of a group.

Parameters

Parameter
Required
Type
Description

group

Yes

String

Group name

type

Yes

String

Group type ('job' or 'gang')

Returns

Type
Description

Table

Array of group member data

get_group_members.lua
local members = exports.core:GetGroupMembers('police', 'job')

GetHighestRank

Get the highest rank/grade for a job.

Parameter

Parameter
Required
Type
Description

jobName

Yes

String

Job name

Returns

Type
Description

Number

Highest grade level, or nil if job doesn't exist

get_highest_rank.lua
local highestRank = exports.core:GetHighestRank('police')

Routing Bucket Functions

Functions for managing routing buckets on the server.

GetBucketObjects

Get routing bucket objects.

Returns

Type
Description

Table

Player buckets table

Table

Entity buckets table

get_bucket_objects.lua
local playerBuckets, entityBuckets = exports.core:GetBucketObjects()

SetPlayerBucket

Set a player's routing bucket.

Parameters

Parameter
Required
Type
Description

source

Yes

Source

Player source ID

bucket

Yes

Number

Bucket ID

Returns

Type
Description

Boolean

Returns true if successful

set_player_bucket.lua
exports.core:SetPlayerBucket(source, 5)

SetEntityBucket

Set an entity's routing bucket.

Parameters

Parameter
Required
Type
Description

entity

Yes

Number

Entity handle

bucket

Yes

Number

Bucket ID

Returns

Type
Description

Boolean

Returns true if successful

set_entity_bucket.lua
exports.core:SetEntityBucket(vehicle, 5)

GetPlayersInBucket (Server)

Get all players in a routing bucket.

Parameter

Parameter
Required
Type
Description

bucket

Yes

Number

Bucket ID

Returns

Type
Description

Table

Array of player source IDs, or false if no buckets exist

get_players_in_bucket.lua
local players = exports.core:GetPlayersInBucket(5)

GetEntitiesInBucket

Get all entities in a routing bucket.

Parameter

Parameter
Required
Type
Description

bucket

Yes

Number

Bucket ID

Returns

Type
Description

Table

Array of entity handles, or false if no buckets exist

get_entities_in_bucket.lua
local entities = exports.core:GetEntitiesInBucket(5)

Item Functions

Functions for registering and managing useable items.

CreateUseableItem

Register a useable item callback.

Parameters

Parameter
Required
Type
Description

item

Yes

String

Item name

data

Yes

Function

Callback function (source, item)

create_useable_item.lua
exports.core:CreateUseableItem('bread', function(source, item)
    local Player = exports.core:GetPlayer(source)
    -- Use item logic
end)

CanUseItem

Check if an item is useable.

Parameter

Parameter
Required
Type
Description

item

Yes

String

Item name

Returns

Type
Description

Function

Callback function if useable, or nil

can_use_item.lua
local useable = exports.core:CanUseItem('bread')

Vehicle Functions

Functions for managing vehicles.

DeleteVehicle

Delete a vehicle safely (disables persistence first).

Parameter

Parameter
Required
Type
Description

vehicle

Yes

Number

Vehicle entity handle

delete_vehicle.lua
exports.core:DeleteVehicle(vehicle)

Permission Functions

Functions for checking permissions and whitelist status.

IsWhitelisted

Check if a player is whitelisted.

Parameter

Parameter
Required
Type
Description

source

Yes

Source

Player source ID

Returns

Type
Description

Boolean

Returns true if whitelisted or whitelist disabled

is_whitelisted.lua
local whitelisted = exports.core:IsWhitelisted(source)

AddPermission (Deprecated)

Add a permission to a player (deprecated - use ACEs instead).

Parameters

Parameter
Required
Type
Description

source

Yes

Source

Player source ID

permission

Yes

String

Permission name

add_permission.lua
exports.core:AddPermission(source, 'admin')

RemovePermission (Deprecated)

Remove a permission from a player (deprecated - use ACEs instead).

Parameters

Parameter
Required
Type
Description

source

Yes

Source

Player source ID

permission

No

String

Permission name (if nil, removes all permissions)

remove_permission.lua
exports.core:RemovePermission(source, 'admin')

HasPermission (Deprecated)

Check if a player has a permission (deprecated - use IsPlayerAceAllowed instead).

Parameters

Parameter
Required
Type
Description

source

Yes

Source

Player source ID

permission

Yes

String/String[]

Permission name(s)

Returns

Type
Description

Boolean

Returns true if player has permission

has_permission.lua
local hasPerm = exports.core:HasPermission(source, 'admin')

GetPermission (Deprecated)

Get all permissions for a player (deprecated - use ACEs instead).

Parameter

Parameter
Required
Type
Description

source

Yes

Source

Player source ID

Returns

Type
Description

Table

Table of permissions (permission -> true)

get_permission.lua
local perms = exports.core:GetPermission(source)

Admin Functions

Admin-related functions for managing players and server administration.

IsOptin

Check if a player is opted in to admin reports.

Parameter

Parameter
Required
Type
Description

source

Yes

Source

Player source ID

Returns

Type
Description

Boolean

Returns true if opted in and is admin

is_optin.lua
local optedIn = exports.core:IsOptin(source)

ToggleOptin

Toggle a player's opt-in status for admin reports.

Parameter

Parameter
Required
Type
Description

source

Yes

Source

Player source ID

toggle_optin.lua
exports.core:ToggleOptin(source)

IsPlayerBanned

Check if a player is banned.

Parameter

Parameter
Required
Type
Description

source

Yes

Source

Player source ID

Returns

Type
Description

Boolean

Returns true if player is banned

String

Ban message (if banned)

is_player_banned.lua
local banned, message = exports.core:IsPlayerBanned(source)
if banned then
    print(message)
end

ExploitBan

Ban a player for exploiting.

Parameters

Parameter
Required
Type
Description

playerId

Yes

Source

Player source ID

origin

Yes

String

Ban reason/origin

exploit_ban.lua
exports.core:ExploitBan(source, 'Cheat detected')

GetCoreVersion

Get the core framework version.

Parameter

Parameter
Required
Type
Description

InvokingResource

No

String

Resource name calling this (for logging)

Returns

Type
Description

String

Framework version

get_core_version.lua
local version = exports.core:GetCoreVersion('my_resource')

Notification Functions (Server)

Functions for sending notifications to players from server-side.

Notify (Server)

Send a notification to a player from server-side.

Parameters

Parameter
Required
Type
Description

source

Yes

Source

Player source ID

text

Yes

String/Table

Notification text or table

notifyType

No

String

Notification type ('info', 'success', 'error', 'warning')

duration

No

Number

Duration in milliseconds

subTitle

No

String

Subtitle text

notifyPosition

No

String

Position on screen

notifyStyle

No

Table

Custom styling

notifyIcon

No

String

Font Awesome icon

notifyIconColor

No

String

Icon color

notify.lua
exports.core:Notify(source, 'Hello World!', 'info', 5000)
exports.core:Notify(source, {
    text = 'Success!',
    caption = 'Operation completed'
}, 'success', 3000)

Last updated