Skip to content

builtin life

boyism80 edited this page Jul 3, 2026 · 11 revisions

Built-in Functions Documentation (Life)

This document describes functions available to life type objects (characters, mobs, NPCs).


message

message(text:string[, type:MESSAGE_TYPE])

  • Description:
    Sends a message to the life object. Only works for character objects.
  • Parameters:
    • text:string: Message text to send
    • [type:MESSAGE_TYPE]: Message type (default: MESSAGE_TYPE.STATE)
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:message("Hello world!")
    me:message("Important message", MESSAGE_TYPE.NOTIFY)

hp

Provides functionality to get or set the life object's HP.

hp()

  • Description:
    Returns the current HP of the life object.
  • Parameters:
    • None
  • Return Value:
    • number: Current HP value
  • Example:
    -- This is a real usage example from game scripts
    local current_hp = me:hp()
    me:message("Your HP: " .. current_hp)

hp(value:number)

  • Description:
    Sets the life object's HP to the specified value.
  • Parameters:
    • value:number: HP value to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:hp(me:maxhp())  -- Set to full HP

mp

Provides functionality to get or set the life object's MP.

mp()

  • Description:
    Returns the current MP of the life object.
  • Parameters:
    • None
  • Return Value:
    • number: Current MP value
  • Example:
    -- This is a real usage example from game scripts
    local current_mp = me:mp()
    me:message("Your MP: " .. current_mp)

mp(value:number)

  • Description:
    Sets the life object's MP to the specified value.
  • Parameters:
    • value:number: MP value to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:mp(me:maxmp())  -- Set to full MP

heal

heal(amount:number)

  • Description:
    Heals the life object by the specified amount of HP.
  • Parameters:
    • amount:number: Amount of HP to heal
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:heal(100)  -- Heal 100 HP

damage

damage(amount:number[, from:fb.game.life][, critical:boolean])

  • Description:
    Deals damage to this life object.
  • Parameters:
    • amount:number: Amount of damage to deal
    • [from:fb.game.life]: Life object that is dealing the damage
    • [critical:boolean]: Whether this is a critical hit (default: false)
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    target:damage(50)  -- Deal 50 damage
    target:damage(50, me)  -- Deal 50 damage from me
    target:damage(50, me, true)  -- Deal 50 critical damage from me

mp_up

mp_up(amount:number)

  • Description:
    Increases the life object's MP by the specified amount.
  • Parameters:
    • amount:number: Amount of MP to add
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:mp_up(50)  -- Restore 50 MP

mp_down

mp_down(amount:number)

  • Description:
    Decreases the life object's MP by the specified amount.
  • Parameters:
    • amount:number: Amount of MP to reduce
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:mp_down(30)  -- Consume 30 MP

action

action(action:ACTION[, duration:DURATION][, sound:number])

  • Description:
    Makes the life object perform an action.
  • Parameters:
    • action:ACTION: Action to perform
    • [duration:DURATION]: Duration of the action (default: DURATION.SPELL)
    • [sound:number]: Sound effect ID to play (default: 0)
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:action(ACTION.PICKUP)  -- Default duration
    me:action(ACTION.PICKUP, DURATION.PICKUP)  -- Custom duration
    me:action(ACTION.PICKUP, DURATION.PICKUP, 1)  -- With sound effect

spell

Provides functionality to get a known spell by slot index, name, or model.

spell(slot:number)

  • Description:
    Returns the spell in the given slot index.
  • Parameters:
    • slot:number: Spell slot index
  • Return Value:
    • fb.game.spell|nil: Spell object or nil if the slot is empty
  • Example:
    -- This is a real usage example from game scripts
    local spell = me:spell(1)

spell(name:string)

  • Description:
    Returns the spell with the given name if the life object knows it.
  • Parameters:
    • name:string: Spell name
  • Return Value:
    • fb.game.spell|nil: Spell object or nil if not found
  • Example:
    -- This is a real usage example from game scripts
    local spell = me:spell("비영사천문")
    if spell then
        me:message("Found spell: " .. spell:model():name())
    end

spell(model:fb.model.spell)

  • Description:
    Returns the spell matching the given spell model if the life object knows it.
  • Parameters:
    • model:fb.model.spell: Spell model object
  • Return Value:
    • fb.game.spell|nil: Spell object or nil if not found
  • Example:
    -- This is a real usage example from game scripts
    local model = name2spell("비영사천문")
    local spell = me:spell(model)

spells

