Koja Scripts
KOJA-LIB

Custom Framework

If you run a framework other than ESX or QBCore, set Config.Framework = "custom" and fill in the stub files.

Custom Framework

If you run a framework other than ESX or QBCore, set Config.Framework = "custom" and fill in the stub files.


Setup

-- editable/shared/config.lua
Config.Framework = "custom"

Two stub files are then loaded automatically:

FileSide
editable/custom/framework_server.luaServer
editable/custom/framework_client.luaClient

Server Stubs

Open editable/custom/framework_server.lua and implement each function:

CustomFramework.Server = {}

-- Return a table of online player server IDs.
CustomFramework.Server.GetPlayers = function()
    return {}
end

-- Return the player object for the given source, or nil.
CustomFramework.Server.GetPlayer = function(src)
    return nil
end

-- Return the unique character/player identifier string.
CustomFramework.Server.GetIdentifier = function(src)
    return nil
end

-- Return the display name of the player.
CustomFramework.Server.GetPlayerName = function(src)
    return 'Unknown'
end

-- Return the job name and grade level.
-- @return string|nil, number
CustomFramework.Server.GetPlayerJob = function(src)
    return nil, 0
end

-- Return the permission group of the player (e.g. "admin", "user").
CustomFramework.Server.GetPlayerGroup = function(src)
    return nil
end

-- Return the money amount for the given type ("cash", "bank", "black").
CustomFramework.Server.GetMoney = function(src, mtype)
    return 0
end

-- Add money. Return true on success.
CustomFramework.Server.AddMoney = function(src, amount, mtype, reason)
    return false
end

-- Remove money. Return true on success.
CustomFramework.Server.RemoveMoney = function(src, amount, mtype, reason)
    return false
end

Client Stubs

Open editable/custom/framework_client.lua and implement each function:

CustomFramework.Client = {}

-- Return the local player's data table.
CustomFramework.Client.GetPlayerData = function()
    return {}
end

-- Return the local player's job name.
CustomFramework.Client.GetPlayerJob = function()
    return nil
end

-- Return the local player's job label.
CustomFramework.Client.GetPlayerJobLabel = function()
    return nil
end

Example (OX Core)

-- framework_server.lua
CustomFramework.Server.GetPlayer = function(src)
    return Ox.GetPlayer(src)
end

CustomFramework.Server.GetIdentifier = function(src)
    local p = Ox.GetPlayer(src)
    return p and tostring(p.charId) or nil
end

CustomFramework.Server.GetPlayerJob = function(src)
    local p = Ox.GetPlayer(src)
    if not p then return nil, 0 end
    local job = p.get('job')
    return job and job.name, job and job.grade or 0
end
  • Overview — koja-lib abstracts the differences between ESX and QBCore so your scripts work on both without any changes.
  • Frameworks — back to the section overview