Browse docs

Players & Members

Reference for Players & Members in sky_jobs_base.

All server exports

Players & Members

These exports let external resources (admin menus, whitelist systems, other job scripts) manage job members without going through the boss menu.

getPlayerJobInfo(playerId)

  • Purpose: Returns the cached job state of an online player in one call.
  • Arguments:
    • playerId (number) — the server ID of the player. Required.
  • Returns: table | nil — { job, grade, gradeLabel, onDuty }, or nil if the player is not loaded.
local info = exports["sky_jobs_base"]:getPlayerJobInfo(playerId)

if info then
    print(("%s — grade %d (%s), on duty: %s"):format(info.job, info.grade, info.gradeLabel, tostring(info.onDuty)))
end

setJobMember(jobName, playerOrIdentifier, grade)

  • Purpose: Hires a player into a job or changes the grade of an existing member. Works for online players (server ID) and offline players (identifier). Updates the framework job, the player cache, and notifies open boss menus.
  • Arguments:
    • jobName (string) — the job name. Required.
    • playerOrIdentifier (number | string) — server ID or framework identifier. Required.
    • grade (number?) — target grade. Defaults to the job's lowest grade (hire).
  • Returns:
    • boolean — true on success.
    • string? — error message on failure (e.g. "Invalid grade").
-- Hire an online player at the default grade
local ok, err = exports["sky_jobs_base"]:setJobMember("ambulance", playerId)

-- Promote an offline player to grade 2
local ok, err = exports["sky_jobs_base"]:setJobMember("ambulance", "license:abc123", 2)

removeJobMember(jobName, playerOrIdentifier)

  • Purpose: Fires a member from a job. Sets the player to unemployed, ends their duty, and removes their member stats. Works for online and offline players.
  • Arguments:
    • jobName (string) — the job name. Required.
    • playerOrIdentifier (number | string) — server ID or framework identifier. Required.
  • Returns:
    • boolean — true on success.
    • string? — error message on failure.
local ok, err = exports["sky_jobs_base"]:removeJobMember("ambulance", "license:abc123")

getJobMembers(jobName)

  • Purpose: Returns all members of a job (online and offline) with their boss-menu stats.
  • Arguments:
    • jobName (string) — the job name. Required.
  • Returns: table[] — array of member entries.

Member Entry Structure

FieldTypeDescription
identifierstringFramework identifier
licensestringStored license identifier
namestringCharacter name
gradenumberJob grade
grade_labelstringGrade label
ondutybooleanCurrent duty state
last_online_timestampnumberUnix timestamp of last online
total_work_time_secondsnumberAccumulated on-duty time
actions_donenumberJob action counter
image_urlstring?Member image if set
local members = exports["sky_jobs_base"]:getJobMembers("ambulance")

for _, member in ipairs(members) do
    print(member.name, member.grade_label, member.onduty)
end