spells()

  • Description:
    Returns a table containing all spells known by the life object.
  • Parameters:
    • None
  • Return Value:
    • table: Table with slot indices as keys and spell objects as values
  • Example:
    -- This is a real usage example from game scripts
    for slot, spell in pairs(me:spells()) do
        me:message("Slot " .. slot .. ": " .. spell:model():name())
    end

cast

cast(spell:string[, target:fb.game.life])

  • Description:
    Casts a spell on a target or self.
  • Parameters:
    • spell:string: Spell name to cast
    • [target:fb.game.life]: Target to cast the spell on (defaults to self for self-target spells)
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:cast("생명의기원")  -- Cast on self
    me:cast("생명의기원", target)  -- Cast on target

cc

Provides functionality to get or set crowd control effects.

cc()

  • Description:
    Returns the current crowd control state.
  • Parameters:
    • None
  • Return Value:
    • number: Current CC state value
  • Example:
    -- This is a real usage example from game scripts
    local cc_state = me:cc()
    me:message("CC state: " .. cc_state)

cc(value:number)

  • Description:
    Sets the crowd control state.
  • Parameters:
    • value:number: CC state value to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:cc(0)  -- Remove all CC effects

add_cc

add_cc(cc_type:CROWD_CONTROL)

  • Description:
    Adds a crowd control effect to the life object.
  • Parameters:
    • cc_type:CROWD_CONTROL: Type of CC effect to add
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:add_cc(CROWD_CONTROL.STUN)

remove_cc

remove_cc(cc_type:CROWD_CONTROL)

  • Description:
    Removes a crowd control effect from the life object.
  • Parameters:
    • cc_type:CROWD_CONTROL: Type of CC effect to remove
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:remove_cc(CROWD_CONTROL.STUN)

attack

attack([duration:DURATION])

  • Description:
    Performs a basic attack on the current target.
  • Parameters:
    • [duration:DURATION]: Attack duration type (default: DURATION.ATTACK)
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:attack()  -- Basic attack with default duration
    me:attack(DURATION.ATTACK)  -- Explicit duration

damage_rate

Provides functionality to get or set the life object's damage rate.

damage_rate()

  • Description:
    Returns the current damage rate of the life object.
  • Parameters:
    • None
  • Return Value:
    • number: Current damage rate value
  • Example:
    -- This is a real usage example from game scripts
    local rate = me:damage_rate()
    me:message("Current damage rate: " .. rate)

damage_rate(value:number)

  • Description:
    Sets the life object's damage rate to the specified value.
  • Parameters:
    • value:number: Damage rate value to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:damage_rate(150)  -- Set damage rate to 150%

damage_derate

Provides functionality to get or set the life object's damage reduction rate.

damage_derate()

  • Description:
    Returns the current damage reduction rate of the life object.
  • Parameters:
    • None
  • Return Value:
    • number: Current damage reduction rate value
  • Example:
    -- This is a real usage example from game scripts
    local rate = me:damage_derate()
    me:message("Current damage reduction: " .. rate)

damage_derate(value:number)

  • Description:
    Sets the life object's damage reduction rate to the specified value.
  • Parameters:
    • value:number: Damage reduction rate value to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:damage_derate(50)  -- Set damage reduction to 50%

skill_damage_rate

Provides functionality to get or set the life object's skill damage rate.

skill_damage_rate()

  • Description:
    Returns the current skill damage rate of the life object.
  • Parameters:
    • None
  • Return Value:
    • number: Current skill damage rate value
  • Example:
    -- This is a real usage example from game scripts
    local rate = me:skill_damage_rate()
    me:message("Current skill damage rate: " .. rate)

skill_damage_rate(value:number)

  • Description:
    Sets the life object's skill damage rate to the specified value.
  • Parameters:
    • value:number: Skill damage rate value to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:skill_damage_rate(150)  -- Set skill damage rate to 150%

paralysis

Provides functionality to get or set the life object's paralysis state.

paralysis()

  • Description:
    Returns whether the life object is paralyzed.
  • Parameters:
    • None
  • Return Value:
    • boolean: True if paralyzed, false otherwise
  • Example:
    -- This is a real usage example from game scripts
    if me:paralysis() then
        me:message("You are paralyzed!")
    end

paralysis(value:boolean)

  • Description:
    Sets the life object's paralysis state.
  • Parameters:
    • value:boolean: True to paralyze, false to remove paralysis
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:paralysis(true)  -- Paralyze
    me:paralysis(false)  -- Remove paralysis

invincible

