Skip to content

builtin life

boyism80 edited this page Jan 23, 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

spell(name_or_slot)

  • Description:
    Gets a spell by name or slot index.
  • Parameters:
    • name_or_slot: Spell name (string) or slot index (number)
  • 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

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)

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)

Clone this wiki locally