MetaDen Skills API Reference
Client exports
exports['metaden-skills']:GetNonce()
- Returns:
string|nil
exports['metaden-skills']:RequestNonce()
- Triggers server nonce generation.
- Returns:
string|nil(may be stale untilmetaden-skills:noncearrives).
Server exports
For sourceOrIdentifier, accepted forms are:
number(player source)string(resolved identifier/citizenid)
When a number source is used and nonce protection is enabled, a valid nonce is required unless Config.Security.AllowServerMissingNonce = true.
XP and levels
exports['metaden-skills']:AddExperience(sourceOrIdentifier, skill, amount, nonce)
- Adds XP (
amount > 0). - Returns:
number|nil(new XP)
exports['metaden-skills']:RemoveExperience(sourceOrIdentifier, skill, amount, nonce)
- Removes XP (
amount > 0). - Returns:
number|nil(new XP)
exports['metaden-skills']:SetExperience(sourceOrIdentifier, skill, amount, nonce)
- Sets XP directly (clamped to
>= 0). - Returns:
number|nil(new XP)
exports['metaden-skills']:GetExperience(sourceOrIdentifier, skill, nonce)
- Returns XP for a skill.
- Returns:
number|nil
exports['metaden-skills']:GetTotalExperience(sourceOrIdentifier, nonce)
- Returns total cached XP across all skills.
- Returns:
number|nil
exports['metaden-skills']:GetAllReputation()
- Returns leaderboard-like totals sorted descending.
- Returns:
table[]as{ identifier = string, total = number }
exports['metaden-skills']:GetPlayerLevel(experience)
- Converts raw XP to level info.
- Returns:
level:number, nextLevelExp:number
Milestones payload exports
exports['metaden-skills']:GetMilestonesLevels(sourceOrIdentifier)
- Returns levels payload from bridge config/hooks.
exports['metaden-skills']:GetMilestonesReputation(sourceOrIdentifier)
- Returns reputation payload from bridge config/hooks.
exports['metaden-skills']:GetMilestonesData(sourceOrIdentifier)
- Returns:
{ levels = table, reputation = table }
Mission/reputation exports
exports['metaden-skills']:GetAllReputationsForPlayer(playerSourceOrPlayer)
- Returns merged reputation table for a player.
exports['metaden-skills']:CompleteMission(playerSource, missionId)
- Completes an active mission when requirements are satisfied.
- Returns:
boolean success, string message
exports['metaden-skills']:SetMissionForPlayer(target, missionId)
- Assigns or re-activates a mission.
- Returns:
boolean success, string message
exports['metaden-skills']:AssignMissionToPlayer(target, missionId)
- Alias of
SetMissionForPlayer. - Returns:
boolean success, string message
Events and RPC
Client -> server events
metaden-skills:requestNonce
- Generates/stores a nonce for the calling player.
metaden-skills:getExperience(skill, nonce)
- Requests single-skill payload push to client.
metaden-skills:server:SetMissionForPlayer(target, missionId)
- Assigns/re-activates a mission for a target.
metaden-skills:server:IncreaseRep(category, amount, passedSource, system)
- Public integration event for reputation/skill increments.
metaden-skills:server:rpc:request(requestId, name, args)
- Internal RPC bus used by milestones UI callbacks.
Server -> client events
metaden-skills:nonce(nonce)
- Nonce response event.
metaden-skills:experience(data)
- XP payload event.
- Payload:
lua
{
identifier = string,
skill = string,
experience = number,
level = number,
nextLevelExp = number
}metaden-skills:client:rpc:response(requestId, payload)
- RPC response for client-side request promises.
Registered RPC handlers (name)
metadenSkills:server:getPlayerTaskstaskApp:server:getPlayerReputationtaskApp:server:getPlayerLevelsmetaden-skills:server:completeMission
NUI callback contract
Callbacks are registered in client/milestones.lua and consumed by the React app.
getPlayerTasks
- Request body:
{} - Response:
Mission[]
getPlayerReputation
- Request body:
{} - Response:
table
getPlayerLevels
- Request body:
{} - Response:
table
setMissionWaypoint
- Request body:
{ x: number, y: number } - Response: empty/ack
completeMission
- Request body:
{ missionId: string } - Response:
{ success: boolean, message?: string }
closeMilestones
- Request body:
{} - Response:
{ ok: true }
Commands and permissions
XP command
/<Config.AdminCommand.Name> add|remove|set <skill> <amount> <playerId|citizenid>
Examples:
text
/skillexp add fishing 100 23
/skillexp set cooking 1500 CITIZEN123Mission assignment command
/<Config.MissionSystem.AdminAssignCommandName> <missionId> <playerId|identifier(optional)>
Examples:
text
/missionassign gather_wood 23
/missionassign collect_rocks license:xxxxxxxxxxxxxxxxIf target is omitted, the caller is used.
Standalone milestones command
/<Config.MilestonesUi.StandaloneCommandName>
Disable if needed:
lua
Config.MilestonesUi = {
EnableStandaloneCommand = false,
StandaloneCommandName = 'milestones'
}