Provides functionality to get or set the life object's invincibility state.

invincible()

  • Description:
    Returns whether the life object is invincible.
  • Parameters:
    • None
  • Return Value:
    • boolean: True if invincible, false otherwise
  • Example:
    -- This is a real usage example from game scripts
    if me:invincible() then
        me:message("You are invincible!")
    end

invincible(value:boolean)

  • Description:
    Sets the life object's invincibility state.
  • Parameters:
    • value:boolean: True to make invincible, false to make vulnerable
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:invincible(true)  -- Make invincible
    me:invincible(false)  -- Make vulnerable

cover

Provides functionality to get or set the life object's cover state.

cover()

  • Description:
    Returns whether the life object is in cover.
  • Parameters:
    • None
  • Return Value:
    • boolean: True if in cover, false otherwise
  • Example:
    -- This is a real usage example from game scripts
    if me:cover() then
        me:message("You are in cover!")
    end

cover(value:boolean)

  • Description:
    Sets the life object's cover state.
  • Parameters:
    • value:boolean: True to enter cover, false to exit cover
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:cover(true)  -- Enter cover
    me:cover(false)  -- Exit cover

base_hp

Provides functionality to get or set base HP.

base_hp()

  • Description:
    Returns the base HP value (without buffs or equipment).
  • Parameters:
    • None
  • Return Value:
    • number: Base HP value
  • Example:
    -- This is a real usage example from game scripts
    local base_hp = me:base_hp()
    me:message("Base HP: " .. base_hp)

base_hp(value:number)

  • Description:
    Sets the base HP value.
  • Parameters:
    • value:number: Base HP to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:base_hp(1000)

buff_hp

Provides functionality to get or set the life object's HP buff value.

buff_hp()

  • Description:
    Returns the current HP buff value of the life object.
  • Parameters:
    • None
  • Return Value:
    • number: Current HP buff value
  • Example:
    -- This is a real usage example from game scripts
    local buff = me:buff_hp()
    me:message("Current HP buff: " .. buff)

buff_hp(value:number)

  • Description:
    Sets the life object's HP buff value.
  • Parameters:
    • value:number: HP buff value to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:buff_hp(1000)  -- Add 1000 HP from buffs

maxhp

maxhp()

  • Description:
    Returns the maximum HP (base HP + buff HP + equipment bonuses).
  • Parameters:
    • None
  • Return Value:
    • number: Maximum HP value
  • Example:
    -- This is a real usage example from game scripts
    local max_hp = me:maxhp()
    me:message("Max HP: " .. max_hp)

base_mp

Provides functionality to get or set base MP.

base_mp()

  • Description:
    Returns the base MP value (without buffs or equipment).
  • Parameters:
    • None
  • Return Value:
    • number: Base MP value
  • Example:
    -- This is a real usage example from game scripts
    local base_mp = me:base_mp()
    me:message("Base MP: " .. base_mp)

base_mp(value:number)

  • Description:
    Sets the base MP value.
  • Parameters:
    • value:number: Base MP to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:base_mp(500)

buff_mp

Provides functionality to get or set the life object's MP buff value.

buff_mp()

  • Description:
    Returns the current MP buff value of the life object.
  • Parameters:
    • None
  • Return Value:
    • number: Current MP buff value
  • Example:
    -- This is a real usage example from game scripts
    local buff = me:buff_mp()
    me:message("Current MP buff: " .. buff)

buff_mp(value:number)

  • Description:
    Sets the life object's MP buff value.
  • Parameters:
    • value:number: MP buff value to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:buff_mp(500)  -- Add 500 MP from buffs

maxmp

maxmp()

  • Description:
    Returns the maximum MP (base MP + buff MP + equipment bonuses).
  • Parameters:
    • None
  • Return Value:
    • number: Maximum MP value
  • Example:
    -- This is a real usage example from game scripts
    local max_mp = me:maxmp()
    me:message("Max MP: " .. max_mp)

base_str

Provides functionality to get or set base strength.

base_str()

  • Description:
    Returns the base strength value (without buffs or equipment).
  • Parameters:
    • None
  • Return Value:
    • number: Base strength value
  • Example:
    -- This is a real usage example from game scripts
    local base_str = me:base_str()
    me:message("Base strength: " .. base_str)

base_str(value:number)

  • Description:
    Sets the base strength value.
  • Parameters:
    • value:number: Base strength to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:base_str(50)

buff_str

Provides functionality to get or set the life object's STR buff value.

