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:
| Parameter | Type | Required | Description |
|---|---|---|---|
skill | any | Yes | - 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:
| Parameter | Type | Required | Description |
|---|---|---|---|
skill | any | Yes | - Skill name or index |
Returns:
number- Base level
experience
skills:experience(skill: string|number) -> number
Gets experience points for the skill.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
skill | any | Yes | - 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:
| Parameter | Type | Required | Description |
|---|---|---|---|
skill | any | Yes | - 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:
| Parameter | Type | Required | Description |
|---|---|---|---|
skill | any | Yes | - 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:
| Parameter | Type | Required | Description |
|---|---|---|---|
skill | any | Yes | - 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