Skills API

Access skill levels, experience, boosts, and skill information.

Functions

current_level

skills:current_level(skill: string|number) -> number

Gets current level with boosts/drains applied.

Parameters:

ParameterTypeRequiredDescription
skillanyYes- Skill name (string) or index (0-22)

Returns:

  • number - Current level (boosted or drained)

Example:

local attack = skills:current_level("Attack")
local defence = skills:current_level(1)  -- Using index
logger:info("Attack: " .. attack)

real_level

skills:real_level(skill: string|number) -> number

Gets base level without boosts/drains.

Parameters:

ParameterTypeRequiredDescription
skillanyYes- Skill name or index

Returns:

  • number - Base level

experience

skills:experience(skill: string|number) -> number

Gets experience points for the skill.

Parameters:

ParameterTypeRequiredDescription
skillanyYes- Skill name or index

Returns:

  • number - Experience points

total_level

skills:total_level() -> number

Gets total level across all skills.

Returns:

  • number - Sum of all skill levels

total_experience

skills:total_experience() -> number

Gets total experience across all skills.

Returns:

  • number - Sum of all experience

combat_level

skills:combat_level() -> number

Gets combat level.

Returns:

  • number - Combat level (3-138)

is_boosted

skills:is_boosted(skill: string|number) -> boolean

Checks if skill is boosted above base level.

Parameters:

ParameterTypeRequiredDescription
skillanyYes- Skill name or index

Returns:

  • boolean - True if boosted

is_drained

skills:is_drained(skill: string|number) -> boolean

Checks if skill is drained below base level.

Parameters:

ParameterTypeRequiredDescription
skillanyYes- Skill name or index

Returns:

  • boolean - True if drained

boost_amount

skills:boost_amount(skill: string|number) -> number

Gets boost/drain amount (positive or negative).

Parameters:

ParameterTypeRequiredDescription
skillanyYes- Skill name or index

Returns:

  • number - Boost amount

get_all

skills:get_all() -> table

Gets all skills with detailed information.

Returns:

  • table - Array of SkillInfo objects

Common Patterns

Monitoring Key Skills

local function monitor_skills()
    logger:info("=== Skills ===")
    logger:info("Attack: " .. skills:current_level("Attack"))
    logger:info("Defence: " .. skills:current_level("Defence"))
    logger:info("Strength: " .. skills:current_level("Strength"))
    logger:info("HP: " .. skills:current_level("Hitpoints"))
    logger:info("Magic: " .. skills:current_level("Magic"))
    logger:info("Total: " .. skills:total_level())
    logger:info("=============")
end

monitor_skills()

Checking Boosts

local function check_boosts()
    local boosted = {}
    
    local all = skills:get_all()
    for _, skill_info in ipairs(all) do
        if skill_info.boosted then
            table.insert(boosted, skill_info.name)
        end
    end
    
    if #boosted > 0 then
        logger:info("Boosted skills: " .. table.concat(boosted, ", "))
    end
end

check_boosts()

Training Progress

local function show_training_progress(skill_name)
    local xp = skills:experience(skill_name)
    local level = skills:current_level(skill_name)
    local base = skills:real_level(skill_name)
    
    logger:info(skill_name .. " Progress:")
    logger:info("  Level: " .. level .. " (base: " .. base .. ")")
    logger:info("  XP: " .. xp)
end

show_training_progress("Attack")

Low Resource Detection

local function is_health_low(threshold)
    return skills:current_level("Hitpoints") < threshold
end

local function is_prayer_low(threshold)
    return skills:current_level("Prayer") < threshold
end

if is_health_low(20) then
    logger:warn("Health low!")
end

if is_prayer_low(10) then
    logger:warn("Prayer low!")
end

Skill Names

Available skill names (case-insensitive):

  • ATTACK (0)
  • DEFENCE (1)
  • STRENGTH (2)
  • HITPOINTS (3)
  • RANGED (4)
  • PRAYER (5)
  • MAGIC (6)
  • COOKING (7)
  • WOODCUTTING (8)
  • FLETCHING (9)
  • FISHING (10)
  • FIREMAKING (11)
  • CRAFTING (12)
  • SMITHING (13)
  • MINING (14)
  • HERBLORE (15)
  • AGILITY (16)
  • THIEVING (17)
  • SLAYER (18)
  • FARMING (19)
  • RUNECRAFTING (20)
  • HUNTER (21)
  • CONSTRUCTION (22)

Related APIs

  • Combat API - Combat mechanics
  • Prayer API - Prayer management