buff_str()

  • Description:
    Returns the current STR buff value of the life object.
  • Parameters:
    • None
  • Return Value:
    • number: Current STR buff value
  • Example:
    -- This is a real usage example from game scripts
    local buff = me:buff_str()
    me:message("Current STR buff: " .. buff)

buff_str(value:number)

  • Description:
    Sets the life object's STR buff value.
  • Parameters:
    • value:number: STR buff value to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:buff_str(10)

str

str()

  • Description:
    Returns the total strength value (base + buff combined).
  • Parameters:
    • None
  • Return Value:
    • number: Total strength value
  • Example:
    -- This is a real usage example from game scripts
    local total_str = me:str()
    me:message("Total STR: " .. total_str)

base_dex

Provides functionality to get the base dexterity value.

base_dex()

  • Description:
    Returns the base dexterity value (without buffs).
  • Parameters:
    • None
  • Return Value:
    • number: Base dexterity value
  • Example:
    -- This is a real usage example from game scripts
    local base_dex = me:base_dex()
    me:message("Base DEX: " .. base_dex)

buff_dex

Provides functionality to get or set the DEX buff value.

buff_dex()

  • Description:
    Returns the current DEX buff value.
  • Parameters:
    • None
  • Return Value:
    • number: Current DEX buff value
  • Example:
    -- This is a real usage example from game scripts
    local buff = me:buff_dex()
    me:message("DEX buff: " .. buff)

buff_dex(value:number)

  • Description:
    Sets the DEX buff value.
  • Parameters:
    • value:number: DEX buff to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:buff_dex(5)

dex

dex()

  • Description:
    Returns the total dexterity value (base + buff combined).
  • Parameters:
    • None
  • Return Value:
    • number: Total dexterity value
  • Example:
    -- This is a real usage example from game scripts
    local total_dex = me:dex()
    me:message("Total DEX: " .. total_dex)

base_int

Provides functionality to get the base intelligence value.

base_int()

  • Description:
    Returns the base intelligence value (without buffs).
  • Parameters:
    • None
  • Return Value:
    • number: Base intelligence value
  • Example:
    -- This is a real usage example from game scripts
    local base_int = me:base_int()
    me:message("Base INT: " .. base_int)

buff_int

Provides functionality to get or set the INT buff value.

buff_int()

  • Description:
    Returns the current INT buff value.
  • Parameters:
    • None
  • Return Value:
    • number: Current INT buff value
  • Example:
    -- This is a real usage example from game scripts
    local buff = me:buff_int()
    me:message("INT buff: " .. buff)

buff_int(value:number)

  • Description:
    Sets the INT buff value.
  • Parameters:
    • value:number: INT buff to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:buff_int(10)

int

int()

  • Description:
    Returns the total intelligence value (base + buff combined). Note: the Lua function name is int.
  • Parameters:
    • None
  • Return Value:
    • number: Total intelligence value
  • Example:
    -- This is a real usage example from game scripts
    local total_int = me:int()
    me:message("Total INT: " .. total_int)

base_phydef

Provides functionality to get the base physical defense value.

base_phydef()

  • Description:
    Returns the base physical defense value (without buffs).
  • Parameters:
    • None
  • Return Value:
    • number: Base physical defense value
  • Example:
    -- This is a real usage example from game scripts
    local base_phydef = me:base_phydef()
    me:message("Base PHYDEF: " .. base_phydef)

buff_phydef

Provides functionality to get or set the physical defense buff value.

buff_phydef()

  • Description:
    Returns the current physical defense buff value.
  • Parameters:
    • None
  • Return Value:
    • number: Current physical defense buff value
  • Example:
    -- This is a real usage example from game scripts
    local buff = me:buff_phydef()
    me:message("PHYDEF buff: " .. buff)

buff_phydef(value:number)

  • Description:
    Sets the physical defense buff value.
  • Parameters:
    • value:number: Physical defense buff to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:buff_phydef(15)

phydef

phydef()

  • Description:
    Returns the total physical defense value (base + buff combined).
  • Parameters:
    • None
  • Return Value:
    • number: Total physical defense value
  • Example:
    -- This is a real usage example from game scripts
    local total_phydef = me:phydef()
    me:message("Total PHYDEF: " .. total_phydef)

base_magdef

Provides functionality to get the base magical defense value.

base_magdef()

  • Description:
    Returns the base magical defense value (without buffs).
  • Parameters:
    • None
  • Return Value:
    • number: Base magical defense value
  • Example:
    -- This is a real usage example from game scripts
    local base_magdef = me:base_magdef()
    me:message("Base MAGDEF: " .. base_magdef)

