Exports
Koja Trucker exposes a stable, documented set of server-side exports so you can integrate it with your own resources.
-- The resource name is "koja-trucker"
local lvl = exports['koja-trucker']:GetLevel(source)
Player progression
GetPlayerData
local data = exports['koja-trucker']:GetPlayerData(ref) --> table | nil
-- { level, exp, skill_points, skill_data, total_deliveries, total_earnings, total_km, ... }
GetLevel / GetXP / GetSkillPoints
local level = exports['koja-trucker']:GetLevel(ref) --> number | nil
local xp = exports['koja-trucker']:GetXP(ref) --> number | nil
local sp = exports['koja-trucker']:GetSkillPoints(ref) --> number | nil
GetSkillLevels
local skills = exports['koja-trucker']:GetSkillLevels(ref) --> { van_root = 1, van_luck = 2, ... }
AddXP
Grants experience, handling level-ups, persistence and the HUD refresh.
local levelsGained = exports['koja-trucker']:AddXP(ref, 500) --> number
AddSkillPoints
exports['koja-trucker']:AddSkillPoints(ref, 2) --> boolean
Mission state
IsOnMission
local busy = exports['koja-trucker']:IsOnMission(source) --> boolean
GetActiveMission
local m = exports['koja-trucker']:GetActiveMission(source)
--> { id, category, from, to, started_at } | nil
IsCurrentOrderIllegal
local illegal = exports['koja-trucker']:IsCurrentOrderIllegal(source) --> boolean
Orders
GetOrders
local orders = exports['koja-trucker']:GetOrders() --> table[]
CreateOrder
Create or update an order. Returns ok, err.
local ok, err = exports['koja-trucker']:CreateOrder({
id = 'my_order',
label = 'Pallets of frozen pizza',
category = 'default', -- default|urgent|dangerous|fragile|illegal|business
required_class = 2, -- 1 van, 2 truck, 3 semi
required_level = 1,
reward = { money = 4500, xp = 300 },
pickup = { road = '...', city = '...', coords = { x, y, z } },
destination = { road = '...', city = '...', coords = { x, y, z } },
})
CreateBusinessOrder
Same as CreateOrder but forces category = "business" and fills sane defaults (class 2, level 1, 2-hour respawn).
exports['koja-trucker']:CreateBusinessOrder({
id = 'vip_electronics',
label = 'VIP Electronics',
reward = { money = 18000, xp = 1200 },
business_reward_min = 16000,
business_reward_max = 20000,
pickup = { ... }, destination = { ... },
})
DeleteOrder
local ok = exports['koja-trucker']:DeleteOrder('my_order') --> boolean
Promo codes
CreatePromoCode / DeletePromoCode
exports['koja-trucker']:CreatePromoCode({
code = 'LAUNCH2X', kind = 'money', multiplier = 2.0,
duration = 3600, max_uses = 0, note = 'Launch event',
})
exports['koja-trucker']:DeletePromoCode('LAUNCH2X')
GrantPromoEffect
Apply a boost directly to a player — no code required. Ideal for Tebex hooks.
-- kind: 'money' | 'xp' | 'sp'
exports['koja-trucker']:GrantPromoEffect(source, 'money', 2.0, 3600)
GetPromoMultiplier
local mult = exports['koja-trucker']:GetPromoMultiplier(ref, 'money') --> number (>= 1.0)
Company
GetPlayerCompany
local c = exports['koja-trucker']:GetPlayerCompany(ref)
--> { id, name, tag, role, level, bank_balance } | nil
IsInCompany
local inCo = exports['koja-trucker']:IsInCompany(ref) --> boolean
Rentals
GetActiveRental
local rental = exports['koja-trucker']:GetActiveRental(ref) --> table | nil