Skip to main content

Server Core API

The TPNRPServer is the main server-side instance of TPNRP Core.

Class Definition

---@class TPNRPServer
---@field players table<number, SPlayer>
---@field shared table Shared module (exported)
---@field useableItems table<string, function> Useable items registry

Access

local TPNRP = exports['tpnrp-core']:core()

Properties

players

Table containing all active players, indexed by player source.

shared

Reference to the shared module, exported for other resources.

useableItems

Registry of useable items and their callbacks.

Methods

getPlayerBySource(source)

Gets a player by their source identifier.

Parameters:

  • source (number): Player source identifier

Returns:

  • SPlayer | nil: Player entity if found, nil otherwise

Example:

local player = TPNRPServer:getPlayerBySource(source)
if player then
print("Player found: " .. player.playerData.name)
end

getPlayerByLicense(license)

Gets a player by their license identifier.

Parameters:

  • license (string): Player license identifier

Returns:

  • SPlayer | nil: Player entity if found, nil otherwise

Example:

local player = TPNRPServer:getPlayerByLicense(license)
if player then
print("Player found: " .. player.playerData.name)
end

getPlayerByCitizenId(citizenId)

Gets a player by their citizen ID.

Parameters:

  • citizenId (string): Citizen ID

Returns:

  • SPlayer | nil: Player entity if found, nil otherwise

Example:

local player = TPNRPServer:getPlayerByCitizenId("ABC12345")
if player then
print("Player found: " .. player.playerData.name)
end

createCitizenId()

Creates a new unique citizen ID.

Returns:

  • string: New citizen ID (format: ABC12345 - 3 letters, 5 numbers)

Example:

local citizenId = TPNRPServer:createCitizenId()
print("New citizen ID: " .. citizenId)

createUseableItem(itemName, callback)

Registers a useable item with a callback function.

Parameters:

  • itemName (string): Item name to register
  • callback (function): Callback function when item is used
    • callback(source, itemData): Called with player source and item data

Example:

TPNRPServer:createUseableItem('bread', function(source, itemData)
local player = TPNRPServer:getPlayerBySource(source)
if player then
-- Handle item usage
print("Player " .. player.playerData.name .. " used bread")
end
end)

canUseItem(itemName)

Checks if an item is registered as useable.

Parameters:

  • itemName (string): Item name to check

Returns:

  • boolean: True if item is useable, false otherwise

Example:

if TPNRPServer:canUseItem('bread') then
print("Bread is useable")
end

Events

HEvent:PlayerUnloaded

Server event triggered when a player unloads/disconnects.

Parameters:

  • source (number): Player source

Example:

-- Handled automatically by TPNRPServer
-- Automatically calls player:logout() when triggered