buff_magdef

Provides functionality to get or set the magical defense buff value.

buff_magdef()

  • Description:
    Returns the current magical defense buff value.
  • Parameters:
    • None
  • Return Value:
    • number: Current magical defense buff value
  • Example:
    -- This is a real usage example from game scripts
    local buff = me:buff_magdef()
    me:message("MAGDEF buff: " .. buff)

buff_magdef(value:number)

  • Description:
    Sets the magical defense buff value.
  • Parameters:
    • value:number: Magical defense buff to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:buff_magdef(10)

magdef

magdef()

  • Description:
    Returns the total magical defense value (base + buff combined).
  • Parameters:
    • None
  • Return Value:
    • number: Total magical defense value
  • Example:
    -- This is a real usage example from game scripts
    local total_magdef = me:magdef()
    me:message("Total MAGDEF: " .. total_magdef)

base_dam

Provides functionality to get the base damage bonus value.

base_dam()

  • Description:
    Returns the base damage bonus value (without buffs).
  • Parameters:
    • None
  • Return Value:
    • number: Base damage bonus value
  • Example:
    -- This is a real usage example from game scripts
    local base_dam = me:base_dam()
    me:message("Base DAM: " .. base_dam)

buff_dam

Provides functionality to get or set the damage bonus buff value.

buff_dam()

  • Description:
    Returns the current damage bonus buff value.
  • Parameters:
    • None
  • Return Value:
    • number: Current damage bonus buff value
  • Example:
    -- This is a real usage example from game scripts
    local buff = me:buff_dam()
    me:message("DAM buff: " .. buff)

buff_dam(value:number)

  • Description:
    Sets the damage bonus buff value.
  • Parameters:
    • value:number: Damage bonus buff to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:buff_dam(5)

dam

dam()

  • Description:
    Returns the total damage bonus value (base + buff combined).
  • Parameters:
    • None
  • Return Value:
    • number: Total damage bonus value
  • Example:
    -- This is a real usage example from game scripts
    local total_dam = me:dam()
    me:message("Total DAM: " .. total_dam)

base_hit

Provides functionality to get the base hit rate value.

base_hit()

  • Description:
    Returns the base hit rate value (without buffs).
  • Parameters:
    • None
  • Return Value:
    • number: Base hit rate value
  • Example:
    -- This is a real usage example from game scripts
    local base_hit = me:base_hit()
    me:message("Base HIT: " .. base_hit)

buff_hit

Provides functionality to get or set the hit rate buff value.

buff_hit()

  • Description:
    Returns the current hit rate buff value.
  • Parameters:
    • None
  • Return Value:
    • number: Current hit rate buff value
  • Example:
    -- This is a real usage example from game scripts
    local buff = me:buff_hit()
    me:message("HIT buff: " .. buff)

buff_hit(value:number)

  • Description:
    Sets the hit rate buff value.
  • Parameters:
    • value:number: Hit rate buff to set
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:buff_hit(3)

hit

hit()

  • Description:
    Returns the total hit rate value (base + buff combined).
  • Parameters:
    • None
  • Return Value:
    • number: Total hit rate value
  • Example:
    -- This is a real usage example from game scripts
    local total_hit = me:hit()
    me:message("Total HIT: " .. total_hit)

normal_attack_damage

normal_attack_damage([size:MOB_SIZE])

  • Description:
    Calculates the normal attack damage that would be dealt based on mob size.
  • Parameters:
    • [size:MOB_SIZE]: Target mob size (default: MOB_SIZE.SMALL)
  • Return Value:
    • number: Calculated normal attack damage
  • Example:
    -- This is a real usage example from game scripts
    local damage_small = me:normal_attack_damage(MOB_SIZE.SMALL)
    local damage_large = me:normal_attack_damage(MOB_SIZE.LARGE)
    me:message("Damage to small: " .. damage_small)
    me:message("Damage to large: " .. damage_large)

update

update([level:UPDATE_STATE_LEVEL])

  • Description:
    Sends a stat update packet to synchronize the life object's current stats with the client. By default updates HP/MP and base stats. The optional level parameter controls which stats are sent.
  • Parameters:
    • [level:UPDATE_STATE_LEVEL]: Update level flags (default: HP_MP | BASED)
  • Return Value:
    • None
  • Example:
    -- This is a real usage example from game scripts
    me:base_str(me:base_str() + 5)
    me:update()

Clone this wiki locally